104{
113
114
115
117 if (numDev)
118 {
119 do
120 {
124 {
125
127
129
132
133
135 if (dwIndex - 1 == 0)
137 else
139
140 szText[(
sizeof(szText)/
sizeof(
WCHAR))-1] =
L'\0';
141
143 break;
144 }
146 }
147
148 dwIndex = 0;
149
152 return;
153
154 do
155 {
157 InfoData.
cbSize =
sizeof(InfoData);
158
160 {
161
164
165
168
169
170
171
176 break;
177 }
178
180 break;
181
182 dwIndex++;
184
185
187}
VOID EnumerateDrivers(PVOID Context, HDEVINFO hList, PSP_DEVINFO_DATA pInfoData)
#define IDC_STATIC_DSOUND_VENDORID
#define IDC_STATIC_DSOUND_STANDARD
#define IDC_STATIC_DSOUND_PRODUCTID
#define IDC_STATIC_DSOUND_TYPE
#define IDC_STATIC_DSOUND_DATE
#define IDC_STATIC_DSOUND_DEVICEID
#define IDC_STATIC_DSOUND_DRIVER
#define IDC_STATIC_DSOUND_VERSION
#define IDC_STATIC_ADAPTER_PROVIDER
#define INVALID_HANDLE_VALUE
#define ERROR_NO_MORE_ITEMS
BOOL WINAPI SetupDiEnumDeviceInfo(HDEVINFO devinfo, DWORD index, PSP_DEVINFO_DATA info)
BOOL WINAPI SetupDiGetDeviceRegistryPropertyW(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, DWORD Property, PDWORD PropertyRegDataType, PBYTE PropertyBuffer, DWORD PropertyBufferSize, PDWORD RequiredSize)
HDEVINFO WINAPI SetupDiGetClassDevsW(CONST GUID *class, LPCWSTR enumstr, HWND parent, DWORD flags)
BOOL WINAPI SetupDiDestroyDeviceInfoList(HDEVINFO devinfo)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define MM_MSFT_WDMAUDIO_WAVEOUT
_Check_return_ _CRTIMP int __cdecl wcsncmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
#define SetupDiGetDeviceInstanceId
WCHAR szPname[MAXPNAMELEN]
DWORD WINAPI GetLastError(void)
UINT WINAPI waveOutGetNumDevs(void)
UINT WINAPI waveOutGetDevCapsW(UINT_PTR uDeviceID, LPWAVEOUTCAPSW lpCaps, UINT uSize)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
BOOL WINAPI SetDlgItemInt(_In_ HWND, _In_ int, _In_ UINT, _In_ BOOL)