obj_base.h patch
Ove Kaaven
ovehk at ping.uio.no
Mon Sep 24 09:19:41 CDT 2001
Log:
Ove Kaaven <ovek at 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
*/
More information about the wine-patches
mailing list