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

resolve URL을 포함하는 Null로 끝나는 문자열입니다.

[in] dwFlags

하나 이상의 플래그의 비트 OR입니다. 원본 확인자 플래그를 참조하세요. 아래 설명 부분을 참조하세요.

[in] pProps

속성 저장소의 IPropertyStore 인터페이스에 대한 포인터입니다. 메서드는 개체를 만드는 스키마 처리기 또는 바이트 스트림 처리기에 속성 저장소를 전달합니다. 처리기는 속성 저장소를 사용하여 개체를 구성할 수 있습니다. 이 매개 변수는 NULL일 수 있습니다. 자세한 내용은 미디어 원본 구성을 참조하세요.

[out] pObjectType

만든 개체의 형식을 지정하여 MF_OBJECT_TYPE 열거형의 멤버를 받습니다.

[out] ppObject

개체의 IUnknown 인터페이스에 대한 포인터를 받습니다. 호출자는 인터페이스를 해제해야 합니다.

반환 값

이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.

반환 코드 Description
S_OK
메서드가 성공했습니다.
MF_E_SOURCERESOLVER_MUTUALLY_EXCLUSIVE_FLAGS
dwFlags 매개 변수에는 상호 배타적 플래그가 포함됩니다.
MF_E_UNSUPPORTED_SCHEME
URL 체계는 지원되지 않습니다.

설명

dwFlags 매개 변수는 MF_RESOLUTION_MEDIASOURCE 플래그 또는 MF_RESOLUTION_BYTESTREAM 플래그를 포함해야 하지만 둘 다 포함해서는 안 됩니다.

시나리오에 필요한 경우가 아니면 입력 인수 dwFlags에서 MF_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
라이브러리 Mfuuid.lib

추가 정보

IMFSourceResolver

원본 확인자