次の方法で共有


PKEY_AudioEndpoint_GUID

PKEY_AudioEndpoint_GUID プロパティは、オーディオ エンドポイント デバイスに対応する DirectSound デバイス識別子を提供します。 プロパティ値は、クライアントが DirectSound API の DirectSoundCreate または DirectSoundCaptureCreate 関数にデバイス識別子として指定できる GUID です。 この値は、システム内のすべてのオーディオ エンドポイント デバイス全体でオーディオ エンドポイント デバイスを一意に識別します。 DirectSound の詳細については、DirectX SDK のドキュメントを参照してください。

PROPVARIANT 構造体の vt メンバーは、VT_LPWSTRに設定されます。

PROPVARIANT 構造体の pwszVal メンバーは、DirectSound のオーディオ エンドポイント デバイスを識別する GUID を含む null で終わるワイド文字列を指します。

前に説明したように、 MMDevice API では デバイスロールがサポートされています。 DirectSound はデバイスの役割を直接サポートしていませんが、DirectSound クライアントは PKEY_AudioEndpoint_GUID プロパティを使用して、デバイスの役割に基づいて DirectSound レンダリングまたはキャプチャ デバイスを選択できます。

たとえば、DirectSound アプリケーションは、次の手順を実行して、ユーザーが eMultimedia ロールを割り当てたレンダリング エンドポイント デバイスに対応する DirectSound デバイスを作成します。

  1. iMMDeviceEnumerator::GetDefaultAudioEndpoint メソッドを呼び出して、eMultimedia ロールを持つレンダリング エンドポイント デバイスの IMMDevice インターフェイスを取得します。
  2. IMMDevice::OpenPropertyStore メソッドを呼び出して、eMultimedia デバイスの IPropertyStore インターフェイスを取得します。 IPropertyStore の詳細については、Windows SDK のドキュメントを参照してください。
  3. IPropertyStore::GetValue メソッドを呼び出して、PKEY_AudioEndpoint_GUIDプロパティ値を取得します。
  4. プロパティ値を文字列形式の GUID から 16 バイトの GUID 構造体に変換します。
  5. GUID を指定して DirectSoundCreate 関数を呼び出して、eMultimedia ロールを持つデバイスを作成します。

Note

PKEY_AudioEndpoint_GUID は、 IMMDevice::OpenPropertyStore でアプリケーションによって要求されたストレージ アクセス モードに関係なく、読み取り専用プロパティです。 アプリケーションが IPropertyStore::SetValue を使用して値を設定しようとすると、この呼び出しはE_ACCESSDENIEDエラー コードで失敗します。

 

手順 4 で生成された 16 バイトの GUID は、DirectSound デバイス列挙中にデバイスを識別するデバイス GUID と一致します。 DirectSoundEnumerate 関数はレンダリング エンドポイント デバイスを列挙し、DirectSoundCaptureEnumerate 関数はキャプチャ エンドポイント デバイスを列挙します。 どちらの場合も、デバイス GUID は列挙コールバック関数に渡される最初のパラメーターです。 DirectSound 列挙の詳細については、DirectX SDK のドキュメントを参照してください。

PKEY_AudioEndpoint_GUID プロパティを使用するコード例については、「 DirectSound アプリケーションのデバイスロール」を参照してください。

必要条件

要件
サポートされている最小のクライアント
Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2008 [デスクトップ アプリのみ]
Header
Mmdeviceapi.h

関連項目

オーディオ エンドポイントのプロパティ

コア オーディオのプロパティ