VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/Graphics/Wine/include/dplobby.h@ 29775

Last change on this file since 29775 was 16477, checked in by vboxsync, 16 years ago

LGPL disclaimer by filemuncher

  • Property svn:eol-style set to native
File size: 23.1 KB
Line 
1/*
2 * Copyright (C) 1999 Francois Gouget
3 * Copyright (C) 1999 Peter Hunnisett
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 */
19
20/*
21 * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
22 * other than GPL or LGPL is available it will apply instead, Sun elects to use only
23 * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
24 * a choice of LGPL license versions is made available with the language indicating
25 * that LGPLv2 or any later version may be used, or where a choice of which version
26 * of the LGPL is applied is otherwise unspecified.
27 */
28
29#ifndef __WINE_DPLOBBY_H
30#define __WINE_DPLOBBY_H
31
32#include <dplay.h>
33
34#ifdef __cplusplus
35extern "C" {
36#endif /* defined(__cplusplus) */
37
38/*****************************************************************************
39 * Predeclare the interfaces
40 */
41DEFINE_GUID(CLSID_DirectPlayLobby, 0x2fe8f810, 0xb2a5, 0x11d0, 0xa7, 0x87, 0x0, 0x0, 0xf8, 0x3, 0xab, 0xfc);
42
43DEFINE_GUID(IID_IDirectPlayLobby, 0xaf465c71, 0x9588, 0x11cf, 0xa0, 0x20, 0x0, 0xaa, 0x0, 0x61, 0x57, 0xac);
44typedef struct IDirectPlayLobby *LPDIRECTPLAYLOBBY;
45
46DEFINE_GUID(IID_IDirectPlayLobbyA, 0x26c66a70, 0xb367, 0x11cf, 0xa0, 0x24, 0x0, 0xaa, 0x0, 0x61, 0x57, 0xac);
47typedef struct IDirectPlayLobby IDirectPlayLobbyA,*LPDIRECTPLAYLOBBYA;
48
49DEFINE_GUID(IID_IDirectPlayLobby2, 0x194c220, 0xa303, 0x11d0, 0x9c, 0x4f, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e);
50typedef struct IDirectPlayLobby2 *LPDIRECTPLAYLOBBY2;
51
52DEFINE_GUID(IID_IDirectPlayLobby2A, 0x1bb4af80, 0xa303, 0x11d0, 0x9c, 0x4f, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e);
53typedef struct IDirectPlayLobby2 IDirectPlayLobby2A, *LPDIRECTPLAYLOBBY2A;
54
55DEFINE_GUID(IID_IDirectPlayLobby3, 0x2db72490, 0x652c, 0x11d1, 0xa7, 0xa8, 0x0, 0x0, 0xf8, 0x3, 0xab, 0xfc);
56typedef struct IDirectPlayLobby3 *LPDIRECTPLAYLOBBY3;
57
58DEFINE_GUID(IID_IDirectPlayLobby3A, 0x2db72491, 0x652c, 0x11d1, 0xa7, 0xa8, 0x0, 0x0, 0xf8, 0x3, 0xab, 0xfc);
59typedef struct IDirectPlayLobby3 IDirectPlayLobby3A, *LPDIRECTPLAYLOBBY3A;
60
61
62/*****************************************************************************
63 * DirectPlayLobby Property GUIDs used in lobby messages
64 */
65
66/* DPLPROPERTY_MessagesSupported {762CCDA1-D916-11d0-BA39-00C04FD7ED67}.
67 * Purpose: Request if the lobby supports standard (?).
68 * Response: Answer is a BOOL. TRUE if supports the standard (?) and FALSE otherwise. Of course, it might not respond at all.
69 */
70DEFINE_GUID(DPLPROPERTY_MessagesSupported, 0x762ccda1, 0xd916, 0x11d0, 0xba, 0x39, 0x0, 0xc0, 0x4f, 0xd7, 0xed, 0x67);
71
72/* DPLPROPERTY_LobbyGuid {F56920A0-D218-11d0-BA39-00C04FD7ED67}.
73 * Purpose: Request the GUID that identifies the lobby version that the application is communicating with.
74 * Response: The GUID which identifies the lobby version
75 */
76DEFINE_GUID(DPLPROPERTY_LobbyGuid, 0xf56920a0, 0xd218, 0x11d0, 0xba, 0x39, 0x0, 0xc0, 0x4f, 0xd7, 0xed, 0x67);
77
78/* DPLPROPERTY_PlayerGuid {B4319322-D20D-11d0-BA39-00C04FD7ED67}
79 * Purpose: Request the GUID that identifies the player for this particular machine.
80 * Response: DPLDATA_PLAYERDATA structure.
81 */
82DEFINE_GUID(DPLPROPERTY_PlayerGuid, 0xb4319322, 0xd20d, 0x11d0, 0xba, 0x39, 0x0, 0xc0, 0x4f, 0xd7, 0xed, 0x67);
83
84/* DPLPROPERTY_PlayerScore {48784000-D219-11d0-BA39-00C04FD7ED67}
85 * Purpose: Used to send a score of a player to the lobby. The format is an array of long integers.
86 * Response: I don't think there is one.
87 */
88DEFINE_GUID(DPLPROPERTY_PlayerScore, 0x48784000, 0xd219, 0x11d0, 0xba, 0x39, 0x0, 0xc0, 0x4f, 0xd7, 0xed, 0x67);
89
90
91
92/*****************************************************************************
93 * LOBBY structures associated with GUID messages
94 */
95
96typedef struct tagDPLDATA_PLAYERGUID
97{
98 GUID guidPlayer;
99 DWORD dwPlayerFlags;
100} DPLDATA_PLAYERGUID, *LPDPLDATA_PLAYERGUID;
101
102typedef struct tagDPLDATA_PLAYERSCORE
103{
104 DWORD dwScoreCount;
105 LONG Score[1];
106} DPLDATA_PLAYERSCORE, *LPDPLDATA_PLAYERSCORE;
107
108
109/*****************************************************************************
110 * LOBBY messages and message data structures.
111 *
112 * System messages can be identified by dwMessageFlags having a value of DPLMSG_SYSTEM
113 * after a call to ReceiveLobbyMessage.
114 *
115 * Standard messages can be indentified by dwMessageFlags having a value of DPLMSG_STANDARD
116 * after a call to ReceiveLobbyMessage.
117 */
118
119/* DPLobby1 definition required for backwards compatibility */
120#define DPLMSG_SYSTEM 0x00000001
121#define DPLMSG_STANDARD 0x00000002
122#define DPLAD_SYSTEM DPLMSG_SYSTEM
123
124
125/* System messages - dwType field for messages */
126#define DPLSYS_CONNECTIONSETTINGSREAD 0x00000001
127#define DPLSYS_DPLAYCONNECTFAILED 0x00000002
128#define DPLSYS_DPLAYCONNECTSUCCEEDED 0x00000003
129#define DPLSYS_APPTERMINATED 0x00000004
130#define DPLSYS_SETPROPERTY 0x00000005
131#define DPLSYS_SETPROPERTYRESPONSE 0x00000006
132#define DPLSYS_GETPROPERTY 0x00000007
133#define DPLSYS_GETPROPERTYRESPONSE 0x00000008
134#define DPLSYS_NEWSESSIONHOST 0x00000009
135#define DPLSYS_NEWCONNECTIONSETTINGS 0x0000000A
136
137
138
139/* Used to indentify the message type */
140typedef struct tagDPLMSG_GENERIC
141{
142 DWORD dwType; /* Message type */
143} DPLMSG_GENERIC, *LPDPLMSG_GENERIC;
144
145/* Generic format for system messages - see above */
146typedef struct tagDPLMSG_SYSTEMMESSAGE
147{
148 DWORD dwType; /* Message type */
149 GUID guidInstance; /* Instance GUID of the dplay session the message corresponds to */
150} DPLMSG_SYSTEMMESSAGE, *LPDPLMSG_SYSTEMMESSAGE;
151
152/* Generic message to set a property - see property GUIDs above */
153typedef struct tagDPLMSG_SETPROPERTY
154{
155 DWORD dwType; /* Message type */
156 DWORD dwRequestID; /* Request ID (DPL_NOCONFIRMATION if no confirmation desired) */
157 GUID guidPlayer; /* Player GUID */
158 GUID guidPropertyTag; /* Property GUID */
159 DWORD dwDataSize; /* Size of data */
160 DWORD dwPropertyData[1]; /* Buffer containing data */
161} DPLMSG_SETPROPERTY, *LPDPLMSG_SETPROPERTY;
162
163#define DPL_NOCONFIRMATION 0L
164
165/* Reply to DPLMSG_SETPROPERTY */
166typedef struct tagDPLMSG_SETPROPERTYRESPONSE
167{
168 DWORD dwType; /* Message type */
169 DWORD dwRequestID; /* Request ID */
170 GUID guidPlayer; /* Player GUID */
171 GUID guidPropertyTag; /* Property GUID */
172 HRESULT hr; /* Return Code */
173} DPLMSG_SETPROPERTYRESPONSE, *LPDPLMSG_SETPROPERTYRESPONSE;
174
175/* Request to get the present value of a property */
176typedef struct tagDPLMSG_GETPROPERTY
177{
178 DWORD dwType; /* Message type */
179 DWORD dwRequestID; /* Request ID */
180 GUID guidPlayer; /* Player GUID */
181 GUID guidPropertyTag; /* Property GUID */
182} DPLMSG_GETPROPERTY, *LPDPLMSG_GETPROPERTY;
183
184/* Response to a request to get the present value of a property */
185typedef struct tagDPLMSG_GETPROPERTYRESPONSE
186{
187 DWORD dwType; /* Message type */
188 DWORD dwRequestID; /* Request ID */
189 GUID guidPlayer; /* Player GUID */
190 GUID guidPropertyTag; /* Property GUID */
191 HRESULT hr; /* Return Code */
192 DWORD dwDataSize; /* Size of data */
193 DWORD dwPropertyData[1]; /* Buffer containing data */
194} DPLMSG_GETPROPERTYRESPONSE, *LPDPLMSG_GETPROPERTYRESPONSE;
195
196/* Standard message in response to a session host migration to a new client */
197typedef struct tagDPLMSG_NEWSESSIONHOST
198{
199 DWORD dwType; /* Message type */
200 GUID guidInstance; /* GUID Instance of the session */
201} DPLMSG_NEWSESSIONHOST, *LPDPLMSG_NEWSESSIONHOST;
202
203/*****************************************************************************
204 * DirectPlay Address ID's
205 * A DirectPlay address is composed of multiple data chunks, each associated with
206 * a GUID to give significance to the type of data. All chunks have an associated
207 * size so that unknown chunks can be ignored for backwards compatibility!
208 * EnumAddresses function is used to parse the address data chunks.
209 */
210
211/* DPAID_TotalSize {1318F560-912C-11d0-9DAA-00A0C90A43CB}
212 * Chunk purpose: Chunk is a DWORD containing the size of the entire DPADDRESS struct
213 */
214DEFINE_GUID(DPAID_TotalSize, 0x1318f560, 0x912c, 0x11d0, 0x9d, 0xaa, 0x0, 0xa0, 0xc9, 0xa, 0x43, 0xcb);
215
216/* DPAID_ServiceProvider {07D916C0-E0AF-11cf-9C4E-00A0C905425E}
217 * Chunk purpose: Chunk is a GUID indicated what service provider created the chunk.
218 */
219DEFINE_GUID(DPAID_ServiceProvider, 0x7d916c0, 0xe0af, 0x11cf, 0x9c, 0x4e, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e);
220
221/* DPAID_LobbyProvider {59B95640-9667-11d0-A77D-0000F803ABFC}
222 * Chunk purpose: Chunk is a GUID indicating what lobby provider created the chunk.
223 */
224DEFINE_GUID(DPAID_LobbyProvider, 0x59b95640, 0x9667, 0x11d0, 0xa7, 0x7d, 0x0, 0x0, 0xf8, 0x3, 0xab, 0xfc);
225
226/* DPAID_Phone {78EC89A0-E0AF-11cf-9C4E-00A0C905425E} -- ANSI
227 * DPAID_PhoneW {BA5A7A70-9DBF-11d0-9CC1-00A0C905425E} -- UNICODE
228 * Chunk purpose: Chunk is a phone number in ANSI or UNICODE format
229 */
230DEFINE_GUID(DPAID_Phone, 0x78ec89a0, 0xe0af, 0x11cf, 0x9c, 0x4e, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e);
231DEFINE_GUID(DPAID_PhoneW, 0xba5a7a70, 0x9dbf, 0x11d0, 0x9c, 0xc1, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e);
232
233/* DPAID_Modem {F6DCC200-A2FE-11d0-9C4F-00A0C905425E} -- ANSI
234 * DPAID_ModemW {01FD92E0-A2FF-11d0-9C4F-00A0C905425E} -- UNICODE
235 * Chunk purpose: Chunk is a modem name registered with TAPI
236 */
237DEFINE_GUID(DPAID_Modem, 0xf6dcc200, 0xa2fe, 0x11d0, 0x9c, 0x4f, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e);
238DEFINE_GUID(DPAID_ModemW, 0x1fd92e0, 0xa2ff, 0x11d0, 0x9c, 0x4f, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e);
239
240/* DPAID_INet {C4A54DA0-E0AF-11cf-9C4E-00A0C905425E} -- ANSI
241 * DPAID_INetW {E63232A0-9DBF-11d0-9CC1-00A0C905425E} -- UNICODE
242 * Chunk purpose: Chunk is a string containing a TCP/IP host name or IP address
243 */
244DEFINE_GUID(DPAID_INet, 0xc4a54da0, 0xe0af, 0x11cf, 0x9c, 0x4e, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e);
245DEFINE_GUID(DPAID_INetW, 0xe63232a0, 0x9dbf, 0x11d0, 0x9c, 0xc1, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e);
246
247/* DPAID_INetPort {E4524541-8EA5-11d1-8A96-006097B01411}
248 * Chunk purpose: Chunk is a port number used for creating TCP and UDP sockets. (WORD)
249 */
250DEFINE_GUID(DPAID_INetPort, 0xe4524541, 0x8ea5, 0x11d1, 0x8a, 0x96, 0x0, 0x60, 0x97, 0xb0, 0x14, 0x11);
251
252/* DPAID_ComPort {F2F0CE00-E0AF-11cf-9C4E-00A0C905425E}
253 * Chunk purpose: Chunk contains the description of a serial port.
254 */
255DEFINE_GUID(DPAID_ComPort, 0xf2f0ce00, 0xe0af, 0x11cf, 0x9c, 0x4e, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e);
256
257
258/* Header block for address data elements */
259typedef struct tagDPADDRESS
260{
261 GUID guidDataType;
262 DWORD dwDataSize;
263} DPADDRESS, *LPDPADDRESS;
264
265
266/* Used for specification of a communication port. Baud rate, stop bits and
267 * parity bits can be found in winbase.h. These are flow control constants only.
268 */
269#define DPCPA_NOFLOW 0 /* no flow control */
270#define DPCPA_XONXOFFFLOW 1 /* software flow control */
271#define DPCPA_RTSFLOW 2 /* hardware flow control with RTS */
272#define DPCPA_DTRFLOW 3 /* hardware flow control with DTR */
273#define DPCPA_RTSDTRFLOW 4 /* hardware flow control with RTS and DTR */
274
275typedef struct tagDPCOMPORTADDRESS
276{
277 DWORD dwComPort; /* COM port to use (1-4) */
278 DWORD dwBaudRate; /* baud rate (100-256k) */
279 DWORD dwStopBits; /* no. stop bits (1-2) */
280 DWORD dwParity; /* parity (none, odd, even, mark) */
281 DWORD dwFlowControl; /* flow control (none, xon/xoff, rts, dtr) */
282} DPCOMPORTADDRESS, *LPDPCOMPORTADDRESS;
283
284
285
286/****************************************************************************
287 * Miscellaneous
288 */
289
290typedef struct tagDPLAPPINFO
291{
292 DWORD dwSize;
293 GUID guidApplication;
294
295 union
296 {
297 LPSTR lpszAppNameA;
298 LPWSTR lpszAppName;
299 } DUMMYUNIONNAME;
300
301} DPLAPPINFO, *LPDPLAPPINFO;
302typedef const DPLAPPINFO *LPCDPLAPPINFO;
303
304typedef struct DPCOMPOUNDADDRESSELEMENT
305{
306 GUID guidDataType;
307 DWORD dwDataSize;
308 LPVOID lpData;
309} DPCOMPOUNDADDRESSELEMENT, *LPDPCOMPOUNDADDRESSELEMENT;
310typedef const DPCOMPOUNDADDRESSELEMENT *LPCDPCOMPOUNDADDRESSELEMENT;
311
312typedef struct tagDPAPPLICATIONDESC
313{
314 DWORD dwSize;
315 DWORD dwFlags;
316
317 union
318 {
319 LPSTR lpszApplicationNameA;
320 LPWSTR lpszApplicationName;
321 } DUMMYUNIONNAME1;
322
323 GUID guidApplication;
324
325 union
326 {
327 LPSTR lpszFilenameA;
328 LPWSTR lpszFilename;
329 } DUMMYUNIONNAME2;
330
331 union
332 {
333 LPSTR lpszCommandLineA;
334 LPWSTR lpszCommandLine;
335 } DUMMYUNIONNAME3;
336
337 union
338 {
339 LPSTR lpszPathA;
340 LPWSTR lpszPath;
341 } DUMMYUNIONNAME4;
342
343 union
344 {
345 LPSTR lpszCurrentDirectoryA;
346 LPWSTR lpszCurrentDirectory;
347 } DUMMYUNIONNAME5;
348
349 LPSTR lpszDescriptionA;
350 LPWSTR lpszDescriptionW;
351
352} DPAPPLICATIONDESC, *LPDPAPPLICATIONDESC;
353
354
355
356extern HRESULT WINAPI DirectPlayLobbyCreateW(LPGUID, LPDIRECTPLAYLOBBY*, IUnknown*, LPVOID, DWORD );
357extern HRESULT WINAPI DirectPlayLobbyCreateA(LPGUID, LPDIRECTPLAYLOBBYA*, IUnknown*, LPVOID, DWORD );
358#define DirectPlayLobbyCreate WINELIB_NAME_AW(DirectPlayLobbyCreate)
359
360
361typedef BOOL (CALLBACK *LPDPENUMADDRESSCALLBACK)(
362 REFGUID guidDataType,
363 DWORD dwDataSize,
364 LPCVOID lpData,
365 LPVOID lpContext );
366
367typedef BOOL (CALLBACK *LPDPLENUMADDRESSTYPESCALLBACK)(
368 REFGUID guidDataType,
369 LPVOID lpContext,
370 DWORD dwFlags );
371
372typedef BOOL (CALLBACK *LPDPLENUMLOCALAPPLICATIONSCALLBACK)(
373 LPCDPLAPPINFO lpAppInfo,
374 LPVOID lpContext,
375 DWORD dwFlags );
376
377/*****************************************************************************
378 * IDirectPlayLobby and IDirectPlayLobbyA interface
379 */
380#define INTERFACE IDirectPlayLobby
381DECLARE_INTERFACE_(IDirectPlayLobby,IUnknown)
382{
383 /*** IUnknown methods ***/
384 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
385 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
386 STDMETHOD_(ULONG,Release)(THIS) PURE;
387 /*** IDirectPlayLobby methods ***/
388 STDMETHOD(Connect)(THIS_ DWORD, LPDIRECTPLAY2*, IUnknown*) PURE;
389 STDMETHOD(CreateAddress)(THIS_ REFGUID, REFGUID, LPCVOID, DWORD, LPVOID, LPDWORD) PURE;
390 STDMETHOD(EnumAddress)(THIS_ LPDPENUMADDRESSCALLBACK, LPCVOID, DWORD, LPVOID) PURE;
391 STDMETHOD(EnumAddressTypes)(THIS_ LPDPLENUMADDRESSTYPESCALLBACK, REFGUID, LPVOID, DWORD) PURE;
392 STDMETHOD(EnumLocalApplications)(THIS_ LPDPLENUMLOCALAPPLICATIONSCALLBACK, LPVOID, DWORD) PURE;
393 STDMETHOD(GetConnectionSettings)(THIS_ DWORD, LPVOID, LPDWORD) PURE;
394 STDMETHOD(ReceiveLobbyMessage)(THIS_ DWORD, DWORD, LPDWORD, LPVOID, LPDWORD) PURE;
395 STDMETHOD(RunApplication)(THIS_ DWORD, LPDWORD, LPDPLCONNECTION, HANDLE) PURE;
396 STDMETHOD(SendLobbyMessage)(THIS_ DWORD, DWORD, LPVOID, DWORD) PURE;
397 STDMETHOD(SetConnectionSettings)(THIS_ DWORD, DWORD, LPDPLCONNECTION) PURE;
398 STDMETHOD(SetLobbyMessageEvent)(THIS_ DWORD, DWORD, HANDLE) PURE;
399};
400#undef INTERFACE
401
402/*****************************************************************************
403 * IDirectPlayLobby2 and IDirectPlayLobby2A interface
404 */
405#define INTERFACE IDirectPlayLobby2
406DECLARE_INTERFACE_(IDirectPlayLobby2,IDirectPlayLobby)
407{
408 /*** IUnknown methods ***/
409 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
410 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
411 STDMETHOD_(ULONG,Release)(THIS) PURE;
412 /*** IDirectPlayLobby methods ***/
413 STDMETHOD(Connect)(THIS_ DWORD, LPDIRECTPLAY2*, IUnknown*) PURE;
414 STDMETHOD(CreateAddress)(THIS_ REFGUID, REFGUID, LPCVOID, DWORD, LPVOID, LPDWORD) PURE;
415 STDMETHOD(EnumAddress)(THIS_ LPDPENUMADDRESSCALLBACK, LPCVOID, DWORD, LPVOID) PURE;
416 STDMETHOD(EnumAddressTypes)(THIS_ LPDPLENUMADDRESSTYPESCALLBACK, REFGUID, LPVOID, DWORD) PURE;
417 STDMETHOD(EnumLocalApplications)(THIS_ LPDPLENUMLOCALAPPLICATIONSCALLBACK, LPVOID, DWORD) PURE;
418 STDMETHOD(GetConnectionSettings)(THIS_ DWORD, LPVOID, LPDWORD) PURE;
419 STDMETHOD(ReceiveLobbyMessage)(THIS_ DWORD, DWORD, LPDWORD, LPVOID, LPDWORD) PURE;
420 STDMETHOD(RunApplication)(THIS_ DWORD, LPDWORD, LPDPLCONNECTION, HANDLE) PURE;
421 STDMETHOD(SendLobbyMessage)(THIS_ DWORD, DWORD, LPVOID, DWORD) PURE;
422 STDMETHOD(SetConnectionSettings)(THIS_ DWORD, DWORD, LPDPLCONNECTION) PURE;
423 STDMETHOD(SetLobbyMessageEvent)(THIS_ DWORD, DWORD, HANDLE) PURE;
424 /*** IDirectPlayLobby2 methods ***/
425 STDMETHOD(CreateCompoundAddress)(THIS_ LPCDPCOMPOUNDADDRESSELEMENT, DWORD, LPVOID, LPDWORD) PURE;
426};
427#undef INTERFACE
428
429/*****************************************************************************
430 * IDirectPlayLobby3 and IDirectPlayLobby3A interface
431 */
432#define INTERFACE IDirectPlayLobby3
433DECLARE_INTERFACE_(IDirectPlayLobby3,IDirectPlayLobby2)
434{
435 /*** IUnknown methods ***/
436 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
437 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
438 STDMETHOD_(ULONG,Release)(THIS) PURE;
439 /*** IDirectPlayLobby methods ***/
440 STDMETHOD(Connect)(THIS_ DWORD, LPDIRECTPLAY2*, IUnknown*) PURE;
441 STDMETHOD(CreateAddress)(THIS_ REFGUID, REFGUID, LPCVOID, DWORD, LPVOID, LPDWORD) PURE;
442 STDMETHOD(EnumAddress)(THIS_ LPDPENUMADDRESSCALLBACK, LPCVOID, DWORD, LPVOID) PURE;
443 STDMETHOD(EnumAddressTypes)(THIS_ LPDPLENUMADDRESSTYPESCALLBACK, REFGUID, LPVOID, DWORD) PURE;
444 STDMETHOD(EnumLocalApplications)(THIS_ LPDPLENUMLOCALAPPLICATIONSCALLBACK, LPVOID, DWORD) PURE;
445 STDMETHOD(GetConnectionSettings)(THIS_ DWORD, LPVOID, LPDWORD) PURE;
446 STDMETHOD(ReceiveLobbyMessage)(THIS_ DWORD, DWORD, LPDWORD, LPVOID, LPDWORD) PURE;
447 STDMETHOD(RunApplication)(THIS_ DWORD, LPDWORD, LPDPLCONNECTION, HANDLE) PURE;
448 STDMETHOD(SendLobbyMessage)(THIS_ DWORD, DWORD, LPVOID, DWORD) PURE;
449 STDMETHOD(SetConnectionSettings)(THIS_ DWORD, DWORD, LPDPLCONNECTION) PURE;
450 STDMETHOD(SetLobbyMessageEvent)(THIS_ DWORD, DWORD, HANDLE) PURE;
451 /*** IDirectPlayLobby2 methods ***/
452 STDMETHOD(CreateCompoundAddress)(THIS_ LPCDPCOMPOUNDADDRESSELEMENT, DWORD, LPVOID, LPDWORD) PURE;
453 /*** IDirectPlayLobby3 methods ***/
454 STDMETHOD(ConnectEx)(THIS_ DWORD, REFIID, LPVOID *, IUnknown *) PURE;
455 STDMETHOD(RegisterApplication)(THIS_ DWORD, LPDPAPPLICATIONDESC) PURE;
456 STDMETHOD(UnregisterApplication)(THIS_ DWORD, REFGUID) PURE;
457 STDMETHOD(WaitForConnectionSettings)(THIS_ DWORD) PURE;
458};
459#undef INTERFACE
460
461#if !defined(__cplusplus) || defined(CINTERFACE)
462/*** IUnknown methods ***/
463#define IDirectPlayLobby_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
464#define IDirectPlayLobby_AddRef(p) (p)->lpVtbl->AddRef(p)
465#define IDirectPlayLobby_Release(p) (p)->lpVtbl->Release(p)
466/*** IDirectPlayLobby methods ***/
467#define IDirectPlayLobby_Connect(p,a,b,c) (p)->lpVtbl->Connect(p,a,b,c)
468#define IDirectPlayLobby_CreateAddress(p,a,b,c,d,e,f) (p)->lpVtbl->CreateAddress(p,a,b,c,d,e,f)
469#define IDirectPlayLobby_EnumAddress(p,a,b,c,d) (p)->lpVtbl->EnumAddress(p,a,b,c,d)
470#define IDirectPlayLobby_EnumAddressTypes(p,a,b,c,d) (p)->lpVtbl->EnumAddressTypes(p,a,b,c,d)
471#define IDirectPlayLobby_EnumLocalApplications(p,a,b,c) (p)->lpVtbl->EnumLocalApplications(p,a,b,c)
472#define IDirectPlayLobby_GetConnectionSettings(p,a,b,c) (p)->lpVtbl->GetConnectionSettings(p,a,b,c)
473#define IDirectPlayLobby_ReceiveLobbyMessage(p,a,b,c,d,e) (p)->lpVtbl->ReceiveLobbyMessage(p,a,b,c,d,e)
474#define IDirectPlayLobby_RunApplication(p,a,b,c,d) (p)->lpVtbl->RunApplication(p,a,b,c,d)
475#define IDirectPlayLobby_SendLobbyMessage(p,a,b,c,d) (p)->lpVtbl->SendLobbyMessage(p,a,b,c,d)
476#define IDirectPlayLobby_SetConnectionSettings(p,a,b,c) (p)->lpVtbl->SetConnectionSettings(p,a,b,c)
477#define IDirectPlayLobby_SetLobbyMessageEvent(p,a,b,c) (p)->lpVtbl->SetLobbyMessageEvent(p,a,b,c)
478/*** IDirectPlayLobby2 methods ***/
479#define IDirectPlayLobby_CreateCompoundAddress(p,a,b,c,d) (p)->lpVtbl->CreateCompoundAddress(p,a,b,c,d)
480/*** IDirectPlayLobby3 methods ***/
481#define IDirectPlayLobby_ConnectEx(p,a,b,c,d) (p)->lpVtbl->ConnectEx(p,a,b,c,d)
482#define IDirectPlayLobby_RegisterApplication(p,a,b) (p)->lpVtbl->RegisterApplication(p,a,b)
483#define IDirectPlayLobby_UnregisterApplication(p,a,b) (p)->lpVtbl->UnregisterApplication(p,a,b)
484#define IDirectPlayLobby_WaitForConnectionSettings(p,a) (p)->lpVtbl->WaitForConnectionSettings(p,a)
485#else
486/*** IUnknown methods ***/
487#define IDirectPlayLobby_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
488#define IDirectPlayLobby_AddRef(p) (p)->AddRef()
489#define IDirectPlayLobby_Release(p) (p)->Release()
490/*** IDirectPlayLobby methods ***/
491#define IDirectPlayLobby_Connect(p,a,b,c) (p)->Connect(a,b,c)
492#define IDirectPlayLobby_CreateAddress(p,a,b,c,d,e,f) (p)->CreateAddress(a,b,c,d,e,f)
493#define IDirectPlayLobby_EnumAddress(p,a,b,c,d) (p)->EnumAddress(a,b,c,d)
494#define IDirectPlayLobby_EnumAddressTypes(p,a,b,c,d) (p)->EnumAddressTypes(a,b,c,d)
495#define IDirectPlayLobby_EnumLocalApplications(p,a,b,c) (p)->EnumLocalApplications(a,b,c)
496#define IDirectPlayLobby_GetConnectionSettings(p,a,b,c) (p)->GetConnectionSettings(a,b,c)
497#define IDirectPlayLobby_ReceiveLobbyMessage(p,a,b,c,d,e) (p)->ReceiveLobbyMessage(a,b,c,d,e)
498#define IDirectPlayLobby_RunApplication(p,a,b,c,d) (p)->RunApplication(a,b,c,d)
499#define IDirectPlayLobby_SendLobbyMessage(p,a,b,c,d) (p)->SendLobbyMessage(a,b,c,d)
500#define IDirectPlayLobby_SetConnectionSettings(p,a,b,c) (p)->SetConnectionSettings(a,b,c)
501#define IDirectPlayLobby_SetLobbyMessageEvent(p,a,b,c) (p)->SetLobbyMessageEvent(a,b,c)
502/*** IDirectPlayLobby2 methods ***/
503#define IDirectPlayLobby_CreateCompoundAddress(p,a,b,c,d) (p)->CreateCompoundAddress(a,b,c,d)
504/*** IDirectPlayLobby3 methods ***/
505#define IDirectPlayLobby_ConnectEx(p,a,b,c,d) (p)->ConnectEx(a,b,c,d)
506#define IDirectPlayLobby_RegisterApplication(p,a,b) (p)->RegisterApplication(a,b)
507#define IDirectPlayLobby_UnregisterApplication(p,a,b) (p)->UnregisterApplication(a,b)
508#define IDirectPlayLobby_WaitForConnectionSettings(p,a) (p)->WaitForConnectionSettings(a)
509#endif
510
511/* Used for WaitForConnectionSettings */
512#define DPLWAIT_CANCEL 0x00000001
513
514#ifdef __cplusplus
515} /* extern "C" */
516#endif /* defined(__cplusplus) */
517
518#endif /* __WINE_DPLOBBY_H */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette