あるサイトで見つけたプログラムですが
二つは、コールバックに使っていると思いますが、
具体的には、記述によりどんな意味がでますか?
あまり意味がない気がするんですが。
教えてください。
maop.dwCallback = (DWORD)hWnd;
mpp.dwCallback = (DWORD)hWnd;
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
int er;
TCHAR str[256];
static MCI_PLAY_PARMS mpp;
static MCI_ANIM_OPEN_PARMS maop;
switch( msg )
{
case WM_CREATE:
maop.dwCallback = (DWORD)hWnd;
maop.lpstrElementName = TEXT(a.avi);
maop.dwStyle = WS_CHILD | WS_VISIBLE;
maop.hWndParent = hWnd;
er = mciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT |
MCI_ANIM_OPEN_PARENT | MCI_ANIM_OPEN_WS, (DWORD)&maop);
if(er){
mciGetErrorString( er, str, lstrlen(str));
MessageBox(hWnd, str, えらー ,MB_OK);
return -1;
}
mpp.dwCallback = (DWORD)hWnd;
mciSendCommand( maop.wDeviceID ,MCI_PLAY ,0 ,(DWORD)
&maop);
return 0;
case WM_DESTROY:
mciSendCommand(maop.wDeviceID, MCI_CLOSE ,0, 0);
PostQuitMessage( 0 );
return 0;
}
return DefWindowProc( hWnd, msg, wp, lp );
}
提示のソースでは意味がありませんが、
mciSendCommandでMCI_NOTIFYフラグを指定すると
dwCallbackメンバに指定されたウインドウに
MM_MCINOTIFYメッセージがポストされます。
繰り返し再生などをする場合は必要です。
オープン、クローズ時はMCI_WAITフラグも
指定した方がいいと思います。
回答どうもありがとうございます。
>繰り返し再生などをする場合は必要です。
>オープン、クローズ時はMCI_WAITフラグも
指定した方がいいと思います。
いろいろ教えていただきまして
ありがとうございます!