Microsoft DirectX 8.0 (C++)

PFNDPNMESSAGEHANDLER

PFNDPNMESSAGEHANDLER は、アプリケーション定義のコールバック関数で、IDirectPlay8PeerIDirectPlay8ClientIDirectPlay8ServerIDirectPlay8LobbyClient、およびIDirectPlay8LobbiedApplication インターフェイスを使ってメッセージを処理する。

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

パラメータ

pvUserContext
このコールバック関数に渡されるアプリケーション定義構造体へのポインタ。Initialize メソッドの pvUserContext パラメータに定義される。
dwMessageType
次のメッセージ タイプのいずれか 1 つ。IDirectPlay8PeerIDirectPlay8Client、および IDirectPlay8Server の各インターフェイスによって生成される。各インターフェイスは、有効なメッセージのうちで、それぞれ異なるサブセットを使用する。詳細については、インターフェイスのドキュメントを参照すること。
pMessage
メッセージ情報を保持する構造体。

戻り値

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

注意

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

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

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

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

動作環境

  Windows NT/2000 : Windows 2000 以降に対する再配布可能ファイルとして提供。
  Windows 95/98 : Windows 95 以降に対する再配布可能ファイルとして提供。
  ヘッダー : Dplay8.h で宣言。