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_CAPS、DPN_CAPS_EX、DPN_SP_CAPS は無効になる。