Fix incorrect usage of COBJMACROS.
Duplicate and adapt the COM access macros so they also work in C++.
Fix the IDirectPlayX access macros.
diff --git a/include/dpaddr.h b/include/dpaddr.h
index f9ea96e..1893d94 100644
--- a/include/dpaddr.h
+++ b/include/dpaddr.h
@@ -227,7 +227,7 @@
#undef INTERFACE
-#ifdef COBJMACROS
+#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IDirectPlay8Address_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDirectPlay8Address_AddRef(p) (p)->lpVtbl->AddRef(p)
@@ -252,6 +252,31 @@
#define IDirectPlay8Address_SetDevice(p,a) (p)->lpVtbl->SetDevice(p,a)
#define IDirectPlay8Address_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
#define IDirectPlay8Address_BuildFromDirectPlay4Address(p,a,b) (p)->lpVtbl->BuildFromDirectPlay4Address(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirectPlay8Address_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirectPlay8Address_AddRef(p) (p)->AddRef()
+#define IDirectPlay8Address_Release(p) (p)->Release()
+/*** IDirectPlay8Address methods ***/
+#define IDirectPlay8Address_BuildFromURLW(p,a) (p)->BuildFromURLW(a)
+#define IDirectPlay8Address_BuildFromURLA(p,a) (p)->BuildFromURLA(a)
+#define IDirectPlay8Address_Duplicate(p,a) (p)->Duplicate(a)
+#define IDirectPlay8Address_SetEqual(p,a) (p)->SetEqual(a)
+#define IDirectPlay8Address_IsEqual(p,a) (p)->IsEqual(a)
+#define IDirectPlay8Address_Clear(p) (p)->Clear()
+#define IDirectPlay8Address_GetURLW(p,a,b) (p)->GetURLW(a,b)
+#define IDirectPlay8Address_GetURLA(p,a,b) (p)->GetURLA(a,b)
+#define IDirectPlay8Address_GetSP(p,a) (p)->GetSP(a)
+#define IDirectPlay8Address_GetUserData(p,a,b) (p)->GetUserData(a,b)
+#define IDirectPlay8Address_SetSP(p,a) (p)->SetSP(a)
+#define IDirectPlay8Address_SetUserData(p,a,b) (p)->SetUserData(a,b)
+#define IDirectPlay8Address_GetNumComponents(p,a) (p)->GetNumComponents(a)
+#define IDirectPlay8Address_GetComponentByName(p,a,b,c,d) (p)->GetComponentByName(a,b,c,d)
+#define IDirectPlay8Address_GetComponentByIndex(p,a,b,c,d,e,f) (p)->GetComponentByIndex(a,b,c,d,e,f)
+#define IDirectPlay8Address_AddComponent(p,a,b,c,d) (p)->AddComponent(a,b,c,d)
+#define IDirectPlay8Address_SetDevice(p,a) (p)->SetDevice(a)
+#define IDirectPlay8Address_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirectPlay8Address_BuildFromDirectPlay4Address(p,a,b) (p)->BuildFromDirectPlay4Address(a,b)
#endif
/*****************************************************************************
@@ -269,7 +294,19 @@
DECLARE_INTERFACE_(IDirectPlay8AddressIP,IUnknown) { IDirectPlay8AddressIP_METHODS };
#undef INTERFACE
-#ifdef COBJMACROS
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirectPlay8AddressIP_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(a,b)
+#define IDirectPlay8AddressIP_AddRef(p) (p)->lpVtbl->AddRef()
+#define IDirectPlay8AddressIP_Release(p) (p)->lpVtbl->Release()
+/*** IDirectPlay8AddressIP methods ***/
+#define IDirectPlay8AddressIP_BuildFromSockAddr(p,a) (p)->lpVtbl->BuildFromSockAddr(a)
+#define IDirectPlay8AddressIP_BuildAddress(p,a,b) (p)->lpVtbl->BuildAddress(a,b)
+#define IDirectPlay8AddressIP_BuildLocalAddress(p,a,b) (p)->lpVtbl->BuildLocalAddress(a,b)
+#define IDirectPlay8AddressIP_GetSockAddress(p,a,b) (p)->lpVtbl->GetSockAddress(a,b)
+#define IDirectPlay8AddressIP_GetLocalAddress(p,a,b) (p)->lpVtbl->GetLocalAddress(a,b)
+#define IDirectPlay8AddressIP_GetAddress(p,a,b,c) (p)->lpVtbl->GetAddress(a,b,c)
+#else
/*** IUnknown methods ***/
#define IDirectPlay8AddressIP_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
#define IDirectPlay8AddressIP_AddRef(p) (p)->AddRef()