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 デバイスを作成します。
- iMMDeviceEnumerator::GetDefaultAudioEndpoint メソッドを呼び出して、eMultimedia ロールを持つレンダリング エンドポイント デバイスの IMMDevice インターフェイスを取得します。
- IMMDevice::OpenPropertyStore メソッドを呼び出して、eMultimedia デバイスの IPropertyStore インターフェイスを取得します。 IPropertyStore の詳細については、Windows SDK のドキュメントを参照してください。
- IPropertyStore::GetValue メソッドを呼び出して、PKEY_AudioEndpoint_GUIDプロパティ値を取得します。
- プロパティ値を文字列形式の GUID から 16 バイトの GUID 構造体に変換します。
- 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 |
|
関連項目