IStream, y es-tu?

Francois Gouget fgouget at free.fr
Mon May 20 18:32:09 CDT 2002


On Windows, commctrl.h and shlwapi.h will leave a couple of functions
out if IStream is not defined (i.e. if you include them before
objidl.h). In Wine commctrl.h tested the wrong macro and shlwapi.h did
nothing. I modified both to test for IStream_IMETHODS, the Wine macro
that says the IStream interface has been defined.

This lets the shreg slwapi test compile now that I have removed (see
previous patch)  wine/obj_base.h and wine/obj_storage.h (which are
obviously not present on Windows and thus should not be used).

Changelog:

 * include/commctrl.h,
   include/shlwapi.h

   Test for IStream_IMETHODS before defining APIs that need the IStream
interface (like on Windows).


--
Francois Gouget         fgouget at free.fr        http://fgouget.free.fr/
  Good judgment comes from experience, and experience comes from bad judgment
                               -- Barry LePatner


Index: include/commctrl.h
===================================================================
RCS file: /home/wine/wine/include/commctrl.h,v
retrieving revision 1.88
diff -u -r1.88 commctrl.h
--- include/commctrl.h	5 Apr 2002 21:15:32 -0000	1.88
+++ include/commctrl.h	20 May 2002 22:43:40 -0000
@@ -544,7 +544,7 @@
                                          COLORREF,UINT,UINT);
 #define    ImageList_LoadImage WINELIB_NAME_AW(ImageList_LoadImage)
 HIMAGELIST WINAPI ImageList_Merge(HIMAGELIST,INT,HIMAGELIST,INT,INT,INT);
-#ifdef __IStream_INTREFACE_DEFINED__
+#ifdef IStream_IMETHODS
 HIMAGELIST WINAPI ImageList_Read(LPSTREAM);
 #endif
 BOOL     WINAPI ImageList_Remove(HIMAGELIST,INT);
@@ -556,7 +556,7 @@
 BOOL     WINAPI ImageList_SetIconSize(HIMAGELIST,INT,INT);
 BOOL     WINAPI ImageList_SetImageCount(HIMAGELIST,INT);
 BOOL     WINAPI ImageList_SetOverlayImage(HIMAGELIST,INT,INT);
-#ifdef __IStream_INTREFACE_DEFINED__
+#ifdef IStream_IMETHODS
 BOOL     WINAPI ImageList_Write(HIMAGELIST, LPSTREAM);
 #endif

Index: include/shlwapi.h
===================================================================
RCS file: /home/wine/wine/include/shlwapi.h,v
retrieving revision 1.25
diff -u -r1.25 shlwapi.h
--- include/shlwapi.h	20 Mar 2002 01:33:19 -0000	1.25
+++ include/shlwapi.h	20 May 2002 22:43:41 -0000
@@ -691,7 +691,7 @@


 /* Stream functions */
-#ifndef NO_SHLWAPI_STREAM
+#if !defined(NO_SHLWAPI_STREAM) && defined(IStream_IMETHODS)

 IStream * WINAPI SHOpenRegStreamA(HKEY,LPCSTR,LPCSTR,DWORD);
 IStream * WINAPI SHOpenRegStreamW(HKEY,LPCWSTR,LPCWSTR,DWORD);




More information about the wine-patches mailing list