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