shell32: Improve SHRegisterDragDrop and SHRevokeDragDrop.
This commit is contained in:
parent
b9a0b1b479
commit
aa3ad44edf
|
@ -446,9 +446,12 @@ int WINAPIV ShellMessageBoxA(
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* SHRegisterDragDrop [SHELL32.86]
|
* SHRegisterDragDrop [SHELL32.86]
|
||||||
*
|
*
|
||||||
* Probably equivalent to RegisterDragDrop but under Windows 9x it could use the
|
* Probably equivalent to RegisterDragDrop but under Windows 95 it could use the
|
||||||
* shell32 built-in "mini-COM" without the need to load ole32.dll - see SHLoadOLE
|
* shell32 built-in "mini-COM" without the need to load ole32.dll - see SHLoadOLE
|
||||||
* for details
|
* for details. Under Windows 98 this function initializes the true OLE when called
|
||||||
|
* the first time, on XP always returns E_OUTOFMEMORY and it got removed from Vista.
|
||||||
|
*
|
||||||
|
* We follow Windows 98 behaviour.
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* exported by ordinal
|
* exported by ordinal
|
||||||
|
@ -460,16 +463,30 @@ HRESULT WINAPI SHRegisterDragDrop(
|
||||||
HWND hWnd,
|
HWND hWnd,
|
||||||
LPDROPTARGET pDropTarget)
|
LPDROPTARGET pDropTarget)
|
||||||
{
|
{
|
||||||
FIXME("(%p,%p):stub.\n", hWnd, pDropTarget);
|
static BOOL ole_initialized = FALSE;
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
|
TRACE("(%p,%p)\n", hWnd, pDropTarget);
|
||||||
|
|
||||||
|
if (!ole_initialized)
|
||||||
|
{
|
||||||
|
hr = OleInitialize(NULL);
|
||||||
|
if (FAILED(hr))
|
||||||
|
return hr;
|
||||||
|
ole_initialized = TRUE;
|
||||||
|
}
|
||||||
return RegisterDragDrop(hWnd, pDropTarget);
|
return RegisterDragDrop(hWnd, pDropTarget);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* SHRevokeDragDrop [SHELL32.87]
|
* SHRevokeDragDrop [SHELL32.87]
|
||||||
*
|
*
|
||||||
* Probably equivalent to RevokeDragDrop but under Windows 9x it could use the
|
* Probably equivalent to RevokeDragDrop but under Windows 95 it could use the
|
||||||
* shell32 built-in "mini-COM" without the need to load ole32.dll - see SHLoadOLE
|
* shell32 built-in "mini-COM" without the need to load ole32.dll - see SHLoadOLE
|
||||||
* for details
|
* for details. Function removed from Windows Vista.
|
||||||
|
*
|
||||||
|
* We call ole32 RevokeDragDrop which seems to work even if OleInitialize was
|
||||||
|
* not called.
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* exported by ordinal
|
* exported by ordinal
|
||||||
|
@ -479,7 +496,7 @@ HRESULT WINAPI SHRegisterDragDrop(
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI SHRevokeDragDrop(HWND hWnd)
|
HRESULT WINAPI SHRevokeDragDrop(HWND hWnd)
|
||||||
{
|
{
|
||||||
FIXME("(%p):stub.\n",hWnd);
|
TRACE("(%p)\n", hWnd);
|
||||||
return RevokeDragDrop(hWnd);
|
return RevokeDragDrop(hWnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue