//处理超级拖拽
function TForm1.DropEvent(const dataObj: IDataObject;
grfKeyState: Integer; pt: TPoint; var dwEffect: Integer): HRESULT;
var
aFmtEtc : TFORMATETC;
aStgMed : TSTGMEDIUM;
pData : PChar;
begin
if (dataObj = nil) then
raise Exception.Create('IDataObject-Zeiger Error !');
with aFmtEtc do
begin
cfFormat := CF_TEXT;
ptd := nil;
dwAspect := DVASPECT_CONTENT;
lindex := -1;
tymed := TYMED_HGLOBAL;
end;
OleCheck(dataObj.GetData(aFmtEtc, aStgMed));
try
pData := GlobalLock(aStgMed.hGlobal);
// Text pData = 拖拽的URL
//Memo1.Text := pData;
CreateNewTabBrowser( strPas(pData)); //打开一个新的标签
finally
GlobalUnlock(aStgMed.hGlobal);
ReleaseStgMedium(aStgMed);
end;
Result := S_OK;
end;
function TForm1.DropEvent(const dataObj: IDataObject;
grfKeyState: Integer; pt: TPoint; var dwEffect: Integer): HRESULT;
var
aFmtEtc : TFORMATETC;
aStgMed : TSTGMEDIUM;
pData : PChar;
begin
if (dataObj = nil) then
raise Exception.Create('IDataObject-Zeiger Error !');
with aFmtEtc do
begin
cfFormat := CF_TEXT;
ptd := nil;
dwAspect := DVASPECT_CONTENT;
lindex := -1;
tymed := TYMED_HGLOBAL;
end;
OleCheck(dataObj.GetData(aFmtEtc, aStgMed));
try
pData := GlobalLock(aStgMed.hGlobal);
// Text pData = 拖拽的URL
//Memo1.Text := pData;
CreateNewTabBrowser( strPas(pData)); //打开一个新的标签
finally
GlobalUnlock(aStgMed.hGlobal);
ReleaseStgMedium(aStgMed);
end;
Result := S_OK;
end;