Commit aa3ad44e authored by Mikołaj Zalewski's avatar Mikołaj Zalewski Committed by Alexandre Julliard

shell32: Improve SHRegisterDragDrop and SHRevokeDragDrop.

parent b9a0b1b4
......@@ -446,9 +446,12 @@ int WINAPIV ShellMessageBoxA(
/*************************************************************************
* 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
* 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
* exported by ordinal
......@@ -460,16 +463,30 @@ HRESULT WINAPI SHRegisterDragDrop(
HWND hWnd,
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);
}
/*************************************************************************
* 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
* for details
* for details. Function removed from Windows Vista.
*
* We call ole32 RevokeDragDrop which seems to work even if OleInitialize was
* not called.
*
* NOTES
* exported by ordinal
......@@ -479,7 +496,7 @@ HRESULT WINAPI SHRegisterDragDrop(
*/
HRESULT WINAPI SHRevokeDragDrop(HWND hWnd)
{
FIXME("(%p):stub.\n",hWnd);
TRACE("(%p)\n", hWnd);
return RevokeDragDrop(hWnd);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment