[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-patches
Subject:    obj_base.h patch
From:       Ove Kaaven <ovehk () ping ! uio ! no>
Date:       2001-09-24 14:19:41
[Download RAW message or body]

Log:
Ove Kaaven <ovek@transgaming.com>
Added ICOM_[C]THIS_MULTI macros to make it easier to implement objects
that expose multiple interfaces. Added prototypes for CoGetPSClsid and 
IUnknown_*_Proxy.

Index: include/wine/obj_base.h
===================================================================
RCS file: /home/wine/wine/include/wine/obj_base.h,v
retrieving revision 1.41
diff -u -r1.41 obj_base.h
--- include/wine/obj_base.h	2001/08/27 19:00:12	1.41
+++ include/wine/obj_base.h	2001/09/24 12:14:45
@@ -584,9 +584,12 @@
 #endif /* ICOM_MSVTABLE_COMPAT */
 
 
-#define ICOM_THIS(impl,iface)          impl* const This=(impl*)iface
-#define ICOM_CTHIS(impl,iface)         const impl* const This=(const impl*)iface
+#define ICOM_THIS(impl,iface)          impl* const This=(impl*)(iface)
+#define ICOM_CTHIS(impl,iface)         const impl* const This=(const impl*)(iface)
 
+#define ICOM_THIS_MULTI(impl,field,iface)  impl* const This=(impl*)((char*)(iface) - \
offsetof(impl,field)) +#define ICOM_CTHIS_MULTI(impl,field,iface) const impl* const \
This=(const impl*)((char*)(iface) - offsetof(impl,field)) +
 #endif /*ICOM_CINTERFACE  */
 
 #define ICOM_CALL(xfn, ptr)                         ICOM_VTBL(ptr)->xfn(ptr)
@@ -676,6 +679,10 @@
 #define IUnknown_AddRef(p)             ICOM_CALL (AddRef,p)
 #define IUnknown_Release(p)            ICOM_CALL (Release,p)
 
+HRESULT CALLBACK IUnknown_QueryInterface_Proxy(IUnknown *This,REFIID \
riid,LPVOID*ppvObj); +ULONG   CALLBACK IUnknown_AddRef_Proxy(IUnknown *This);
+ULONG   CALLBACK IUnknown_Release_Proxy(IUnknown *This);
+
 /*****************************************************************************
  * IClassFactory interface
  */
@@ -797,6 +804,8 @@
 
 HRESULT WINAPI CoRevokeClassObject(DWORD dwRegister);
 
+HRESULT WINAPI CoGetPSClsid(REFIID riid,CLSID *pclsid);
+                    
 /*****************************************************************************
  *	COM Server dll - exports
  */


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic