コールバック – プログラミング – Home

通知
すべてクリア

[解決済] コールバック


DD7
 DD7
(@DD7)
ゲスト
結合: 18年前
投稿: 2
Topic starter  

あるサイトで見つけたプログラムですが
二つは、コールバックに使っていると思いますが、
具体的には、記述によりどんな意味がでますか?
あまり意味がない気がするんですが。

教えてください。

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 );
}


引用未解決
トピックタグ
subaru
 subaru
(@subaru)
ゲスト
結合: 19年前
投稿: 381
 

提示のソースでは意味がありませんが、
mciSendCommandでMCI_NOTIFYフラグを指定すると
dwCallbackメンバに指定されたウインドウに
MM_MCINOTIFYメッセージがポストされます。
繰り返し再生などをする場合は必要です。

オープン、クローズ時はMCI_WAITフラグも
指定した方がいいと思います。


返信引用
DD7
 DD7
(@DD7)
ゲスト
結合: 18年前
投稿: 2
Topic starter  

回答どうもありがとうございます。

>繰り返し再生などをする場合は必要です。
>オープン、クローズ時はMCI_WAITフラグも
指定した方がいいと思います。

いろいろ教えていただきまして
ありがとうございます!


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました