ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

dplobby.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.