IMFAttributes::GetBlob 메서드(mfobjects.h)

키와 연결된 바이트 배열을 검색합니다. 이 메서드는 배열을 호출자가 할당한 버퍼에 복사합니다.

구문

HRESULT GetBlob(
  [in]  REFGUID guidKey,
  [out] UINT8   *pBuf,
  [in]  UINT32  cbBufSize,
  [out] UINT32  *pcbBlobSize
);

매개 변수

[in] guidKey

검색할 값을 식별하는 GUID입니다. 특성 형식은 MF_ATTRIBUTE_BLOB 합니다.

[out] pBuf

호출자가 할당한 버퍼에 대한 포인터입니다. 키가 발견되고 값이 바이트 배열인 경우 메서드는 배열을 이 버퍼에 복사합니다. 버퍼의 필요한 크기를 찾으려면 IMFAttributes::GetBlobSize를 호출합니다.

[in] cbBufSize

pBuf 버퍼의 크기(바이트)입니다.

[out] pcbBlobSize

바이트 배열의 크기를 받습니다. 이 매개 변수는 NULL일 수 있습니다.

반환 값

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

반환 코드 설명
S_OK
메서드가 성공했습니다.
E_NOT_SUFFICIENT_BUFFER
버퍼가 배열에 충분히 크지 않습니다.
MF_E_ATTRIBUTENOTFOUND
지정한 키를 찾을 수 없습니다.
MF_E_INVALIDTYPE
특성 값이 바이트 배열이 아닙니다.

설명

바이트 배열을 저장할 버퍼를 할당하는 IMFAttributes::GetAllocatedBlob 메서드를 사용할 수도 있습니다.

이 인터페이스는 Windows Media Format 11 SDK 재배포 가능 구성 요소가 설치된 경우 다음 플랫폼에서 사용할 수 있습니다.

  • Windows XP SP2(서비스 팩 2) 이상
  • KB900325(Windows XP Media Center Edition 2005) 및 KB925766(Windows XP Media Center Edition용 2006년 10월 업데이트 롤업)이 설치된 Windows XP Media Center Edition 2005.

예제

다음 코드 예제에서는 값이 바이트 배열인 특성을 가져오는 방법을 보여줍니다.

HRESULT AttributeGetBlob(IMFAttributes *pAttributes)
{
    HRESULT hr = S_OK;
    UINT32 cbBlob = 0;
    BYTE *pBlob = NULL;

    hr = pAttributes->GetBlobSize(MY_ATTRIBUTE, &cbBlob);
    
    if (SUCCEEDED(hr))
    {
        pBlob = new BYTE[cbBlob];
        if (pBlob == NULL)
        {
            hr = E_OUTOFMEMORY;
        }
    }

    if (SUCCEEDED(hr))
    {
        hr = pAttributes->GetBlob(MY_ATTRIBUTE, pBlob, cbBlob, &cbBlob);
    }

    if (pBlob)
    {
        delete [] pBlob;
    }
    return hr;
}

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 mfobjects.h(Mfidl.h 포함)
라이브러리 Mfuuid.lib

추가 정보

특성 및 속성

IMFAttributes

MF_ATTRIBUTE_TYPE