IMFTransform::GetStreamIDs 方法 (mftransform.h)
取得此 Media Foundation 轉換上輸入和輸出資料流程的資料流程識別碼, (MFT) 。
語法
HRESULT GetStreamIDs(
[in] DWORD dwInputIDArraySize,
[out] DWORD *pdwInputIDs,
[in] DWORD dwOutputIDArraySize,
[out] DWORD *pdwOutputIDs
);
參數
[in] dwInputIDArraySize
pdwInputIDs陣列中的元素數目。
[out] pdwInputIDs
呼叫端所配置的陣列指標。 方法會將陣列填入輸入資料流程識別碼。 陣列大小至少必須等於輸入資料流程的數目。 若要取得輸入資料流程的數目,請呼叫 IMFTransform::GetStreamCount。
如果呼叫端傳遞大於輸入資料流程數目的陣列,MFT 不得將值寫入額外的陣列專案。
[in] dwOutputIDArraySize
pdwOutputIDs陣列中的元素數目。
[out] pdwOutputIDs
呼叫端所配置的陣列指標。 方法會以輸出資料流程識別碼填入陣列。 陣列大小至少必須等於輸出資料流程的數目。 若要取得輸出資料流程的數目,請呼叫 GetStreamCount。
如果呼叫端傳遞大於輸出資料流程數目的陣列,MFT 不得將值寫入額外的陣列專案。
傳回值
方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。
傳回碼 | 描述 |
---|---|
|
此方法已成功。 |
|
未實作。 請參閱<備註>。 |
|
其中一或兩個數組太小。 |
備註
串流識別碼是必要的,因為某些 MFT 可以新增或移除資料流程,因此資料流程的索引可能不是唯一的。 因此,在資料流程上運作的 IMFTransform 方法會採用資料流程識別碼。
如果下列兩個條件都成立,這個方法可以傳回 E_NOTIMPL :
- 轉換具有固定數目的資料流程。
- 資料流程會連續從 0 到 n – 1 編號,其中 n 是輸入資料流程或輸出資料流程的數目。 換句話說,第一個輸入資料流程是 0、第二個是 1,依此類故;而第一個輸出資料流程是 0,第二個則是 1,依此類故。
- MFT 可以新增或移除輸出資料流程。
- MFT 可讓用戶端新增或移除輸入資料流程。
- 資料流程識別碼不連續。
如果用戶端新增輸入資料流程,則用戶端會指派識別碼,因此 MFT 必須允許任意識別碼,只要它們是唯一的。 如果 MFT 建立輸出資料流程,MFT 會指派識別碼。
根據慣例,如果 MFT 只有一個固定輸入資料流程和一個固定輸出資料流程,它應該將識別碼 0 指派給這兩個數據流。
如果在包含 mftransform.h 之前定義 MFT_UNIQUE_METHOD_NAMES ,這個方法會重新命名 為 MFTGetStreamIDs。 請參閱 建立混合式 DMO/MFT 物件。
需求
最低支援的用戶端 | Windows Vista [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | mftransform.h |
程式庫 | Mfuuid.lib |