5 #define NONAMELESSUNION
6 #define NONAMELESSSTRUCT
29 typedef HRESULT (CALLBACK
*LPFNCREATEINSTANCE
)(IUnknown
* pUnkOuter
, REFIID riid
, LPVOID
* ppvObject
);
35 LPFNCREATEINSTANCE lpfnCI
;
39 typedef struct tagFILTERINFO
41 SP_DEVINFO_DATA DeviceData
;
42 WCHAR DevicePath
[MAX_PATH
];
49 struct tagFILTERINFO
*lpNext
;
50 }FILTERINFO
, *LPFILTERINFO
;
52 #define INIT_GUID(guid, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
53 guid.Data1 = l; guid.Data2 = w1; guid.Data3 = w2; \
54 guid.Data4[0] = b1; guid.Data4[1] = b2; guid.Data4[2] = b3; \
55 guid.Data4[3] = b4; guid.Data4[4] = b5; guid.Data4[5] = b6; \
56 guid.Data4[6] = b7; guid.Data4[7] = b8;
61 PIN_TYPE_PLAYBACK
= 1,
62 PIN_TYPE_RECORDING
= 2
66 extern HINSTANCE dsound_hInstance
;
67 extern LPFILTERINFO RootInfo
;
72 IClassFactory_fnConstructor(
73 LPFNCREATEINSTANCE lpfnCI
,
81 EnumAudioDeviceInterfaces(
82 LPFILTERINFO
*OutRootInfo
);
87 LPFILTERINFO
*Filter
);
116 IN LPWAVEFORMATEX WaveFormatEx
);
123 IN LPWAVEFORMATEX WaveFormatEx
,
124 OUT LPWAVEFORMATEX WaveFormatOut
,
129 SyncOverlappedDeviceIoControl(
131 IN DWORD IoControlCode
,
133 IN DWORD InBufferSize
,
134 OUT LPVOID OutBuffer
,
135 IN DWORD OutBufferSize
,
136 OUT LPDWORD BytesTransferred OPTIONAL
);
139 PrimaryDirectSoundBuffer_Write(
140 LPDIRECTSOUNDBUFFER8 iface
,
149 LPWAVEFORMATEX WaveFormatEx
,
155 IN LPCWSTR lpFileName
,
156 IN PHANDLE OutHandle
);
164 GetFilterPinCommunication(
167 OUT PKSPIN_COMMUNICATION Communication
);
170 GetFilterPinDataFlow(
173 OUT PKSPIN_DATAFLOW DataFlow
);
178 PrimaryDirectSoundBuffer_GetPosition(
179 LPDIRECTSOUNDBUFFER8 iface
,
180 LPDWORD pdwCurrentPlayCursor
,
181 LPDWORD pdwCurrentWriteCursor
);
184 PrimaryDirectSoundBuffer_SetState(
185 LPDIRECTSOUNDBUFFER8 iface
,
189 NewPrimarySoundBuffer(
190 LPDIRECTSOUNDBUFFER8
*OutBuffer
,
195 PrimaryDirectSoundBuffer_SetFormat(
196 LPDIRECTSOUNDBUFFER8 iface
,
197 LPWAVEFORMATEX pcfxFormat
,
201 PrimaryDirectSoundBuffer_AcquireLock(
202 LPDIRECTSOUNDBUFFER8 iface
);
205 PrimaryDirectSoundBuffer_ReleaseLock(
206 LPDIRECTSOUNDBUFFER8 iface
);
211 NewSecondarySoundBuffer(
212 LPDIRECTSOUNDBUFFER8
*OutBuffer
,
215 LPCDSBUFFERDESC lpcDSBufferDesc
,
216 LPDIRECTSOUNDBUFFER8 PrimaryBuffer
);
230 NewDirectSoundCapture(
236 /* capturebuffer.c */
238 NewDirectSoundCaptureBuffer(
239 LPDIRECTSOUNDCAPTUREBUFFER8
*OutBuffer
,
241 LPCDSCBUFFERDESC lpcDSBufferDesc
);