#include <MMSYSTEM.H>をソースへ追加して下さい。
MCIERROR mciSendString(lpszCommand, lpszReturnString, cchReturn, hwndCallback)
MCIERROR mciSendCommand(IDDevice, uMsg, fdwCommand, dwParam)
#include <stdio.h>
#include <windows.h>
#include <mmsystem.h>
void main()
{
char szReturnString[500];
char szSendString[500];
long lNumOfDevice,l;
printf("登録MCIデバイス表示ソフト\n");
// MCIデバイス数の取得
if(mciSendString("Sysinfo all quantity",szReturnString,sizeof(szReturnString),NULL)!=0){
fprintf(stderr,"MCIにエラー発生\n");
exit(-1);
}
lNumOfDevice=atoi(szReturnString);
// 一覧の作成
for(l=1;l<=lNumOfDevice;l++){
wsprintf(szSendString,"sysinfo all name %d",l);
mciSendString(szSendString,szReturnString,sizeof(szReturnString),NULL);
printf("MCI Device(%d):%s\n",l,szReturnString);
}
exit(0);
}
|
実行例を以下に示します。
D:\ito\Src\MciQuery\Debug>mciquery 登録MCIデバイス表示ソフト MCI Device(1):LiveAudioFile MCI Device(2):LiveAudioMetafile MCI Device(3):QTWVideo MCI Device(4):MPEGVideo MCI Device(5):avivideo MCI Device(6):waveaudio MCI Device(7):sequencer MCI Device(8):cdaudio D:\ito\Src\MciQuery\Debug> |
上記の例では、(1)(2)がLiveAudio、(3)がQTW(Qick Time for Windows)、(4)がActiveMovie、(5)がVFW(Video for Windows)です。
// パラメータの設定 stOpenParams.lpstrElementName=strPlayFileNameShort; // ファイル名 stOpenParams.hWndParent=hMainWnd; // 親ウィンドウのハンドル stOpenParams.dwStyle=WS_CHILD; // 作成するウィンドウのタイプ // オープン RetVal=mciSendCommand(0, MCI_OPEN, MCI_WAIT|MCI_OPEN_ELEMENT|MCI_ANIM_OPEN_PARENT|MCI_ANIM_OPEN_WS , (DWORD)(LPVOID)&stOpenParams); // デバイスIDの取得 IDDevice=stOpenParams.wDeviceID;