PKEY_AudioEndpoint_GUID

PKEY_AudioEndpoint_GUID屬性會提供對應至音訊端點裝置的 DirectSound 裝置識別碼。 屬性值是用戶端可在 DirectSound API 中提供作為 DirectSoundCreateDirectSoundCaptureCreate 函式之裝置識別碼的 GUID。 此值可唯一識別系統中所有音訊端點裝置的音訊端點裝置。 如需 DirectSound 的詳細資訊,請參閱 DirectX SDK 檔。

PROPVARIANT結構的vt成員會設定為 VT_LPWSTR。

PROPVARIANT結構的pwszVal成員會指向 Null 終止的寬字元字串,其中包含識別 DirectSound 中音訊端點裝置的 GUID。

如先前所述, 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 角色的裝置。

注意

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 [僅限傳統型應用程式]
標頭
Mmdeviceapi.h

另請參閱

音訊端點屬性

核心音訊屬性