Здравствуйте, OlegO, Вы писали:
OO>Здравствуйте, Николай, Вы писали:
Н>>Помогите пожалуйста реализовать Drag&Drop ссылок со страницы IE.
Н>>Т.е. я переопределил DragEnter, DragOver, DragLeave, Drop я незнаю как получить инфу о самой ссылке.
OO>Примерно так:
OO>OO>static UINT _MC_CF_INETURL = RegisterClipboardFormat(CFSTR_INETURL);
OO>static UINT _MC_CF_LINKDESCRIPTOR = RegisterClipboardFormat(CFSTR_FILEDESCRIPTOR);
OO>...::OnDrop(..)
OO>{
OO>FORMATETC stFormatInetUrl = {_MC_CF_INETURL,NULL,DVASPECT_CONTENT,-1,TYMED_HGLOBAL};
if(pDataObject->>IsDataAvailable(_MC_CF_INETURL,&stFormatInetUrl))
OO>{
OO> CString strLinkDscr;
OO> // Get link Description [4/17/2002]
OO> HGLOBAL hMemLinkDscr = pDataObject->GetGlobalData(_MC_CF_LINKDESCRIPTOR);
OO> if(hMemLinkDscr)
OO> {
OO> LPVOID pData = GlobalLock(hMemLinkDscr);
OO> if(!IsBadReadPtr(pData,sizeof(FILEGROUPDESCRIPTOR)))
OO> {
OO> FILEGROUPDESCRIPTOR *pLinkDescriptor = (FILEGROUPDESCRIPTOR*)pData;
OO> if(!IsBadReadPtr(pLinkDescriptor->fgd,sizeof(FILEDESCRIPTOR)))
OO> {
OO> strLinkDscr = pLinkDescriptor->fgd[0].cFileName;
OO> if(!strLinkDscr.IsEmpty())
OO> strLinkDscr = strLinkDscr.Left(strLinkDscr.GetLength()-4);
OO> }
OO> }
OO> GlobalUnlock(hMemLinkDscr);
OO> }
OO> HGLOBAL hMem = pDataObject->GetGlobalData(_MC_CF_INETURL);
OO> long UrlSize = GlobalSize(hMem);
OO> LPVOID hUrl = GlobalLock(hMem);
OO>
OO> if(hUrl)
OO> {
OO> CString strUrl = (LPTSTR)hUrl;
OO>
OO>
OO> }
OO> GlobalUnlock(hMem);
OO>}
OO>}
OO>
OO>
Большое спасибо