Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Извлекает массив байтов, связанный с ключом. Этот метод копирует массив в выделенный вызывающим буфером.
Синтаксис
HRESULT GetBlob(
[in] REFGUID guidKey,
[out] UINT8 *pBuf,
[in] UINT32 cbBufSize,
[out] UINT32 *pcbBlobSize
);
Параметры
[in] guidKey
GUID, определяющий, какое значение требуется получить. Тип атрибута должен быть MF_ATTRIBUTE_BLOB.
[out] pBuf
Указатель на буфер, выделенный вызывающим объектом. Если ключ найден и значение является массивом байтов, метод копирует массив в этот буфер. Чтобы найти требуемый размер буфера, вызовите МВФAttributes::GetBlobSize.
[in] cbBufSize
Размер буфера pBuf в байтах.
[out] pcbBlobSize
Получает размер массива байтов. Этот параметр может быть NULL.
Возвращаемое значение
Метод возвращает HRESULT. Возможные значения включают, но не ограничиваются ими в следующей таблице.
| Код возврата | Description |
|---|---|
|
Метод выполнен успешно. |
|
Буфер недостаточно велик для массива. |
|
Указанный ключ не найден. |
|
Значение атрибута не является массивом байтов. |
Замечания
Можно также использовать метод IMFAttributes::GetAllocatedBlob , который выделяет буфер для хранения массива байтов.
Этот интерфейс доступен на следующих платформах, если установлены распространяемые компоненты пакета SDK для Windows Media 11:
- Windows XP с пакетом обновления 2 (SP2) и более поздними версиями.
- Windows XP Media Center Edition 2005 с KB900325 (Windows XP Media Center Edition 2005) и KB925766 (накопительный пакет обновления windows XP Media Center Edition 2006 для Windows XP Media Center Edition).
Примеры
В следующем примере кода показано, как получить атрибут, значение которого является массивом байтов.
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] |
| целевая платформа | Виндоус |
| Header | mfobjects.h (include Mfidl.h) |
| Library | Mfuuid.lib |