次の方法で共有


PFNDPNMESSAGEHANDLER プロトタイプ

PFNDPNMESSAGEHANDLER プロトタイプ

PFNDPNMESSAGEHANDLER は、アプリケーション定義のコールバック関数で、IDirectPlay8PeerIDirectPlay8ClientIDirectPlay8ServerIDirectPlay8LobbyClientIDirectPlay8LobbiedApplication の各インターフェイスがメッセージを処理するときに使う。

構文

typedef HRESULT (CALLBACK *PFNDPNMESSAGEHANDLER)(      
    PVOID pvUserContext,
    DWORD dwMessageType,
    PVOID pMessage
);

パラメータ

  • pvUserContext
    このコールバック関数に渡されるアプリケーション定義構造体へのポインタ。Initialize メソッドの pvUserContext パラメータに定義する。
  • dwMessageType
    次の DPN_ メッセージ タイプのいずれか 1 つであり、IDirectPlay8PeerIDirectPlay8ClientIDirectPlay8Server の各インターフェイスによって生成される。各インターフェイスは、有効な DPN_ メッセージのうち、それぞれ異なるサブセットを使う。詳細については、インターフェイスのドキュメントを参照すること。また、Microsoft® DirectPlay® のロビー機能がアプリケーションでサポートされている場合、IDirectPlay8LobbyClient インターフェイスおよび IDirectPlay8LobbiedApplication インターフェイスで生成される次の DPL_ メッセージ タイプのいずれかをこのパラメータに指定できる。各インターフェイスは、有効な DPL_ メッセージのうち、それぞれ異なるサブセットを使う。詳細については、インターフェイスのドキュメントを参照すること。
    • DPN_MSGID_ADD_PLAYER_TO_GROUP

    • DPN_MSGID_ASYNC_OP_COMPLETE

    • DPN_MSGID_CLIENT_INFO

    • DPN_MSGID_CONNECT_COMPLETE

    • DPN_MSGID_CREATE_GROUP

    • DPN_MSGID_CREATE_PLAYER

    • DPN_MSGID_DESTROY_GROUP

    • DPN_MSGID_DESTROY_PLAYER

    • DPN_MSGID_ENUM_HOSTS_QUERY

    • DPN_MSGID_ENUM_HOSTS_RESPONSE

    • DPN_MSGID_GROUP_INFO

    • DPN_MSGID_HOST_MIGRATE

    • DPN_MSGID_INDICATE_CONNECT

    • DPN_MSGID_INDICATED_CONNECT_ABORTED

    • DPN_MSGID_PEER_INFO

    • DPN_MSGID_RECEIVE

    • DPN_MSGID_REMOVE_PLAYER_FROM_GROUP

    • DPN_MSGID_RETURN_BUFFER

    • DPN_MSGID_SEND_COMPLETE

    • DPN_MSGID_SERVER_INFO

    • DPN_MSGID_TERMINATE_SESSION

    • DPL_MSGID_CONNECT

    • DPL_MSGID_CONNECTION_SETTINGS

    • DPL_MSGID_DISCONNECT

    • DPL_MSGID_RECEIVE

    • DPL_MSGID_SESSION_STATUS

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

戻り値

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

注意

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

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

メッセージ構造体の名前はメッセージ タイプ名と同じだが、"DPN_MSGID" は "DPNMSG" になる。たとえば、DPN_MSGID_TERMINATE_SESSION メッセージ タイプは、DPNMSG_CONNECTION_TERMINATED メッセージ構造体を使って、実際のメッセージ情報を保持する。

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

プロトタイプ情報

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