次の方法で共有


IDirectPlayVoiceClient::Disconnect メソッド

IDirectPlayVoiceClient::Disconnect メソッド

Microsoft® DirectPlay® Voice クライアントを既存の DirectPlay Voice セッションから接続解除する。

構文

HRESULT Disconnect(      
    DWORD dwFlags
);

パラメータ

  • dwFlags
    [in] フラグ。次のフラグを指定できる。
    • DVFLAGS_SYNC
      処理が完了するまで戻らない。

戻り値

成功した場合は DV_OK を返す。または、次のいずれかのエラー値を返す。

DVERR_ALREADYPENDING このタイプの非同期呼び出しは既にペンディング状態になっている。
DVERR_CONNECTABORTING 接続解除中。
DVERR_INVALIDFLAGS このメソッドに渡されたフラグは無効である。
DVERR_INVALIDPARAM メソッドに渡された 1 つ以上のパラメータが無効である。
DVERR_NOTCONNECTED DirectPlay Voice オブジェクトが接続されていない。
DVERR_NOTINITIALIZED このメソッドを呼び出す前に、IDirectPlayVoiceClient::Initialize メソッドまたは IDirectPlayVoiceServer::Initialize メソッドを呼び出す必要がある。
DVERR_PENDING エラーではない。この戻り値は、非同期処理で、キューへの設定が成功するところまで処理が進んだことを示す。
DVERR_SESSIONLOST トランスポートはセッションへの接続を喪失した。
DVERR_TIMEOUT 指定された時間内に処理を実行できなかった。

注意

このメソッドを呼び出すと、録音と再生はすべて停止する。処理中の接続は、この呼び出しにより取り消される。

DVFLAGS_SYNC が指定されていない場合、メソッド呼び出し直後に DVERR_PENDING エラー値が返され、バッググラウンドで接続解除要求が処理される。DirectPlay Voice クライアントが接続解除結果を含んだ DVMSGID_DISCONNECTRESULT メッセージを生成するまで、接続解除の状態は不明である。一度に 1 つの接続解除のみをペンディング状態にできる。接続解除が保留になっている間に IDirectPlayVoiceClient::Disconnect を呼び出した場合、DirectPlay は DVERR_ALREADYPENDING エラー値を返す。

DVFLAGS_SYNC フラグを設定し、同期をとってこのメソッドを呼び出した場合、IDirectPlayVoiceClient::Disconnect メソッドが完了するまでこのメソッドは戻らない。接続解除の結果はこのメソッドの戻り値が示す。DVMSGID_DISCONNECTRESULT メッセージは生成されない。