次の方法で共有


IAudioClient::SetEventHandle メソッド (audioclient.h)

SetEventHandle メソッドは、オーディオ バッファーがクライアントによって処理される準備ができたときにシステムが通知するイベント ハンドルを設定します。

構文

HRESULT SetEventHandle(
  [in] HANDLE eventHandle
);

パラメーター

[in] eventHandle

イベント ハンドル。

戻り値

メソッドが成功した場合は、S_OK を返します。 エラーが発生した場合、次の表に示す値が、可能なリターン コードに含まれますが、これらに限定されません。

リターン コード 説明
E_INVALIDARG
パラメーター eventHandleNULL または無効なハンドルです。
AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED
オーディオ ストリームは、イベント ドリブン バッファリング用に初期化されませんでした。
AUDCLNT_E_NOT_INITIALIZED
オーディオ ストリームが正常に初期化されていません。
AUDCLNT_E_DEVICE_INVALIDATED
オーディオ エンドポイント デバイスが取り外されているか、オーディオ ハードウェアまたは関連するハードウェア リソースが再構成、無効、削除、またはその他の方法で使用できなくなります。
AUDCLNT_E_SERVICE_NOT_RUNNING
Windows オーディオ サービスが実行されていません。

注釈

このメソッドでは、 IAudioClient インターフェイスを事前に初期化する必要があります。 クライアントが IAudioClient::Initialize メソッドを正常に呼び出してオーディオ ストリームを初期化するまで、このメソッドの呼び出しはすべてエラー AUDCLNT_E_NOT_INITIALIZEDで失敗します。

ストリームの初期化中に、クライアントはオプションとして、イベント ドリブン バッファリングを有効にすることができます。 これを行うには、クライアントは AUDCLNT_STREAMFLAGS_EVENTCALLBACK フラグを設定して IAudioClient::Initialize メソッドを呼び出します。 イベント ドリブン バッファリングを有効にした後、 IAudioClient::Start メソッドを呼び出してストリームを開始する前に、クライアントは SetEventHandle を呼び出して、バッファーがクライアントによって処理される準備が整うたびにシステムが通知するイベント ハンドルを登録する必要があります。

イベント ハンドルは、クライアントが Start メソッドを呼び出した時点で、割り当てられていない状態である必要があります。

クライアントがストリームのイベント ドリブン バッファリングを有効にしたが、クライアントが最初に SetEventHandle を呼び出さずにそのストリームの Start メソッドを呼び出した場合、Start 呼び出しは失敗し、エラー コードが返されます。

クライアントがストリームのイベント ドリブン バッファリングを有効にせず、 SetEventHandle を呼び出してストリームのイベント ハンドルを設定しようとすると、呼び出しは失敗し、エラー コードが返されます。

SetEventHandle メソッドを呼び出すコード例については、「排他モード ストリーム」を参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー audioclient.h

こちらもご覧ください

IAudioClient インターフェイス

IAudioClient::Initialize

IAudioClient::Start