widl: Always check the runtimeclass interfaces presence.
[wine/zf.git] / include / dvoice.h
blob2b50e652af6c0b339dbd6e922014ef1810e50e50
1 /*
2 * DirectPlay Voice Interfaces
4 * Copyright (C) 2014 Alistair Leslie-Hughes
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 #ifndef __DVOICE_INCLUDED__
21 #define __DVOICE_INCLUDED__
23 #include <ole2.h>
24 #include <mmsystem.h>
25 #include <mmreg.h>
26 #include <msacm.h>
27 #include <dsound.h>
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
34 DEFINE_GUID(CLSID_DirectPlayVoiceClient, 0xb9f3eb85, 0xb781, 0x4ac1, 0x8d, 0x90, 0x93, 0xa0, 0x5e, 0xe3, 0x7d, 0x7d);
35 DEFINE_GUID(CLSID_DirectPlayVoiceServer, 0xd3f5b8e6, 0x9b78, 0x4a4c, 0x94, 0xea, 0xca, 0x23, 0x97, 0xb6, 0x63, 0xd3);
36 DEFINE_GUID(CLSID_DirectPlayVoiceTest, 0x0f0f094b, 0xb01c, 0x4091, 0xa1, 0x4d, 0xdd, 0x0c, 0xd8, 0x07, 0x71, 0x1a);
38 DEFINE_GUID(IID_IDirectPlayVoiceClient, 0x1dfdc8ea, 0xbcf7, 0x41d6, 0xb2, 0x95, 0xab, 0x64, 0xb3, 0xb2, 0x33, 0x06);
39 DEFINE_GUID(IID_IDirectPlayVoiceServer, 0xfaa1c173, 0x0468, 0x43b6, 0x8a, 0x2a, 0xea, 0x8a, 0x4f, 0x20, 0x76, 0xc9);
40 DEFINE_GUID(IID_IDirectPlayVoiceTest, 0xd26af734, 0x208b, 0x41da, 0x82, 0x24, 0xe0, 0xce, 0x79, 0x81, 0x0b, 0xe1);
42 DEFINE_GUID(DPVCTGUID_ADPCM, 0x699b52c1, 0xa885, 0x46a8, 0xa3, 0x08, 0x97, 0x17, 0x24, 0x19, 0xad, 0xc7);
43 DEFINE_GUID(DPVCTGUID_GSM, 0x24768c60, 0x5a0d, 0x11d3, 0x9b, 0xe4, 0x52, 0x54, 0x00, 0xd9, 0x85, 0xe7);
44 DEFINE_GUID(DPVCTGUID_NONE, 0x8de12fd4, 0x7cb3, 0x48ce, 0xa7, 0xe8, 0x9c, 0x47, 0xa2, 0x2e, 0x8a, 0xc5);
45 DEFINE_GUID(DPVCTGUID_SC03, 0x7d82a29b, 0x2242, 0x4f82, 0x8f, 0x39, 0x5d, 0x11, 0x53, 0xdf, 0x3e, 0x41);
46 DEFINE_GUID(DPVCTGUID_SC06, 0x53def900, 0x7168, 0x4633, 0xb4, 0x7f, 0xd1, 0x43, 0x91, 0x6a, 0x13, 0xc7);
47 DEFINE_GUID(DPVCTGUID_TRUESPEECH, 0xd7954361, 0x5a0b, 0x11d3, 0x9b, 0xe4, 0x52, 0x54, 0x00, 0xd9, 0x85, 0xe7);
48 DEFINE_GUID(DPVCTGUID_VR12, 0xfe44a9fe, 0x8ed4, 0x48bf, 0x9d, 0x66, 0x1b, 0x1a, 0xdf, 0xf9, 0xff, 0x6d);
50 #define DPVCTGUID_DEFAULT DPVCTGUID_SC03
52 typedef struct IDirectPlayVoiceClient *LPDIRECTPLAYVOICECLIENT, *PDIRECTPLAYVOICECLIENT;
53 typedef struct IDirectPlayVoiceServer *LPDIRECTPLAYVOICESERVER, *PDIRECTPLAYVOICESERVER;
54 typedef struct IDirectPlayVoiceTest *LPDIRECTPLAYVOICETEST, *PDIRECTPLAYVOICETEST;
57 typedef HRESULT (PASCAL *PDVMESSAGEHANDLER)(PVOID pvUserContext, DWORD dwMessageType, LPVOID lpMessage);
58 typedef PDVMESSAGEHANDLER LPDVMESSAGEHANDLER;
60 typedef DWORD DVID, *LPDVID, *PDVID;
62 #define DVMSGID_MINBASE DVMSGID_CREATEVOICEPLAYER
63 #define DVMSGID_CREATEVOICEPLAYER 0x0001
64 #define DVMSGID_DELETEVOICEPLAYER 0x0002
65 #define DVMSGID_SESSIONLOST 0x0003
66 #define DVMSGID_PLAYERVOICESTART 0x0004
67 #define DVMSGID_PLAYERVOICESTOP 0x0005
68 #define DVMSGID_RECORDSTART 0x0006
69 #define DVMSGID_RECORDSTOP 0x0007
70 #define DVMSGID_CONNECTRESULT 0x0008
71 #define DVMSGID_DISCONNECTRESULT 0x0009
72 #define DVMSGID_INPUTLEVEL 0x000A
73 #define DVMSGID_OUTPUTLEVEL 0x000B
74 #define DVMSGID_HOSTMIGRATED 0x000C
75 #define DVMSGID_SETTARGETS 0x000D
76 #define DVMSGID_PLAYEROUTPUTLEVEL 0x000E
77 #define DVMSGID_LOSTFOCUS 0x0010
78 #define DVMSGID_GAINFOCUS 0x0011
79 #define DVMSGID_LOCALHOSTSETUP 0x0012
80 #define DVMSGID_MAXBASE DVMSGID_LOCALHOSTSETUP
82 #define DVBUFFERAGGRESSIVENESS_MIN 0x00000001
83 #define DVBUFFERAGGRESSIVENESS_MAX 0x00000064
84 #define DVBUFFERAGGRESSIVENESS_DEFAULT 0x00000000
86 #define DVBUFFERQUALITY_MIN 0x00000001
87 #define DVBUFFERQUALITY_MAX 0x00000064
88 #define DVBUFFERQUALITY_DEFAULT 0x00000000
90 #define DVID_SERVERPLAYER 1
91 #define DVID_ALLPLAYERS 0
92 #define DVID_REMAINING 0xFFFFFFFF
94 #define DVINPUTLEVEL_MIN 0x00000000
95 #define DVINPUTLEVEL_MAX 0x00000063
97 #define DVNOTIFYPERIOD_MINPERIOD 20
99 #define DVPLAYBACKVOLUME_DEFAULT DSBVOLUME_MAX
101 #define DVRECORDVOLUME_LAST 0x00000001
104 #define DVTHRESHOLD_DEFAULT 0xFFFFFFFF
105 #define DVTHRESHOLD_MIN 0x00000000
106 #define DVTHRESHOLD_MAX 0x00000063
107 #define DVTHRESHOLD_UNUSED 0xFFFFFFFE
110 #define DVSESSIONTYPE_PEER 0x00000001
111 #define DVSESSIONTYPE_MIXING 0x00000002
112 #define DVSESSIONTYPE_FORWARDING 0x00000003
113 #define DVSESSIONTYPE_ECHO 0x00000004
115 #define DVCLIENTCONFIG_RECORDMUTE 0x00000001
116 #define DVCLIENTCONFIG_PLAYBACKMUTE 0x00000002
117 #define DVCLIENTCONFIG_MANUALVOICEACTIVATED 0x00000004
118 #define DVCLIENTCONFIG_AUTORECORDVOLUME 0x00000008
119 #define DVCLIENTCONFIG_MUTEGLOBAL 0x00000010
120 #define DVCLIENTCONFIG_AUTOVOICEACTIVATED 0x00000020
121 #define DVCLIENTCONFIG_ECHOSUPPRESSION 0x08000000
123 #define DVFLAGS_SYNC 0x00000001
124 #define DVFLAGS_QUERYONLY 0x00000002
125 #define DVFLAGS_NOHOSTMIGRATE 0x00000008
126 #define DVFLAGS_ALLOWBACK 0x00000010
128 #define DVSESSION_NOHOSTMIGRATION 0x00000001
129 #define DVSESSION_SERVERCONTROLTARGET 0x00000002
131 #define DVSOUNDCONFIG_NORMALMODE 0x00000001
132 #define DVSOUNDCONFIG_AUTOSELECT 0x00000002
133 #define DVSOUNDCONFIG_HALFDUPLEX 0x00000004
134 #define DVSOUNDCONFIG_NORECVOLAVAILABLE 0x00000010
135 #define DVSOUNDCONFIG_NOFOCUS 0x20000000
137 #define DVSOUNDCONFIG_SETCONVERSIONQUALITY 0x00000008
138 #define DVSOUNDCONFIG_STRICTFOCUS 0x40000000
139 #define DVPLAYERCAPS_HALFDUPLEX 0x00000001
140 #define DVPLAYERCAPS_LOCAL 0x00000002
142 typedef struct
144 DWORD dwSize;
145 DWORD dwFlags;
146 } DVCAPS, *LPDVCAPS, *PDVCAPS;
148 typedef struct
150 DWORD dwSize;
151 DWORD dwFlags;
152 LONG lRecordVolume;
153 LONG lPlaybackVolume;
154 DWORD dwThreshold;
155 DWORD dwBufferQuality;
156 DWORD dwBufferAggressiveness;
157 DWORD dwNotifyPeriod;
158 } DVCLIENTCONFIG, *LPDVCLIENTCONFIG, *PDVCLIENTCONFIG;
160 typedef struct
162 DWORD dwSize;
163 GUID guidType;
164 LPWSTR lpszName;
165 LPWSTR lpszDescription;
166 DWORD dwFlags;
167 DWORD dwMaxBitsPerSecond;
168 } DVCOMPRESSIONINFO, *LPDVCOMPRESSIONINFO, *PDVCOMPRESSIONINFO;
170 typedef struct
172 DWORD dwSize;
173 DWORD dwFlags;
174 DWORD dwSessionType;
175 GUID guidCT;
176 DWORD dwBufferQuality;
177 DWORD dwBufferAggressiveness;
178 } DVSESSIONDESC, *LPDVSESSIONDESC, *PDVSESSIONDESC;
180 typedef struct
182 DWORD dwSize;
183 DWORD dwFlags;
184 GUID guidPlaybackDevice;
185 LPDIRECTSOUND lpdsPlaybackDevice;
186 GUID guidCaptureDevice;
187 LPDIRECTSOUNDCAPTURE lpdsCaptureDevice;
188 HWND hwndAppWindow;
189 LPDIRECTSOUNDBUFFER lpdsMainBuffer;
190 DWORD dwMainBufferFlags;
191 DWORD dwMainBufferPriority;
192 } DVSOUNDDEVICECONFIG, *LPDVSOUNDDEVICECONFIG, *PDVSOUNDDEVICECONFIG;
194 typedef struct
196 DWORD dwSize;
197 HRESULT hrResult;
198 } DVMSG_CONNECTRESULT, *LPDVMSG_CONNECTRESULT, *PDVMSG_CONNECTRESULT;
200 typedef struct
202 DWORD dwSize;
203 DVID dvidPlayer;
204 DWORD dwFlags;
205 PVOID pvPlayerContext;
206 } DVMSG_CREATEVOICEPLAYER, *LPDVMSG_CREATEVOICEPLAYER, *PDVMSG_CREATEVOICEPLAYER;
208 typedef struct
210 DWORD dwSize;
211 DVID dvidPlayer;
212 PVOID pvPlayerContext;
213 } DVMSG_DELETEVOICEPLAYER, *LPDVMSG_DELETEVOICEPLAYER, *PDVMSG_DELETEVOICEPLAYER;
215 typedef struct
217 DWORD dwSize;
218 HRESULT hrResult;
219 } DVMSG_DISCONNECTRESULT, *LPDVMSG_DISCONNECTRESULT, *PDVMSG_DISCONNECTRESULT;
221 typedef struct
223 DWORD dwSize;
224 DVID dvidNewHostID;
225 LPDIRECTPLAYVOICESERVER pdvServerInterface;
226 } DVMSG_HOSTMIGRATED, *LPDVMSG_HOSTMIGRATED, *PDVMSG_HOSTMIGRATED;
228 typedef struct
230 DWORD dwSize;
231 DWORD dwPeakLevel;
232 LONG lRecordVolume;
233 PVOID pvLocalPlayerContext;
234 } DVMSG_INPUTLEVEL, *LPDVMSG_INPUTLEVEL, *PDVMSG_INPUTLEVEL;
236 typedef struct
238 DWORD dwSize;
239 PVOID pvContext;
240 PDVMESSAGEHANDLER pMessageHandler;
241 } DVMSG_LOCALHOSTSETUP, *LPDVMSG_LOCALHOSTSETUP, *PDVMSG_LOCALHOSTSETUP;
243 typedef struct
245 DWORD dwSize;
246 DWORD dwPeakLevel;
247 LONG lOutputVolume;
248 PVOID pvLocalPlayerContext;
249 } DVMSG_OUTPUTLEVEL, *LPDVMSG_OUTPUTLEVEL, *PDVMSG_OUTPUTLEVEL;
251 typedef struct
253 DWORD dwSize;
254 DVID dvidSourcePlayerID;
255 DWORD dwPeakLevel;
256 PVOID pvPlayerContext;
257 } DVMSG_PLAYEROUTPUTLEVEL, *LPDVMSG_PLAYEROUTPUTLEVEL, *PDVMSG_PLAYEROUTPUTLEVEL;
259 typedef struct
261 DWORD dwSize;
262 DVID dvidSourcePlayerID;
263 PVOID pvPlayerContext;
264 } DVMSG_PLAYERVOICESTART, *LPDVMSG_PLAYERVOICESTART, *PDVMSG_PLAYERVOICESTART;
266 typedef struct
268 DWORD dwSize;
269 DVID dvidSourcePlayerID;
270 PVOID pvPlayerContext;
271 } DVMSG_PLAYERVOICESTOP, *LPDVMSG_PLAYERVOICESTOP, *PDVMSG_PLAYERVOICESTOP;
273 typedef struct
275 DWORD dwSize;
276 DWORD dwPeakLevel;
277 PVOID pvLocalPlayerContext;
278 } DVMSG_RECORDSTART, *LPDVMSG_RECORDSTART, *PDVMSG_RECORDSTART;
280 typedef struct
282 DWORD dwSize;
283 DWORD dwPeakLevel;
284 PVOID pvLocalPlayerContext;
285 } DVMSG_RECORDSTOP, *LPDVMSG_RECORDSTOP, *PDVMSG_RECORDSTOP;
287 typedef struct
289 DWORD dwSize;
290 HRESULT hrResult;
291 } DVMSG_SESSIONLOST, *LPDVMSG_SESSIONLOST, *PDVMSG_SESSIONLOST;
293 typedef struct
295 DWORD dwSize;
296 DWORD dwNumTargets;
297 PDVID pdvidTargets;
298 } DVMSG_SETTARGETS, *LPDVMSG_SETTARGETS, *PDVMSG_SETTARGETS;
301 #define _FACDPV 0x15
302 #define MAKE_DVHRESULT( code ) MAKE_HRESULT( 1, _FACDPV, code )
304 #define DV_OK S_OK
305 #define DV_FULLDUPLEX MAKE_HRESULT(0, _FACDPV, 0x0005)
306 #define DV_HALFDUPLEX MAKE_HRESULT(0, _FACDPV, 0x000A)
307 #define DV_PENDING MAKE_HRESULT(0, _FACDPV, 0x0010)
309 #define DVERR_BUFFERTOOSMALL MAKE_DVHRESULT(0x001E)
310 #define DVERR_EXCEPTION MAKE_DVHRESULT(0x004A)
311 #define DVERR_GENERIC E_FAIL
312 #define DVERR_INVALIDFLAGS MAKE_DVHRESULT(0x0078)
313 #define DVERR_INVALIDOBJECT MAKE_DVHRESULT(0x0082)
314 #define DVERR_INVALIDPARAM E_INVALIDARG
315 #define DVERR_INVALIDPLAYER MAKE_DVHRESULT(0x0087)
316 #define DVERR_INVALIDGROUP MAKE_DVHRESULT(0x0091)
317 #define DVERR_INVALIDHANDLE MAKE_DVHRESULT(0x0096)
318 #define DVERR_OUTOFMEMORY E_OUTOFMEMORY
319 #define DVERR_PENDING DV_PENDING
320 #define DVERR_NOTSUPPORTED E_NOTIMPL
321 #define DVERR_NOINTERFACE E_NOINTERFACE
322 #define DVERR_SESSIONLOST MAKE_DVHRESULT(0x012C)
323 #define DVERR_NOVOICESESSION MAKE_DVHRESULT(0x012E)
324 #define DVERR_CONNECTIONLOST MAKE_DVHRESULT(0x0168)
325 #define DVERR_NOTINITIALIZED MAKE_DVHRESULT(0x0169)
326 #define DVERR_CONNECTED MAKE_DVHRESULT(0x016A)
327 #define DVERR_NOTCONNECTED MAKE_DVHRESULT(0x016B)
328 #define DVERR_CONNECTABORTING MAKE_DVHRESULT(0x016E)
329 #define DVERR_NOTALLOWED MAKE_DVHRESULT(0x016F)
330 #define DVERR_INVALIDTARGET MAKE_DVHRESULT(0x0170)
331 #define DVERR_TRANSPORTNOTHOST MAKE_DVHRESULT(0x0171)
332 #define DVERR_COMPRESSIONNOTSUPPORTED MAKE_DVHRESULT(0x0172)
333 #define DVERR_ALREADYPENDING MAKE_DVHRESULT(0x0173)
334 #define DVERR_SOUNDINITFAILURE MAKE_DVHRESULT(0x0174)
335 #define DVERR_TIMEOUT MAKE_DVHRESULT(0x0175)
336 #define DVERR_CONNECTABORTED MAKE_DVHRESULT(0x0176)
337 #define DVERR_NO3DSOUND MAKE_DVHRESULT(0x0177)
338 #define DVERR_ALREADYBUFFERED MAKE_DVHRESULT(0x0178)
339 #define DVERR_NOTBUFFERED MAKE_DVHRESULT(0x0179)
340 #define DVERR_HOSTING MAKE_DVHRESULT(0x017A)
341 #define DVERR_NOTHOSTING MAKE_DVHRESULT(0x017B)
342 #define DVERR_INVALIDDEVICE MAKE_DVHRESULT(0x017C)
343 #define DVERR_RECORDSYSTEMERROR MAKE_DVHRESULT(0x017D)
344 #define DVERR_PLAYBACKSYSTEMERROR MAKE_DVHRESULT(0x017E)
345 #define DVERR_SENDERROR MAKE_DVHRESULT(0x017F)
346 #define DVERR_USERCANCEL MAKE_DVHRESULT(0x0180)
347 #define DVERR_RUNSETUP MAKE_DVHRESULT(0x0183)
348 #define DVERR_INCOMPATIBLEVERSION MAKE_DVHRESULT(0x0184)
349 #define DVERR_INITIALIZED MAKE_DVHRESULT(0x0187)
350 #define DVERR_INVALIDPOINTER E_POINTER
351 #define DVERR_NOTRANSPORT MAKE_DVHRESULT(0x0188)
352 #define DVERR_NOCALLBACK MAKE_DVHRESULT(0x0189)
353 #define DVERR_TRANSPORTNOTINIT MAKE_DVHRESULT(0x018A)
354 #define DVERR_TRANSPORTNOSESSION MAKE_DVHRESULT(0x018B)
355 #define DVERR_TRANSPORTNOPLAYER MAKE_DVHRESULT(0x018C)
356 #define DVERR_USERBACK MAKE_DVHRESULT(0x018D)
357 #define DVERR_NORECVOLAVAILABLE MAKE_DVHRESULT(0x018E)
358 #define DVERR_INVALIDBUFFER MAKE_DVHRESULT(0x018F)
359 #define DVERR_LOCKEDBUFFER MAKE_DVHRESULT(0x0190)
361 #undef INTERFACE
362 #define INTERFACE IDirectPlayVoiceClient
363 DECLARE_INTERFACE_(IDirectPlayVoiceClient, IUnknown)
365 STDMETHOD(QueryInterface) (THIS_ REFIID riid, PVOID *ppvObj) PURE;
366 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
367 STDMETHOD_(ULONG,Release) (THIS) PURE;
368 STDMETHOD(Initialize) (THIS_ LPUNKNOWN, PDVMESSAGEHANDLER, PVOID, PDWORD, DWORD) PURE;
369 STDMETHOD(Connect) (THIS_ PDVSOUNDDEVICECONFIG, PDVCLIENTCONFIG, DWORD) PURE;
370 STDMETHOD(Disconnect) (THIS_ DWORD) PURE;
371 STDMETHOD(GetSessionDesc) (THIS_ PDVSESSIONDESC) PURE;
372 STDMETHOD(GetClientConfig) (THIS_ PDVCLIENTCONFIG) PURE;
373 STDMETHOD(SetClientConfig) (THIS_ PDVCLIENTCONFIG) PURE;
374 STDMETHOD(GetCaps) (THIS_ PDVCAPS) PURE;
375 STDMETHOD(GetCompressionTypes) (THIS_ PVOID, PDWORD, PDWORD, DWORD) PURE;
376 STDMETHOD(SetTransmitTargets) (THIS_ PDVID, DWORD, DWORD) PURE;
377 STDMETHOD(GetTransmitTargets) (THIS_ PDVID, PDWORD, DWORD) PURE;
378 STDMETHOD(Create3DSoundBuffer) (THIS_ DVID, LPDIRECTSOUNDBUFFER, DWORD, DWORD, LPDIRECTSOUND3DBUFFER *) PURE;
379 STDMETHOD(Delete3DSoundBuffer) (THIS_ DVID, LPDIRECTSOUND3DBUFFER *) PURE;
380 STDMETHOD(SetNotifyMask) (THIS_ PDWORD, DWORD) PURE;
381 STDMETHOD(GetSoundDeviceConfig)(THIS_ PDVSOUNDDEVICECONFIG, PDWORD) PURE;
383 #undef INTERFACE
385 #define INTERFACE IDirectPlayVoiceServer
386 DECLARE_INTERFACE_(IDirectPlayVoiceServer, IUnknown)
388 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) PURE;
389 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
390 STDMETHOD_(ULONG,Release) (THIS) PURE;
391 STDMETHOD(Initialize) (THIS_ LPUNKNOWN, PDVMESSAGEHANDLER, PVOID, LPDWORD, DWORD) PURE;
392 STDMETHOD(StartSession) (THIS_ PDVSESSIONDESC, DWORD) PURE;
393 STDMETHOD(StopSession) (THIS_ DWORD) PURE;
394 STDMETHOD(GetSessionDesc) (THIS_ PDVSESSIONDESC) PURE;
395 STDMETHOD(SetSessionDesc) (THIS_ PDVSESSIONDESC) PURE;
396 STDMETHOD(GetCaps) (THIS_ PDVCAPS) PURE;
397 STDMETHOD(GetCompressionTypes) (THIS_ PVOID, PDWORD, PDWORD, DWORD) PURE;
398 STDMETHOD(SetTransmitTargets) (THIS_ DVID, PDVID, DWORD, DWORD) PURE;
399 STDMETHOD(GetTransmitTargets) (THIS_ DVID, PDVID, PDWORD, DWORD) PURE;
400 STDMETHOD(SetNotifyMask) (THIS_ PDWORD, DWORD) PURE;
402 #undef INTERFACE
404 #define INTERFACE IDirectPlayVoiceTest
405 DECLARE_INTERFACE_(IDirectPlayVoiceTest, IUnknown)
407 STDMETHOD(QueryInterface) (THIS_ REFIID riid, PVOID *ppvObj) PURE;
408 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
409 STDMETHOD_(ULONG,Release) (THIS) PURE;
410 STDMETHOD(CheckAudioSetup) (THIS_ const GUID *, const GUID *, HWND, DWORD) PURE;
412 #undef INTERFACE
414 #if !defined(__cplusplus) || defined(CINTERFACE)
416 #define IDirectPlayVoiceClient_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
417 #define IDirectPlayVoiceClient_AddRef(p) (p)->lpVtbl->AddRef(p)
418 #define IDirectPlayVoiceClient_Release(p) (p)->lpVtbl->Release(p)
420 #define IDirectPlayVoiceClient_Initialize(p,a,b,c,d,e) (p)->lpVtbl->Initialize(p,a,b,c,d,e)
421 #define IDirectPlayVoiceClient_Connect(p,a,b,c) (p)->lpVtbl->Connect(p,a,b,c)
422 #define IDirectPlayVoiceClient_Disconnect(p,a) (p)->lpVtbl->Disconnect(p,a)
423 #define IDirectPlayVoiceClient_GetSessionDesc(p,a) (p)->lpVtbl->GetSessionDesc(p,a)
424 #define IDirectPlayVoiceClient_GetClientConfig(p,a) (p)->lpVtbl->GetClientConfig(p,a)
425 #define IDirectPlayVoiceClient_SetClientConfig(p,a) (p)->lpVtbl->SetClientConfig(p,a)
426 #define IDirectPlayVoiceClient_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
427 #define IDirectPlayVoiceClient_GetCompressionTypes(p,a,b,c,d) (p)->lpVtbl->GetCompressionTypes(p,a,b,c,d)
428 #define IDirectPlayVoiceClient_SetTransmitTargets(p,a,b,c) (p)->lpVtbl->SetTransmitTargets(p,a,b,c)
429 #define IDirectPlayVoiceClient_GetTransmitTargets(p,a,b,c) (p)->lpVtbl->GetTransmitTargets(p,a,b,c)
430 #define IDirectPlayVoiceClient_Create3DSoundBuffer(p,a,b,c,d,e) (p)->lpVtbl->Create3DSoundBuffer(p,a,b,c,d,e)
431 #define IDirectPlayVoiceClient_Delete3DSoundBuffer(p,a,b) (p)->lpVtbl->Delete3DSoundBuffer(p,a,b)
432 #define IDirectPlayVoiceClient_SetNotifyMask(p,a,b) (p)->lpVtbl->SetNotifyMask(p,a,b)
433 #define IDirectPlayVoiceClient_GetSoundDeviceConfig(p,a,b) (p)->lpVtbl->GetSoundDeviceConfig(p,a,b)
435 #define IDirectPlayVoiceServer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
436 #define IDirectPlayVoiceServer_AddRef(p) (p)->lpVtbl->AddRef(p)
437 #define IDirectPlayVoiceServer_Release(p) (p)->lpVtbl->Release(p)
439 #define IDirectPlayVoiceServer_Initialize(p,a,b,c,d,e) (p)->lpVtbl->Initialize(p,a,b,c,d,e)
440 #define IDirectPlayVoiceServer_StartSession(p,a,b) (p)->lpVtbl->StartSession(p,a,b)
441 #define IDirectPlayVoiceServer_StopSession(p,a) (p)->lpVtbl->StopSession(p,a)
442 #define IDirectPlayVoiceServer_GetSessionDesc(p,a) (p)->lpVtbl->GetSessionDesc(p,a)
443 #define IDirectPlayVoiceServer_SetSessionDesc(p,a) (p)->lpVtbl->SetSessionDesc(p,a)
444 #define IDirectPlayVoiceServer_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
445 #define IDirectPlayVoiceServer_GetCompressionTypes(p,a,b,c,d) (p)->lpVtbl->GetCompressionTypes(p,a,b,c,d)
446 #define IDirectPlayVoiceServer_SetTransmitTargets(p,a,b,c,d) (p)->lpVtbl->SetTransmitTargets(p,a,b,c,d)
447 #define IDirectPlayVoiceServer_GetTransmitTargets(p,a,b,c,d) (p)->lpVtbl->GetTransmitTargets(p,a,b,c,d)
448 #define IDirectPlayVoiceServer_SetNotifyMask(p,a,b) (p)->lpVtbl->SetNotifyMask(p,a,b)
449 #define IDirectPlayVoiceTest_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
450 #define IDirectPlayVoiceTest_AddRef(p) (p)->lpVtbl->AddRef(p)
451 #define IDirectPlayVoiceTest_Release(p) (p)->lpVtbl->Release(p)
452 #define IDirectPlayVoiceTest_CheckAudioSetup(p,a,b,c,d) (p)->lpVtbl->CheckAudioSetup(p,a,b,c,d)
455 #else /* C++ */
457 #define IDirectPlayVoiceClient_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
458 #define IDirectPlayVoiceClient_AddRef(p) (p)->AddRef()
459 #define IDirectPlayVoiceClient_Release(p) (p)->Release()
460 #define IDirectPlayVoiceClient_Initialize(p,a,b,c,d,e) (p)->Initialize(a,b,c,d,e)
461 #define IDirectPlayVoiceClient_Connect(p,a,b,c) (p)->Connect(a,b,c)
462 #define IDirectPlayVoiceClient_Disconnect(p,a) (p)->Disconnect(a)
463 #define IDirectPlayVoiceClient_GetSessionDesc(p,a) (p)->GetSessionDesc(a)
464 #define IDirectPlayVoiceClient_GetClientConfig(p,a) (p)->GetClientConfig(a)
465 #define IDirectPlayVoiceClient_SetClientConfig(p,a) (p)->SetClientConfig(a)
466 #define IDirectPlayVoiceClient_GetCaps(p,a) (p)->GetCaps(a)
467 #define IDirectPlayVoiceClient_GetCompressionTypes(p,a,b,c,d) (p)->GetCompressionTypes(a,b,c,d)
468 #define IDirectPlayVoiceClient_SetTransmitTargets(p,a,b,c) (p)->SetTransmitTargets(a,b,c)
469 #define IDirectPlayVoiceClient_GetTransmitTargets(p,a,b,c) (p)->GetTransmitTargets(a,b,c)
470 #define IDirectPlayVoiceClient_Create3DSoundBuffer(p,a,b,c,d,e) (p)->Create3DSoundBuffer(a,b,c,d,e)
471 #define IDirectPlayVoiceClient_Delete3DSoundBuffer(p,a,b) (p)->Delete3DSoundBuffer(a,b)
472 #define IDirectPlayVoiceClient_SetNotifyMask(p,a,b) (p)->SetNotifyMask(a,b)
473 #define IDirectPlayVoiceClient_GetSoundDeviceConfig(p,a,b) (p)->GetSoundDeviceConfig(a,b)
475 #define IDirectPlayVoiceServer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
476 #define IDirectPlayVoiceServer_AddRef(p) (p)->AddRef()
477 #define IDirectPlayVoiceServer_Release(p) (p)->Release()
478 #define IDirectPlayVoiceServer_Initialize(p,a,b,c,d,e) (p)->Initialize(a,b,c,d,e)
479 #define IDirectPlayVoiceServer_StartSession(p,a,b) (p)->StartSession(a,b)
480 #define IDirectPlayVoiceServer_StopSession(p,a) (p)->StopSession(a)
481 #define IDirectPlayVoiceServer_GetSessionDesc(p,a) (p)->GetSessionDesc(a)
482 #define IDirectPlayVoiceServer_SetSessionDesc(p,a) (p)->SetSessionDesc(a)
483 #define IDirectPlayVoiceServer_GetCaps(p,a) (p)->GetCaps(a)
484 #define IDirectPlayVoiceServer_GetCompressionTypes(p,a,b,c,d) (p)->GetCompressionTypes(a,b,c,d)
485 #define IDirectPlayVoiceServer_SetTransmitTargets(p,a,b,c,d) (p)->SetTransmitTargets(a,b,c,d)
486 #define IDirectPlayVoiceServer_GetTransmitTargets(p,a,b,c,d) (p)->GetTransmitTargets(a,b,c,d)
487 #define IDirectPlayVoiceServer_SetNotifyMask(p,a,b) (p)->SetNotifyMask(a,b)
489 #define IDirectPlayVoiceTest_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
490 #define IDirectPlayVoiceTest_AddRef(p) (p)->AddRef()
491 #define IDirectPlayVoiceTest_Release(p) (p)->Release()
492 #define IDirectPlayVoiceTest_CheckAudioSetup(p,a,b,c,d) (p)->CheckAudioSetup(a,b,c,d)
494 #endif
497 #ifdef __cplusplus
499 #endif
501 #endif /* __DVOICE_INCLUDED__ */