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。 可能的值包括 (但不限於) 下表中的這些值。

傳回碼 描述
S_OK
此方法已成功。
E_ACCESSDENIED
無法以要求的存取權開啟 URL, (讀取或寫入) 。
MF_E_UNSUPPORTED_BYTESTREAM_TYPE
不支援的位元組資料流程類型。

備註

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_MEDIASOURCEMF_RESOLUTION_BYTESTREAM 旗標,但在此情況下是多餘的。

當作業完成時,配置處理常式會呼叫 IMFAsyncCallback::Invoke 方法。 Invoke 方法應該呼叫 IMFSchemeHandler::EndCreateObject ,以取得所建立物件的指標。

需求

   
最低支援的用戶端 Windows Vista [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 mfidl.h
程式庫 Mfuuid.lib

另請參閱

IMFSchemeHandler

配置處理常式和 Byte-Stream 處理常式