Win32 API 日本語リファレンス
ホームMedia.Audio.DirectSound › IDirectSound3DBuffer

IDirectSound3DBuffer

COM
IID279afa86-4981-11ce-a521-0020af0be560継承元IUnknown自前メソッド開始 vtbl3

メソッド 18

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetAllParameters(DS3DBUFFER* pDs3dBuffer)
pDs3dBufferDS3DBUFFER*outこのバッファの全3Dパラメータを受け取るDS3DBUFFER構造体へのポインタ。dwSizeを事前設定する。
vtbl 4 HRESULT GetConeAngles(DWORD* pdwInsideConeAngle, DWORD* pdwOutsideConeAngle)
pdwInsideConeAngleDWORD*out内側サウンドコーンの角度(度)を受け取るポインタ。
pdwOutsideConeAngleDWORD*out外側サウンドコーンの角度(度)を受け取るポインタ。
vtbl 5 HRESULT GetConeOrientation(D3DVECTOR* pvOrientation)
pvOrientationD3DVECTOR*outサウンドコーンの向きベクトルを受け取るD3DVECTORへのポインタ。
vtbl 6 HRESULT GetConeOutsideVolume(INT* plConeOutsideVolume)
plConeOutsideVolumeINT*out外側コーン外での音量減衰(100分の1デシベル単位)を受け取るポインタ。
vtbl 7 HRESULT GetMaxDistance(FLOAT* pflMaxDistance)
pflMaxDistanceFLOAT*outこれ以上離れても減衰しなくなる最大距離を受け取るポインタ。
vtbl 8 HRESULT GetMinDistance(FLOAT* pflMinDistance)
pflMinDistanceFLOAT*outこれより近づいても増幅しなくなる最小距離を受け取るポインタ。
vtbl 9 HRESULT GetMode(DWORD* pdwMode)
pdwModeDWORD*out3D処理モード(DS3DMODE_NORMAL/HEADRELATIVE/DISABLE)を受け取るポインタ。
vtbl 10 HRESULT GetPosition(D3DVECTOR* pvPosition)
pvPositionD3DVECTOR*out音源の現在位置ベクトルを受け取るD3DVECTORへのポインタ。
vtbl 11 HRESULT GetVelocity(D3DVECTOR* pvVelocity)
pvVelocityD3DVECTOR*out音源の現在速度ベクトルを受け取るD3DVECTORへのポインタ。
vtbl 12 HRESULT SetAllParameters(DS3DBUFFER* pcDs3dBuffer, DWORD dwApply)
pcDs3dBufferDS3DBUFFER*in設定する音源の全3DパラメータをまとめたDS3DBUFFER構造体へのポインタ。
dwApplyDWORDin即時/遅延適用の指定(DS3D_IMMEDIATE/DEFERRED)。
vtbl 13 HRESULT SetConeAngles(DWORD dwInsideConeAngle, DWORD dwOutsideConeAngle, DWORD dwApply)
dwInsideConeAngleDWORDin設定する内側コーン角度(度、0〜360)。
dwOutsideConeAngleDWORDin設定する外側コーン角度(度、0〜360)。
dwApplyDWORDin即時/遅延適用の指定(DS3D_IMMEDIATE/DEFERRED)。
vtbl 14 HRESULT SetConeOrientation(FLOAT x, FLOAT y, FLOAT z, DWORD dwApply)
xFLOATinコーン向きベクトルのX成分。
yFLOATinコーン向きベクトルのY成分。
zFLOATinコーン向きベクトルのZ成分。
dwApplyDWORDin即時/遅延適用の指定(DS3D_IMMEDIATE/DEFERRED)。
vtbl 15 HRESULT SetConeOutsideVolume(INT lConeOutsideVolume, DWORD dwApply)
lConeOutsideVolumeINTin外側コーン外での音量減衰(100分の1デシベル単位)。
dwApplyDWORDin即時/遅延適用の指定(DS3D_IMMEDIATE/DEFERRED)。
vtbl 16 HRESULT SetMaxDistance(FLOAT flMaxDistance, DWORD dwApply)
flMaxDistanceFLOATin設定する最大距離。これ以遠は減衰が止まる。
dwApplyDWORDin即時/遅延適用の指定(DS3D_IMMEDIATE/DEFERRED)。
vtbl 17 HRESULT SetMinDistance(FLOAT flMinDistance, DWORD dwApply)
flMinDistanceFLOATin設定する最小距離。これ以内は増幅が止まる。
dwApplyDWORDin即時/遅延適用の指定(DS3D_IMMEDIATE/DEFERRED)。
vtbl 18 HRESULT SetMode(DWORD dwMode, DWORD dwApply)
dwModeDWORDin設定する3D処理モード(DS3DMODE_NORMAL/HEADRELATIVE/DISABLE)。
dwApplyDWORDin即時/遅延適用の指定(DS3D_IMMEDIATE/DEFERRED)。
vtbl 19 HRESULT SetPosition(FLOAT x, FLOAT y, FLOAT z, DWORD dwApply)
xFLOATin音源位置のX座標。
yFLOATin音源位置のY座標。
zFLOATin音源位置のZ座標。
dwApplyDWORDin即時/遅延適用の指定(DS3D_IMMEDIATE/DEFERRED)。
vtbl 20 HRESULT SetVelocity(FLOAT x, FLOAT y, FLOAT z, DWORD dwApply)
xFLOATin音源速度ベクトルのX成分。
yFLOATin音源速度ベクトルのY成分。
zFLOATin音源速度ベクトルのZ成分。
dwApplyDWORDin即時/遅延適用の指定(DS3D_IMMEDIATE/DEFERRED)。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDirectSound3DBuffer "{279AFA86-4981-11CE-A521-0020AF0BE560}"
#usecom global IDirectSound3DBuffer IID_IDirectSound3DBuffer "{}"
#comfunc global IDirectSound3DBuffer_GetAllParameters      3 var
#comfunc global IDirectSound3DBuffer_GetConeAngles         4 var,var
#comfunc global IDirectSound3DBuffer_GetConeOrientation    5 var
#comfunc global IDirectSound3DBuffer_GetConeOutsideVolume  6 var
#comfunc global IDirectSound3DBuffer_GetMaxDistance        7 var
#comfunc global IDirectSound3DBuffer_GetMinDistance        8 var
#comfunc global IDirectSound3DBuffer_GetMode               9 var
#comfunc global IDirectSound3DBuffer_GetPosition           10 var
#comfunc global IDirectSound3DBuffer_GetVelocity           11 var
#comfunc global IDirectSound3DBuffer_SetAllParameters      12 var,int
#comfunc global IDirectSound3DBuffer_SetConeAngles         13 int,int,int
#comfunc global IDirectSound3DBuffer_SetConeOrientation    14 float,float,float,int
#comfunc global IDirectSound3DBuffer_SetConeOutsideVolume  15 int,int
#comfunc global IDirectSound3DBuffer_SetMaxDistance        16 float,int
#comfunc global IDirectSound3DBuffer_SetMinDistance        17 float,int
#comfunc global IDirectSound3DBuffer_SetMode               18 int,int
#comfunc global IDirectSound3DBuffer_SetPosition           19 float,float,float,int
#comfunc global IDirectSound3DBuffer_SetVelocity           20 float,float,float,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。