次の方法で共有


IDirectPlay8Server::Close メソッド

IDirectPlay8Server::Close メソッド

セッションへの開いた接続を閉じ、IDirectPlay8Server オブジェクトを未初期化する。

構文

HRESULT Close(      
    const DWORD dwFlags
);

パラメータ

  • dwFlags
    [in] 次のフラグを指定できる。
    • DPNCLOSE_IMMEDIATE
      すぐに閉じる。未処理の呼び出しが完了するまで待機しない。

戻り値

成功した場合は、S_OK を返す。それ以外の場合は、次のいずれかのエラー値を返す。

DPNERR_UNINITIALIZED 要求されたオブジェクトが初期化されていない。

注意

いずれかのオブジェクトが IDirectPlay8Server::Initialize で正常に初期化されると、このメソッドを呼び出す必要がある。

これは、IDirectPlay8Server::Host に対応するメソッドである。サーバーにホストされているすべてのアクティブなネットワーク接続を閉じる。このメソッドは同期メソッドであり、サーバーがすべての DPN_MSGID_DESTROY_PLAYER メッセージを処理するまで戻らない。この機能により、IDirectPlay8Server::Close が戻ればサーバー アプリケーションを安全にシャットダウンできる。

IDirectPlay8Server::Close を呼び出すと、キューで送信されるのを待つ保証付きメッセージを含め、未処理のすべての処理が取り消される。保証付きメッセージとして既に送信されているメッセージは、送信確認を受け取るまで再試行される。すべてのメッセージの送信を確認するには、IDirectPlay8Server::Close を呼び出す前に、未処理の IDirectPlay8Server::SendTo 呼び出しがすべて完了するまで待機する。

IDirectPlay8Server::Close を呼び出すと、IDirectPlay8Server オブジェクトに関連付けられた DPN_CAPSDPN_CAPS_EXDPN_SP_CAPS は無効になる。