> -----Original Message----- > From: Dimitrie O. Paun [mailto:dpaun@rogers.com] > Sent: 12 January 2003 15:51 > To: wine-devel@winehq.com; Robert Shearman > Subject: Re: Bug Fix With Delay load function in Shell32 (version2) > > Index: shellole.c > > Please make your patches relative to wine's root. My attempt to save time backfired, it would seem :) > > -HINSTANCE hShellOle32 = 0; > > +HINSTANCE g_hShellOle32 = 0; /* global handle to ole32.dll */ > > Also, please do not introduce ugly naming conventions like the above, > especially when the style the DLL is written in does not call for it. Ok, I was just trying to make sure that the same thing wouldn't happen again, but I am happy as my patch is smaller without this. ChangeLog: - Seperate the HINSTANCEs used by GetShellOle() and other delay load functions Rob
Index: wine/dlls/shell32/clipboard.c =================================================================== RCS file: /home/wine/wine/dlls/shell32/clipboard.c,v retrieving revision 1.13 diff -u -r1.13 wine/dlls/shell32/clipboard.c --- clipboard.c 13 Dec 2002 00:36:52 -0000 1.13 +++ clipboard.c 12 Jan 2003 16:38:40 -0000 @@ -63,24 +63,25 @@ */ BOOL GetShellOle(void) { - if(!hShellOle32) - { - hShellOle32 = LoadLibraryA("ole32.dll"); - if(hShellOle32) - { - pOleInitialize=(void*)GetProcAddress(hShellOle32,"OleInitialize"); - pOleUninitialize=(void*)GetProcAddress(hShellOle32,"OleUninitialize"); - pRegisterDragDrop=(void*)GetProcAddress(hShellOle32,"RegisterDragDrop"); - pRevokeDragDrop=(void*)GetProcAddress(hShellOle32,"RevokeDragDrop"); - pDoDragDrop=(void*)GetProcAddress(hShellOle32,"DoDragDrop"); - pReleaseStgMedium=(void*)GetProcAddress(hShellOle32,"ReleaseStgMedium"); - pOleSetClipboard=(void*)GetProcAddress(hShellOle32,"OleSetClipboard"); - pOleGetClipboard=(void*)GetProcAddress(hShellOle32,"OleGetClipboard"); + 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; + pOleInitialize(NULL); + } + } + return TRUE; } /**************************************************************************
Index: wine/dlls/shell32/clipboard.c =================================================================== RCS file: /home/wine/wine/dlls/shell32/clipboard.c,v retrieving revision 1.13 diff -u -r1.13 wine/dlls/shell32/clipboard.c --- clipboard.c 13 Dec 2002 00:36:52 -0000 1.13 +++ clipboard.c 12 Jan 2003 16:38:40 -0000 @@ -63,24 +63,25 @@ */ BOOL GetShellOle(void) { - if(!hShellOle32) - { - hShellOle32 = LoadLibraryA("ole32.dll"); - if(hShellOle32) - { - pOleInitialize=(void*)GetProcAddress(hShellOle32,"OleInitialize"); - pOleUninitialize=(void*)GetProcAddress(hShellOle32,"OleUninitialize"); - pRegisterDragDrop=(void*)GetProcAddress(hShellOle32,"RegisterDragDrop"); - pRevokeDragDrop=(void*)GetProcAddress(hShellOle32,"RevokeDragDrop"); - pDoDragDrop=(void*)GetProcAddress(hShellOle32,"DoDragDrop"); - pReleaseStgMedium=(void*)GetProcAddress(hShellOle32,"ReleaseStgMedium"); - pOleSetClipboard=(void*)GetProcAddress(hShellOle32,"OleSetClipboard"); - pOleGetClipboard=(void*)GetProcAddress(hShellOle32,"OleGetClipboard"); + 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; + pOleInitialize(NULL); + } + } + return TRUE; } /**************************************************************************