📄 dvoice.h
字号:
// Transmission has started on the local machine
// (DVMSGID_RECORDSTART)
//
typedef struct
{
DWORD dwSize; // Size of this structure
DWORD dwPeakLevel; // Peak level that caused transmission to start
PVOID pvLocalPlayerContext; // Context value for the local player
} DVMSG_RECORDSTART, *LPDVMSG_RECORDSTART, *PDVMSG_RECORDSTART;
//
// Transmission has stopped on the local machine
// (DVMSGID_RECORDSTOP)
//
typedef struct
{
DWORD dwSize; // Size of this structure
DWORD dwPeakLevel; // Peak level that caused transmission to stop
PVOID pvLocalPlayerContext; // Context value for the local player
} DVMSG_RECORDSTOP, *LPDVMSG_RECORDSTOP, *PDVMSG_RECORDSTOP;
//
// The voice session has been lost
// (DVMSGID_SESSIONLOST)
//
typedef struct
{
DWORD dwSize; // Size of this structure
HRESULT hrResult; // Reason the session was disconnected
} DVMSG_SESSIONLOST, *LPDVMSG_SESSIONLOST, *PDVMSG_SESSIONLOST;
//
// The target list has been updated for the local client
// (DVMSGID_SETTARGETS)
//
typedef struct
{
DWORD dwSize; // Size of this structure
DWORD dwNumTargets; // # of targets
PDVID pdvidTargets; // An array of DVIDs specifying the current targets
} DVMSG_SETTARGETS, *LPDVMSG_SETTARGETS, *PDVMSG_SETTARGETS;
/****************************************************************************
*
* DirectPlayVoice Functions
*
****************************************************************************/
/*
*
* This function is no longer supported. It is recommended that CoCreateInstance be used to create
* DirectPlay voice objects.
*
* extern HRESULT WINAPI DirectPlayVoiceCreate( const GUID * pcIID, void **ppvInterface, IUnknown *pUnknown);
*
*/
/****************************************************************************
*
* DirectPlay8 Application Interfaces
*
****************************************************************************/
#undef INTERFACE
#define INTERFACE IDirectPlayVoiceClient
DECLARE_INTERFACE_( IDirectPlayVoiceClient, IUnknown )
{
/*** IUnknown methods ***/
STDMETHOD(QueryInterface)(THIS_ REFIID riid, PVOID *ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectPlayVoiceClient methods ***/
STDMETHOD_(HRESULT, Initialize) (THIS_ LPUNKNOWN, PDVMESSAGEHANDLER, PVOID, PDWORD, DWORD ) PURE;
STDMETHOD_(HRESULT, Connect) (THIS_ PDVSOUNDDEVICECONFIG, PDVCLIENTCONFIG, DWORD ) PURE;
STDMETHOD_(HRESULT, Disconnect) (THIS_ DWORD ) PURE;
STDMETHOD_(HRESULT, GetSessionDesc)(THIS_ PDVSESSIONDESC ) PURE;
STDMETHOD_(HRESULT, GetClientConfig)(THIS_ PDVCLIENTCONFIG ) PURE;
STDMETHOD_(HRESULT, SetClientConfig)(THIS_ PDVCLIENTCONFIG ) PURE;
STDMETHOD_(HRESULT, GetCaps) (THIS_ PDVCAPS ) PURE;
STDMETHOD_(HRESULT, GetCompressionTypes)( THIS_ PVOID, PDWORD, PDWORD, DWORD ) PURE;
STDMETHOD_(HRESULT, SetTransmitTargets)( THIS_ PDVID, DWORD, DWORD ) PURE;
STDMETHOD_(HRESULT, GetTransmitTargets)( THIS_ PDVID, PDWORD, DWORD ) PURE;
STDMETHOD_(HRESULT, Create3DSoundBuffer)( THIS_ DVID, LPDIRECTSOUNDBUFFER, DWORD, DWORD, LPDIRECTSOUND3DBUFFER * ) PURE;
STDMETHOD_(HRESULT, Delete3DSoundBuffer)( THIS_ DVID, LPDIRECTSOUND3DBUFFER * ) PURE;
STDMETHOD_(HRESULT, SetNotifyMask)( THIS_ PDWORD, DWORD ) PURE;
STDMETHOD_(HRESULT, GetSoundDeviceConfig)( THIS_ PDVSOUNDDEVICECONFIG, PDWORD ) PURE;
};
#undef INTERFACE
#define INTERFACE IDirectPlayVoiceServer
DECLARE_INTERFACE_( IDirectPlayVoiceServer, IUnknown )
{
/*** IUnknown methods ***/
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
/*** IDirectPlayVoiceServer methods ***/
STDMETHOD_(HRESULT, Initialize) (THIS_ LPUNKNOWN, PDVMESSAGEHANDLER, PVOID, LPDWORD, DWORD ) PURE;
STDMETHOD_(HRESULT, StartSession) (THIS_ PDVSESSIONDESC, DWORD ) PURE;
STDMETHOD_(HRESULT, StopSession) (THIS_ DWORD ) PURE;
STDMETHOD_(HRESULT, GetSessionDesc)(THIS_ PDVSESSIONDESC ) PURE;
STDMETHOD_(HRESULT, SetSessionDesc)(THIS_ PDVSESSIONDESC ) PURE;
STDMETHOD_(HRESULT, GetCaps) (THIS_ PDVCAPS ) PURE;
STDMETHOD_(HRESULT, GetCompressionTypes)( THIS_ PVOID, PDWORD, PDWORD, DWORD ) PURE;
STDMETHOD_(HRESULT, SetTransmitTargets)( THIS_ DVID, PDVID, DWORD, DWORD ) PURE;
STDMETHOD_(HRESULT, GetTransmitTargets)( THIS_ DVID, PDVID, PDWORD, DWORD ) PURE;
STDMETHOD_(HRESULT, SetNotifyMask)( THIS_ PDWORD, DWORD ) PURE;
};
#undef INTERFACE
#define INTERFACE IDirectPlayVoiceTest
DECLARE_INTERFACE_( IDirectPlayVoiceTest, IUnknown )
{
/*** IUnknown methods ***/
STDMETHOD(QueryInterface) (THIS_ REFIID riid, PVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
/*** IDirectPlayVoiceTest methods ***/
STDMETHOD_(HRESULT, CheckAudioSetup) (THIS_ const GUID *, const GUID * , HWND, DWORD ) PURE;
};
#if !defined(__cplusplus) || defined(CINTERFACE)
#define IDirectPlayVoiceClient_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDirectPlayVoiceClient_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDirectPlayVoiceClient_Release(p) (p)->lpVtbl->Release(p)
#define IDirectPlayVoiceClient_Initialize(p,a,b,c,d,e) (p)->lpVtbl->Initialize(p,a,b,c,d,e)
#define IDirectPlayVoiceClient_Connect(p,a,b,c) (p)->lpVtbl->Connect(p,a,b,c)
#define IDirectPlayVoiceClient_Disconnect(p,a) (p)->lpVtbl->Disconnect(p,a)
#define IDirectPlayVoiceClient_GetSessionDesc(p,a) (p)->lpVtbl->GetSessionDesc(p,a)
#define IDirectPlayVoiceClient_GetClientConfig(p,a) (p)->lpVtbl->GetClientConfig(p,a)
#define IDirectPlayVoiceClient_SetClientConfig(p,a) (p)->lpVtbl->SetClientConfig(p,a)
#define IDirectPlayVoiceClient_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
#define IDirectPlayVoiceClient_GetCompressionTypes(p,a,b,c,d) (p)->lpVtbl->GetCompressionTypes(p,a,b,c,d)
#define IDirectPlayVoiceClient_SetTransmitTargets(p,a,b,c) (p)->lpVtbl->SetTransmitTargets(p,a,b,c)
#define IDirectPlayVoiceClient_GetTransmitTargets(p,a,b,c) (p)->lpVtbl->GetTransmitTargets(p,a,b,c)
#define IDirectPlayVoiceClient_Create3DSoundBuffer(p,a,b,c,d,e) (p)->lpVtbl->Create3DSoundBuffer(p,a,b,c,d,e)
#define IDirectPlayVoiceClient_Delete3DSoundBuffer(p,a,b) (p)->lpVtbl->Delete3DSoundBuffer(p,a,b)
#define IDirectPlayVoiceClient_SetNotifyMask(p,a,b) (p)->lpVtbl->SetNotifyMask(p,a,b)
#define IDirectPlayVoiceClient_GetSoundDeviceConfig(p,a,b) (p)->lpVtbl->GetSoundDeviceConfig(p,a,b)
#define IDirectPlayVoiceServer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDirectPlayVoiceServer_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDirectPlayVoiceServer_Release(p) (p)->lpVtbl->Release(p)
#define IDirectPlayVoiceServer_Initialize(p,a,b,c,d,e) (p)->lpVtbl->Initialize(p,a,b,c,d,e)
#define IDirectPlayVoiceServer_StartSession(p,a,b) (p)->lpVtbl->StartSession(p,a,b)
#define IDirectPlayVoiceServer_StopSession(p,a) (p)->lpVtbl->StopSession(p,a)
#define IDirectPlayVoiceServer_GetSessionDesc(p,a) (p)->lpVtbl->GetSessionDesc(p,a)
#define IDirectPlayVoiceServer_SetSessionDesc(p,a) (p)->lpVtbl->SetSessionDesc(p,a)
#define IDirectPlayVoiceServer_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
#define IDirectPlayVoiceServer_GetCompressionTypes(p,a,b,c,d) (p)->lpVtbl->GetCompressionTypes(p,a,b,c,d)
#define IDirectPlayVoiceServer_SetTransmitTargets(p,a,b,c,d) (p)->lpVtbl->SetTransmitTargets(p,a,b,c,d)
#define IDirectPlayVoiceServer_GetTransmitTargets(p,a,b,c,d) (p)->lpVtbl->GetTransmitTargets(p,a,b,c,d)
#define IDirectPlayVoiceServer_SetNotifyMask(p,a,b) (p)->lpVtbl->SetNotifyMask(p,a,b)
#define IDirectPlayVoiceTest_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDirectPlayVoiceTest_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDirectPlayVoiceTest_Release(p) (p)->lpVtbl->Release(p)
#define IDirectPlayVoiceTest_CheckAudioSetup(p,a,b,c,d) (p)->lpVtbl->CheckAudioSetup(p,a,b,c,d)
#else /* C++ */
#define IDirectPlayVoiceClient_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
#define IDirectPlayVoiceClient_AddRef(p) (p)->AddRef()
#define IDirectPlayVoiceClient_Release(p) (p)->Release()
#define IDirectPlayVoiceClient_Initialize(p,a,b,c,d,e) (p)->Initialize(a,b,c,d,e)
#define IDirectPlayVoiceClient_Connect(p,a,b,c) (p)->Connect(a,b,c)
#define IDirectPlayVoiceClient_Disconnect(p,a) (p)->Disconnect(a)
#define IDirectPlayVoiceClient_GetSessionDesc(p,a) (p)->GetSessionDesc(a)
#define IDirectPlayVoiceClient_GetClientConfig(p,a) (p)->GetClientConfig(a)
#define IDirectPlayVoiceClient_SetClientConfig(p,a) (p)->SetClientConfig(a)
#define IDirectPlayVoiceClient_GetCaps(p,a) (p)->GetCaps(a)
#define IDirectPlayVoiceClient_GetCompressionTypes(p,a,b,c,d) (p)->GetCompressionTypes(a,b,c,d)
#define IDirectPlayVoiceClient_SetTransmitTargets(p,a,b,c) (p)->SetTransmitTargets(a,b,c)
#define IDirectPlayVoiceClient_GetTransmitTargets(p,a,b,c) (p)->GetTransmitTargets(a,b,c)
#define IDirectPlayVoiceClient_Create3DSoundBuffer(p,a,b,c,d,e) (p)->Create3DSoundBuffer(a,b,c,d,e)
#define IDirectPlayVoiceClient_Delete3DSoundBuffer(p,a,b) (p)->Delete3DSoundBuffer(a,b)
#define IDirectPlayVoiceClient_SetNotifyMask(p,a,b) (p)->SetNotifyMask(a,b)
#define IDirectPlayVoiceClient_GetSoundDeviceConfig(p,a,b) (p)->GetSoundDeviceConfig(a,b)
#define IDirectPlayVoiceServer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
#define IDirectPlayVoiceServer_AddRef(p) (p)->AddRef()
#define IDirectPlayVoiceServer_Release(p) (p)->Release()
#define IDirectPlayVoiceServer_Initialize(p,a,b,c,d,e) (p)->Initialize(a,b,c,d,e)
#define IDirectPlayVoiceServer_StartSession(p,a,b) (p)->StartSession(a,b)
#define IDirectPlayVoiceServer_StopSession(p,a) (p)->StopSession(a)
#define IDirectPlayVoiceServer_GetSessionDesc(p,a) (p)->GetSessionDesc(a)
#define IDirectPlayVoiceServer_SetSessionDesc(p,a) (p)->SetSessionDesc(a)
#define IDirectPlayVoiceServer_GetCaps(p,a) (p)->GetCaps(a)
#define IDirectPlayVoiceServer_GetCompressionTypes(p,a,b,c,d) (p)->GetCompressionTypes(a,b,c,d)
#define IDirectPlayVoiceServer_SetTransmitTargets(p,a,b,c,d) (p)->SetTransmitTargets(a,b,c,d)
#define IDirectPlayVoiceServer_GetTransmitTargets(p,a,b,c,d) (p)->GetTransmitTargets(a,b,c,d)
#define IDirectPlayVoiceServer_SetNotifyMask(p,a,b) (p)->SetNotifyMask(a,b)
#define IDirectPlayVoiceTest_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
#define IDirectPlayVoiceTest_AddRef(p) (p)->AddRef()
#define IDirectPlayVoiceTest_Release(p) (p)->Release()
#define IDirectPlayVoiceTest_CheckAudioSetup(p,a,b,c,d) (p)->CheckAudioSetup(a,b,c,d)
#endif
/****************************************************************************
*
* DIRECTPLAYVOICE ERRORS
*
* Errors are represented by negative values and cannot be combined.
*
****************************************************************************/
#define _FACDPV 0x15
#define MAKE_DVHRESULT( code ) MAKE_HRESULT( 1, _FACDPV, code )
#define DV_OK S_OK
#define DV_FULLDUPLEX MAKE_HRESULT( 0, _FACDPV, 0x0005 )
#define DV_HALFDUPLEX MAKE_HRESULT( 0, _FACDPV, 0x000A )
#define DV_PENDING MAKE_HRESULT( 0, _FACDPV, 0x0010 )
#define DVERR_BUFFERTOOSMALL MAKE_DVHRESULT( 0x001E )
#define DVERR_EXCEPTION MAKE_DVHRESULT( 0x004A )
#define DVERR_GENERIC E_FAIL
#define DVERR_INVALIDFLAGS MAKE_DVHRESULT( 0x0078 )
#define DVERR_INVALIDOBJECT MAKE_DVHRESULT( 0x0082 )
#define DVERR_INVALIDPARAM E_INVALIDARG
#define DVERR_INVALIDPLAYER MAKE_DVHRESULT( 0x0087 )
#define DVERR_INVALIDGROUP MAKE_DVHRESULT( 0x0091 )
#define DVERR_INVALIDHANDLE MAKE_DVHRESULT( 0x0096 )
#define DVERR_OUTOFMEMORY E_OUTOFMEMORY
#define DVERR_PENDING DV_PENDING
#define DVERR_NOTSUPPORTED E_NOTIMPL
#define DVERR_NOINTERFACE E_NOINTERFACE
#define DVERR_SESSIONLOST MAKE_DVHRESULT( 0x012C )
#define DVERR_NOVOICESESSION MAKE_DVHRESULT( 0x012E )
#define DVERR_CONNECTIONLOST MAKE_DVHRESULT( 0x0168 )
#define DVERR_NOTINITIALIZED MAKE_DVHRESULT( 0x0169 )
#define DVERR_CONNECTED MAKE_DVHRESULT( 0x016A )
#define DVERR_NOTCONNECTED MAKE_DVHRESULT( 0x016B )
#define DVERR_CONNECTABORTING MAKE_DVHRESULT( 0x016E )
#define DVERR_NOTALLOWED MAKE_DVHRESULT( 0x016F )
#define DVERR_INVALIDTARGET MAKE_DVHRESULT( 0x0170 )
#define DVERR_TRANSPORTNOTHOST MAKE_DVHRESULT( 0x0171 )
#define DVERR_COMPRESSIONNOTSUPPORTED MAKE_DVHRESULT( 0x0172 )
#define DVERR_ALREADYPENDING MAKE_DVHRESULT( 0x0173 )
#define DVERR_SOUNDINITFAILURE MAKE_DVHRESULT( 0x0174 )
#define DVERR_TIMEOUT MAKE_DVHRESULT( 0x0175 )
#define DVERR_CONNECTABORTED MAKE_DVHRESULT( 0x0176 )
#define DVERR_NO3DSOUND MAKE_DVHRESULT( 0x0177 )
#define DVERR_ALREADYBUFFERED MAKE_DVHRESULT( 0x0178 )
#define DVERR_NOTBUFFERED MAKE_DVHRESULT( 0x0179 )
#define DVERR_HOSTING MAKE_DVHRESULT( 0x017A )
#define DVERR_NOTHOSTING MAKE_DVHRESULT( 0x017B )
#define DVERR_INVALIDDEVICE MAKE_DVHRESULT( 0x017C )
#define DVERR_RECORDSYSTEMERROR MAKE_DVHRESULT( 0x017D )
#define DVERR_PLAYBACKSYSTEMERROR MAKE_DVHRESULT( 0x017E )
#define DVERR_SENDERROR MAKE_DVHRESULT( 0x017F )
#define DVERR_USERCANCEL MAKE_DVHRESULT( 0x0180 )
#define DVERR_RUNSETUP MAKE_DVHRESULT( 0x0183 )
#define DVERR_INCOMPATIBLEVERSION MAKE_DVHRESULT( 0x0184 )
#define DVERR_INITIALIZED MAKE_DVHRESULT( 0x0187 )
#define DVERR_INVALIDPOINTER E_POINTER
#define DVERR_NOTRANSPORT MAKE_DVHRESULT( 0x0188 )
#define DVERR_NOCALLBACK MAKE_DVHRESULT( 0x0189 )
#define DVERR_TRANSPORTNOTINIT MAKE_DVHRESULT( 0x018A )
#define DVERR_TRANSPORTNOSESSION MAKE_DVHRESULT( 0x018B )
#define DVERR_TRANSPORTNOPLAYER MAKE_DVHRESULT( 0x018C )
#define DVERR_USERBACK MAKE_DVHRESULT( 0x018D )
#define DVERR_NORECVOLAVAILABLE MAKE_DVHRESULT( 0x018E )
#define DVERR_INVALIDBUFFER MAKE_DVHRESULT( 0x018F )
#define DVERR_LOCKEDBUFFER MAKE_DVHRESULT( 0x0190 )
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -