IMFSchemeHandler::BeginCreateObject 方法 (mfidl.h)
開始非同步要求,以從 URL 建立物件。
當 來源解析程式 從 URL 建立媒體來源時,會將要求傳遞至配置處理常式。 配置處理常式可能會直接從 URL 建立媒體來源,或者可能會傳回位元組資料流程。 如果傳回位元組資料流程,來源解析程式會使用位元組資料流程處理常式,從位元組資料流程建立媒體來源。
語法
HRESULT BeginCreateObject(
[in] LPCWSTR pwszURL,
[in] DWORD dwFlags,
[in] IPropertyStore *pProps,
[out] IUnknown **ppIUnknownCancelCookie,
[in] IMFAsyncCallback *pCallback,
[in] IUnknown *punkState
);
參數
[in] pwszURL
包含要解析之 URL 的 Null 終止字串。
[in] dwFlags
一或多個旗標的位 OR 。 請參閱 來源解析程式旗標。
[in] pProps
屬性存放區 之 IPropertyStore 介面的指標。 配置處理常式可以使用這個屬性存放區來設定 物件。 此參數可以是 Null。 如需詳細資訊,請參閱 設定媒體來源。
[out] ppIUnknownCancelCookie
接收 IUnknown 指標或 Null值。 如果此值不是 Null,您可以將這個指標傳遞至 IMFSchemeHandler::CancelObjectCreation 方法,以取消非同步作業。 呼叫端必須釋放 介面。 此參數可以是 Null,在此情況下 ,IUnknown 指標不會傳回給呼叫端。
[in] pCallback
回 呼物件的 IMFAsyncCallback 介面指標。 呼叫端必須實作這個介面。
[in] punkState
狀態物件的 IUnknown 介面指標,由呼叫端定義。 此參數可以是 Null。 您可以使用這個物件來保存狀態資訊。 叫用回呼時,物件會傳回給呼叫端。
傳回值
方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。
傳回碼 | 描述 |
---|---|
|
此方法已成功。 |
|
無法以要求的存取權開啟 URL, (讀取或寫入) 。 |
|
不支援的位元組資料流程類型。 |
備註
dwFlags參數必須包含MF_RESOLUTION_MEDIASOURCE旗標或MF_RESOLUTION_BYTESTREAM旗標。 如果已設定 MF_RESOLUTION_MEDIASOURCE 旗標,配置處理常式可能會直接從 URL 建立媒體來源,或者可能會建立位元組資料流程。 物件的類型會在IMFSchemeHandler::EndCreateObject方法的pObjectType參數中傳回。 如果配置處理常式傳回位元組資料流程,來源解析程式會將位元組資料流程傳遞至位元組資料流程處理常式,以從位元組資料流程建立媒體來源。
如果已設定 MF_RESOLUTION_BYTESTREAM 旗標,配置處理常式會嘗試從 URL 建立位元組資料流程。 不過,如果配置處理常式是設計來直接建立媒體來源,而不是位元組資料流程,方法將會失敗。
下表摘要說明傳遞至此方法時這兩個旗標的行為:
旗標 | 已建立物件 |
---|---|
MF_RESOLUTION_MEDIASOURCE | 媒體來源或位元組資料流程 |
MF_RESOLUTION_BYTESTREAM | 位元組資料流程 |
您可以合併 MF_RESOLUTION_MEDIASOURCE 和 MF_RESOLUTION_BYTESTREAM 旗標,但在此情況下是多餘的。
當作業完成時,配置處理常式會呼叫 IMFAsyncCallback::Invoke 方法。 Invoke 方法應該呼叫 IMFSchemeHandler::EndCreateObject ,以取得所建立物件的指標。
需求
最低支援的用戶端 | Windows Vista [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | mfidl.h |
程式庫 | Mfuuid.lib |