8 modified files
reactos/lib/shell32
diff -u -r1.5 -r1.6
--- Makefile.in 27 Mar 2004 09:23:05 -0000 1.5
+++ Makefile.in 12 Jul 2004 22:03:09 -0000 1.6
@@ -4,8 +4,8 @@
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = shell32.dll
-# fixme: avoid ole32.dll import
-IMPORTS = ole32 shlwapi comctl32 user32 gdi32 advapi32 kernel32 ntdll
+IMPORTS = shlwapi comctl32 user32 gdi32 advapi32 kernel32
+DELAYIMPORTS = ole32
ALTNAMES = shell.dll
EXTRALIBS = $(LIBUUID) $(LIBUNICODE)
reactos/lib/shell32
diff -u -r1.3 -r1.4
--- Makefile.ros-template 29 May 2004 21:24:46 -0000 1.3
+++ Makefile.ros-template 12 Jul 2004 22:03:09 -0000 1.4
@@ -1,4 +1,4 @@
-# $Id: Makefile.ros-template,v 1.3 2004/05/29 21:24:46 hbirr Exp $
+# $Id: Makefile.ros-template,v 1.4 2004/07/12 22:03:09 gvg Exp $
TARGET_NAME = shell32
@@ -6,7 +6,7 @@
TARGET_CFLAGS = @EXTRADEFS@ -D__REACTOS__
-TARGET_SDKLIBS = libwine.a @IMPORTS@ wine_uuid.a
+TARGET_SDKLIBS = libwine.a @IMPORTS@ ole32.a wine_uuid.a ntdll.a
TARGET_BASE = $(TARGET_BASE_LIB_SHELL32)
reactos/lib/shell32
diff -u -r1.4 -r1.5
--- clipboard.c 9 Jan 2004 00:09:29 -0000 1.4
+++ clipboard.c 12 Jul 2004 22:03:09 -0000 1.5
@@ -52,43 +52,6 @@
WINE_DEFAULT_DEBUG_CHANNEL(shell);
-HRESULT (WINAPI *pOleInitialize)(LPVOID reserved);
-void (WINAPI *pOleUninitialize)(void);
-HRESULT (WINAPI *pRegisterDragDrop)(HWND hwnd, IDropTarget* pDropTarget);
-HRESULT (WINAPI *pRevokeDragDrop)(HWND hwnd);
-HRESULT (WINAPI *pDoDragDrop)(LPDATAOBJECT,LPDROPSOURCE,DWORD,DWORD*);
-void (WINAPI *pReleaseStgMedium)(STGMEDIUM* pmedium);
-HRESULT (WINAPI *pOleSetClipboard)(IDataObject* pDataObj);
-HRESULT (WINAPI *pOleGetClipboard)(IDataObject** ppDataObj);
-
-/**************************************************************************
- * GetShellOle
- *
- * make sure OLE32.DLL is loaded
- */
-BOOL GetShellOle(void)
-{
- static HANDLE hOle32 = NULL;
- if(!hOle32)
- {
- hOle32 = LoadLibraryA("ole32.dll");
- if(hOle32)
- {
- pOleInitialize=(void*)GetProcAddress(hOle32,"OleInitialize");
- pOleUninitialize=(void*)GetProcAddress(hOle32,"OleUninitialize");
- pRegisterDragDrop=(void*)GetProcAddress(hOle32,"RegisterDragDrop");
- pRevokeDragDrop=(void*)GetProcAddress(hOle32,"RevokeDragDrop");
- pDoDragDrop=(void*)GetProcAddress(hOle32,"DoDragDrop");
- pReleaseStgMedium=(void*)GetProcAddress(hOle32,"ReleaseStgMedium");
- pOleSetClipboard=(void*)GetProcAddress(hOle32,"OleSetClipboard");
- pOleGetClipboard=(void*)GetProcAddress(hOle32,"OleGetClipboard");
-
- pOleInitialize(NULL);
- }
- }
- return TRUE;
-}
-
/**************************************************************************
* RenderHDROP
*
reactos/lib/shell32
diff -u -r1.19 -r1.20
--- shell32_main.h 12 Jul 2004 20:32:16 -0000 1.19
+++ shell32_main.h 12 Jul 2004 22:03:09 -0000 1.20
@@ -130,20 +130,6 @@
BOOL SYSTRAY_Init(void);
#endif
-/* OLE32 */
-extern HINSTANCE hShellOle32;
-
-extern HRESULT (WINAPI *pOleInitialize)(LPVOID reserved);
-extern void (WINAPI *pOleUninitialize)(void);
-extern HRESULT (WINAPI *pRegisterDragDrop)(HWND hwnd, IDropTarget* pDropTarget);
-extern HRESULT (WINAPI *pRevokeDragDrop)(HWND hwnd);
-extern HRESULT (WINAPI *pDoDragDrop)(LPDATAOBJECT,LPDROPSOURCE,DWORD,DWORD*);
-extern void (WINAPI *pReleaseStgMedium)(STGMEDIUM* pmedium);
-extern HRESULT (WINAPI *pOleSetClipboard)(IDataObject* pDataObj);
-extern HRESULT (WINAPI *pOleGetClipboard)(IDataObject** ppDataObj);
-extern HRESULT (WINAPI *pCoCreateInstance)(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv);
-
-BOOL GetShellOle(void);
HGLOBAL RenderHDROP(LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl);
HGLOBAL RenderSHELLIDLIST (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl);
reactos/lib/shell32
diff -u -r1.5 -r1.6
--- shellole.c 12 Jul 2004 20:32:16 -0000 1.5
+++ shellole.c 12 Jul 2004 22:03:09 -0000 1.6
@@ -72,30 +72,6 @@
};
/*************************************************************************
- * __CoCreateInstance [internal]
- *
- * NOTES
- * wraper for late bound call to OLE32.DLL
- *
- */
-HRESULT (WINAPI *pCoCreateInstance)(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv) = NULL;
-
-void * __GetExternalFunc(HMODULE * phModule, LPCWSTR szModuleName, LPCSTR szProcName)
-{
- if (!*phModule) *phModule = GetModuleHandleW(szModuleName);
- if (!*phModule) *phModule = LoadLibraryW(szModuleName);
- if (*phModule) return GetProcAddress(*phModule, szProcName);
- return NULL;
-}
-
-HRESULT __CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
-{
- if(!pCoCreateInstance) pCoCreateInstance = __GetExternalFunc(&hShellOle32, sOLE32, "CoCreateInstance");
- if(!pCoCreateInstance) return E_FAIL;
- return pCoCreateInstance(rclsid, pUnkOuter, dwClsContext, iid, ppv);
-}
-
-/*************************************************************************
* SHCoCreateInstance [SHELL32.102]
*
* NOTES
@@ -211,7 +187,7 @@
} else {
/* load a external dll in the usual way */
- hres = __CoCreateInstance(myclsid, pUnkOuter, CLSCTX_INPROC_SERVER, refiid, ppv);
+ hres = CoCreateInstance(myclsid, pUnkOuter, CLSCTX_INPROC_SERVER, refiid, ppv);
goto end;
}
@@ -437,17 +413,18 @@
*/
HRESULT WINAPI SHGetMalloc(LPMALLOC *lpmal)
{
- HRESULT (WINAPI *pCoGetMalloc)(DWORD,LPMALLOC *);
- HMODULE hOle32;
-
TRACE("(%p)\n", lpmal);
if (!ShellTaskAllocator)
{
- hOle32 = GetModuleHandleA("OLE32.DLL");
+ HMODULE hOle32 = GetModuleHandleA("OLE32.DLL");
+ /* this is very suspect. we should not being using a different
+ * allocator from deallocator based on something undeterministic
+ * like whether ole32 is loaded. as it happens currently, they
+ * both map to the same allocator deep down, but this could
+ * change in the future. */
if(hOle32) {
- pCoGetMalloc = (void*) GetProcAddress(hOle32, "CoGetMalloc");
- if (pCoGetMalloc) pCoGetMalloc(MEMCTX_TASK, &ShellTaskAllocator);
+ CoGetMalloc(MEMCTX_TASK, &ShellTaskAllocator);
TRACE("got ole32 IMalloc\n");
}
if(!ShellTaskAllocator) {
reactos/lib/shell32
diff -u -r1.4 -r1.5
--- shellord.c 29 Jun 2004 13:40:40 -0000 1.4
+++ shellord.c 12 Jul 2004 22:03:09 -0000 1.5
@@ -426,8 +426,7 @@
LPDROPTARGET pDropTarget)
{
FIXME("(%p,%p):stub.\n", hWnd, pDropTarget);
- if (GetShellOle()) return pRegisterDragDrop(hWnd, pDropTarget);
- return 0;
+ return RegisterDragDrop(hWnd, pDropTarget);
}
/*************************************************************************
@@ -439,8 +438,7 @@
HRESULT WINAPI SHRevokeDragDrop(HWND hWnd)
{
FIXME("(%p):stub.\n",hWnd);
- if (GetShellOle()) return pRevokeDragDrop(hWnd);
- return 0;
+ return RevokeDragDrop(hWnd);
}
/*************************************************************************
@@ -458,8 +456,7 @@
{
FIXME("(%p %p %p 0x%08lx %p):stub.\n",
hWnd, lpDataObject, lpDropSource, dwOKEffect, pdwEffect);
- if (GetShellOle()) return pDoDragDrop(lpDataObject, lpDropSource, dwOKEffect, pdwEffect);
- return 0;
+ return DoDragDrop(lpDataObject, lpDropSource, dwOKEffect, pdwEffect);
}
/*************************************************************************
reactos/lib/shell32
diff -u -r1.5 -r1.6
--- shlview.c 13 May 2004 20:28:58 -0000 1.5
+++ shlview.c 12 Jul 2004 22:03:09 -0000 1.6
@@ -656,13 +656,10 @@
}
}
- if(GetShellOle() && pRegisterDragDrop)
+ if (SUCCEEDED(IShellFolder_CreateViewObject(This->pSFParent, This->hWnd, &IID_IDropTarget, (LPVOID*)&pdt)))
{
- if (SUCCEEDED(IShellFolder_CreateViewObject(This->pSFParent, This->hWnd, &IID_IDropTarget, (LPVOID*)&pdt)))
- {
- pRegisterDragDrop(This->hWnd, pdt);
+ RegisterDragDrop(This->hWnd, pdt);
IDropTarget_Release(pdt);
- }
}
/* register for receiving notifications */
@@ -1343,10 +1340,8 @@
DWORD dwAttributes = SFGAO_CANLINK;
DWORD dwEffect = DROPEFFECT_COPY | DROPEFFECT_MOVE;
- if(GetShellOle() && pDoDragDrop)
+ if (SUCCEEDED(IShellFolder_GetUIObjectOf(This->pSFParent, This->hWnd, This->cidl, (LPCITEMIDLIST*)This->apidl, &IID_IDataObject,0,(LPVOID *)&pda)))
{
- if (SUCCEEDED(IShellFolder_GetUIObjectOf(This->pSFParent, This->hWnd, This->cidl, (LPCITEMIDLIST*)This->apidl, &IID_IDataObject,0,(LPVOID *)&pda)))
- {
IDropSource * pds = (IDropSource*)&(This->lpvtblDropSource); /* own DropSource interface */
if (SUCCEEDED(IShellFolder_GetAttributesOf(This->pSFParent, This->cidl, (LPCITEMIDLIST*)This->apidl, &dwAttributes)))
@@ -1360,10 +1355,9 @@
if (pds)
{
DWORD dwEffect;
- pDoDragDrop(pda, pds, dwEffect, &dwEffect);
+ DoDragDrop(pda, pds, dwEffect, &dwEffect);
}
IDataObject_Release(pda);
- }
}
}
break;
@@ -1568,10 +1562,9 @@
case WM_GETDLGCODE: return SendMessageA(pThis->hWndList,uMessage,0,0);
- case WM_DESTROY: if(GetShellOle() && pRevokeDragDrop)
- {
- pRevokeDragDrop(pThis->hWnd);
- }
+
+ case WM_DESTROY:
+ RevokeDragDrop(pThis->hWnd);
SHChangeNotifyDeregister(pThis->hNotify);
break;
reactos/lib/shell32
diff -u -r1.2 -r1.3
--- shv_item_cmenu.c 6 Jan 2004 21:32:30 -0000 1.2
+++ shv_item_cmenu.c 12 Jul 2004 22:03:09 -0000 1.3
@@ -366,62 +366,20 @@
TRACE("(%p)->(wnd=%p,bCut=0x%08x)\n",This, hwnd, bCut);
- if(GetShellOle())
+ /* get the active IShellView */
+ if ((lpSB = (LPSHELLBROWSER)SendMessageA(hwnd, CWM_GETISHELLBROWSER,0,0)))
{
- /* get the active IShellView */
- if ((lpSB = (LPSHELLBROWSER)SendMessageA(hwnd, CWM_GETISHELLBROWSER,0,0)))
+ if (SUCCEEDED(IShellBrowser_QueryActiveShellView(lpSB, &lpSV)))
{
- if (SUCCEEDED(IShellBrowser_QueryActiveShellView(lpSB, &lpSV)))
+ if (SUCCEEDED(IShellView_GetItemObject(lpSV, SVGIO_SELECTION, &IID_IDataObject, (LPVOID*)&lpDo)))
{
- if (SUCCEEDED(IShellView_GetItemObject(lpSV, SVGIO_SELECTION, &IID_IDataObject, (LPVOID*)&lpDo)))
- {
- pOleSetClipboard(lpDo);
- IDataObject_Release(lpDo);
- }
- IShellView_Release(lpSV);
+ OleSetClipboard(lpDo);
+ IDataObject_Release(lpDo);
}
+ IShellView_Release(lpSV);
}
}
return TRUE;
-#if 0
-/*
- the following code does the copy operation witout ole32.dll
- we might need this possibility too (js)
-*/
- BOOL bSuccess = FALSE;
-
- TRACE("(%p)\n", iface);
-
- if(OpenClipboard(NULL))
- {
- if(EmptyClipboard())
- {
- IPersistFolder2 * ppf2;
- IShellFolder_QueryInterface(This->pSFParent, &IID_IPersistFolder2, (LPVOID*)&ppf2);
- if (ppf2)
- {
- LPITEMIDLIST pidl;
- IPersistFolder2_GetCurFolder(ppf2, &pidl);
- if(pidl)
- {
- HGLOBAL hMem;
-
- hMem = RenderHDROP(pidl, This->apidl, This->cidl);
-
- if(SetClipboardData(CF_HDROP, hMem))
- {
- bSuccess = TRUE;
- }
- SHFree(pidl);
- }
- IPersistFolder2_Release(ppf2);
- }
-
- }
- CloseClipboard();
- }
- return bSuccess;
-#endif
}
/**************************************************************************
* ISvItemCm_fnInvokeCommand()
CVSspam 0.2.8