次の方法で共有


PDVMESSAGEHANDLER プロトタイプ

PDVMESSAGEHANDLER プロトタイプ

PDVMESSAGEHANDLER はアプリケーション定義のコールバック関数であり、IDirectPlayVoiceClient インターフェイスおよび IDirectPlayVoiceServer インターフェイスがユーザーにメッセージを送信するときに使う。

構文

typedef HRESULT (CALLBACK *PDVMESSAGEHANDLER)(      
    LPVOID pvUserContext,
    DWORD dwMessageType,
    LPVOID lpMessage
);

パラメータ

  • pvUserContext
    このコールバック関数に渡されるアプリケーション定義構造体へのポインタ。IDirectPlayVoiceServer::Initialize および IDirectPlayVoiceClient::Initialize メソッドの lpUserContext パラメータに定義する。
  • dwMessageType
    次のメッセージ タイプのいずれか 1 つ。
    • DVMSGID_CONNECTRESULT

    • DVMSGID_CREATEVOICEPLAYER

    • DVMSGID_DELETEVOICEPLAYER

    • DVMSGID_DISCONNECTRESULT

    • DVMSGID_GAINFOCUS

    • DVMSGID_HOSTMIGRATED

    • DVMSGID_INPUTLEVEL

    • DVMSGID_LOCALHOSTSETUP

    • DVMSGID_LOSTFOCUS

    • DVMSGID_OUTPUTLEVEL

    • DVMSGID_PLAYEROUTPUTLEVEL

    • DVMSGID_PLAYERVOICESTART

    • DVMSGID_PLAYERVOICESTOP

    • DVMSGID_RECORDSTART

    • DVMSGID_RECORDSTOP

    • DVMSGID_SESSIONLOST

    • DVMSGID_SETTARGETS

  • lpMessage
    メッセージ情報を格納する構造体。

戻り値

適切な戻り値については、各メッセージのドキュメントを参照すること。ドキュメントに記述がない場合、この関数は S_OK を返す。

注意

このコールバック関数を実装する場合は、最初に dwMessageType パラメータで返されるメッセージ タイプを調べ、次にメッセージ構造体 (lpMessage) をそのタイプに設定してメッセージ情報を取得する必要がある。メッセージの中には、パラメータがないため、定義された構造体を持たないものもある。このようなメッセージの場合、lpMessage パラメータは NULL にする。

  この関数は、複数の異なるスレッドから同時に呼び出される可能性がある。このため、スレッドセーフかつ再入可能でなければならない。

すべてのメッセージ構造体の名前は対応するメッセージ タイプ名と同じだが、プレフィクスは DVMSGID_ の代わりに DVMSG_ になる。たとえば、DVMSGID_RECORDSTART の構造体は DVMSG_RECORDSTART である。

メッセージ ハンドラに送信される構造体は、呼び出し処理中のみ有効である。したがって、関数に渡された情報をハンドラ関数が戻った後に使う場合は、データをコピーする必要がある。

同じプレーヤからのコールバック メッセージは、順番に並べられる。プレーヤからメッセージを受け取ると、そのメッセージを処理し、コールバック関数が戻されるまで別のメッセージを受け取ることはない。

IDirectPlayVoiceClient::InitializeIDirectPlayVoiceServer::InitializeIDirectPlayVoiceClient::SetNotifyMaskIDirectPlayVoiceServer::SetNotifyMask の各メソッドの呼び出しによりメッセージ マスクに指定されたメッセージのみが、このコールバック関数に送信される。

DVMSGID_GAINFOCUS メッセージ構造体および DVMSGID_LOSTFOCUS メッセージ構造体は、Microsoft® DirectPlay® のこのリリースには実装されていない。

プロトタイプ情報

ヘッダー dvoice.h
インポート ライブラリ なし
最低限のオペレーティング システム Windows 98、Pocket PC 2002