開発環境 |
Microsoft Visual Studio Community 2017 |
実行環境 |
Microsoft Windows 10 Home (64bit) |
プロジェクトの種類 |
Visual C++ / 空のプロジェクト |
プロジェクト名 |
dscaps |
参考
dscaps.cpp
// マルチバイト文字セット
#pragma comment(lib, "dsound")
#include <dsound.h>
#include <stdio.h>
#define CHECK(hres) if (FAILED(hres)) { return 1; }
#define PRINT(flag, name) printf("[%c] " #name "\n", (flag & name) ? 'o' : '-')
int main()
{
HRESULT hr;
hr = CoInitialize(NULL);
CHECK(hr);
LPDIRECTSOUND8 lpds;
hr = DirectSoundCreate8(NULL, &lpds, NULL);
CHECK(hr);
DWORD cert;
hr = lpds->VerifyCertification(&cert);
CHECK(hr);
printf("DirectX認証\n");
PRINT(cert, DS_CERTIFIED);
PRINT(cert, DS_UNCERTIFIED);
DSCAPS dsc;
dsc.dwSize = sizeof DSCAPS;
hr = lpds->GetCaps(&dsc);
CHECK(hr);
printf("\nデバイス能力\n");
printf("dwFlags=[%08x]\n", dsc.dwFlags);
DWORD flag = dsc.dwFlags;
PRINT(flag, DSCAPS_CERTIFIED);
PRINT(flag, DSCAPS_CONTINUOUSRATE);
PRINT(flag, DSCAPS_EMULDRIVER);
PRINT(flag, DSCAPS_PRIMARY16BIT);
PRINT(flag, DSCAPS_PRIMARY8BIT);
PRINT(flag, DSCAPS_PRIMARYMONO);
PRINT(flag, DSCAPS_PRIMARYSTEREO);
PRINT(flag, DSCAPS_SECONDARY16BIT);
PRINT(flag, DSCAPS_SECONDARY8BIT);
PRINT(flag, DSCAPS_SECONDARYMONO);
PRINT(flag, DSCAPS_SECONDARYSTEREO);
printf("dwMinSecondarySampleRate=[%u]\n", dsc.dwMinSecondarySampleRate);
printf("dwMaxSecondarySampleRate=[%u]\n", dsc.dwMaxSecondarySampleRate);
CoUninitialize();
return 0;
}
出力
DirectX認証
[-] DS_CERTIFIED
[o] DS_UNCERTIFIED
デバイス能力
dwFlags=[00000f1f]
[-] DSCAPS_CERTIFIED
[o] DSCAPS_CONTINUOUSRATE
[-] DSCAPS_EMULDRIVER
[o] DSCAPS_PRIMARY16BIT
[o] DSCAPS_PRIMARY8BIT
[o] DSCAPS_PRIMARYMONO
[o] DSCAPS_PRIMARYSTEREO
[o] DSCAPS_SECONDARY16BIT
[o] DSCAPS_SECONDARY8BIT
[o] DSCAPS_SECONDARYMONO
[o] DSCAPS_SECONDARYSTEREO
dwMinSecondarySampleRate=[100]
dwMaxSecondarySampleRate=[200000]
最終更新:2018年06月15日 21:33