プログラミングでマルチメディアキーボードの使い方(うぃんどうず)

なるほどWM_APPCOMMANDメッセージだ。


#include
#include

wchar_t* appname = L"just test";

LRESULT __stdcall wproc(HWND hWnd, UINT nMsg, WPARAM wp, LPARAM lp) {
if(nMsg == WM_APPCOMMAND) {
printf("key pressed:");
switch(GET_APPCOMMAND_LPARAM(lp)) {
case APPCOMMAND_MEDIA_PLAY_PAUSE:
puts("play/pause");
break;
case APPCOMMAND_MEDIA_STOP:
puts("stop");
break;
case APPCOMMAND_MEDIA_NEXTTRACK:
puts("next");
break;
case APPCOMMAND_MEDIA_PREVIOUSTRACK:
puts("previous");
break;
}
return(TRUE);
} else
return DefWindowProc(hWnd, nMsg, wp, lp);
}

int main() {
HWND hWnd;
WNDCLASSW wc;
BOOL bRet;
MSG msg;

ZeroMemory(&wc, sizeof(wc));
wc.lpszClassName = appname;
wc.hInstance = GetModuleHandle(0);
wc.lpfnWndProc = wproc;

RegisterClassW(&wc);
hWnd = CreateWindowW(appname, appname, WS_OVERLAPPED, 0,0,0,0,0,0, GetModuleHandle(0), 0);
ShowWindow(hWnd, SW_SHOWDEFAULT);
UpdateWindow(hWnd);
while( (bRet = GetMessage( &msg, hWnd, 0, 0 )) != 0) {
if (bRet == -1) {
break;
} else {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return(0);
}