IMFSourceResolver::CreateObjectFromURL メソッド (mfidl.h)

URL からメディア ソースまたはバイト ストリームを作成します。 このメソッドは同期的です。

構文

HRESULT CreateObjectFromURL(
  [in]  LPCWSTR        pwszURL,
  [in]  DWORD          dwFlags,
  [in]  IPropertyStore *pProps,
  [out] MF_OBJECT_TYPE *pObjectType,
  [out] IUnknown       **ppObject
);

パラメーター

[in] pwszURL

解決する URL を含む Null で終わる文字列。

[in] dwFlags

1 つ以上のフラグのビットごとの OR。 「ソース リゾルバー フラグ」を参照してください。 以下の解説を参照してください。

[in] pProps

プロパティ ストアの IPropertyStore インターフェイスへのポインター。 メソッドは、プロパティ ストアを、オブジェクトを作成するスキーム ハンドラーまたはバイト ストリーム ハンドラーに渡します。 ハンドラーは、プロパティ ストアを使用して オブジェクトを構成できます。 このパラメーターは、NULL でもかまいません。 詳細については、「 メディア ソースの構成」を参照してください。

[out] pObjectType

作成されたオブジェクトの種類を指定して、 MF_OBJECT_TYPE 列挙のメンバーを受け取ります。

[out] ppObject

オブジェクトの IUnknown インターフェイスへのポインターを受け取ります。 呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。

リターン コード 説明
S_OK
メソッドが成功しました。
MF_E_SOURCERESOLVER_MUTUALLY_EXCLUSIVE_FLAGS
dwFlags パラメーターには、相互に排他的なフラグが含まれています。
MF_E_UNSUPPORTED_SCHEME
URL スキームはサポートされていません。

注釈

dwFlags パラメーターには、MF_RESOLUTION_MEDIASOURCE フラグまたはMF_RESOLUTION_BYTESTREAM フラグのいずれかを含める必要がありますが、両方を含めてはなりません。

シナリオに必要な場合を除き、入力引数 dwFlagsMF_RESOLUTION_WRITEを設定しないことをお勧めします。 ほとんどのユース ケースでは、メディア ソースを書き込み機能で作成する必要はありません。 書き込み機能を使用してメディア ソースを作成すると、書き込み機能のないメディア ソースを作成するよりも、成功する確率が低くなる可能性があります。 これは、書き込み機能を備えたメディア ソースを作成するときに、URL によって表されるコンテンツに対してより厳密なチェックが行われる可能性があるためです。

ローカル ファイルの場合は、 pwszURL パラメーターにファイル名を渡すことができます。スキーム file: は必要ありません。

メモ このメソッドをリモートで呼び出すことはできません。
 

//  Create a media source from a URL.
HRESULT CreateMediaSource(PCWSTR sURL, IMFMediaSource **ppSource)
{
    MF_OBJECT_TYPE ObjectType = MF_OBJECT_INVALID;

    IMFSourceResolver* pSourceResolver = NULL;
    IUnknown* pSource = NULL;

    // Create the source resolver.
    HRESULT hr = MFCreateSourceResolver(&pSourceResolver);
    if (FAILED(hr))
    {
        goto done;
    }

    // Use the source resolver to create the media source.

    // Note: For simplicity this sample uses the synchronous method to create 
    // the media source. However, creating a media source can take a noticeable
    // amount of time, especially for a network source. For a more responsive 
    // UI, use the asynchronous BeginCreateObjectFromURL method.

    hr = pSourceResolver->CreateObjectFromURL(
        sURL,                       // URL of the source.
        MF_RESOLUTION_MEDIASOURCE,  // Create a source object.
        NULL,                       // Optional property store.
        &ObjectType,        // Receives the created object type. 
        &pSource            // Receives a pointer to the media source.
        );
    if (FAILED(hr))
    {
        goto done;
    }

    // Get the IMFMediaSource interface from the media source.
    hr = pSource->QueryInterface(IID_PPV_ARGS(ppSource));

done:
    SafeRelease(&pSourceResolver);
    SafeRelease(&pSource);
    return hr;
}

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー mfidl.h
Library Mfuuid.lib

こちらもご覧ください

IMFSourceResolver

ソース リゾルバー