19#ifndef __WINE_DPLAY8_DPADDR_H
20#define __WINE_DPLAY8_DPADDR_H
37#define DPNA_DATATYPE_STRING 0x00000001
38#define DPNA_DATATYPE_DWORD 0x00000002
39#define DPNA_DATATYPE_GUID 0x00000003
40#define DPNA_DATATYPE_BINARY 0x00000004
41#define DPNA_DATATYPE_STRING_ANSI 0x00000005
42#define DPNA_DPNSVR_PORT 6073
43#define DPNA_INDEX_INVALID 0xFFFFFFFF
45#define DPNA_SEPARATOR_KEYVALUE L'='
46#define DPNA_SEPARATOR_KEYVALUE_A '='
47#define DPNA_SEPARATOR_USERDATA L'#'
48#define DPNA_SEPARATOR_USERDATA_A '#'
49#define DPNA_SEPARATOR_COMPONENT L';'
50#define DPNA_SEPARATOR_COMPONENT_A ';'
51#define DPNA_ESCAPECHAR L'%'
52#define DPNA_ESCAPECHAR_A '%'
54#define DPNA_HEADER_A "x-directplay:/"
55#define DPNA_KEY_APPLICATION_INSTANCE_A "applicationinstance"
56#define DPNA_KEY_BAUD_A "baud"
57#define DPNA_KEY_DEVICE_A "device"
58#define DPNA_KEY_FLOWCONTROL_A "flowcontrol"
59#define DPNA_KEY_HOSTNAME_A "hostname"
60#define DPNA_KEY_NAMEINFO_A "nameinfo"
61#define DPNA_KEY_PARITY_A "parity"
62#define DPNA_KEY_PHONENUMBER_A "phonenumber"
63#define DPNA_KEY_PORT_A "port"
64#define DPNA_KEY_PROCESSOR_A "processor"
65#define DPNA_KEY_PROGRAM_A "program"
66#define DPNA_KEY_PROVIDER_A "provider"
67#define DPNA_KEY_SCOPE_A "scope"
68#define DPNA_KEY_STOPBITS_A "stopbits"
69#define DPNA_KEY_TRAVERSALMODE_A "traversalmode"
71#define DPNA_STOP_BITS_ONE_A "1"
72#define DPNA_STOP_BITS_ONE_FIVE_A "1.5"
73#define DPNA_STOP_BITS_TWO_A "2"
74#define DPNA_PARITY_NONE_A "NONE"
75#define DPNA_PARITY_EVEN_A "EVEN"
76#define DPNA_PARITY_ODD_A "ODD"
77#define DPNA_PARITY_MARK_A "MARK"
78#define DPNA_PARITY_SPACE_A "SPACE"
79#define DPNA_FLOW_CONTROL_NONE_A "NONE"
80#define DPNA_FLOW_CONTROL_XONXOFF_A "XONXOFF"
81#define DPNA_FLOW_CONTROL_RTS_A "RTS"
82#define DPNA_FLOW_CONTROL_DTR_A "DTR"
83#define DPNA_FLOW_CONTROL_RTSDTR_A "RTSDTR"
84#define DPNA_VALUE_TCPIPPROVIDER_A "IP"
85#define DPNA_VALUE_IPXPROVIDER_A "IPX"
86#define DPNA_VALUE_MODEMPROVIDER_A "MODEM"
87#define DPNA_VALUE_SERIALPROVIDER_A "SERIAL"
90#if defined(_MSC_VER) || defined(__MINGW32__)
92# define DPNA_HEADER L"x-directplay:/"
93# define DPNA_KEY_APPLICATION_INSTANCE L"applicationinstance"
94# define DPNA_KEY_BAUD L"baud"
95# define DPNA_KEY_DEVICE L"device"
96# define DPNA_KEY_FLOWCONTROL L"flowcontrol"
97# define DPNA_KEY_HOSTNAME L"hostname"
98# define DPNA_KEY_NAMEINFO L"nameinfo"
99# define DPNA_KEY_PARITY L"parity"
100# define DPNA_KEY_PHONENUMBER L"phonenumber"
101# define DPNA_KEY_PORT L"port"
102# define DPNA_KEY_PROCESSOR L"processor"
103# define DPNA_KEY_PROGRAM L"program"
104# define DPNA_KEY_PROVIDER L"provider"
105# define DPNA_KEY_SCOPE L"scope"
106# define DPNA_KEY_STOPBITS L"stopbits"
107# define DPNA_KEY_TRAVERSALMODE L"traversalmode"
108# define DPNA_STOP_BITS_ONE L"1"
109# define DPNA_STOP_BITS_ONE_FIVE L"1.5"
110# define DPNA_STOP_BITS_TWO L"2"
111# define DPNA_PARITY_NONE L"NONE"
112# define DPNA_PARITY_EVEN L"EVEN"
113# define DPNA_PARITY_ODD L"ODD"
114# define DPNA_PARITY_MARK L"MARK"
115# define DPNA_PARITY_SPACE L"SPACE"
116# define DPNA_FLOW_CONTROL_NONE L"NONE"
117# define DPNA_FLOW_CONTROL_XONXOFF L"XONXOFF"
118# define DPNA_FLOW_CONTROL_RTS L"RTS"
119# define DPNA_FLOW_CONTROL_DTR L"DTR"
120# define DPNA_FLOW_CONTROL_RTSDTR L"RTSDTR"
121# define DPNA_VALUE_TCPIPPROVIDER L"IP"
122# define DPNA_VALUE_IPXPROVIDER L"IPX"
123# define DPNA_VALUE_MODEMPROVIDER L"MODEM"
124# define DPNA_VALUE_SERIALPROVIDER L"SERIAL"
128static const WCHAR DPNA_HEADER[] = {
'x',
'-',
'd',
'i',
'r',
'e',
'c',
't',
'p',
'l',
'a',
'y',
':',
'/',0 };
129static const WCHAR DPNA_KEY_APPLICATION_INSTANCE[] = {
'a',
'p',
'p',
'l',
'i',
'c',
'a',
't',
'i',
'o',
'n',
'i',
'n',
's',
't',
'a',
'n',
'c',
'e',0 };
132static const WCHAR DPNA_KEY_FLOWCONTROL[] = {
'f',
'l',
'o',
'w',
'c',
'o',
'n',
't',
'r',
'o',
'l',0 };
136static const WCHAR DPNA_KEY_PHONENUMBER[] = {
'p',
'h',
'o',
'n',
'e',
'n',
'u',
'm',
'b',
'e',
'r',0 };
143static const WCHAR DPNA_KEY_TRAVERSALMODE[] = {
't',
'r',
'a',
'v',
'e',
'r',
's',
'a',
'l',
'm',
'o',
'd',
'e',0 };
165#define DPNA_BAUD_RATE_9600 9600
166#define DPNA_BAUD_RATE_14400 14400
167#define DPNA_BAUD_RATE_19200 19200
168#define DPNA_BAUD_RATE_38400 38400
169#define DPNA_BAUD_RATE_56000 56000
170#define DPNA_BAUD_RATE_57600 57600
171#define DPNA_BAUD_RATE_115200 115200
176DEFINE_GUID(CLSID_DirectPlay8Address, 0x934a9523, 0xa3ca, 0x4bc5, 0xad, 0xa0, 0xd6, 0xd9, 0x5d, 0x97, 0x94, 0x21);
178DEFINE_GUID(IID_IDirectPlay8Address, 0x83783300, 0x4063, 0x4c8a, 0x9d, 0xb3, 0x82, 0x83, 0xa, 0x7f, 0xeb, 0x31);
180DEFINE_GUID(IID_IDirectPlay8AddressIP, 0xe5a0e990, 0x2bad, 0x430b, 0x87, 0xda, 0xa1, 0x42, 0xcf, 0x75, 0xde, 0x58);
187#define INTERFACE IDirectPlay8Address
218#if !defined(__cplusplus) || defined(CINTERFACE)
220#define IDirectPlay8Address_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
221#define IDirectPlay8Address_AddRef(p) (p)->lpVtbl->AddRef(p)
222#define IDirectPlay8Address_Release(p) (p)->lpVtbl->Release(p)
224#define IDirectPlay8Address_BuildFromURLW(p,a) (p)->lpVtbl->BuildFromURLW(p,a)
225#define IDirectPlay8Address_BuildFromURLA(p,a) (p)->lpVtbl->BuildFromURLA(p,a)
226#define IDirectPlay8Address_Duplicate(p,a) (p)->lpVtbl->Duplicate(p,a)
227#define IDirectPlay8Address_SetEqual(p,a) (p)->lpVtbl->SetEqual(p,a)
228#define IDirectPlay8Address_IsEqual(p,a) (p)->lpVtbl->IsEqual(p,a)
229#define IDirectPlay8Address_Clear(p) (p)->lpVtbl->Clear(p)
230#define IDirectPlay8Address_GetURLW(p,a,b) (p)->lpVtbl->GetURLW(p,a,b)
231#define IDirectPlay8Address_GetURLA(p,a,b) (p)->lpVtbl->GetURLA(p,a,b)
232#define IDirectPlay8Address_GetSP(p,a) (p)->lpVtbl->GetSP(p,a)
233#define IDirectPlay8Address_GetUserData(p,a,b) (p)->lpVtbl->GetUserData(p,a,b)
234#define IDirectPlay8Address_SetSP(p,a) (p)->lpVtbl->SetSP(p,a)
235#define IDirectPlay8Address_SetUserData(p,a,b) (p)->lpVtbl->SetUserData(p,a,b)
236#define IDirectPlay8Address_GetNumComponents(p,a) (p)->lpVtbl->GetNumComponents(p,a)
237#define IDirectPlay8Address_GetComponentByName(p,a,b,c,d) (p)->lpVtbl->GetComponentByName(p,a,b,c,d)
238#define IDirectPlay8Address_GetComponentByIndex(p,a,b,c,d,e,f) (p)->lpVtbl->GetComponentByIndex(p,a,b,c,d,e,f)
239#define IDirectPlay8Address_AddComponent(p,a,b,c,d) (p)->lpVtbl->AddComponent(p,a,b,c,d)
240#define IDirectPlay8Address_SetDevice(p,a) (p)->lpVtbl->SetDevice(p,a)
241#define IDirectPlay8Address_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
242#define IDirectPlay8Address_BuildFromDirectPlay4Address(p,a,b) (p)->lpVtbl->BuildFromDirectPlay4Address(p,a,b)
245#define IDirectPlay8Address_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
246#define IDirectPlay8Address_AddRef(p) (p)->AddRef()
247#define IDirectPlay8Address_Release(p) (p)->Release()
249#define IDirectPlay8Address_BuildFromURLW(p,a) (p)->BuildFromURLW(a)
250#define IDirectPlay8Address_BuildFromURLA(p,a) (p)->BuildFromURLA(a)
251#define IDirectPlay8Address_Duplicate(p,a) (p)->Duplicate(a)
252#define IDirectPlay8Address_SetEqual(p,a) (p)->SetEqual(a)
253#define IDirectPlay8Address_IsEqual(p,a) (p)->IsEqual(a)
254#define IDirectPlay8Address_Clear(p) (p)->Clear()
255#define IDirectPlay8Address_GetURLW(p,a,b) (p)->GetURLW(a,b)
256#define IDirectPlay8Address_GetURLA(p,a,b) (p)->GetURLA(a,b)
257#define IDirectPlay8Address_GetSP(p,a) (p)->GetSP(a)
258#define IDirectPlay8Address_GetUserData(p,a,b) (p)->GetUserData(a,b)
259#define IDirectPlay8Address_SetSP(p,a) (p)->SetSP(a)
260#define IDirectPlay8Address_SetUserData(p,a,b) (p)->SetUserData(a,b)
261#define IDirectPlay8Address_GetNumComponents(p,a) (p)->GetNumComponents(a)
262#define IDirectPlay8Address_GetComponentByName(p,a,b,c,d) (p)->GetComponentByName(a,b,c,d)
263#define IDirectPlay8Address_GetComponentByIndex(p,a,b,c,d,e,f) (p)->GetComponentByIndex(a,b,c,d,e,f)
264#define IDirectPlay8Address_AddComponent(p,a,b,c,d) (p)->AddComponent(a,b,c,d)
265#define IDirectPlay8Address_SetDevice(p,a) (p)->SetDevice(a)
266#define IDirectPlay8Address_GetDevice(p,a) (p)->GetDevice(a)
267#define IDirectPlay8Address_BuildFromDirectPlay4Address(p,a,b) (p)->BuildFromDirectPlay4Address(a,b)
273#define INTERFACE IDirectPlay8AddressIP
290#if !defined(__cplusplus) || defined(CINTERFACE)
292#define IDirectPlay8AddressIP_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(a,b)
293#define IDirectPlay8AddressIP_AddRef(p) (p)->lpVtbl->AddRef()
294#define IDirectPlay8AddressIP_Release(p) (p)->lpVtbl->Release()
296#define IDirectPlay8AddressIP_BuildFromSockAddr(p,a) (p)->lpVtbl->BuildFromSockAddr(a)
297#define IDirectPlay8AddressIP_BuildAddress(p,a,b) (p)->lpVtbl->BuildAddress(a,b)
298#define IDirectPlay8AddressIP_BuildLocalAddress(p,a,b) (p)->lpVtbl->BuildLocalAddress(a,b)
299#define IDirectPlay8AddressIP_GetSockAddress(p,a,b) (p)->lpVtbl->GetSockAddress(a,b)
300#define IDirectPlay8AddressIP_GetLocalAddress(p,a,b) (p)->lpVtbl->GetLocalAddress(a,b)
301#define IDirectPlay8AddressIP_GetAddress(p,a,b,c) (p)->lpVtbl->GetAddress(a,b,c)
304#define IDirectPlay8AddressIP_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
305#define IDirectPlay8AddressIP_AddRef(p) (p)->AddRef()
306#define IDirectPlay8AddressIP_Release(p) (p)->Release()
308#define IDirectPlay8AddressIP_BuildFromSockAddr(p,a) (p)->BuildFromSockAddr(a)
309#define IDirectPlay8AddressIP_BuildAddress(p,a,b) (p)->BuildAddress(a,b)
310#define IDirectPlay8AddressIP_BuildLocalAddress(p,a,b) (p)->BuildLocalAddress(a,b)
311#define IDirectPlay8AddressIP_GetSockAddress(p,a,b) (p)->GetSockAddress(a,b)
312#define IDirectPlay8AddressIP_GetLocalAddress(p,a,b) (p)->GetLocalAddress(a,b)
313#define IDirectPlay8AddressIP_GetAddress(p,a,b,c) (p)->GetAddress(a,b,c)
#define DECLARE_INTERFACE_(i, b)
_Check_return_ _In_ PQUERY_INTERFACE QueryInterface
static const WCHAR DPNA_STOP_BITS_ONE[]
HRESULT WINAPI DirectPlay8AddressCreate(const GUID *pcIID, LPVOID *ppvInterface, IUnknown *pUnknown)
static const WCHAR DPNA_KEY_PROCESSOR[]
static const WCHAR DPNA_KEY_STOPBITS[]
struct IDirectPlay8Address * LPDIRECTPLAY8ADDRESS
static const WCHAR DPNA_KEY_HOSTNAME[]
static const WCHAR DPNA_STOP_BITS_TWO[]
static const WCHAR DPNA_KEY_PROVIDER[]
static const WCHAR DPNA_VALUE_TCPIPPROVIDER[]
static const WCHAR DPNA_KEY_DEVICE[]
static const WCHAR DPNA_FLOW_CONTROL_NONE[]
static const WCHAR DPNA_PARITY_SPACE[]
static const WCHAR DPNA_VALUE_MODEMPROVIDER[]
static const WCHAR DPNA_PARITY_NONE[]
static const WCHAR DPNA_KEY_NAMEINFO[]
static const WCHAR DPNA_FLOW_CONTROL_RTSDTR[]
static const WCHAR DPNA_VALUE_SERIALPROVIDER[]
static const WCHAR DPNA_STOP_BITS_ONE_FIVE[]
static const WCHAR DPNA_KEY_PROGRAM[]
static const WCHAR DPNA_FLOW_CONTROL_RTS[]
static const WCHAR DPNA_KEY_SCOPE[]
static const WCHAR DPNA_KEY_PORT[]
struct IDirectPlay8AddressIP * PDIRECTPLAY8ADDRESSIP
static const WCHAR DPNA_KEY_PARITY[]
struct IDirectPlay8AddressIP * LPDIRECTPLAY8ADDRESSIP
static const WCHAR DPNA_PARITY_ODD[]
static const WCHAR DPNA_KEY_FLOWCONTROL[]
static const WCHAR DPNA_PARITY_MARK[]
static const WCHAR DPNA_FLOW_CONTROL_DTR[]
static const WCHAR DPNA_KEY_BAUD[]
static const WCHAR DPNA_KEY_TRAVERSALMODE[]
static const WCHAR DPNA_KEY_APPLICATION_INSTANCE[]
static const WCHAR DPNA_VALUE_IPXPROVIDER[]
static const WCHAR DPNA_HEADER[]
static const WCHAR DPNA_PARITY_EVEN[]
static const WCHAR DPNA_KEY_PHONENUMBER[]
static const WCHAR DPNA_FLOW_CONTROL_XONXOFF[]
struct IDirectPlay8Address * PDIRECTPLAY8ADDRESS
BOOL GetAddress(const WCHAR *, INTERNET_PORT, SOCKADDR *, int *, char *) DECLSPEC_HIDDEN
static ULONG WINAPI AddRef(IStream *iface)
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)