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
1 つ以上のフラグのビットごとの 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 からバイト ストリームを作成しようとします。 ただし、スキーム ハンドラーがバイト ストリームではなくメディア ソースを直接作成するように設計されている場合、メソッドは失敗します。
次の表は、このメソッドに渡されたときのこれら 2 つのフラグの動作をまとめたものです。
フラグ | 作成されたオブジェクト |
---|---|
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 |
Library | Mfuuid.lib |