Commit in reactos/lib/ole32 on MAIN
Makefile.in+101.3 -> 1.4
antimoniker.c+3-51.5 -> 1.6
bindctx.c+12-131.4 -> 1.5
clipboard.c+13-151.4 -> 1.5
compobj.c+3-31.14 -> 1.15
compobj_private.h-21.4 -> 1.5
compositemoniker.c+12-151.5 -> 1.6
datacache.c-61.6 -> 1.7
dcom.h+8-41.1 -> 1.2
defaulthandler.c-41.5 -> 1.6
errorinfo.c+1-41.5 -> 1.6
filemoniker.c+11-131.8 -> 1.9
ftmarshal.c+3-51.3 -> 1.4
git.c-21.3 -> 1.4
hglobalstream.c-11.5 -> 1.6
ifs.c+14-161.10 -> 1.11
itemmoniker.c+12-141.7 -> 1.8
marshal.c+2-41.6 -> 1.7
memlockbytes.c-11.4 -> 1.5
moniker.c+10-111.9 -> 1.10
ole16.c+9-91.2 -> 1.3
ole2.c+86-221.15 -> 1.16
oleobj.c+16-181.3 -> 1.4
oleproxy.c+5-91.6 -> 1.7
rpc.c+4-51.4 -> 1.5
stg_stream.c-11.4 -> 1.5
storage.c+19-191.9 -> 1.10
storage32.c+10-131.7 -> 1.8
+263-234
28 modified files
Sync to Wine-20040914:
Alexandre Julliard:
- Added recursive idl target to allow updating idl files private to a
  dll.
- Get rid of the non-standard ICOM_THIS macro.
- Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
  macro.
- Inline functions don't need WINE_UNUSED.
- Don't define BEGIN_INTERFACE in unknwn.h.
Mike McCormack <mike@codeweavers.com>
- Fix some warnings found with -Wsign-compare.
Francois Gouget <fgouget@free.fr>
- Move the PROPVARIANT declaration from objidl.idl to propidl.idl.
- Move related API declarations from individual C files to propidl.idl.
- Remove uneeded include of propidl.h in the propvariant.c test.
Robert Shearman <rob@codeweavers.com>
- Fix PropVariantCopy for VT_LPSTR and VT_LPWSTR.
- Test case VT_BSTR, VT_LPSTR and VT_LPWSTR.
- Fix PropVariantClear to reject invalid types.
- Don't crash on NULL pointers.
- Add test case.

reactos/lib/ole32
Makefile.in 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- Makefile.in	14 Aug 2004 20:00:59 -0000	1.3
+++ Makefile.in	19 Sep 2004 10:20:48 -0000	1.4
@@ -61,8 +61,18 @@
 	drag_move.cur \
 	nodrop.cur 
 
+IDL_SRCS = \
+	dcom.idl
+
 SUBDIRS = tests
 
 @MAKE_DLL_RULES@
 
+.SUFFIXES: .idl .h
+
+.idl.h:
+	$(WIDL) $(IDLFLAGS) -b -h -H $@ $<
+
+idl: $(IDL_SRCS:.idl=.h)
+
 ### Dependencies:

reactos/lib/ole32
antimoniker.c 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- antimoniker.c	14 Aug 2004 20:00:59 -0000	1.5
+++ antimoniker.c	19 Sep 2004 10:20:48 -0000	1.6
@@ -106,7 +106,6 @@
 /* IPersistStream and IMoniker functions.                                       */
 static IMonikerVtbl VT_AntiMonikerImpl =
 {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     AntiMonikerImpl_QueryInterface,
     AntiMonikerImpl_AddRef,
     AntiMonikerImpl_Release,
@@ -136,7 +135,6 @@
 /* Virtual function table for the IROTData class.                               */
 static IROTDataVtbl VT_ROTDataImpl =
 {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     AntiMonikerROTDataImpl_QueryInterface,
     AntiMonikerROTDataImpl_AddRef,
     AntiMonikerROTDataImpl_Release,
@@ -148,7 +146,7 @@
  *******************************************************************************/
 HRESULT WINAPI AntiMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject)
 {
-    ICOM_THIS(AntiMonikerImpl,iface);
+    AntiMonikerImpl *This = (AntiMonikerImpl *)iface;
 
   TRACE("(%p,%p,%p)\n",This,riid,ppvObject);
 
@@ -184,7 +182,7 @@
  ******************************************************************************/
 ULONG WINAPI AntiMonikerImpl_AddRef(IMoniker* iface)
 {
-    ICOM_THIS(AntiMonikerImpl,iface);
+    AntiMonikerImpl *This = (AntiMonikerImpl *)iface;
 
     TRACE("(%p)\n",This);
 
@@ -196,7 +194,7 @@
  ******************************************************************************/
 ULONG WINAPI AntiMonikerImpl_Release(IMoniker* iface)
 {
-    ICOM_THIS(AntiMonikerImpl,iface);
+    AntiMonikerImpl *This = (AntiMonikerImpl *)iface;
 
     TRACE("(%p)\n",This);
 

reactos/lib/ole32
bindctx.c 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- bindctx.c	14 Aug 2004 20:00:59 -0000	1.4
+++ bindctx.c	19 Sep 2004 10:20:48 -0000	1.5
@@ -85,7 +85,6 @@
 /* Virtual function table for the BindCtx class. */
 static IBindCtxVtbl VT_BindCtxImpl =
     {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     BindCtxImpl_QueryInterface,
     BindCtxImpl_AddRef,
     BindCtxImpl_Release,
@@ -106,7 +105,7 @@
  *******************************************************************************/
 HRESULT WINAPI BindCtxImpl_QueryInterface(IBindCtx* iface,REFIID riid,void** ppvObject)
 {
-  ICOM_THIS(BindCtxImpl,iface);
+  BindCtxImpl *This = (BindCtxImpl *)iface;
 
   TRACE("(%p,%p,%p)\n",This,riid,ppvObject);
 
@@ -139,7 +138,7 @@
  ******************************************************************************/
 ULONG WINAPI BindCtxImpl_AddRef(IBindCtx* iface)
 {
-    ICOM_THIS(BindCtxImpl,iface);
+    BindCtxImpl *This = (BindCtxImpl *)iface;
 
     TRACE("(%p)\n",This);
 
@@ -151,7 +150,7 @@
  ******************************************************************************/
 ULONG WINAPI BindCtxImpl_Release(IBindCtx* iface)
 {
-    ICOM_THIS(BindCtxImpl,iface);
+    BindCtxImpl *This = (BindCtxImpl *)iface;
 
     TRACE("(%p)\n",This);
 
@@ -225,7 +224,7 @@
  ******************************************************************************/
 HRESULT WINAPI BindCtxImpl_RegisterObjectBound(IBindCtx* iface,IUnknown* punk)
 {
-    ICOM_THIS(BindCtxImpl,iface);
+    BindCtxImpl *This = (BindCtxImpl *)iface;
     DWORD lastIndex=This->bindCtxTableLastIndex;
 
     TRACE("(%p,%p)\n",This,punk);
@@ -265,7 +264,7 @@
 {
     DWORD index,j;
 
-    ICOM_THIS(BindCtxImpl,iface);
+    BindCtxImpl *This = (BindCtxImpl *)iface;
 
     TRACE("(%p,%p)\n",This,punk);
 
@@ -294,7 +293,7 @@
 {
     DWORD i;
 
-    ICOM_THIS(BindCtxImpl,iface);
+    BindCtxImpl *This = (BindCtxImpl *)iface;
 
     TRACE("(%p)\n",This);
 
@@ -316,7 +315,7 @@
  ******************************************************************************/
 HRESULT WINAPI BindCtxImpl_SetBindOptions(IBindCtx* iface,BIND_OPTS *pbindopts)
 {
-    ICOM_THIS(BindCtxImpl,iface);
+    BindCtxImpl *This = (BindCtxImpl *)iface;
 
     TRACE("(%p,%p)\n",This,pbindopts);
 
@@ -337,7 +336,7 @@
  ******************************************************************************/
 HRESULT WINAPI BindCtxImpl_GetBindOptions(IBindCtx* iface,BIND_OPTS *pbindopts)
 {
-    ICOM_THIS(BindCtxImpl,iface);
+    BindCtxImpl *This = (BindCtxImpl *)iface;
 
     TRACE("(%p,%p)\n",This,pbindopts);
 
@@ -360,7 +359,7 @@
 {
     HRESULT res;
 
-    ICOM_THIS(BindCtxImpl,iface);
+    BindCtxImpl *This = (BindCtxImpl *)iface;
 
     TRACE("(%p,%p)\n",This,pprot);
 
@@ -378,7 +377,7 @@
 HRESULT WINAPI BindCtxImpl_RegisterObjectParam(IBindCtx* iface,LPOLESTR pszkey, IUnknown* punk)
 {
     DWORD index=0;
-    ICOM_THIS(BindCtxImpl,iface);
+    BindCtxImpl *This = (BindCtxImpl *)iface;
 
     TRACE("(%p,%s,%p)\n",This,debugstr_w(pszkey),punk);
 
@@ -436,7 +435,7 @@
 HRESULT WINAPI BindCtxImpl_GetObjectParam(IBindCtx* iface,LPOLESTR pszkey, IUnknown** punk)
 {
     DWORD index;
-    ICOM_THIS(BindCtxImpl,iface);
+    BindCtxImpl *This = (BindCtxImpl *)iface;
 
     TRACE("(%p,%s,%p)\n",This,debugstr_w(pszkey),punk);
 
@@ -462,7 +461,7 @@
 {
     DWORD index,j;
 
-    ICOM_THIS(BindCtxImpl,iface);
+    BindCtxImpl *This = (BindCtxImpl *)iface;
 
     TRACE("(%p,%s)\n",This,debugstr_w(ppenum));
 

reactos/lib/ole32
clipboard.c 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- clipboard.c	14 Aug 2004 20:00:59 -0000	1.4
+++ clipboard.c	19 Sep 2004 10:20:48 -0000	1.5
@@ -250,7 +250,6 @@
  */
 static IDataObjectVtbl OLEClipbrd_IDataObject_VTable =
 {
-  ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
   OLEClipbrd_IDataObject_QueryInterface,
   OLEClipbrd_IDataObject_AddRef,
   OLEClipbrd_IDataObject_Release,
@@ -270,7 +269,6 @@
  */
 static struct IEnumFORMATETCVtbl efvt =
 {
-  ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
   OLEClipbrd_IEnumFORMATETC_QueryInterface,
   OLEClipbrd_IEnumFORMATETC_AddRef,
   OLEClipbrd_IEnumFORMATETC_Release,
@@ -1109,7 +1107,7 @@
   /*
    * Declare "This" pointer
    */
-  ICOM_THIS(OLEClipbrd, iface);
+  OLEClipbrd *This = (OLEClipbrd *)iface;
   TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObject);
 
   /*
@@ -1160,7 +1158,7 @@
   /*
    * Declare "This" pointer
    */
-  ICOM_THIS(OLEClipbrd, iface);
+  OLEClipbrd *This = (OLEClipbrd *)iface;
 
   TRACE("(%p)->(count=%lu)\n",This, This->ref);
 
@@ -1180,7 +1178,7 @@
   /*
    * Declare "This" pointer
    */
-  ICOM_THIS(OLEClipbrd, iface);
+  OLEClipbrd *This = (OLEClipbrd *)iface;
 
   TRACE("(%p)->(count=%lu)\n",This, This->ref);
 
@@ -1222,7 +1220,7 @@
   /*
    * Declare "This" pointer
    */
-  ICOM_THIS(OLEClipbrd, iface);
+  OLEClipbrd *This = (OLEClipbrd *)iface;
 
   TRACE("(%p,%p,%p)\n", iface, pformatetcIn, pmedium);
 
@@ -1322,7 +1320,7 @@
   /*
    * Declare "This" pointer
    */
-  ICOM_THIS(OLEClipbrd, iface);
+  OLEClipbrd *This = (OLEClipbrd *)iface;
 
   TRACE("(%p, %p)\n", iface, pformatetc);
 
@@ -1412,7 +1410,7 @@
   /*
    * Declare "This" pointer
    */
-  ICOM_THIS(OLEClipbrd, iface);
+  OLEClipbrd *This = (OLEClipbrd *)iface;
 
   TRACE("(%p, %lx, %p)\n", iface, dwDirection, ppenumFormatEtc);
 
@@ -1605,7 +1603,7 @@
 static HRESULT WINAPI OLEClipbrd_IEnumFORMATETC_QueryInterface
   (LPENUMFORMATETC iface, REFIID riid, LPVOID* ppvObj)
 {
-  ICOM_THIS(IEnumFORMATETCImpl,iface);
+  IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface;
 
   TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
@@ -1647,7 +1645,7 @@
  */
 static ULONG WINAPI OLEClipbrd_IEnumFORMATETC_AddRef(LPENUMFORMATETC iface)
 {
-  ICOM_THIS(IEnumFORMATETCImpl,iface);
+  IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface;
   TRACE("(%p)->(count=%lu)\n",This, This->ref);
 
   if (This->pUnkDataObj)
@@ -1663,7 +1661,7 @@
  */
 static ULONG WINAPI OLEClipbrd_IEnumFORMATETC_Release(LPENUMFORMATETC iface)
 {
-  ICOM_THIS(IEnumFORMATETCImpl,iface);
+  IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface;
   LPMALLOC pIMalloc;
 
   TRACE("(%p)->(count=%lu)\n",This, This->ref);
@@ -1695,7 +1693,7 @@
 static HRESULT WINAPI OLEClipbrd_IEnumFORMATETC_Next
   (LPENUMFORMATETC iface, ULONG celt, FORMATETC *rgelt, ULONG *pceltFethed)
 {
-  ICOM_THIS(IEnumFORMATETCImpl,iface);
+  IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface;
   UINT cfetch;
   HRESULT hres = S_FALSE;
 
@@ -1733,7 +1731,7 @@
  */
 static HRESULT WINAPI OLEClipbrd_IEnumFORMATETC_Skip(LPENUMFORMATETC iface, ULONG celt)
 {
-  ICOM_THIS(IEnumFORMATETCImpl,iface);
+  IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface;
   TRACE("(%p)->(num=%lu)\n", This, celt);
 
   This->posFmt += celt;
@@ -1752,7 +1750,7 @@
  */
 static HRESULT WINAPI OLEClipbrd_IEnumFORMATETC_Reset(LPENUMFORMATETC iface)
 {
-  ICOM_THIS(IEnumFORMATETCImpl,iface);
+  IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface;
   TRACE("(%p)->()\n", This);
 
   This->posFmt = 0;
@@ -1767,7 +1765,7 @@
 static HRESULT WINAPI OLEClipbrd_IEnumFORMATETC_Clone
   (LPENUMFORMATETC iface, LPENUMFORMATETC* ppenum)
 {
-  ICOM_THIS(IEnumFORMATETCImpl,iface);
+  IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface;
   HRESULT hr = S_OK;
 
   TRACE("(%p)->(ppenum=%p)\n", This, ppenum);

reactos/lib/ole32
compobj.c 1.14 -> 1.15
diff -u -r1.14 -r1.15
--- compobj.c	19 Sep 2004 09:11:12 -0000	1.14
+++ compobj.c	19 Sep 2004 10:20:48 -0000	1.15
@@ -1290,7 +1290,7 @@
  *
  *	Reads a registry value and expands it when necessary
  */
-HRESULT compobj_RegReadPath(char * keyname, char * valuename, char * dst, int dstlen)
+HRESULT compobj_RegReadPath(char * keyname, char * valuename, char * dst, DWORD dstlen)
 {
 	HRESULT hres;
 	HKEY key;
@@ -1303,7 +1303,7 @@
             if (keytype == REG_EXPAND_SZ) {
               if (dstlen <= ExpandEnvironmentStringsA(src, dst, dstlen)) hres = ERROR_MORE_DATA;
             } else {
-              strncpy(dst, src, dstlen);
+              lstrcpynA(dst, src, dstlen);
             }
 	  }
           RegCloseKey (key);
@@ -1589,7 +1589,7 @@
   IUnknown* pUnk = NULL;
   HRESULT   hr;
   ULONG     index;
-  int       successCount = 0;
+  ULONG     successCount = 0;
 
   /*
    * Sanity check

reactos/lib/ole32
compobj_private.h 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- compobj_private.h	14 Aug 2004 20:00:59 -0000	1.4
+++ compobj_private.h	19 Sep 2004 10:20:48 -0000	1.5
@@ -171,13 +171,11 @@
  * Per-thread values are stored in the TEB on offset 0xF80,
  * see http://www.microsoft.com/msj/1099/bugslayer/bugslayer1099.htm
  */
-static inline APARTMENT* COM_CurrentInfo(void) WINE_UNUSED;
 static inline APARTMENT* COM_CurrentInfo(void)
 {
   APARTMENT* apt = NtCurrentTeb()->ReservedForOle;
   return apt;
 }
-static inline APARTMENT* COM_CurrentApt(void) WINE_UNUSED;
 static inline APARTMENT* COM_CurrentApt(void)
 {
   APARTMENT* apt = COM_CurrentInfo();

reactos/lib/ole32
compositemoniker.c 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- compositemoniker.c	14 Aug 2004 20:00:59 -0000	1.5
+++ compositemoniker.c	19 Sep 2004 10:20:48 -0000	1.6
@@ -150,7 +150,6 @@
 
 static IMonikerVtbl VT_CompositeMonikerImpl =
 {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     CompositeMonikerImpl_QueryInterface,
     CompositeMonikerImpl_AddRef,
     CompositeMonikerImpl_Release,
@@ -180,7 +179,6 @@
 /* Virtual function table for the IROTData class.                               */
 static IROTDataVtbl VT_ROTDataImpl =
 {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     CompositeMonikerROTDataImpl_QueryInterface,
     CompositeMonikerROTDataImpl_AddRef,
     CompositeMonikerROTDataImpl_Release,
@@ -191,7 +189,6 @@
 /* Virtual function table for the IROTData class                                */
 static IEnumMonikerVtbl VT_EnumMonikerImpl =
 {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     EnumMonikerImpl_QueryInterface,
     EnumMonikerImpl_AddRef,
     EnumMonikerImpl_Release,
@@ -206,7 +203,7 @@
  *******************************************************************************/
 HRESULT WINAPI CompositeMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject)
 {
-    ICOM_THIS(CompositeMonikerImpl,iface);
+    CompositeMonikerImpl *This = (CompositeMonikerImpl *)iface;
 
     TRACE("(%p,%p,%p)\n",This,riid,ppvObject);
 
@@ -242,7 +239,7 @@
  ******************************************************************************/
 ULONG WINAPI CompositeMonikerImpl_AddRef(IMoniker* iface)
 {
-    ICOM_THIS(CompositeMonikerImpl,iface);
+    CompositeMonikerImpl *This = (CompositeMonikerImpl *)iface;
 
     TRACE("(%p)\n",This);
 
@@ -254,7 +251,7 @@
  ******************************************************************************/
 ULONG WINAPI CompositeMonikerImpl_Release(IMoniker* iface)
 {
-    ICOM_THIS(CompositeMonikerImpl,iface);
+    CompositeMonikerImpl *This = (CompositeMonikerImpl *)iface;
     ULONG i;
 
     TRACE("(%p)\n",This);
@@ -314,7 +311,7 @@
     CLSID clsid;
     WCHAR string[1]={0};
 
-    ICOM_THIS(CompositeMonikerImpl,iface);
+    CompositeMonikerImpl *This = (CompositeMonikerImpl *)iface;
 
     TRACE("(%p,%p)\n",iface,pStm);
 
@@ -815,7 +812,7 @@
  ******************************************************************************/
 HRESULT WINAPI CompositeMonikerImpl_Enum(IMoniker* iface,BOOL fForward, IEnumMoniker** ppenumMoniker)
 {
-    ICOM_THIS(CompositeMonikerImpl,iface);
+    CompositeMonikerImpl *This = (CompositeMonikerImpl *)iface;
 
     TRACE("(%p,%d,%p)\n",iface,fForward,ppenumMoniker);
 
@@ -1496,7 +1493,7 @@
  ******************************************************************************/
 HRESULT WINAPI EnumMonikerImpl_QueryInterface(IEnumMoniker* iface,REFIID riid,void** ppvObject)
 {
-    ICOM_THIS(EnumMonikerImpl,iface);
+    EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
 
     TRACE("(%p,%p,%p)\n",This,riid,ppvObject);
 
@@ -1526,7 +1523,7 @@
  ******************************************************************************/
 ULONG   WINAPI EnumMonikerImpl_AddRef(IEnumMoniker* iface)
 {
-    ICOM_THIS(EnumMonikerImpl,iface);
+    EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
 
     TRACE("(%p)\n",This);
 
@@ -1539,7 +1536,7 @@
  ******************************************************************************/
 ULONG   WINAPI EnumMonikerImpl_Release(IEnumMoniker* iface)
 {
-    ICOM_THIS(EnumMonikerImpl,iface);
+    EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
     ULONG i
         ;
     TRACE("(%p)\n",This);
@@ -1565,7 +1562,7 @@
  ******************************************************************************/
 HRESULT WINAPI EnumMonikerImpl_Next(IEnumMoniker* iface,ULONG celt, IMoniker** rgelt, ULONG* pceltFethed){
 
-    ICOM_THIS(EnumMonikerImpl,iface);
+    EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
     ULONG i;
 
     /* retrieve the requested number of moniker from the current position */
@@ -1587,7 +1584,7 @@
  ******************************************************************************/
 HRESULT WINAPI EnumMonikerImpl_Skip(IEnumMoniker* iface,ULONG celt){
 
-    ICOM_THIS(EnumMonikerImpl,iface);
+    EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
 
     if ((This->currentPos+celt) >= This->tabSize)
         return S_FALSE;
@@ -1602,7 +1599,7 @@
  ******************************************************************************/
 HRESULT WINAPI EnumMonikerImpl_Reset(IEnumMoniker* iface){
 
-    ICOM_THIS(EnumMonikerImpl,iface);
+    EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
 
     This->currentPos=0;
 
@@ -1614,7 +1611,7 @@
  ******************************************************************************/
 HRESULT WINAPI EnumMonikerImpl_Clone(IEnumMoniker* iface,IEnumMoniker** ppenum){
 
-    ICOM_THIS(EnumMonikerImpl,iface);
+    EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
 
     return EnumMonikerImpl_CreateEnumMoniker(This->tabMoniker,This->tabSize,This->currentPos,TRUE,ppenum);
 }

reactos/lib/ole32
datacache.c 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- datacache.c	14 Aug 2004 20:00:59 -0000	1.6
+++ datacache.c	19 Sep 2004 10:20:48 -0000	1.7
@@ -375,7 +375,6 @@
  */
 static IUnknownVtbl DataCache_NDIUnknown_VTable =
 {
-  ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
   DataCache_NDIUnknown_QueryInterface,
   DataCache_NDIUnknown_AddRef,
   DataCache_NDIUnknown_Release
@@ -383,7 +382,6 @@
 
 static IDataObjectVtbl DataCache_IDataObject_VTable =
 {
-  ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
   DataCache_IDataObject_QueryInterface,
   DataCache_IDataObject_AddRef,
   DataCache_IDataObject_Release,
@@ -400,7 +398,6 @@
 
 static IPersistStorageVtbl DataCache_IPersistStorage_VTable =
 {
-  ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
   DataCache_IPersistStorage_QueryInterface,
   DataCache_IPersistStorage_AddRef,
   DataCache_IPersistStorage_Release,
@@ -415,7 +412,6 @@
 
 static IViewObject2Vtbl DataCache_IViewObject2_VTable =
 {
-  ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
   DataCache_IViewObject2_QueryInterface,
   DataCache_IViewObject2_AddRef,
   DataCache_IViewObject2_Release,
@@ -430,7 +426,6 @@
 
 static IOleCache2Vtbl DataCache_IOleCache2_VTable =
 {
-  ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
   DataCache_IOleCache2_QueryInterface,
   DataCache_IOleCache2_AddRef,
   DataCache_IOleCache2_Release,
@@ -445,7 +440,6 @@
 
 static IOleCacheControlVtbl DataCache_IOleCacheControl_VTable =
 {
-  ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
   DataCache_IOleCacheControl_QueryInterface,
   DataCache_IOleCacheControl_AddRef,
   DataCache_IOleCacheControl_Release,

reactos/lib/ole32
dcom.h 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- dcom.h	28 Dec 2003 10:40:55 -0000	1.1
+++ dcom.h	19 Sep 2004 10:20:48 -0000	1.2
@@ -226,7 +226,7 @@
     const IRemUnknownVtbl* lpVtbl;
 };
 struct IRemUnknownVtbl {
-    ICOM_MSVTABLE_COMPAT_FIELDS
+    BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
@@ -260,8 +260,10 @@
         unsigned short cInterfaceRefs,
         REMINTERFACEREF* InterfaceRefs);
 
+    END_INTERFACE
 };
 
+#ifdef COBJMACROS
 /*** IUnknown methods ***/
 #define IRemUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
 #define IRemUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
@@ -270,11 +272,11 @@
 #define IRemUnknown_RemQueryInterface(p,a,b,c,d,e) (p)->lpVtbl->RemQueryInterface(p,a,b,c,d,e)
 #define IRemUnknown_RemAddRef(p,a,b,c) (p)->lpVtbl->RemAddRef(p,a,b,c)
 #define IRemUnknown_RemRelease(p,a,b) (p)->lpVtbl->RemRelease(p,a,b)
+#endif
 
 #endif
 
 #define IRemUnknown_METHODS \
-    ICOM_MSVTABLE_COMPAT_FIELDS \
     /*** IUnknown methods ***/ \
     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
@@ -349,7 +351,7 @@
     const IRemUnknown2Vtbl* lpVtbl;
 };
 struct IRemUnknown2Vtbl {
-    ICOM_MSVTABLE_COMPAT_FIELDS
+    BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
@@ -392,8 +394,10 @@
         HRESULT* phr,
         MInterfacePointer** ppMIF);
 
+    END_INTERFACE
 };
 
+#ifdef COBJMACROS
 /*** IUnknown methods ***/
 #define IRemUnknown2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
 #define IRemUnknown2_AddRef(p) (p)->lpVtbl->AddRef(p)
@@ -404,11 +408,11 @@
 #define IRemUnknown2_RemRelease(p,a,b) (p)->lpVtbl->RemRelease(p,a,b)
 /*** IRemUnknown2 methods ***/
 #define IRemUnknown2_RemQueryInterface2(p,a,b,c,d,e) (p)->lpVtbl->RemQueryInterface2(p,a,b,c,d,e)
+#endif
 
 #endif
 
 #define IRemUnknown2_METHODS \
-    ICOM_MSVTABLE_COMPAT_FIELDS \
     /*** IUnknown methods ***/ \
     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \

reactos/lib/ole32
defaulthandler.c 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- defaulthandler.c	14 Aug 2004 20:00:59 -0000	1.5
+++ defaulthandler.c	19 Sep 2004 10:20:48 -0000	1.6
@@ -325,7 +325,6 @@
  */
 static IOleObjectVtbl DefaultHandler_IOleObject_VTable =
 {
-  ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
   DefaultHandler_QueryInterface,
   DefaultHandler_AddRef,
   DefaultHandler_Release,
@@ -354,7 +353,6 @@
 
 static IUnknownVtbl DefaultHandler_NDIUnknown_VTable =
 {
-  ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
   DefaultHandler_NDIUnknown_QueryInterface,
   DefaultHandler_NDIUnknown_AddRef,
   DefaultHandler_NDIUnknown_Release,
@@ -362,7 +360,6 @@
 
 static IDataObjectVtbl DefaultHandler_IDataObject_VTable =
 {
-  ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
   DefaultHandler_IDataObject_QueryInterface,
   DefaultHandler_IDataObject_AddRef,
   DefaultHandler_IDataObject_Release,
@@ -379,7 +376,6 @@
 
 static IRunnableObjectVtbl DefaultHandler_IRunnableObject_VTable =
 {
-  ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
   DefaultHandler_IRunnableObject_QueryInterface,
   DefaultHandler_IRunnableObject_AddRef,
   DefaultHandler_IRunnableObject_Release,

reactos/lib/ole32
errorinfo.c 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- errorinfo.c	14 Aug 2004 20:00:59 -0000	1.5
+++ errorinfo.c	19 Sep 2004 10:20:48 -0000	1.6
@@ -30,10 +30,10 @@
 
 #include "windef.h"
 #include "winbase.h"
+#include "objbase.h"
 #include "oleauto.h"
 #include "winerror.h"
 
-#include "objbase.h"
 #include "wine/unicode.h"
 #include "compobj_private.h"
 
@@ -304,7 +304,6 @@
 
 static IErrorInfoVtbl IErrorInfoImpl_VTable =
 {
-  ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
   IErrorInfoImpl_QueryInterface,
   IErrorInfoImpl_AddRef,
   IErrorInfoImpl_Release,
@@ -406,7 +405,6 @@
 
 static ICreateErrorInfoVtbl ICreateErrorInfoImpl_VTable =
 {
-  ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
   ICreateErrorInfoImpl_QueryInterface,
   ICreateErrorInfoImpl_AddRef,
   ICreateErrorInfoImpl_Release,
@@ -457,7 +455,6 @@
 
 static ISupportErrorInfoVtbl ISupportErrorInfoImpl_VTable =
 {
-  ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
   ISupportErrorInfoImpl_QueryInterface,
   ISupportErrorInfoImpl_AddRef,
   ISupportErrorInfoImpl_Release,

reactos/lib/ole32
filemoniker.c 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- filemoniker.c	14 Aug 2004 20:00:59 -0000	1.8
+++ filemoniker.c	19 Sep 2004 10:20:48 -0000	1.9
@@ -113,7 +113,6 @@
 /* IPersistStream and IMoniker functions.                                       */
 static IMonikerVtbl VT_FileMonikerImpl =
 {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     FileMonikerImpl_QueryInterface,
     FileMonikerImpl_AddRef,
     FileMonikerImpl_Release,
@@ -143,7 +142,6 @@
 /* Virtual function table for the IROTData class.                               */
 static IROTDataVtbl VT_ROTDataImpl =
 {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     FileMonikerROTDataImpl_QueryInterface,
     FileMonikerROTDataImpl_AddRef,
     FileMonikerROTDataImpl_Release,
@@ -155,7 +153,7 @@
  *******************************************************************************/
 HRESULT WINAPI FileMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject)
 {
-    ICOM_THIS(FileMonikerImpl,iface);
+    FileMonikerImpl *This = (FileMonikerImpl *)iface;
 
   TRACE("(%p,%p,%p)\n",This,riid,ppvObject);
 
@@ -192,7 +190,7 @@
  ******************************************************************************/
 ULONG WINAPI FileMonikerImpl_AddRef(IMoniker* iface)
 {
-    ICOM_THIS(FileMonikerImpl,iface);
+    FileMonikerImpl *This = (FileMonikerImpl *)iface;
 
     TRACE("(%p)\n",iface);
 
@@ -204,7 +202,7 @@
  ******************************************************************************/
 ULONG WINAPI FileMonikerImpl_Release(IMoniker* iface)
 {
-    ICOM_THIS(FileMonikerImpl,iface);
+    FileMonikerImpl *This = (FileMonikerImpl *)iface;
 
     TRACE("(%p)\n",iface);
 
@@ -262,7 +260,7 @@
     WORD  wbuffer;
     DWORD dwbuffer,length,i,doubleLenHex,doubleLenDec;
 
-    ICOM_THIS(FileMonikerImpl,iface);
+    FileMonikerImpl *This = (FileMonikerImpl *)iface;
 
     TRACE("(%p,%p)\n",iface,pStm);
 
@@ -362,7 +360,7 @@
      *    if the length(filePath) > 8 or length(filePath) == 8 stop at step 5)
      */
 
-    ICOM_THIS(FileMonikerImpl,iface);
+    FileMonikerImpl *This = (FileMonikerImpl *)iface;
 
     HRESULT res;
     LPOLESTR filePathW=This->filePathName;
@@ -434,7 +432,7 @@
 HRESULT WINAPI FileMonikerImpl_GetSizeMax(IMoniker* iface,
                                           ULARGE_INTEGER* pcbSize)/* Pointer to size of stream needed to save object */
 {
-    ICOM_THIS(FileMonikerImpl,iface);
+    FileMonikerImpl *This = (FileMonikerImpl *)iface;
     DWORD len=lstrlenW(This->filePathName);
     DWORD sizeMAx;
 
@@ -568,7 +566,7 @@
     IClassFactory *pcf=0;
     IClassActivator *pca=0;
 
-    ICOM_THIS(FileMonikerImpl,iface);
+    FileMonikerImpl *This = (FileMonikerImpl *)iface;
 
     *ppvResult=0;
 
@@ -862,7 +860,7 @@
  ******************************************************************************/
 HRESULT WINAPI FileMonikerImpl_IsEqual(IMoniker* iface,IMoniker* pmkOtherMoniker)
 {
-    ICOM_THIS(FileMonikerImpl,iface);
+    FileMonikerImpl *This = (FileMonikerImpl *)iface;
     CLSID clsid;
     LPOLESTR filePath;
     IBindCtx* bind;
@@ -895,7 +893,7 @@
  ******************************************************************************/
 HRESULT WINAPI FileMonikerImpl_Hash(IMoniker* iface,DWORD* pdwHash)
 {
-    ICOM_THIS(FileMonikerImpl,iface);
+    FileMonikerImpl *This = (FileMonikerImpl *)iface;
 
     int  h = 0,i,skip,len;
     int  off = 0;
@@ -963,7 +961,7 @@
                                                    IMoniker* pmkToLeft,
                                                    FILETIME* pFileTime)
 {
-    ICOM_THIS(FileMonikerImpl,iface);
+    FileMonikerImpl *This = (FileMonikerImpl *)iface;
     IRunningObjectTable* rot;
     HRESULT res;
     WIN32_FILE_ATTRIBUTE_DATA info;
@@ -1231,7 +1229,7 @@
                                               IMoniker* pmkToLeft,
                                               LPOLESTR *ppszDisplayName)
 {
-    ICOM_THIS(FileMonikerImpl,iface);
+    FileMonikerImpl *This = (FileMonikerImpl *)iface;
 
     int len=lstrlenW(This->filePathName);
 

reactos/lib/ole32
ftmarshal.c 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- ftmarshal.c	14 Aug 2004 20:00:59 -0000	1.3
+++ ftmarshal.c	19 Sep 2004 10:20:48 -0000	1.4
@@ -52,7 +52,7 @@
 HRESULT WINAPI IiFTMUnknown_fnQueryInterface (IUnknown * iface, REFIID riid, LPVOID * ppv)
 {
 
-    ICOM_THIS (FTMarshalImpl, iface);
+    FTMarshalImpl *This = (FTMarshalImpl *)iface;
 
     TRACE ("\n");
     *ppv = NULL;
@@ -72,7 +72,7 @@
 ULONG WINAPI IiFTMUnknown_fnAddRef (IUnknown * iface)
 {
 
-    ICOM_THIS (FTMarshalImpl, iface);
+    FTMarshalImpl *This = (FTMarshalImpl *)iface;
 
     TRACE ("\n");
     return InterlockedIncrement (&This->ref);
@@ -81,7 +81,7 @@
 ULONG WINAPI IiFTMUnknown_fnRelease (IUnknown * iface)
 {
 
-    ICOM_THIS (FTMarshalImpl, iface);
+    FTMarshalImpl *This = (FTMarshalImpl *)iface;
 
     TRACE ("\n");
     if (InterlockedDecrement (&This->ref))
@@ -92,7 +92,6 @@
 
 static IUnknownVtbl iunkvt =
 {
-        ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
 	IiFTMUnknown_fnQueryInterface,
 	IiFTMUnknown_fnAddRef,
 	IiFTMUnknown_fnRelease
@@ -203,7 +202,6 @@
 
 IMarshalVtbl ftmvtbl =
 {
-        ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
 	FTMarshalImpl_QueryInterface,
 	FTMarshalImpl_AddRef,
 	FTMarshalImpl_Release,

reactos/lib/ole32
git.c 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- git.c	14 Aug 2004 20:00:59 -0000	1.3
+++ git.c	19 Sep 2004 10:20:48 -0000	1.4
@@ -94,7 +94,6 @@
 /* Virtual function table */
 static IGlobalInterfaceTableVtbl StdGlobalInterfaceTableImpl_Vtbl =
 {
-  ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
   StdGlobalInterfaceTable_QueryInterface,
   StdGlobalInterfaceTable_AddRef,
   StdGlobalInterfaceTable_Release,
@@ -350,7 +349,6 @@
 }
 
 static IClassFactoryVtbl GITClassFactoryVtbl = {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     GITCF_QueryInterface,
     GITCF_AddRef,
     GITCF_Release,

reactos/lib/ole32
hglobalstream.c 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- hglobalstream.c	14 Aug 2004 20:00:59 -0000	1.5
+++ hglobalstream.c	19 Sep 2004 10:20:48 -0000	1.6
@@ -171,7 +171,6 @@
  */
 static IStreamVtbl HGLOBALStreamImpl_Vtbl =
 {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     HGLOBALStreamImpl_QueryInterface,
     HGLOBALStreamImpl_AddRef,
     HGLOBALStreamImpl_Release,

reactos/lib/ole32
ifs.c 1.10 -> 1.11
diff -u -r1.10 -r1.11
--- ifs.c	14 Aug 2004 20:00:59 -0000	1.10
+++ ifs.c	19 Sep 2004 10:20:48 -0000	1.11
@@ -344,7 +344,6 @@
 
 static IMallocVtbl VT_IMalloc32 =
 {
-	ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
 	IMalloc_fnQueryInterface,
 	IMalloc_fnAddRefRelease,
 	IMalloc_fnAddRefRelease,
@@ -392,7 +391,7 @@
 static ULONG WINAPI IMallocSpy_fnAddRef (LPMALLOCSPY iface)
 {
 
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
 
     TRACE ("(%p)->(count=%lu)\n", This, This->ref);
 
@@ -408,7 +407,7 @@
 static ULONG WINAPI IMallocSpy_fnRelease (LPMALLOCSPY iface)
 {
 
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
 
     TRACE ("(%p)->(count=%lu)\n", This, This->ref);
 
@@ -420,32 +419,32 @@
 
 static ULONG WINAPI IMallocSpy_fnPreAlloc(LPMALLOCSPY iface, ULONG cbRequest)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%lu)\n", This, cbRequest);
     return cbRequest;
 }
 static PVOID WINAPI IMallocSpy_fnPostAlloc(LPMALLOCSPY iface, void* pActual)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%p)\n", This, pActual);
     return pActual;
 }
 
 static PVOID WINAPI IMallocSpy_fnPreFree(LPMALLOCSPY iface, void* pRequest, BOOL fSpyed)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%p %u)\n", This, pRequest, fSpyed);
     return pRequest;
 }
 static void  WINAPI IMallocSpy_fnPostFree(LPMALLOCSPY iface, BOOL fSpyed)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%u)\n", This, fSpyed);
 }
 
 static ULONG WINAPI IMallocSpy_fnPreRealloc(LPMALLOCSPY iface, void* pRequest, ULONG cbRequest, void** ppNewRequest, BOOL fSpyed)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%p %lu %u)\n", This, pRequest, cbRequest, fSpyed);
     *ppNewRequest = pRequest;
     return cbRequest;
@@ -453,48 +452,48 @@
 
 static PVOID WINAPI IMallocSpy_fnPostRealloc(LPMALLOCSPY iface, void* pActual, BOOL fSpyed)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%p %u)\n", This, pActual, fSpyed);
     return pActual;
 }
 
 static PVOID WINAPI IMallocSpy_fnPreGetSize(LPMALLOCSPY iface, void* pRequest, BOOL fSpyed)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%p %u)\n", This,  pRequest, fSpyed);
     return pRequest;
 }
 
 static ULONG WINAPI IMallocSpy_fnPostGetSize(LPMALLOCSPY iface, ULONG cbActual, BOOL fSpyed)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%lu %u)\n", This, cbActual, fSpyed);
     return cbActual;
 }
 
 static PVOID WINAPI IMallocSpy_fnPreDidAlloc(LPMALLOCSPY iface, void* pRequest, BOOL fSpyed)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%p %u)\n", This, pRequest, fSpyed);
     return pRequest;
 }
 
 static int WINAPI IMallocSpy_fnPostDidAlloc(LPMALLOCSPY iface, void* pRequest, BOOL fSpyed, int fActual)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%p %u %u)\n", This, pRequest, fSpyed, fActual);
     return fActual;
 }
 
 static void WINAPI IMallocSpy_fnPreHeapMinimize(LPMALLOCSPY iface)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->()\n", This);
 }
 
 static void WINAPI IMallocSpy_fnPostHeapMinimize(LPMALLOCSPY iface)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->()\n", This);
 }
 
@@ -504,7 +503,6 @@
 
 static IMallocSpyVtbl VT_IMallocSpy =
 {
-	ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
 	IMallocSpy_fnQueryInterface,
 	IMallocSpy_fnAddRef,
 	IMallocSpy_fnRelease,

reactos/lib/ole32
itemmoniker.c 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- itemmoniker.c	14 Aug 2004 20:00:59 -0000	1.7
+++ itemmoniker.c	19 Sep 2004 10:20:48 -0000	1.8
@@ -112,7 +112,6 @@
 /* IPersistStream and IMoniker functions.                                       */
 static IMonikerVtbl VT_ItemMonikerImpl =
     {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     ItemMonikerImpl_QueryInterface,
     ItemMonikerImpl_AddRef,
     ItemMonikerImpl_Release,
@@ -142,7 +141,6 @@
 /* Virtual function table for the IROTData class.                               */
 static IROTDataVtbl VT_ROTDataImpl =
 {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     ItemMonikerROTDataImpl_QueryInterface,
     ItemMonikerROTDataImpl_AddRef,
     ItemMonikerROTDataImpl_Release,
@@ -154,7 +152,7 @@
  *******************************************************************************/
 HRESULT WINAPI ItemMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject)
 {
-    ICOM_THIS(ItemMonikerImpl,iface);
+    ItemMonikerImpl *This = (ItemMonikerImpl *)iface;
 
   TRACE("(%p,%p,%p)\n",This,riid,ppvObject);
 
@@ -191,7 +189,7 @@
  ******************************************************************************/
 ULONG WINAPI ItemMonikerImpl_AddRef(IMoniker* iface)
 {
-    ICOM_THIS(ItemMonikerImpl,iface);
+    ItemMonikerImpl *This = (ItemMonikerImpl *)iface;
 
     TRACE("(%p)\n",This);
 
@@ -203,7 +201,7 @@
  ******************************************************************************/
 ULONG WINAPI ItemMonikerImpl_Release(IMoniker* iface)
 {
-    ICOM_THIS(ItemMonikerImpl,iface);
+    ItemMonikerImpl *This = (ItemMonikerImpl *)iface;
 
     TRACE("(%p)\n",This);
 
@@ -254,7 +252,7 @@
 HRESULT WINAPI ItemMonikerImpl_Load(IMoniker* iface,IStream* pStm)
 {
 
-    ICOM_THIS(ItemMonikerImpl,iface);
+    ItemMonikerImpl *This = (ItemMonikerImpl *)iface;
     HRESULT res;
     DWORD delimiterLength,nameLength,lenW;
     CHAR *itemNameA,*itemDelimiterA;
@@ -322,7 +320,7 @@
                                     IStream* pStm,/* pointer to the stream where the object is to be saved */
                                     BOOL fClearDirty)/* Specifies whether to clear the dirty flag */
 {
-    ICOM_THIS(ItemMonikerImpl,iface);
+    ItemMonikerImpl *This = (ItemMonikerImpl *)iface;
     HRESULT res;
     CHAR *itemNameA,*itemDelimiterA;
 
@@ -352,7 +350,7 @@
 HRESULT WINAPI ItemMonikerImpl_GetSizeMax(IMoniker* iface,
                                           ULARGE_INTEGER* pcbSize)/* Pointer to size of stream needed to save object */
 {
-    ICOM_THIS(ItemMonikerImpl,iface);
+    ItemMonikerImpl *This = (ItemMonikerImpl *)iface;
     DWORD delimiterLength=lstrlenW(This->itemDelimiter)+1;
     DWORD nameLength=lstrlenW(This->itemName)+1;
 
@@ -438,7 +436,7 @@
                                             REFIID riid,
                                             VOID** ppvResult)
 {
-    ICOM_THIS(ItemMonikerImpl,iface);
+    ItemMonikerImpl *This = (ItemMonikerImpl *)iface;
 
     HRESULT   res;
     IID    refid=IID_IOleItemContainer;
@@ -475,7 +473,7 @@
                                              REFIID riid,
                                              VOID** ppvResult)
 {
-    ICOM_THIS(ItemMonikerImpl,iface);
+    ItemMonikerImpl *This = (ItemMonikerImpl *)iface;
 
     HRESULT   res;
     IOleItemContainer *poic=0;
@@ -647,7 +645,7 @@
  ******************************************************************************/
 HRESULT WINAPI ItemMonikerImpl_Hash(IMoniker* iface,DWORD* pdwHash)
 {
-    ICOM_THIS(ItemMonikerImpl,iface);
+    ItemMonikerImpl *This = (ItemMonikerImpl *)iface;
 
     int  h = 0,i,skip,len;
     int  off = 0;
@@ -687,7 +685,7 @@
     IRunningObjectTable* rot;
     HRESULT res;
     IOleItemContainer *poic=0;
-    ICOM_THIS(ItemMonikerImpl,iface);
+    ItemMonikerImpl *This = (ItemMonikerImpl *)iface;
 
     TRACE("(%p,%p,%p,%p)\n",iface,pbc,pmkToLeft,pmkNewlyRunning);
 
@@ -829,7 +827,7 @@
                                               IMoniker* pmkToLeft,
                                               LPOLESTR *ppszDisplayName)
 {
-    ICOM_THIS(ItemMonikerImpl,iface);
+    ItemMonikerImpl *This = (ItemMonikerImpl *)iface;
 
     TRACE("(%p,%p,%p,%p)\n",iface,pbc,pmkToLeft,ppszDisplayName);
 
@@ -865,7 +863,7 @@
     IParseDisplayName* ppdn=0;
     LPOLESTR displayName;
     HRESULT res;
-    ICOM_THIS(ItemMonikerImpl,iface);
+    ItemMonikerImpl *This = (ItemMonikerImpl *)iface;
 
     /* If pmkToLeft is NULL, this method returns MK_E_SYNTAX */
     if (pmkToLeft==NULL)

reactos/lib/ole32
marshal.c 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- marshal.c	14 Aug 2004 20:00:59 -0000	1.6
+++ marshal.c	19 Sep 2004 10:20:48 -0000	1.7
@@ -216,14 +216,14 @@
 
 static ULONG WINAPI
 StdMarshalImpl_AddRef(LPMARSHAL iface) {
-  ICOM_THIS(StdMarshalImpl,iface);
+  StdMarshalImpl *This = (StdMarshalImpl *)iface;
   This->ref++;
   return This->ref;
 }
 
 static ULONG WINAPI
 StdMarshalImpl_Release(LPMARSHAL iface) {
-  ICOM_THIS(StdMarshalImpl,iface);
+  StdMarshalImpl *This = (StdMarshalImpl *)iface;
   This->ref--;
 
   if (This->ref)
@@ -392,7 +392,6 @@
 }
 
 IMarshalVtbl stdmvtbl = {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     StdMarshalImpl_QueryInterface,
     StdMarshalImpl_AddRef,
     StdMarshalImpl_Release,
@@ -752,7 +751,6 @@
 }
 
 static IClassFactoryVtbl dfmarshalcfvtbl = {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     SMCF_QueryInterface,
     SMCF_AddRef,
     SMCF_Release,

reactos/lib/ole32
memlockbytes.c 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- memlockbytes.c	14 Aug 2004 20:00:59 -0000	1.4
+++ memlockbytes.c	19 Sep 2004 10:20:48 -0000	1.5
@@ -142,7 +142,6 @@
  */
 static ILockBytesVtbl HGLOBALLockBytesImpl_Vtbl =
 {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     HGLOBALLockBytesImpl_QueryInterface,
     HGLOBALLockBytesImpl_AddRef,
     HGLOBALLockBytesImpl_Release,

reactos/lib/ole32
moniker.c 1.9 -> 1.10
diff -u -r1.9 -r1.10
--- moniker.c	14 Aug 2004 20:00:59 -0000	1.9
+++ moniker.c	19 Sep 2004 10:20:48 -0000	1.10
@@ -92,7 +92,6 @@
 /* Virtual function table for the IRunningObjectTable class. */
 static IRunningObjectTableVtbl VT_RunningObjectTableImpl =
 {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     RunningObjectTableImpl_QueryInterface,
     RunningObjectTableImpl_AddRef,
     RunningObjectTableImpl_Release,
@@ -110,7 +109,7 @@
  */
 HRESULT WINAPI RunningObjectTableImpl_QueryInterface(IRunningObjectTable* iface,REFIID riid,void** ppvObject)
 {
-    ICOM_THIS(RunningObjectTableImpl,iface);
+    RunningObjectTableImpl *This = (RunningObjectTableImpl *)iface;
 
     TRACE("(%p,%p,%p)\n",This,riid,ppvObject);
 
@@ -142,7 +141,7 @@
  */
 ULONG   WINAPI RunningObjectTableImpl_AddRef(IRunningObjectTable* iface)
 {
-    ICOM_THIS(RunningObjectTableImpl,iface);
+    RunningObjectTableImpl *This = (RunningObjectTableImpl *)iface;
 
     TRACE("(%p)\n",This);
 
@@ -174,7 +173,7 @@
 ULONG   WINAPI RunningObjectTableImpl_Release(IRunningObjectTable* iface)
 {
     DWORD i;
-    ICOM_THIS(RunningObjectTableImpl,iface);
+    RunningObjectTableImpl *This = (RunningObjectTableImpl *)iface;
 
     TRACE("(%p)\n",This);
 
@@ -266,7 +265,7 @@
                                                DWORD *pdwRegister)       /* Pointer to the value identifying the  registration */
 {
     HRESULT res=S_OK;
-    ICOM_THIS(RunningObjectTableImpl,iface);
+    RunningObjectTableImpl *This = (RunningObjectTableImpl *)iface;
 
     TRACE("(%p,%ld,%p,%p,%p)\n",This,grfFlags,punkObject,pmkObjectName,pdwRegister);
 
@@ -329,7 +328,7 @@
 {
 
     DWORD index,j;
-    ICOM_THIS(RunningObjectTableImpl,iface);
+    RunningObjectTableImpl *This = (RunningObjectTableImpl *)iface;
 
     TRACE("(%p,%ld)\n",This,dwRegister);
 
@@ -362,7 +361,7 @@
 HRESULT WINAPI RunningObjectTableImpl_IsRunning(  IRunningObjectTable* iface,
                                                   IMoniker *pmkObjectName)  /* Pointer to the moniker of the object whose status is desired */
 {
-    ICOM_THIS(RunningObjectTableImpl,iface);
+    RunningObjectTableImpl *This = (RunningObjectTableImpl *)iface;
 
     TRACE("(%p,%p)\n",This,pmkObjectName);
 
@@ -377,7 +376,7 @@
                                                   IUnknown **ppunkObject) /* Address of output variable that receives the IUnknown interface pointer */
 {
     DWORD index;
-    ICOM_THIS(RunningObjectTableImpl,iface);
+    RunningObjectTableImpl *This = (RunningObjectTableImpl *)iface;
 
     TRACE("(%p,%p,%p)\n",This,pmkObjectName,ppunkObject);
 
@@ -407,7 +406,7 @@
                                                      FILETIME *pfiletime) /* Pointer to structure containing object's last change time */
 {
     DWORD index=-1;
-    ICOM_THIS(RunningObjectTableImpl,iface);
+    RunningObjectTableImpl *This = (RunningObjectTableImpl *)iface;
 
     TRACE("(%p,%ld,%p)\n",This,dwRegister,pfiletime);
 
@@ -429,7 +428,7 @@
                                                           FILETIME *pfiletime)       /* Pointer to structure that receives object's last change time */
 {
     DWORD index=-1;
-    ICOM_THIS(RunningObjectTableImpl,iface);
+    RunningObjectTableImpl *This = (RunningObjectTableImpl *)iface;
 
     TRACE("(%p,%p,%p)\n",This,pmkObjectName,pfiletime);
 
@@ -518,7 +517,7 @@
 HRESULT WINAPI OleRun(LPUNKNOWN pUnknown)
 {
   IRunnableObject	*runable;
-  ICOM_THIS(IRunnableObject,pUnknown);
+  IRunnableObject *This = (IRunnableObject *)pUnknown;
   LRESULT		ret;
 
   ret = IRunnableObject_QueryInterface(This,&IID_IRunnableObject,(LPVOID*)&runable);

reactos/lib/ole32
ole16.c 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- ole16.c	14 Aug 2004 20:00:59 -0000	1.2
+++ ole16.c	19 Sep 2004 10:20:48 -0000	1.3
@@ -73,7 +73,7 @@
  *		IMalloc16_QueryInterface	[COMPOBJ.500]
  */
 HRESULT WINAPI IMalloc16_fnQueryInterface(IMalloc16* iface,REFIID refiid,LPVOID *obj) {
-        ICOM_THIS(IMalloc16Impl,iface);
+        IMalloc16Impl *This = (IMalloc16Impl *)iface;
 
 	TRACE("(%p)->QueryInterface(%s,%p)\n",This,debugstr_guid(refiid),obj);
 	if (	!memcmp(&IID_IUnknown,refiid,sizeof(IID_IUnknown)) ||
@@ -89,7 +89,7 @@
  *		IMalloc16_AddRef	[COMPOBJ.501]
  */
 ULONG WINAPI IMalloc16_fnAddRef(IMalloc16* iface) {
-        ICOM_THIS(IMalloc16Impl,iface);
+        IMalloc16Impl *This = (IMalloc16Impl *)iface;
 	TRACE("(%p)->AddRef()\n",This);
 	return 1; /* cannot be freed */
 }
@@ -98,7 +98,7 @@
  *		IMalloc16_Release	[COMPOBJ.502]
  */
 ULONG WINAPI IMalloc16_fnRelease(IMalloc16* iface) {
-        ICOM_THIS(IMalloc16Impl,iface);
+        IMalloc16Impl *This = (IMalloc16Impl *)iface;
 	TRACE("(%p)->Release()\n",This);
 	return 1; /* cannot be freed */
 }
@@ -107,7 +107,7 @@
  * IMalloc16_Alloc [COMPOBJ.503]
  */
 SEGPTR WINAPI IMalloc16_fnAlloc(IMalloc16* iface,DWORD cb) {
-        ICOM_THIS(IMalloc16Impl,iface);
+        IMalloc16Impl *This = (IMalloc16Impl *)iface;
 	TRACE("(%p)->Alloc(%ld)\n",This,cb);
         return MapLS( HeapAlloc( GetProcessHeap(), 0, cb ) );
 }
@@ -118,7 +118,7 @@
 VOID WINAPI IMalloc16_fnFree(IMalloc16* iface,SEGPTR pv)
 {
     void *ptr = MapSL(pv);
-    ICOM_THIS(IMalloc16Impl,iface);
+    IMalloc16Impl *This = (IMalloc16Impl *)iface;
     TRACE("(%p)->Free(%08lx)\n",This,pv);
     UnMapLS(pv);
     HeapFree( GetProcessHeap(), 0, ptr );
@@ -130,7 +130,7 @@
 SEGPTR WINAPI IMalloc16_fnRealloc(IMalloc16* iface,SEGPTR pv,DWORD cb)
 {
     SEGPTR ret;
-    ICOM_THIS(IMalloc16Impl,iface);
+    IMalloc16Impl *This = (IMalloc16Impl *)iface;
     TRACE("(%p)->Realloc(%08lx,%ld)\n",This,pv,cb);
     if (!pv) 
 	ret = IMalloc16_fnAlloc(iface, cb);
@@ -149,7 +149,7 @@
  */
 DWORD WINAPI IMalloc16_fnGetSize(const IMalloc16* iface,SEGPTR pv)
 {
-	ICOM_THIS(IMalloc16Impl,iface);
+	IMalloc16Impl *This = (IMalloc16Impl *)iface;
         TRACE("(%p)->GetSize(%08lx)\n",This,pv);
         return HeapSize( GetProcessHeap(), 0, MapSL(pv) );
 }
@@ -158,7 +158,7 @@
  * IMalloc16_DidAlloc [COMPOBJ.507]
  */
 INT16 WINAPI IMalloc16_fnDidAlloc(const IMalloc16* iface,LPVOID pv) {
-        ICOM_THIS(IMalloc16,iface);
+        IMalloc16 *This = (IMalloc16 *)iface;
 	TRACE("(%p)->DidAlloc(%p)\n",This,pv);
 	return (INT16)-1;
 }
@@ -167,7 +167,7 @@
  * IMalloc16_HeapMinimize [COMPOBJ.508]
  */
 LPVOID WINAPI IMalloc16_fnHeapMinimize(IMalloc16* iface) {
-        ICOM_THIS(IMalloc16Impl,iface);
+        IMalloc16Impl *This = (IMalloc16Impl *)iface;
 	TRACE("(%p)->HeapMinimize()\n",This);
 	return NULL;
 }

reactos/lib/ole32
ole2.c 1.15 -> 1.16
diff -u -r1.15 -r1.16
--- ole2.c	16 Jun 2004 07:06:50 -0000	1.15
+++ ole2.c	19 Sep 2004 10:20:48 -0000	1.16
@@ -1,4 +1,3 @@
-
 /*
  *	OLE2 library
  *
@@ -2327,25 +2326,90 @@
             CoTaskMemFree(pClipDataArray[i].pClipData);
 }
 
-HRESULT WINAPI FreePropVariantArray(ULONG,PROPVARIANT*);
+/******************************************************************************
+ * Check if a PROPVARIANT's type is valid.
+ */
+static inline HRESULT PROPVARIANT_ValidateType(VARTYPE vt)
+{
+    switch (vt)
+    {
+    case VT_EMPTY:
+    case VT_NULL:
+    case VT_I2:
+    case VT_I4:
+    case VT_R4:
+    case VT_R8:
+    case VT_CY:
+    case VT_DATE:
+    case VT_BSTR:
+    case VT_ERROR:
+    case VT_BOOL:
+    case VT_UI1:
+    case VT_UI2:
+    case VT_UI4:
+    case VT_I8:
+    case VT_UI8:
+    case VT_LPSTR:
+    case VT_LPWSTR:
+    case VT_FILETIME:
+    case VT_BLOB:
+    case VT_STREAM:
+    case VT_STORAGE:
+    case VT_STREAMED_OBJECT:
+    case VT_STORED_OBJECT:
+    case VT_BLOB_OBJECT:
+    case VT_CF:
+    case VT_CLSID:
+    case VT_I2|VT_VECTOR:
+    case VT_I4|VT_VECTOR:
+    case VT_R4|VT_VECTOR:
+    case VT_R8|VT_VECTOR:
+    case VT_CY|VT_VECTOR:
+    case VT_DATE|VT_VECTOR:
+    case VT_BSTR|VT_VECTOR:
+    case VT_ERROR|VT_VECTOR:
+    case VT_BOOL|VT_VECTOR:
+    case VT_VARIANT|VT_VECTOR:
+    case VT_UI1|VT_VECTOR:
+    case VT_UI2|VT_VECTOR:
+    case VT_UI4|VT_VECTOR:
+    case VT_I8|VT_VECTOR:
+    case VT_UI8|VT_VECTOR:
+    case VT_LPSTR|VT_VECTOR:
+    case VT_LPWSTR|VT_VECTOR:
+    case VT_FILETIME|VT_VECTOR:
+    case VT_CF|VT_VECTOR:
+    case VT_CLSID|VT_VECTOR:
+        return S_OK;
+    }
+    WARN("Bad type %d\n", vt);
+    return STG_E_INVALIDPARAMETER;
+}
 
 /***********************************************************************
  *           PropVariantClear			    [OLE32.@]
  */
 HRESULT WINAPI PropVariantClear(PROPVARIANT * pvar) /* [in/out] */
 {
+    HRESULT hr;
+
     TRACE("(%p)\n", pvar);
 
     if (!pvar)
         return S_OK;
 
+    hr = PROPVARIANT_ValidateType(pvar->vt);
+    if (FAILED(hr))
+        return hr;
+
     switch(pvar->vt)
     {
     case VT_STREAM:
     case VT_STREAMED_OBJECT:
     case VT_STORAGE:
     case VT_STORED_OBJECT:
-        IUnknown_Release((LPUNKNOWN)pvar->u.pStream);
+        if (pvar->u.pStream)
+            IUnknown_Release(pvar->u.pStream);
         break;
     case VT_CLSID:
     case VT_LPSTR:
@@ -2359,8 +2423,11 @@
         CoTaskMemFree(pvar->u.blob.pBlobData);
         break;
     case VT_BSTR:
-        FIXME("Need to load OLEAUT32 for SysFreeString\n");
-        /* SysFreeString(pvar->u.bstrVal); */
+        if (pvar->u.bstrVal)
+        {
+            FIXME("Need to load OLEAUT32 for SysFreeString\n");
+            /* SysFreeString(pvar->u.bstrVal); */
+        }
         break;
    case VT_CF:
         if (pvar->u.pclipdata)
@@ -2370,12 +2437,7 @@
         }
         break;
     default:
-        if (pvar->vt & VT_ARRAY)
-        {
-            FIXME("Need to call SafeArrayDestroy\n");
-            /* SafeArrayDestroy(pvar->u.caub); */
-        }
-        switch (pvar->vt & VT_VECTOR)
+        switch (pvar->vt & ~VT_VECTOR)
         {
         case VT_VARIANT:
             FreePropVariantArray(pvar->u.capropvar.cElems, pvar->u.capropvar.pElems);
@@ -2386,9 +2448,10 @@
         case VT_BSTR:
         case VT_LPSTR:
         case VT_LPWSTR:
+        case VT_CLSID:
             FIXME("Freeing of vector sub-type not supported yet\n");
         }
-        if (pvar->vt & VT_VECTOR)
+        if (pvar->vt & ~VT_VECTOR)
         {
             /* pick an arbitary VT_VECTOR structure - they all have the same
              * memory layout */
@@ -2408,7 +2471,13 @@
                                const PROPVARIANT *pvarSrc) /* [in] */
 {
     ULONG len;
-    TRACE("(%p, %p): stub:\n", pvarDest, pvarSrc);
+    HRESULT hr;
+
+    TRACE("(%p, %p)\n", pvarDest, pvarSrc);
+
+    hr = PROPVARIANT_ValidateType(pvarSrc->vt);
+    if (FAILED(hr))
+        return hr;
 
     /* this will deal with most cases */
     CopyMemory(pvarDest, pvarSrc, sizeof(*pvarDest));
@@ -2427,13 +2496,13 @@
         break;
     case VT_LPSTR:
         len = strlen(pvarSrc->u.pszVal);
-        pvarDest->u.pszVal = CoTaskMemAlloc(len);
-        CopyMemory(pvarDest->u.pszVal, pvarSrc->u.pszVal, len);
+        pvarDest->u.pszVal = CoTaskMemAlloc((len+1)*sizeof(CHAR));
+        CopyMemory(pvarDest->u.pszVal, pvarSrc->u.pszVal, (len+1)*sizeof(CHAR));
         break;
     case VT_LPWSTR:
         len = lstrlenW(pvarSrc->u.pwszVal);
-        pvarDest->u.pwszVal = CoTaskMemAlloc(len);
-        CopyMemory(pvarDest->u.pwszVal, pvarSrc->u.pwszVal, len);
+        pvarDest->u.pwszVal = CoTaskMemAlloc((len+1)*sizeof(WCHAR));
+        CopyMemory(pvarDest->u.pwszVal, pvarSrc->u.pwszVal, (len+1)*sizeof(WCHAR));
         break;
     case VT_BLOB:
     case VT_BLOB_OBJECT:
@@ -2456,11 +2525,6 @@
         }
         break;
     default:
-        if (pvarSrc->vt & VT_ARRAY)
-        {
-            FIXME("Need to call SafeArrayCopy\n");
-            /* SafeArrayCopy(...); */
-        }
         if (pvarSrc->vt & VT_VECTOR)
         {
             int elemSize;

reactos/lib/ole32
oleobj.c 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- oleobj.c	14 Aug 2004 20:00:59 -0000	1.3
+++ oleobj.c	19 Sep 2004 10:20:48 -0000	1.4
@@ -65,7 +65,6 @@
  */
 static struct IOleAdviseHolderVtbl oahvt =
 {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     OleAdviseHolderImpl_QueryInterface,
     OleAdviseHolderImpl_AddRef,
     OleAdviseHolderImpl_Release,
@@ -140,7 +139,7 @@
   REFIID            riid,
   LPVOID*           ppvObj)
 {
-  ICOM_THIS(OleAdviseHolderImpl, iface);
+  OleAdviseHolderImpl *This = (OleAdviseHolderImpl *)iface;
   TRACE("(%p)->(%s,%p)\n",This,debugstr_guid(riid),ppvObj);
   /*
    * Sanity check
@@ -178,7 +177,7 @@
 static ULONG WINAPI OleAdviseHolderImpl_AddRef(
   LPOLEADVISEHOLDER iface)
 {
-  ICOM_THIS(OleAdviseHolderImpl, iface);
+  OleAdviseHolderImpl *This = (OleAdviseHolderImpl *)iface;
   TRACE("(%p)->(ref=%ld)\n", This, This->ref);
   return ++(This->ref);
 }
@@ -189,7 +188,7 @@
 static ULONG WINAPI OleAdviseHolderImpl_Release(
   LPOLEADVISEHOLDER iface)
 {
-  ICOM_THIS(OleAdviseHolderImpl, iface);
+  OleAdviseHolderImpl *This = (OleAdviseHolderImpl *)iface;
   TRACE("(%p)->(ref=%ld)\n", This, This->ref);
   This->ref--;
 
@@ -213,7 +212,7 @@
 {
   DWORD index;
 
-  ICOM_THIS(OleAdviseHolderImpl, iface);
+  OleAdviseHolderImpl *This = (OleAdviseHolderImpl *)iface;
 
   TRACE("(%p)->(%p, %p)\n", This, pAdvise, pdwConnection);
 
@@ -277,7 +276,7 @@
   LPOLEADVISEHOLDER iface,
   DWORD             dwConnection)
 {
-  ICOM_THIS(OleAdviseHolderImpl, iface);
+  OleAdviseHolderImpl *This = (OleAdviseHolderImpl *)iface;
 
   TRACE("(%p)->(%lu)\n", This, dwConnection);
 
@@ -312,7 +311,7 @@
 static HRESULT WINAPI
 OleAdviseHolderImpl_EnumAdvise (LPOLEADVISEHOLDER iface, IEnumSTATDATA **ppenumAdvise)
 {
-    ICOM_THIS(OleAdviseHolderImpl, iface);
+    OleAdviseHolderImpl *This = (OleAdviseHolderImpl *)iface;
     FIXME("(%p)->(%p)\n", This, ppenumAdvise);
 
     *ppenumAdvise = NULL;
@@ -326,7 +325,7 @@
 static HRESULT WINAPI
 OleAdviseHolderImpl_SendOnRename (LPOLEADVISEHOLDER iface, IMoniker *pmk)
 {
-    ICOM_THIS(OleAdviseHolderImpl, iface);
+    OleAdviseHolderImpl *This = (OleAdviseHolderImpl *)iface;
     FIXME("(%p)->(%p)\n", This, pmk);
 
 
@@ -339,7 +338,7 @@
 static HRESULT WINAPI
 OleAdviseHolderImpl_SendOnSave (LPOLEADVISEHOLDER iface)
 {
-    ICOM_THIS(OleAdviseHolderImpl, iface);
+    OleAdviseHolderImpl *This = (OleAdviseHolderImpl *)iface;
     FIXME("(%p)\n", This);
 
     return S_OK;
@@ -351,7 +350,7 @@
 static HRESULT WINAPI
 OleAdviseHolderImpl_SendOnClose (LPOLEADVISEHOLDER iface)
 {
-    ICOM_THIS(OleAdviseHolderImpl, iface);
+    OleAdviseHolderImpl *This = (OleAdviseHolderImpl *)iface;
     FIXME("(%p)\n", This);
 
 
@@ -413,7 +412,6 @@
  */
 static struct IDataAdviseHolderVtbl DataAdviseHolderImpl_VTable =
 {
-  ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
   DataAdviseHolder_QueryInterface,
   DataAdviseHolder_AddRef,
   DataAdviseHolder_Release,
@@ -477,7 +475,7 @@
   REFIID                  riid,
   void**                  ppvObject)
 {
-  ICOM_THIS(DataAdviseHolder, iface);
+  DataAdviseHolder *This = (DataAdviseHolder *)iface;
   TRACE("(%p)->(%s,%p)\n",This,debugstr_guid(riid),ppvObject);
   /*
    * Perform a sanity check on the parameters.
@@ -524,7 +522,7 @@
 static ULONG WINAPI       DataAdviseHolder_AddRef(
   IDataAdviseHolder*      iface)
 {
-  ICOM_THIS(DataAdviseHolder, iface);
+  DataAdviseHolder *This = (DataAdviseHolder *)iface;
   TRACE("(%p) (ref=%ld)\n", This, This->ref);
   This->ref++;
 
@@ -539,7 +537,7 @@
 static ULONG WINAPI DataAdviseHolder_Release(
   IDataAdviseHolder*      iface)
 {
-  ICOM_THIS(DataAdviseHolder, iface);
+  DataAdviseHolder *This = (DataAdviseHolder *)iface;
   TRACE("(%p) (ref=%ld)\n", This, This->ref);
 
   /*
@@ -574,7 +572,7 @@
 {
   DWORD index;
 
-  ICOM_THIS(DataAdviseHolder, iface);
+  DataAdviseHolder *This = (DataAdviseHolder *)iface;
 
   TRACE("(%p)->(%p, %p, %08lx, %p, %p)\n", This, pDataObject, pFetc, advf,
 	pAdvise, pdwConnection);
@@ -635,7 +633,7 @@
   IDataAdviseHolder*      iface,
   DWORD                   dwConnection)
 {
-  ICOM_THIS(DataAdviseHolder, iface);
+  DataAdviseHolder *This = (DataAdviseHolder *)iface;
 
   TRACE("(%p)->(%lu)\n", This, dwConnection);
 
@@ -667,7 +665,7 @@
   IDataAdviseHolder*      iface,
   IEnumSTATDATA**         ppenumAdvise)
 {
-  ICOM_THIS(DataAdviseHolder, iface);
+  DataAdviseHolder *This = (DataAdviseHolder *)iface;
 
   FIXME("(%p)->(%p)\n", This, ppenumAdvise);
   return E_NOTIMPL;
@@ -682,7 +680,7 @@
   DWORD                   dwReserved,
   DWORD                   advf)
 {
-  ICOM_THIS(DataAdviseHolder, iface);
+  DataAdviseHolder *This = (DataAdviseHolder *)iface;
   DWORD index;
   STGMEDIUM stg;
   HRESULT res;

reactos/lib/ole32
oleproxy.c 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- oleproxy.c	14 Aug 2004 20:00:59 -0000	1.6
+++ oleproxy.c	19 Sep 2004 10:20:48 -0000	1.7
@@ -103,7 +103,7 @@
 
 static ULONG WINAPI
 CFStub_AddRef(LPRPCSTUBBUFFER iface) {
-    ICOM_THIS(CFStub,iface);
+    CFStub *This = (CFStub *)iface;
 
     This->ref++;
     return This->ref;
@@ -111,7 +111,7 @@
 
 static ULONG WINAPI
 CFStub_Release(LPRPCSTUBBUFFER iface) {
-    ICOM_THIS(CFStub,iface);
+    CFStub *This = (CFStub *)iface;
 
     This->ref--;
     if (This->ref)
@@ -122,7 +122,7 @@
 
 static HRESULT WINAPI
 CFStub_Connect(LPRPCSTUBBUFFER iface, IUnknown *pUnkServer) {
-    ICOM_THIS(CFStub,iface);
+    CFStub *This = (CFStub *)iface;
 
     This->pUnkServer = pUnkServer;
     IUnknown_AddRef(pUnkServer);
@@ -131,7 +131,7 @@
 
 static void WINAPI
 CFStub_Disconnect(LPRPCSTUBBUFFER iface) {
-    ICOM_THIS(CFStub,iface);
+    CFStub *This = (CFStub *)iface;
 
     IUnknown_Release(This->pUnkServer);
     This->pUnkServer = NULL;
@@ -140,7 +140,7 @@
 CFStub_Invoke(
     LPRPCSTUBBUFFER iface,RPCOLEMESSAGE* msg,IRpcChannelBuffer* chanbuf
 ) {
-    ICOM_THIS(CFStub,iface);
+    CFStub *This = (CFStub *)iface;
     HRESULT hres;
 
     if (msg->iMethod == 3) { /* CreateInstance */
@@ -238,7 +238,6 @@
 }
 
 static IRpcStubBufferVtbl cfstubvt = {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     CFStub_QueryInterface,
     CFStub_AddRef,
     CFStub_Release,
@@ -413,7 +412,6 @@
 }
 
 static IRpcProxyBufferVtbl pspbvtbl = {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     IRpcProxyBufferImpl_QueryInterface,
     IRpcProxyBufferImpl_AddRef,
     IRpcProxyBufferImpl_Release,
@@ -421,7 +419,6 @@
     IRpcProxyBufferImpl_Disconnect
 };
 static IClassFactoryVtbl cfproxyvt = {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     CFProxy_QueryInterface,
     CFProxy_AddRef,
     CFProxy_Release,
@@ -497,7 +494,6 @@
 }
 
 static IPSFactoryBufferVtbl psfacbufvtbl = {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     PSFacBuf_QueryInterface,
     PSFacBuf_AddRef,
     PSFacBuf_Release,

reactos/lib/ole32
rpc.c 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- rpc.c	14 Aug 2004 20:00:59 -0000	1.4
+++ rpc.c	19 Sep 2004 10:20:48 -0000	1.5
@@ -285,14 +285,14 @@
 
 static ULONG WINAPI
 PipeBuf_AddRef(LPRPCCHANNELBUFFER iface) {
-    ICOM_THIS(PipeBuf,iface);
+    PipeBuf *This = (PipeBuf *)iface;
     This->ref++;
     return This->ref;
 }
 
 static ULONG WINAPI
 PipeBuf_Release(LPRPCCHANNELBUFFER iface) {
-    ICOM_THIS(PipeBuf,iface);
+    PipeBuf *This = (PipeBuf *)iface;
     wine_rpc_disconnect_header header;
     HANDLE pipe;
     DWORD reqtype = REQTYPE_DISCONNECT;
@@ -320,7 +320,7 @@
 PipeBuf_GetBuffer(
     LPRPCCHANNELBUFFER iface,RPCOLEMESSAGE* msg,REFIID riid
 ) {
-    /*ICOM_THIS(PipeBuf,iface);*/
+    /*PipeBuf *This = (PipeBuf *)iface;*/
 
     TRACE("(%p,%s)\n",msg,debugstr_guid(riid));
     /* probably reuses IID in real. */
@@ -415,7 +415,7 @@
 PipeBuf_SendReceive(
     LPRPCCHANNELBUFFER iface,RPCOLEMESSAGE* msg,ULONG *status
 ) {
-    ICOM_THIS(PipeBuf,iface);
+    PipeBuf *This = (PipeBuf *)iface;
     wine_rpc_request	*req;
     HRESULT		hres;
 
@@ -466,7 +466,6 @@
 }
 
 static IRpcChannelBufferVtbl pipebufvt = {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     PipeBuf_QueryInterface,
     PipeBuf_AddRef,
     PipeBuf_Release,

reactos/lib/ole32
stg_stream.c 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- stg_stream.c	14 Aug 2004 20:00:59 -0000	1.4
+++ stg_stream.c	19 Sep 2004 10:20:48 -0000	1.5
@@ -48,7 +48,6 @@
  */
 static IStreamVtbl StgStreamImpl_Vtbl =
 {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     StgStreamImpl_QueryInterface,
     StgStreamImpl_AddRef,
     StgStreamImpl_Release,

reactos/lib/ole32
storage.c 1.9 -> 1.10
diff -u -r1.9 -r1.10
--- storage.c	14 Aug 2004 20:00:59 -0000	1.9
+++ storage.c	19 Sep 2004 10:20:48 -0000	1.10
@@ -970,7 +970,7 @@
 HRESULT WINAPI IStream16_fnQueryInterface(
 	IStream16* iface,REFIID refiid,LPVOID *obj
 ) {
-	ICOM_THIS(IStream16Impl,iface);
+	IStream16Impl *This = (IStream16Impl *)iface;
 	TRACE_(relay)("(%p)->(%s,%p)\n",This,debugstr_guid(refiid),obj);
 	if (!memcmp(&IID_IUnknown,refiid,sizeof(IID_IUnknown))) {
 		*obj = This;
@@ -984,7 +984,7 @@
  * IStream16_AddRef [STORAGE.519]
  */
 ULONG WINAPI IStream16_fnAddRef(IStream16* iface) {
-	ICOM_THIS(IStream16Impl,iface);
+	IStream16Impl *This = (IStream16Impl *)iface;
 	return ++(This->ref);
 }
 
@@ -992,7 +992,7 @@
  * IStream16_Release [STORAGE.520]
  */
 ULONG WINAPI IStream16_fnRelease(IStream16* iface) {
-	ICOM_THIS(IStream16Impl,iface);
+	IStream16Impl *This = (IStream16Impl *)iface;
 	FlushFileBuffers(This->hf);
 	This->ref--;
 	if (!This->ref) {
@@ -1013,7 +1013,7 @@
 HRESULT WINAPI IStream16_fnSeek(
 	IStream16* iface,LARGE_INTEGER offset,DWORD whence,ULARGE_INTEGER *newpos
 ) {
-	ICOM_THIS(IStream16Impl,iface);
+	IStream16Impl *This = (IStream16Impl *)iface;
 	TRACE_(relay)("(%p)->([%ld.%ld],%ld,%p)\n",This,offset.u.HighPart,offset.u.LowPart,whence,newpos);
 
 	switch (whence) {
@@ -1057,7 +1057,7 @@
 HRESULT WINAPI IStream16_fnRead(
         IStream16* iface,void  *pv,ULONG cb,ULONG  *pcbRead
 ) {
-	ICOM_THIS(IStream16Impl,iface);
+	IStream16Impl *This = (IStream16Impl *)iface;
 	BYTE	block[BIGSIZE];
 	ULONG	*bytesread=pcbRead,xxread;
 	int	blocknr;
@@ -1119,7 +1119,7 @@
 HRESULT WINAPI IStream16_fnWrite(
         IStream16* iface,const void *pv,ULONG cb,ULONG *pcbWrite
 ) {
-	ICOM_THIS(IStream16Impl,iface);
+	IStream16Impl *This = (IStream16Impl *)iface;
 	BYTE	block[BIGSIZE];
 	ULONG	*byteswritten=pcbWrite,xxwritten;
 	int	oldsize,newsize,i,curoffset=0,lastblocknr,blocknr,cc;
@@ -1463,7 +1463,7 @@
 HRESULT WINAPI IStream_fnQueryInterface(
 	IStream* iface,REFIID refiid,LPVOID *obj
 ) {
-	ICOM_THIS(IStream32Impl,iface);
+	IStream32Impl *This = (IStream32Impl *)iface;
 
 	TRACE_(relay)("(%p)->(%s,%p)\n",This,debugstr_guid(refiid),obj);
 	if (!memcmp(&IID_IUnknown,refiid,sizeof(IID_IUnknown))) {
@@ -1478,7 +1478,7 @@
  * IStream32_AddRef [VTABLE]
  */
 ULONG WINAPI IStream_fnAddRef(IStream* iface) {
-	ICOM_THIS(IStream32Impl,iface);
+	IStream32Impl *This = (IStream32Impl *)iface;
 	return ++(This->ref);
 }
 
@@ -1486,7 +1486,7 @@
  * IStream32_Release [VTABLE]
  */
 ULONG WINAPI IStream_fnRelease(IStream* iface) {
-	ICOM_THIS(IStream32Impl,iface);
+	IStream32Impl *This = (IStream32Impl *)iface;
 	FlushFileBuffers(This->hf);
 	This->ref--;
 	if (!This->ref) {
@@ -1517,7 +1517,7 @@
 HRESULT WINAPI IStorage16_fnQueryInterface(
 	IStorage16* iface,REFIID refiid,LPVOID *obj
 ) {
-	ICOM_THIS(IStorage16Impl,iface);
+	IStorage16Impl *This = (IStorage16Impl *)iface;
 
 	TRACE_(relay)("(%p)->(%s,%p)\n",This,debugstr_guid(refiid),obj);
 
@@ -1532,7 +1532,7 @@
  * IStorage16_AddRef [STORAGE.501]
  */
 ULONG WINAPI IStorage16_fnAddRef(IStorage16* iface) {
-	ICOM_THIS(IStorage16Impl,iface);
+	IStorage16Impl *This = (IStorage16Impl *)iface;
 	return ++(This->ref);
 }
 
@@ -1540,7 +1540,7 @@
  * IStorage16_Release [STORAGE.502]
  */
 ULONG WINAPI IStorage16_fnRelease(IStorage16* iface) {
-	ICOM_THIS(IStorage16Impl,iface);
+	IStorage16Impl *This = (IStorage16Impl *)iface;
 	This->ref--;
 	if (This->ref)
 		return This->ref;
@@ -1555,7 +1555,7 @@
 HRESULT WINAPI IStorage16_fnStat(
         LPSTORAGE16 iface,STATSTG16 *pstatstg, DWORD grfStatFlag
 ) {
-	ICOM_THIS(IStorage16Impl,iface);
+	IStorage16Impl *This = (IStorage16Impl *)iface;
         DWORD len = WideCharToMultiByte( CP_ACP, 0, This->stde.pps_rawname, -1, NULL, 0, NULL, NULL );
         LPSTR nameA = HeapAlloc( GetProcessHeap(), 0, len );
 
@@ -1583,7 +1583,7 @@
 HRESULT WINAPI IStorage16_fnCommit(
         LPSTORAGE16 iface,DWORD commitflags
 ) {
-	ICOM_THIS(IStorage16Impl,iface);
+	IStorage16Impl *This = (IStorage16Impl *)iface;
 	FIXME("(%p)->(0x%08lx),STUB!\n",
 		This,commitflags
 	);
@@ -1594,7 +1594,7 @@
  * IStorage16_CopyTo [STORAGE.507]
  */
 HRESULT WINAPI IStorage16_fnCopyTo(LPSTORAGE16 iface,DWORD ciidExclude,const IID *rgiidExclude,SNB16 SNB16Exclude,IStorage16 *pstgDest) {
-	ICOM_THIS(IStorage16Impl,iface);
+	IStorage16Impl *This = (IStorage16Impl *)iface;
 	FIXME("IStorage16(%p)->(0x%08lx,%s,%p,%p),stub!\n",
 		This,ciidExclude,debugstr_guid(rgiidExclude),SNB16Exclude,pstgDest
 	);
@@ -1608,7 +1608,7 @@
 HRESULT WINAPI IStorage16_fnCreateStorage(
 	LPSTORAGE16 iface,LPCOLESTR16 pwcsName,DWORD grfMode,DWORD dwStgFormat,DWORD reserved2, IStorage16 **ppstg
 ) {
-	ICOM_THIS(IStorage16Impl,iface);
+	IStorage16Impl *This = (IStorage16Impl *)iface;
 	IStorage16Impl*	lpstg;
 	int		ppsent,x;
 	struct storage_pps_entry	stde;
@@ -1673,7 +1673,7 @@
 HRESULT WINAPI IStorage16_fnCreateStream(
 	LPSTORAGE16 iface,LPCOLESTR16 pwcsName,DWORD grfMode,DWORD reserved1,DWORD reserved2, IStream16 **ppstm
 ) {
-	ICOM_THIS(IStorage16Impl,iface);
+	IStorage16Impl *This = (IStorage16Impl *)iface;
 	IStream16Impl*	lpstr;
 	int		ppsent,x;
 	struct storage_pps_entry	stde;
@@ -1731,7 +1731,7 @@
 HRESULT WINAPI IStorage16_fnOpenStorage(
 	LPSTORAGE16 iface,LPCOLESTR16 pwcsName, IStorage16 *pstgPrio, DWORD grfMode, SNB16 snbExclude, DWORD reserved, IStorage16 **ppstg
 ) {
-	ICOM_THIS(IStorage16Impl,iface);
+	IStorage16Impl *This = (IStorage16Impl *)iface;
 	IStream16Impl*	lpstg;
 	WCHAR		name[33];
 	int		newpps;
@@ -1766,7 +1766,7 @@
 HRESULT WINAPI IStorage16_fnOpenStream(
 	LPSTORAGE16 iface,LPCOLESTR16 pwcsName, void *reserved1, DWORD grfMode, DWORD reserved2, IStream16 **ppstm
 ) {
-	ICOM_THIS(IStorage16Impl,iface);
+	IStorage16Impl *This = (IStorage16Impl *)iface;
 	IStream16Impl*	lpstr;
 	WCHAR		name[33];
 	int		newpps;

reactos/lib/ole32
storage32.c 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- storage32.c	14 Aug 2004 20:00:59 -0000	1.7
+++ storage32.c	19 Sep 2004 10:20:48 -0000	1.8
@@ -160,7 +160,6 @@
  */
 static IStorageVtbl Storage32Impl_Vtbl =
 {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     StorageBaseImpl_QueryInterface,
     StorageBaseImpl_AddRef,
     StorageBaseImpl_Release,
@@ -186,7 +185,6 @@
  */
 static IStorageVtbl Storage32InternalImpl_Vtbl =
   {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     StorageBaseImpl_QueryInterface,
     StorageBaseImpl_AddRef,
     StorageBaseImpl_Release,
@@ -212,7 +210,6 @@
  */
 static IEnumSTATSTGVtbl IEnumSTATSTGImpl_Vtbl =
 {
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
     IEnumSTATSTGImpl_QueryInterface,
     IEnumSTATSTGImpl_AddRef,
     IEnumSTATSTGImpl_Release,
@@ -243,7 +240,7 @@
   REFIID             riid,
   void**             ppvObject)
 {
-  ICOM_THIS(StorageBaseImpl,iface);
+  StorageBaseImpl *This = (StorageBaseImpl *)iface;
   /*
    * Perform a sanity check on the parameters.
    */
@@ -293,7 +290,7 @@
 ULONG WINAPI StorageBaseImpl_AddRef(
             IStorage* iface)
 {
-  ICOM_THIS(StorageBaseImpl,iface);
+  StorageBaseImpl *This = (StorageBaseImpl *)iface;
   This->ref++;
 
   return This->ref;
@@ -310,7 +307,7 @@
 ULONG WINAPI StorageBaseImpl_Release(
       IStorage* iface)
 {
-  ICOM_THIS(StorageBaseImpl,iface);
+  StorageBaseImpl *This = (StorageBaseImpl *)iface;
   /*
    * Decrease the reference count on this object.
    */
@@ -349,7 +346,7 @@
   DWORD            reserved2, /* [in]  */
   IStream**        ppstm)     /* [out] */
 {
-  ICOM_THIS(StorageBaseImpl,iface);
+  StorageBaseImpl *This = (StorageBaseImpl *)iface;
   IEnumSTATSTGImpl* propertyEnumeration;
   StgStreamImpl*    newStream;
   StgProperty       currentProperty;
@@ -465,7 +462,7 @@
   DWORD            reserved,      /* [in] */
   IStorage**       ppstg)         /* [out] */
 {
-  ICOM_THIS(StorageBaseImpl,iface);
+  StorageBaseImpl *This = (StorageBaseImpl *)iface;
   StorageInternalImpl* newStorage;
   IEnumSTATSTGImpl*      propertyEnumeration;
   StgProperty            currentProperty;
@@ -590,7 +587,7 @@
   DWORD           reserved3, /* [in] */
   IEnumSTATSTG**  ppenum)    /* [out] */
 {
-  ICOM_THIS(StorageBaseImpl,iface);
+  StorageBaseImpl *This = (StorageBaseImpl *)iface;
   IEnumSTATSTGImpl* newEnum;
 
   TRACE("(%p, %ld, %p, %ld, %p)\n",
@@ -637,7 +634,7 @@
   STATSTG*         pstatstg,     /* [out] */
   DWORD            grfStatFlag)  /* [in] */
 {
-  ICOM_THIS(StorageBaseImpl,iface);
+  StorageBaseImpl *This = (StorageBaseImpl *)iface;
   StgProperty    curProperty;
   BOOL           readSuccessful;
   HRESULT        res = STG_E_UNKNOWN;
@@ -700,7 +697,7 @@
             const OLECHAR*   pwcsOldName,  /* [in] */
             const OLECHAR*   pwcsNewName)  /* [in] */
 {
-  ICOM_THIS(StorageBaseImpl,iface);
+  StorageBaseImpl *This = (StorageBaseImpl *)iface;
   IEnumSTATSTGImpl* propertyEnumeration;
   StgProperty       currentProperty;
   ULONG             foundPropertyIndex;
@@ -858,7 +855,7 @@
             DWORD            reserved2, /* [in] */
             IStream**        ppstm)     /* [out] */
 {
-  ICOM_THIS(StorageBaseImpl,iface);
+  StorageBaseImpl *This = (StorageBaseImpl *)iface;
   IEnumSTATSTGImpl* propertyEnumeration;
   StgStreamImpl*    newStream;
   StgProperty       currentProperty, newStreamProperty;
@@ -1008,7 +1005,7 @@
   IStorage*        iface,
   REFCLSID         clsid) /* [in] */
 {
-  ICOM_THIS(StorageBaseImpl,iface);
+  StorageBaseImpl *This = (StorageBaseImpl *)iface;
   HRESULT hRes = E_FAIL;
   StgProperty curProperty;
   BOOL success;
CVSspam 0.2.8