怎么实现拖曳指定格式的文件到小弟我的程序中,其他格式不允许拖入

如何实现拖曳指定格式的文件到我的程序中,其他格式不允许拖入
下面是我实现拖曳的代码:


TCHAR Path[MAX_PATH];
int nDrag = (int)DragQueryFile(hDropInfo,0xFFFFFFFF,0,MAX_PATH);
DragQueryFile(hDropInfo,nDrag - 1,Path,MAX_PATH); //只取最后一个文件
SetDlgItemText(IDC_PATH, Path);  
DragFinish(hDropInfo);



可是我想像别有些的程序一样,实现仅允许拖入指定格式的文件到我的程序中

比如只允许拖入txt格式,当拖入格式不是txt时候,文件拖曳到程序显示的图标是禁止图标(一个圆加一斜杆)

跪求如何实现?
------解决思路----------------------
DROPEFFECT CLeftView::OnDragOver(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point) 
{
// TODO: Add your specialized code here and/or call the base class
DROPEFFECT deResult=DROPEFFECT_NONE;

CMainFrame* pMain=(CMainFrame*)AfxGetMainWnd();
CTreeCtrl&  LeftTree=this->GetTreeCtrl();
// 
CPoint pt;
GetCursorPos(&pt);
pMain->m_pDragImage->DragMove(pt);
// check if hit
UINT uHitTest;
HTREEITEM hTarget=LeftTree.HitTest(point,&uHitTest);
if(!hTarget) return deResult;// can't drop
// get src
char SrcText[40*MaxSelectNum];
if(!pMain->GetSourceText(pDataObject,SrcText)) return deResult;
// drop is "My Computer"
CString drive=LeftTree.GetItemText(hTarget);
if(stricmp(drive.GetBuffer(50),"My Computer")==0 
------解决思路----------------------

   stricmp(drive.GetBuffer(50),"Control 802D")==0 )
{
return deResult;// DROPEFFECT_NONE
}
// not virtual dir
char SrcPath[MAX_PATH];
memset(SrcPath,0,MAX_PATH);
strncpy(SrcPath,SrcText,strchr(SrcText,',')-SrcText);
// drop
char DropPath[MAX_PATH];
pMain->TreeItemPath(DropPath,hTarget);
// drop drive
if(strchr(DropPath,':')==0) // "My Computer"
{ // no ":"
strcat(DropPath,drive.GetBuffer(MAX_PATH));
}
// hide DragImage
pMain->m_pDragImage->DragLeave(NULL);
//
BOOL MyPC=pMain->CutDriveName(DropPath);
if(pMain->SameDrive(SrcPath,DropPath))
deResult=DROPEFFECT_MOVE;//2
else
deResult=DROPEFFECT_COPY;//1
// new hightlight
LeftTree.SelectDropTarget(hTarget);
// for auto expanding
if(PrevDrop!=hTarget) 
{
PrevDrop=hTarget;
m_iTimerCount=0;
}
if(pDataObject->IsDataAvailable(CF_TEXT))
{
if(dwKeyState & MK_CONTROL)
{ //over write
if(dwKeyState & MK_CONTROL) deResult=DROPEFFECT_COPY;
else deResult=DROPEFFECT_MOVE;
}
}
// show DragImage
pMain->m_pDragImage->DragEnter(NULL,pt);
//
return deResult;
// return CTreeView::OnDragOver(pDataObject, dwKeyState, point);
}

------解决思路----------------------
CView::OnDragOver 返回 DROPEFFECT_NONE   The data object cannot be dropped in this window.

------解决思路----------------------
参考一下这篇文章:

http://www.vckbase.com/index.php/wv/112