Microsoft DirectX 8.0 (C++) |
PFNDPNMESSAGEHANDLER は、アプリケーション定義のコールバック関数で、IDirectPlay8Peer、IDirectPlay8Client、IDirectPlay8Server、IDirectPlay8LobbyClient、およびIDirectPlay8LobbiedApplication インターフェイスを使ってメッセージを処理する。
typedef HRESULT (WINAPI *PFNDPNMESSAGEHANDLER)( PVOID pvUserContext, DWORD dwMessageType, PVOID pMessage );
また、Microsoft® DirectPlay® のロビー機能がアプリケーションでサポートされている場合、IDirectPlay8LobbyClient インターフェイスおよびIDirectPlay8LobbiedApplication インターフェイスで生成される次のメッセージ タイプのいずれかをこのパラメータに指定できる。各インターフェイスは、有効なメッセージのうちで、それぞれ異なるサブセットを使用する。詳細については、インターフェイスのドキュメントを参照すること。
適切な戻り値については、各メッセージのドキュメントを参照すること。ドキュメントに記述がない場合、この関数は 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 で宣言。