開発環境 Microsoft Visual Studio Community 2017
実行環境 Microsoft Windows 10 Home (64bit)
プロジェクトの種類 Visual C++ / 空のプロジェクト

参考

コンソール版(dsenum_c)


dsenum_c.cpp
// マルチバイト文字セット
// https://msdn.microsoft.com/ja-jp/library/cc354468.aspx
 
#pragma comment(lib, "dsound")
 
#include <dsound.h>
#include <stdio.h>
 
BOOL CALLBACK DSEnumProc(LPGUID lpGUID, LPCTSTR lpszDesc, LPCTSTR lpszDrvName, LPVOID lpContext)
{
	printf("[%s][%s]\n", lpszDesc, lpszDrvName);
	return TRUE;
}
 
int main()
{
	HRESULT hr = DirectSoundEnumerate(DSEnumProc, NULL);
	return 0;
}
 

出力
[プライマリ サウンド ドライバー][]
[EX-LD2071T (Intel SST Audio Device (WDM))][{0.0.0.00000000}.{0226a988-680d-43c9-b4e4-f71db4992a9c}]
[スピーカー (Intel SST Audio Device (WDM))][{0.0.0.00000000}.{1dbfc4da-902e-4808-b91b-5381f6f64943}]
 



ウィンドウ版(dsenum_w)


dsenum_w.cpp
// Unicode文字セット
// https://msdn.microsoft.com/ja-jp/library/cc354468.aspx
 
#pragma comment(lib, "dsound")
 
#include <windowsx.h>
#include <dsound.h>
#include "Resource.h"
 
INT_PTR CALLBACK MainDlg(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
void Init(HWND hDlg);
BOOL CALLBACK DSEnumProc(LPGUID lpGUID, LPCTSTR lpszDesc, LPCTSTR lpszDrvName, LPVOID lpContext);
 
////
 
int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
	DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAINDLG), NULL, MainDlg);
	return 0;
}
 
INT_PTR CALLBACK MainDlg(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message) {
	case WM_COMMAND:
		switch (LOWORD(wParam)) {
		case IDCANCEL:
			EndDialog(hDlg, IDCANCEL);
			break;
		}
		break;
	case WM_INITDIALOG:
		Init(hDlg);
		break;
	default:
		return FALSE;
	}
	return TRUE;
}
 
void Init(HWND hDlg)
{
	HWND hCombo1 = GetDlgItem(hDlg, IDC_COMBO1);
	DirectSoundEnumerate(DSEnumProc, hCombo1);
}
 
BOOL CALLBACK DSEnumProc(LPGUID lpGUID, LPCTSTR lpszDesc, LPCTSTR lpszDrvName, LPVOID lpContext)
{
	HWND hCombo = (HWND)lpContext;
	ComboBox_AddString(hCombo, lpszDesc);
	return TRUE;
}
 

Resource.h
#define IDD_MAINDLG		100
 
#define IDC_STATIC		-1
#define IDC_COMBO1		1000
 

dsenum_w.rs
// resource script
#include <windows.h>
#include "resource.h"
 
IDD_MAINDLG DIALOGEX 100, 100, 320, 200
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "dsenum_w"
FONT 9, "MS UI Gothic"
BEGIN
COMBOBOX	IDC_COMBO1, 10, 10, 200, 100, CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
END
 
最終更新:2018年06月13日 11:10