Simplified COM interface declarations, removing the need to define
both an xxx_METHODS and an xxx_IMETHODS macro.
diff --git a/include/dplay.h b/include/dplay.h
index 827131c..e893262 100644
--- a/include/dplay.h
+++ b/include/dplay.h
@@ -421,6 +421,7 @@
*/
#define INTERFACE IDirectPlay
#define IDirectPlay_METHODS \
+ IUnknown_METHODS \
STDMETHOD(AddPlayerToGroup)(THIS_ DPID idGroup, DPID idPlayer) PURE; \
STDMETHOD(Close)(THIS) PURE; \
STDMETHOD(CreatePlayer)(THIS_ LPDPID lpidPlayer, LPSTR lpPlayerName, LPSTR, LPHANDLE) PURE; \
@@ -443,9 +444,6 @@
STDMETHOD(SaveSession)(THIS_ LPSTR) PURE; \
STDMETHOD(Send)(THIS_ DPID idFrom, DPID idTo, DWORD dwFlags, LPVOID lpData, DWORD dwDataSize) PURE; \
STDMETHOD(SetPlayerName)(THIS_ DPID idPlayer, LPSTR lpPlayerName, LPSTR) PURE;
-#define IDirectPlay_IMETHODS \
- IUnknown_IMETHODS \
- IDirectPlay_METHODS
ICOM_DEFINE(IDirectPlay,IUnknown)
#undef INTERFACE
@@ -485,6 +483,7 @@
*/
#define INTERFACE IDirectPlay2
#define IDirectPlay2_METHODS \
+ IUnknown_METHODS \
STDMETHOD(AddPlayerToGroup)(THIS_ DPID idGroup, DPID idPlayer) PURE; \
STDMETHOD(Close)(THIS) PURE; \
STDMETHOD(CreateGroup)(THIS_ LPDPID lpidGroup, LPDPNAME lpGroupName, LPVOID lpData, DWORD dwDataSize, DWORD dwFlags) PURE; \
@@ -514,9 +513,6 @@
STDMETHOD(SetPlayerData)(THIS_ DPID idPlayer, LPVOID lpData, DWORD dwDataSize, DWORD dwFlags) PURE; \
STDMETHOD(SetPlayerName)(THIS_ DPID idPlayer, LPDPNAME lpPlayerName, DWORD dwFlags) PURE; \
STDMETHOD(SetSessionDesc)(THIS_ LPDPSESSIONDESC2 lpSessDesc, DWORD dwFlags) PURE;
-#define IDirectPlay2_IMETHODS \
- IUnknown_IMETHODS \
- IDirectPlay2_METHODS
ICOM_DEFINE(IDirectPlay2,IUnknown)
#undef INTERFACE
@@ -563,6 +559,7 @@
*/
#define INTERFACE IDirectPlay3
#define IDirectPlay3_METHODS \
+ IDirectPlay2_METHODS \
STDMETHOD(AddGroupToGroup)(THIS_ DPID idParentGroup, DPID idGroup) PURE; \
STDMETHOD(CreateGroupInGroup)(THIS_ DPID idParentGroup, LPDPID lpidGroup, LPDPNAME lpGroupName, LPVOID lpData, DWORD dwDataSize, DWORD dwFlags) PURE; \
STDMETHOD(DeleteGroupFromGroup)(THIS_ DPID idParentGroup, DPID idGroup) PURE; \
@@ -578,9 +575,6 @@
STDMETHOD(GetGroupParent)(THIS_ DPID idGroup, LPDPID lpidParent) PURE; \
STDMETHOD(GetPlayerAccount)(THIS_ DPID idPlayer, DWORD dwFlags, LPVOID lpData, LPDWORD lpdwDataSize) PURE; \
STDMETHOD(GetPlayerFlags)(THIS_ DPID idPlayer, LPDWORD lpdwFlags) PURE;
-#define IDirectPlay3_IMETHODS \
- IDirectPlay2_IMETHODS \
- IDirectPlay3_METHODS
ICOM_DEFINE(IDirectPlay3,IDirectPlay2)
#undef INTERFACE
@@ -642,16 +636,13 @@
*/
#define INTERFACE IDirectPlay4
#define IDirectPlay4_METHODS \
+ IDirectPlay3_METHODS \
STDMETHOD(GetGroupOwner)(THIS_ DPID , LPDPID ) PURE; \
STDMETHOD(SetGroupOwner)(THIS_ DPID , DPID ) PURE; \
STDMETHOD(SendEx)(THIS_ DPID , DPID , DWORD , LPVOID , DWORD , DWORD , DWORD , LPVOID , LPDWORD ) PURE; \
STDMETHOD(GetMessageQueue)(THIS_ DPID , DPID , DWORD , LPDWORD , LPDWORD ) PURE; \
STDMETHOD(CancelMessage)(THIS_ DWORD , DWORD ) PURE; \
STDMETHOD(CancelPriority)(THIS_ DWORD , DWORD , DWORD ) PURE;
-
-#define IDirectPlay4_IMETHODS \
- IDirectPlay3_IMETHODS \
- IDirectPlay4_METHODS
ICOM_DEFINE(IDirectPlay4,IDirectPlay3)
#undef INTERFACE