Microsoft DirectX 8.0 (C++) |
PDVMESSAGEHANDLER はアプリケーションにより定義されたコールバック関数であり、IDirectPlayVoiceClient インターフェイスおよび IDirectPlayVoiceServer インターフェイスでユーザーにメッセージを送信するときに使用される。
typedef HRESULT (FAR PASCAL *PDVMESSAGEHANDLER)( LPVOID pvUserContext, DWORD dwMessageType, LPVOID lpMessage );
適切な戻り値については、各メッセージのドキュメントを参照すること。ドキュメントに記述がない場合、この関数は S_OK を返す。
このコールバック関数を実装する場合は、最初に dwMessageType パラメータに返されるメッセージ タイプを調べ、次にメッセージ構造体 (lpMessage) をそのタイプに設定してメッセージ情報を取得する必要がある。メッセージの中には、パラメータがないため、定義された構造体を持たないものもある。このようなメッセージの場合、lpMessage パラメータは NULL にする。
注 : この関数は、複数の異なるスレッドから同時に呼び出される可能性がある。このため、スレッドセーフかつ再入可能でなければならない。
すべてのメッセージ構造体の名前は対応するメッセージ タイプ名と同じだが、接頭辞は DVMSGID_ の代わりに DVMSG_ になる。たとえば、DVMSGID_RECORDSTART の構造体は DVMSG_RECORDSTART である。
メッセージ ハンドラに送信される構造体は、呼び出し処理中のみ有効である。したがって、関数に渡された情報をハンドラ関数が戻った後に使用する場合は、データをコピーする必要がある。
同じプレーヤーからのコールバック メッセージは、順番に並べられる。プレーヤーからメッセージを受け取ると、そのメッセージを処理し、コールバック関数が戻されるまで別のメッセージを受け取ることはない。
IDirectPlayVoiceClient::Initialize、IDirectPlayVoiceServer::Initialize、IDirectPlayVoiceClient::SetNotifyMask、および IDirectPlayVoiceServer::SetNotifyMask の各メソッドの呼び出しによりメッセージ マスクに指定されたメッセージのみがこのコールバック関数に送信される。
DVMSGID_GAINFOCUS メッセージ構造体および DVMSGID_LOSTFOCUS メッセージ構造体は、Microsoft® DirectPlay® のこのリリースには実装されていない。
Windows NT/2000 : Windows 2000 以降に対する再配布可能ファイルとして提供。
Windows 95/98 : Windows 95 以降に対する再配布可能ファイルとして提供。
ヘッダー : Dvoice.h で宣言。