Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygendplobby.h
Go to the documentation of this file.
00001 /* 00002 * Copyright (C) 1999 Francois Gouget 00003 * Copyright (C) 1999 Peter Hunnisett 00004 * 00005 * This library is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU Lesser General Public 00007 * License as published by the Free Software Foundation; either 00008 * version 2.1 of the License, or (at your option) any later version. 00009 * 00010 * This library is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Lesser General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU Lesser General Public 00016 * License along with this library; if not, write to the Free Software 00017 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00018 */ 00019 00020 #ifndef __WINE_DPLOBBY_H 00021 #define __WINE_DPLOBBY_H 00022 00023 #include <dplay.h> 00024 00025 #ifdef __cplusplus 00026 extern "C" { 00027 #endif /* defined(__cplusplus) */ 00028 00029 /***************************************************************************** 00030 * Predeclare the interfaces 00031 */ 00032 DEFINE_GUID(CLSID_DirectPlayLobby, 0x2fe8f810, 0xb2a5, 0x11d0, 0xa7, 0x87, 0x0, 0x0, 0xf8, 0x3, 0xab, 0xfc); 00033 00034 DEFINE_GUID(IID_IDirectPlayLobby, 0xaf465c71, 0x9588, 0x11cf, 0xa0, 0x20, 0x0, 0xaa, 0x0, 0x61, 0x57, 0xac); 00035 typedef struct IDirectPlayLobby *LPDIRECTPLAYLOBBY; 00036 00037 DEFINE_GUID(IID_IDirectPlayLobbyA, 0x26c66a70, 0xb367, 0x11cf, 0xa0, 0x24, 0x0, 0xaa, 0x0, 0x61, 0x57, 0xac); 00038 typedef struct IDirectPlayLobby IDirectPlayLobbyA,*LPDIRECTPLAYLOBBYA; 00039 00040 DEFINE_GUID(IID_IDirectPlayLobby2, 0x194c220, 0xa303, 0x11d0, 0x9c, 0x4f, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e); 00041 typedef struct IDirectPlayLobby2 *LPDIRECTPLAYLOBBY2; 00042 00043 DEFINE_GUID(IID_IDirectPlayLobby2A, 0x1bb4af80, 0xa303, 0x11d0, 0x9c, 0x4f, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e); 00044 typedef struct IDirectPlayLobby2 IDirectPlayLobby2A, *LPDIRECTPLAYLOBBY2A; 00045 00046 DEFINE_GUID(IID_IDirectPlayLobby3, 0x2db72490, 0x652c, 0x11d1, 0xa7, 0xa8, 0x0, 0x0, 0xf8, 0x3, 0xab, 0xfc); 00047 typedef struct IDirectPlayLobby3 *LPDIRECTPLAYLOBBY3; 00048 00049 DEFINE_GUID(IID_IDirectPlayLobby3A, 0x2db72491, 0x652c, 0x11d1, 0xa7, 0xa8, 0x0, 0x0, 0xf8, 0x3, 0xab, 0xfc); 00050 typedef struct IDirectPlayLobby3 IDirectPlayLobby3A, *LPDIRECTPLAYLOBBY3A; 00051 00052 00053 /***************************************************************************** 00054 * DirectPlayLobby Property GUIDs used in lobby messages 00055 */ 00056 00057 /* DPLPROPERTY_MessagesSupported {762CCDA1-D916-11d0-BA39-00C04FD7ED67}. 00058 * Purpose: Request if the lobby supports standard (?). 00059 * Response: Answer is a BOOL. TRUE if supports the standard (?) and FALSE otherwise. Of course, it might not respond at all. 00060 */ 00061 DEFINE_GUID(DPLPROPERTY_MessagesSupported, 0x762ccda1, 0xd916, 0x11d0, 0xba, 0x39, 0x0, 0xc0, 0x4f, 0xd7, 0xed, 0x67); 00062 00063 /* DPLPROPERTY_LobbyGuid {F56920A0-D218-11d0-BA39-00C04FD7ED67}. 00064 * Purpose: Request the GUID that identifies the lobby version that the application is communicating with. 00065 * Response: The GUID which identifies the lobby version 00066 */ 00067 DEFINE_GUID(DPLPROPERTY_LobbyGuid, 0xf56920a0, 0xd218, 0x11d0, 0xba, 0x39, 0x0, 0xc0, 0x4f, 0xd7, 0xed, 0x67); 00068 00069 /* DPLPROPERTY_PlayerGuid {B4319322-D20D-11d0-BA39-00C04FD7ED67} 00070 * Purpose: Request the GUID that identifies the player for this particular machine. 00071 * Response: DPLDATA_PLAYERDATA structure. 00072 */ 00073 DEFINE_GUID(DPLPROPERTY_PlayerGuid, 0xb4319322, 0xd20d, 0x11d0, 0xba, 0x39, 0x0, 0xc0, 0x4f, 0xd7, 0xed, 0x67); 00074 00075 /* DPLPROPERTY_PlayerScore {48784000-D219-11d0-BA39-00C04FD7ED67} 00076 * Purpose: Used to send a score of a player to the lobby. The format is an array of long integers. 00077 * Response: I don't think there is one. 00078 */ 00079 DEFINE_GUID(DPLPROPERTY_PlayerScore, 0x48784000, 0xd219, 0x11d0, 0xba, 0x39, 0x0, 0xc0, 0x4f, 0xd7, 0xed, 0x67); 00080 00081 00082 00083 /***************************************************************************** 00084 * LOBBY structures associated with GUID messages 00085 */ 00086 00087 typedef struct tagDPLDATA_PLAYERGUID 00088 { 00089 GUID guidPlayer; 00090 DWORD dwPlayerFlags; 00091 } DPLDATA_PLAYERGUID, *LPDPLDATA_PLAYERGUID; 00092 00093 typedef struct tagDPLDATA_PLAYERSCORE 00094 { 00095 DWORD dwScoreCount; 00096 LONG Score[1]; 00097 } DPLDATA_PLAYERSCORE, *LPDPLDATA_PLAYERSCORE; 00098 00099 00100 /***************************************************************************** 00101 * LOBBY messages and message data structures. 00102 * 00103 * System messages can be identified by dwMessageFlags having a value of DPLMSG_SYSTEM 00104 * after a call to ReceiveLobbyMessage. 00105 * 00106 * Standard messages can be indentified by dwMessageFlags having a value of DPLMSG_STANDARD 00107 * after a call to ReceiveLobbyMessage. 00108 */ 00109 00110 /* DPLobby1 definition required for backwards compatibility */ 00111 #define DPLMSG_SYSTEM 0x00000001 00112 #define DPLMSG_STANDARD 0x00000002 00113 #define DPLAD_SYSTEM DPLMSG_SYSTEM 00114 00115 00116 /* System messages - dwType field for messages */ 00117 #define DPLSYS_CONNECTIONSETTINGSREAD 0x00000001 00118 #define DPLSYS_DPLAYCONNECTFAILED 0x00000002 00119 #define DPLSYS_DPLAYCONNECTSUCCEEDED 0x00000003 00120 #define DPLSYS_APPTERMINATED 0x00000004 00121 #define DPLSYS_SETPROPERTY 0x00000005 00122 #define DPLSYS_SETPROPERTYRESPONSE 0x00000006 00123 #define DPLSYS_GETPROPERTY 0x00000007 00124 #define DPLSYS_GETPROPERTYRESPONSE 0x00000008 00125 #define DPLSYS_NEWSESSIONHOST 0x00000009 00126 #define DPLSYS_NEWCONNECTIONSETTINGS 0x0000000A 00127 00128 00129 00130 /* Used to indentify the message type */ 00131 typedef struct tagDPLMSG_GENERIC 00132 { 00133 DWORD dwType; /* Message type */ 00134 } DPLMSG_GENERIC, *LPDPLMSG_GENERIC; 00135 00136 /* Generic format for system messages - see above */ 00137 typedef struct tagDPLMSG_SYSTEMMESSAGE 00138 { 00139 DWORD dwType; /* Message type */ 00140 GUID guidInstance; /* Instance GUID of the dplay session the message corresponds to */ 00141 } DPLMSG_SYSTEMMESSAGE, *LPDPLMSG_SYSTEMMESSAGE; 00142 00143 /* Generic message to set a property - see property GUIDs above */ 00144 typedef struct tagDPLMSG_SETPROPERTY 00145 { 00146 DWORD dwType; /* Message type */ 00147 DWORD dwRequestID; /* Request ID (DPL_NOCONFIRMATION if no confirmation desired) */ 00148 GUID guidPlayer; /* Player GUID */ 00149 GUID guidPropertyTag; /* Property GUID */ 00150 DWORD dwDataSize; /* Size of data */ 00151 DWORD dwPropertyData[1]; /* Buffer containing data */ 00152 } DPLMSG_SETPROPERTY, *LPDPLMSG_SETPROPERTY; 00153 00154 #define DPL_NOCONFIRMATION 0L 00155 00156 /* Reply to DPLMSG_SETPROPERTY */ 00157 typedef struct tagDPLMSG_SETPROPERTYRESPONSE 00158 { 00159 DWORD dwType; /* Message type */ 00160 DWORD dwRequestID; /* Request ID */ 00161 GUID guidPlayer; /* Player GUID */ 00162 GUID guidPropertyTag; /* Property GUID */ 00163 HRESULT hr; /* Return Code */ 00164 } DPLMSG_SETPROPERTYRESPONSE, *LPDPLMSG_SETPROPERTYRESPONSE; 00165 00166 /* Request to get the present value of a property */ 00167 typedef struct tagDPLMSG_GETPROPERTY 00168 { 00169 DWORD dwType; /* Message type */ 00170 DWORD dwRequestID; /* Request ID */ 00171 GUID guidPlayer; /* Player GUID */ 00172 GUID guidPropertyTag; /* Property GUID */ 00173 } DPLMSG_GETPROPERTY, *LPDPLMSG_GETPROPERTY; 00174 00175 /* Response to a request to get the present value of a property */ 00176 typedef struct tagDPLMSG_GETPROPERTYRESPONSE 00177 { 00178 DWORD dwType; /* Message type */ 00179 DWORD dwRequestID; /* Request ID */ 00180 GUID guidPlayer; /* Player GUID */ 00181 GUID guidPropertyTag; /* Property GUID */ 00182 HRESULT hr; /* Return Code */ 00183 DWORD dwDataSize; /* Size of data */ 00184 DWORD dwPropertyData[1]; /* Buffer containing data */ 00185 } DPLMSG_GETPROPERTYRESPONSE, *LPDPLMSG_GETPROPERTYRESPONSE; 00186 00187 /* Standard message in response to a session host migration to a new client */ 00188 typedef struct tagDPLMSG_NEWSESSIONHOST 00189 { 00190 DWORD dwType; /* Message type */ 00191 GUID guidInstance; /* GUID Instance of the session */ 00192 } DPLMSG_NEWSESSIONHOST, *LPDPLMSG_NEWSESSIONHOST; 00193 00194 /***************************************************************************** 00195 * DirectPlay Address ID's 00196 * A DirectPlay address is composed of multiple data chunks, each assocated with 00197 * a GUID to give significance to the type of data. All chunks have an associated 00198 * size so that unknown chunks can be ignored for backwards compatibility! 00199 * EnumAddresses function is used to parse the address data chunks. 00200 */ 00201 00202 /* DPAID_TotalSize {1318F560-912C-11d0-9DAA-00A0C90A43CB} 00203 * Chunk purpose: Chunk is a DWORD containing the size of the entire DPADDRESS struct 00204 */ 00205 DEFINE_GUID(DPAID_TotalSize, 0x1318f560, 0x912c, 0x11d0, 0x9d, 0xaa, 0x0, 0xa0, 0xc9, 0xa, 0x43, 0xcb); 00206 00207 /* DPAID_ServiceProvider {07D916C0-E0AF-11cf-9C4E-00A0C905425E} 00208 * Chunk purpose: Chunk is a GUID indicated what service provider created the chunk. 00209 */ 00210 DEFINE_GUID(DPAID_ServiceProvider, 0x7d916c0, 0xe0af, 0x11cf, 0x9c, 0x4e, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e); 00211 00212 /* DPAID_LobbyProvider {59B95640-9667-11d0-A77D-0000F803ABFC} 00213 * Chunk purpose: Chunk is a GUID indicating what lobby provider created the chunk. 00214 */ 00215 DEFINE_GUID(DPAID_LobbyProvider, 0x59b95640, 0x9667, 0x11d0, 0xa7, 0x7d, 0x0, 0x0, 0xf8, 0x3, 0xab, 0xfc); 00216 00217 /* DPAID_Phone {78EC89A0-E0AF-11cf-9C4E-00A0C905425E} -- ANSI 00218 * DPAID_PhoneW {BA5A7A70-9DBF-11d0-9CC1-00A0C905425E} -- UNICODE 00219 * Chunk purpose: Chunk is a phone number in ANSI or UNICODE format 00220 */ 00221 DEFINE_GUID(DPAID_Phone, 0x78ec89a0, 0xe0af, 0x11cf, 0x9c, 0x4e, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e); 00222 DEFINE_GUID(DPAID_PhoneW, 0xba5a7a70, 0x9dbf, 0x11d0, 0x9c, 0xc1, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e); 00223 00224 /* DPAID_Modem {F6DCC200-A2FE-11d0-9C4F-00A0C905425E} -- ANSI 00225 * DPAID_ModemW {01FD92E0-A2FF-11d0-9C4F-00A0C905425E} -- UNICODE 00226 * Chunk purpose: Chunk is a modem name registered with TAPI 00227 */ 00228 DEFINE_GUID(DPAID_Modem, 0xf6dcc200, 0xa2fe, 0x11d0, 0x9c, 0x4f, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e); 00229 DEFINE_GUID(DPAID_ModemW, 0x1fd92e0, 0xa2ff, 0x11d0, 0x9c, 0x4f, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e); 00230 00231 /* DPAID_INet {C4A54DA0-E0AF-11cf-9C4E-00A0C905425E} -- ANSI 00232 * DPAID_INetW {E63232A0-9DBF-11d0-9CC1-00A0C905425E} -- UNICODE 00233 * Chunk purpose: Chunk is a string containing a TCP/IP host name or IP address 00234 */ 00235 DEFINE_GUID(DPAID_INet, 0xc4a54da0, 0xe0af, 0x11cf, 0x9c, 0x4e, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e); 00236 DEFINE_GUID(DPAID_INetW, 0xe63232a0, 0x9dbf, 0x11d0, 0x9c, 0xc1, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e); 00237 00238 /* DPAID_INetPort {E4524541-8EA5-11d1-8A96-006097B01411} 00239 * Chunk purpose: Chunk is a port number used for creating TCP and UDP sockets. (WORD) 00240 */ 00241 DEFINE_GUID(DPAID_INetPort, 0xe4524541, 0x8ea5, 0x11d1, 0x8a, 0x96, 0x0, 0x60, 0x97, 0xb0, 0x14, 0x11); 00242 00243 /* DPAID_ComPort {F2F0CE00-E0AF-11cf-9C4E-00A0C905425E} 00244 * Chunk purpose: Chunk contains the description of a serial port. 00245 */ 00246 DEFINE_GUID(DPAID_ComPort, 0xf2f0ce00, 0xe0af, 0x11cf, 0x9c, 0x4e, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e); 00247 00248 00249 /* Header block for address data elements */ 00250 typedef struct tagDPADDRESS 00251 { 00252 GUID guidDataType; 00253 DWORD dwDataSize; 00254 } DPADDRESS, *LPDPADDRESS; 00255 00256 00257 /* Used for specification of a communication port. Baud rate, stop bits and 00258 * parity bits can be found in winbase.h. These are flow control constants only. 00259 */ 00260 #define DPCPA_NOFLOW 0 /* no flow control */ 00261 #define DPCPA_XONXOFFFLOW 1 /* software flow control */ 00262 #define DPCPA_RTSFLOW 2 /* hardware flow control with RTS */ 00263 #define DPCPA_DTRFLOW 3 /* hardware flow control with DTR */ 00264 #define DPCPA_RTSDTRFLOW 4 /* hardware flow control with RTS and DTR */ 00265 00266 typedef struct tagDPCOMPORTADDRESS 00267 { 00268 DWORD dwComPort; /* COM port to use (1-4) */ 00269 DWORD dwBaudRate; /* baud rate (100-256k) */ 00270 DWORD dwStopBits; /* no. stop bits (1-2) */ 00271 DWORD dwParity; /* parity (none, odd, even, mark) */ 00272 DWORD dwFlowControl; /* flow control (none, xon/xoff, rts, dtr) */ 00273 } DPCOMPORTADDRESS, *LPDPCOMPORTADDRESS; 00274 00275 00276 00277 /**************************************************************************** 00278 * Miscellaneous 00279 */ 00280 00281 typedef struct tagDPLAPPINFO 00282 { 00283 DWORD dwSize; 00284 GUID guidApplication; 00285 00286 union 00287 { 00288 LPSTR lpszAppNameA; 00289 LPWSTR lpszAppName; 00290 } DUMMYUNIONNAME; 00291 00292 } DPLAPPINFO, *LPDPLAPPINFO; 00293 typedef const DPLAPPINFO *LPCDPLAPPINFO; 00294 00295 typedef struct DPCOMPOUNDADDRESSELEMENT 00296 { 00297 GUID guidDataType; 00298 DWORD dwDataSize; 00299 LPVOID lpData; 00300 } DPCOMPOUNDADDRESSELEMENT, *LPDPCOMPOUNDADDRESSELEMENT; 00301 typedef const DPCOMPOUNDADDRESSELEMENT *LPCDPCOMPOUNDADDRESSELEMENT; 00302 00303 typedef struct tagDPAPPLICATIONDESC 00304 { 00305 DWORD dwSize; 00306 DWORD dwFlags; 00307 00308 union 00309 { 00310 LPSTR lpszApplicationNameA; 00311 LPWSTR lpszApplicationName; 00312 } DUMMYUNIONNAME1; 00313 00314 GUID guidApplication; 00315 00316 union 00317 { 00318 LPSTR lpszFilenameA; 00319 LPWSTR lpszFilename; 00320 } DUMMYUNIONNAME2; 00321 00322 union 00323 { 00324 LPSTR lpszCommandLineA; 00325 LPWSTR lpszCommandLine; 00326 } DUMMYUNIONNAME3; 00327 00328 union 00329 { 00330 LPSTR lpszPathA; 00331 LPWSTR lpszPath; 00332 } DUMMYUNIONNAME4; 00333 00334 union 00335 { 00336 LPSTR lpszCurrentDirectoryA; 00337 LPWSTR lpszCurrentDirectory; 00338 } DUMMYUNIONNAME5; 00339 00340 LPSTR lpszDescriptionA; 00341 LPWSTR lpszDescriptionW; 00342 00343 } DPAPPLICATIONDESC, *LPDPAPPLICATIONDESC; 00344 00345 00346 00347 extern HRESULT WINAPI DirectPlayLobbyCreateW(LPGUID, LPDIRECTPLAYLOBBY*, IUnknown*, LPVOID, DWORD ); 00348 extern HRESULT WINAPI DirectPlayLobbyCreateA(LPGUID, LPDIRECTPLAYLOBBYA*, IUnknown*, LPVOID, DWORD ); 00349 #define DirectPlayLobbyCreate WINELIB_NAME_AW(DirectPlayLobbyCreate) 00350 00351 00352 typedef BOOL (CALLBACK *LPDPENUMADDRESSCALLBACK)( 00353 REFGUID guidDataType, 00354 DWORD dwDataSize, 00355 LPCVOID lpData, 00356 LPVOID lpContext ); 00357 00358 typedef BOOL (CALLBACK *LPDPLENUMADDRESSTYPESCALLBACK)( 00359 REFGUID guidDataType, 00360 LPVOID lpContext, 00361 DWORD dwFlags ); 00362 00363 typedef BOOL (CALLBACK *LPDPLENUMLOCALAPPLICATIONSCALLBACK)( 00364 LPCDPLAPPINFO lpAppInfo, 00365 LPVOID lpContext, 00366 DWORD dwFlags ); 00367 00368 /***************************************************************************** 00369 * IDirectPlayLobby and IDirectPlayLobbyA interface 00370 */ 00371 #define INTERFACE IDirectPlayLobby 00372 DECLARE_INTERFACE_(IDirectPlayLobby,IUnknown) 00373 { 00374 /*** IUnknown methods ***/ 00375 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 00376 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00377 STDMETHOD_(ULONG,Release)(THIS) PURE; 00378 /*** IDirectPlayLobby methods ***/ 00379 STDMETHOD(Connect)(THIS_ DWORD, LPDIRECTPLAY2*, IUnknown*) PURE; 00380 STDMETHOD(CreateAddress)(THIS_ REFGUID, REFGUID, LPCVOID, DWORD, LPVOID, LPDWORD) PURE; 00381 STDMETHOD(EnumAddress)(THIS_ LPDPENUMADDRESSCALLBACK, LPCVOID, DWORD, LPVOID) PURE; 00382 STDMETHOD(EnumAddressTypes)(THIS_ LPDPLENUMADDRESSTYPESCALLBACK, REFGUID, LPVOID, DWORD) PURE; 00383 STDMETHOD(EnumLocalApplications)(THIS_ LPDPLENUMLOCALAPPLICATIONSCALLBACK, LPVOID, DWORD) PURE; 00384 STDMETHOD(GetConnectionSettings)(THIS_ DWORD, LPVOID, LPDWORD) PURE; 00385 STDMETHOD(ReceiveLobbyMessage)(THIS_ DWORD, DWORD, LPDWORD, LPVOID, LPDWORD) PURE; 00386 STDMETHOD(RunApplication)(THIS_ DWORD, LPDWORD, LPDPLCONNECTION, HANDLE) PURE; 00387 STDMETHOD(SendLobbyMessage)(THIS_ DWORD, DWORD, LPVOID, DWORD) PURE; 00388 STDMETHOD(SetConnectionSettings)(THIS_ DWORD, DWORD, LPDPLCONNECTION) PURE; 00389 STDMETHOD(SetLobbyMessageEvent)(THIS_ DWORD, DWORD, HANDLE) PURE; 00390 }; 00391 #undef INTERFACE 00392 00393 /***************************************************************************** 00394 * IDirectPlayLobby2 and IDirectPlayLobby2A interface 00395 */ 00396 #define INTERFACE IDirectPlayLobby2 00397 DECLARE_INTERFACE_(IDirectPlayLobby2,IDirectPlayLobby) 00398 { 00399 /*** IUnknown methods ***/ 00400 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 00401 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00402 STDMETHOD_(ULONG,Release)(THIS) PURE; 00403 /*** IDirectPlayLobby methods ***/ 00404 STDMETHOD(Connect)(THIS_ DWORD, LPDIRECTPLAY2*, IUnknown*) PURE; 00405 STDMETHOD(CreateAddress)(THIS_ REFGUID, REFGUID, LPCVOID, DWORD, LPVOID, LPDWORD) PURE; 00406 STDMETHOD(EnumAddress)(THIS_ LPDPENUMADDRESSCALLBACK, LPCVOID, DWORD, LPVOID) PURE; 00407 STDMETHOD(EnumAddressTypes)(THIS_ LPDPLENUMADDRESSTYPESCALLBACK, REFGUID, LPVOID, DWORD) PURE; 00408 STDMETHOD(EnumLocalApplications)(THIS_ LPDPLENUMLOCALAPPLICATIONSCALLBACK, LPVOID, DWORD) PURE; 00409 STDMETHOD(GetConnectionSettings)(THIS_ DWORD, LPVOID, LPDWORD) PURE; 00410 STDMETHOD(ReceiveLobbyMessage)(THIS_ DWORD, DWORD, LPDWORD, LPVOID, LPDWORD) PURE; 00411 STDMETHOD(RunApplication)(THIS_ DWORD, LPDWORD, LPDPLCONNECTION, HANDLE) PURE; 00412 STDMETHOD(SendLobbyMessage)(THIS_ DWORD, DWORD, LPVOID, DWORD) PURE; 00413 STDMETHOD(SetConnectionSettings)(THIS_ DWORD, DWORD, LPDPLCONNECTION) PURE; 00414 STDMETHOD(SetLobbyMessageEvent)(THIS_ DWORD, DWORD, HANDLE) PURE; 00415 /*** IDirectPlayLobby2 methods ***/ 00416 STDMETHOD(CreateCompoundAddress)(THIS_ LPCDPCOMPOUNDADDRESSELEMENT, DWORD, LPVOID, LPDWORD) PURE; 00417 }; 00418 #undef INTERFACE 00419 00420 /***************************************************************************** 00421 * IDirectPlayLobby3 and IDirectPlayLobby3A interface 00422 */ 00423 #define INTERFACE IDirectPlayLobby3 00424 DECLARE_INTERFACE_(IDirectPlayLobby3,IDirectPlayLobby2) 00425 { 00426 /*** IUnknown methods ***/ 00427 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 00428 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00429 STDMETHOD_(ULONG,Release)(THIS) PURE; 00430 /*** IDirectPlayLobby methods ***/ 00431 STDMETHOD(Connect)(THIS_ DWORD, LPDIRECTPLAY2*, IUnknown*) PURE; 00432 STDMETHOD(CreateAddress)(THIS_ REFGUID, REFGUID, LPCVOID, DWORD, LPVOID, LPDWORD) PURE; 00433 STDMETHOD(EnumAddress)(THIS_ LPDPENUMADDRESSCALLBACK, LPCVOID, DWORD, LPVOID) PURE; 00434 STDMETHOD(EnumAddressTypes)(THIS_ LPDPLENUMADDRESSTYPESCALLBACK, REFGUID, LPVOID, DWORD) PURE; 00435 STDMETHOD(EnumLocalApplications)(THIS_ LPDPLENUMLOCALAPPLICATIONSCALLBACK, LPVOID, DWORD) PURE; 00436 STDMETHOD(GetConnectionSettings)(THIS_ DWORD, LPVOID, LPDWORD) PURE; 00437 STDMETHOD(ReceiveLobbyMessage)(THIS_ DWORD, DWORD, LPDWORD, LPVOID, LPDWORD) PURE; 00438 STDMETHOD(RunApplication)(THIS_ DWORD, LPDWORD, LPDPLCONNECTION, HANDLE) PURE; 00439 STDMETHOD(SendLobbyMessage)(THIS_ DWORD, DWORD, LPVOID, DWORD) PURE; 00440 STDMETHOD(SetConnectionSettings)(THIS_ DWORD, DWORD, LPDPLCONNECTION) PURE; 00441 STDMETHOD(SetLobbyMessageEvent)(THIS_ DWORD, DWORD, HANDLE) PURE; 00442 /*** IDirectPlayLobby2 methods ***/ 00443 STDMETHOD(CreateCompoundAddress)(THIS_ LPCDPCOMPOUNDADDRESSELEMENT, DWORD, LPVOID, LPDWORD) PURE; 00444 /*** IDirectPlayLobby3 methods ***/ 00445 STDMETHOD(ConnectEx)(THIS_ DWORD, REFIID, LPVOID *, IUnknown *) PURE; 00446 STDMETHOD(RegisterApplication)(THIS_ DWORD, LPDPAPPLICATIONDESC) PURE; 00447 STDMETHOD(UnregisterApplication)(THIS_ DWORD, REFGUID) PURE; 00448 STDMETHOD(WaitForConnectionSettings)(THIS_ DWORD) PURE; 00449 }; 00450 #undef INTERFACE 00451 00452 #if !defined(__cplusplus) || defined(CINTERFACE) 00453 /*** IUnknown methods ***/ 00454 #define IDirectPlayLobby_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00455 #define IDirectPlayLobby_AddRef(p) (p)->lpVtbl->AddRef(p) 00456 #define IDirectPlayLobby_Release(p) (p)->lpVtbl->Release(p) 00457 /*** IDirectPlayLobby methods ***/ 00458 #define IDirectPlayLobby_Connect(p,a,b,c) (p)->lpVtbl->Connect(p,a,b,c) 00459 #define IDirectPlayLobby_CreateAddress(p,a,b,c,d,e,f) (p)->lpVtbl->CreateAddress(p,a,b,c,d,e,f) 00460 #define IDirectPlayLobby_EnumAddress(p,a,b,c,d) (p)->lpVtbl->EnumAddress(p,a,b,c,d) 00461 #define IDirectPlayLobby_EnumAddressTypes(p,a,b,c,d) (p)->lpVtbl->EnumAddressTypes(p,a,b,c,d) 00462 #define IDirectPlayLobby_EnumLocalApplications(p,a,b,c) (p)->lpVtbl->EnumLocalApplications(p,a,b,c) 00463 #define IDirectPlayLobby_GetConnectionSettings(p,a,b,c) (p)->lpVtbl->GetConnectionSettings(p,a,b,c) 00464 #define IDirectPlayLobby_ReceiveLobbyMessage(p,a,b,c,d,e) (p)->lpVtbl->ReceiveLobbyMessage(p,a,b,c,d,e) 00465 #define IDirectPlayLobby_RunApplication(p,a,b,c,d) (p)->lpVtbl->RunApplication(p,a,b,c,d) 00466 #define IDirectPlayLobby_SendLobbyMessage(p,a,b,c,d) (p)->lpVtbl->SendLobbyMessage(p,a,b,c,d) 00467 #define IDirectPlayLobby_SetConnectionSettings(p,a,b,c) (p)->lpVtbl->SetConnectionSettings(p,a,b,c) 00468 #define IDirectPlayLobby_SetLobbyMessageEvent(p,a,b,c) (p)->lpVtbl->SetLobbyMessageEvent(p,a,b,c) 00469 /*** IDirectPlayLobby2 methods ***/ 00470 #define IDirectPlayLobby_CreateCompoundAddress(p,a,b,c,d) (p)->lpVtbl->CreateCompoundAddress(p,a,b,c,d) 00471 /*** IDirectPlayLobby3 methods ***/ 00472 #define IDirectPlayLobby_ConnectEx(p,a,b,c,d) (p)->lpVtbl->ConnectEx(p,a,b,c,d) 00473 #define IDirectPlayLobby_RegisterApplication(p,a,b) (p)->lpVtbl->RegisterApplication(p,a,b) 00474 #define IDirectPlayLobby_UnregisterApplication(p,a,b) (p)->lpVtbl->UnregisterApplication(p,a,b) 00475 #define IDirectPlayLobby_WaitForConnectionSettings(p,a) (p)->lpVtbl->WaitForConnectionSettings(p,a) 00476 #else 00477 /*** IUnknown methods ***/ 00478 #define IDirectPlayLobby_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 00479 #define IDirectPlayLobby_AddRef(p) (p)->AddRef() 00480 #define IDirectPlayLobby_Release(p) (p)->Release() 00481 /*** IDirectPlayLobby methods ***/ 00482 #define IDirectPlayLobby_Connect(p,a,b,c) (p)->Connect(a,b,c) 00483 #define IDirectPlayLobby_CreateAddress(p,a,b,c,d,e,f) (p)->CreateAddress(a,b,c,d,e,f) 00484 #define IDirectPlayLobby_EnumAddress(p,a,b,c,d) (p)->EnumAddress(a,b,c,d) 00485 #define IDirectPlayLobby_EnumAddressTypes(p,a,b,c,d) (p)->EnumAddressTypes(a,b,c,d) 00486 #define IDirectPlayLobby_EnumLocalApplications(p,a,b,c) (p)->EnumLocalApplications(a,b,c) 00487 #define IDirectPlayLobby_GetConnectionSettings(p,a,b,c) (p)->GetConnectionSettings(a,b,c) 00488 #define IDirectPlayLobby_ReceiveLobbyMessage(p,a,b,c,d,e) (p)->ReceiveLobbyMessage(a,b,c,d,e) 00489 #define IDirectPlayLobby_RunApplication(p,a,b,c,d) (p)->RunApplication(a,b,c,d) 00490 #define IDirectPlayLobby_SendLobbyMessage(p,a,b,c,d) (p)->SendLobbyMessage(a,b,c,d) 00491 #define IDirectPlayLobby_SetConnectionSettings(p,a,b,c) (p)->SetConnectionSettings(a,b,c) 00492 #define IDirectPlayLobby_SetLobbyMessageEvent(p,a,b,c) (p)->SetLobbyMessageEvent(a,b,c) 00493 /*** IDirectPlayLobby2 methods ***/ 00494 #define IDirectPlayLobby_CreateCompoundAddress(p,a,b,c,d) (p)->CreateCompoundAddress(a,b,c,d) 00495 /*** IDirectPlayLobby3 methods ***/ 00496 #define IDirectPlayLobby_ConnectEx(p,a,b,c,d) (p)->ConnectEx(a,b,c,d) 00497 #define IDirectPlayLobby_RegisterApplication(p,a,b) (p)->RegisterApplication(a,b) 00498 #define IDirectPlayLobby_UnregisterApplication(p,a,b) (p)->UnregisterApplication(a,b) 00499 #define IDirectPlayLobby_WaitForConnectionSettings(p,a) (p)->WaitForConnectionSettings(a) 00500 #endif 00501 00502 /* Used for WaitForConnectionSettings */ 00503 #define DPLWAIT_CANCEL 0x00000001 00504 00505 #ifdef __cplusplus 00506 } /* extern "C" */ 00507 #endif /* defined(__cplusplus) */ 00508 00509 #endif /* __WINE_DPLOBBY_H */ Generated on Sat May 26 2012 04:30:06 for ReactOS by
1.7.6.1
|