IMFMediaEvent::GetValue 方法 (mfobjects.h)

检索与事件关联的值(如果有)。 该值作为 PROPVARIANT 结构检索。 实际数据类型和值的含义取决于事件。

语法

HRESULT GetValue(
  [out] PROPVARIANT *pvValue
);

参数

[out] pvValue

指向 PROPVARIANT 结构的指针。 方法用数据填充此结构。

返回值

该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
方法成功。

注解

在调用此方法之前,请调用 PropVariantInit 以初始化 PROPVARIANT 结构。 方法返回后,调用 PropVariantClear 以释放为 PROPVARIANT 数据分配的内存。

如果安装了 Windows Media Format 11 SDK 可再发行组件,则此接口在以下平台上可用:

  • Windows XP with Service Pack 2 (SP2) 及更高版本。
  • Windows XP Media Center Edition 2005 KB900325 (windows XP Media Center Edition 2005) 和KB925766 (2006 年 10 月 Windows XP Media Center Edition 更新汇总) 安装。

示例

如果值为 IUnknown 指针,则以下函数获取事件值。 如果未VT_UNKOWNPROPVARIANT 类型,则函数返回MF_E_INVALIDTYPE

//  Gets an IUnknown pointer from an IMFMediaEvent event and queries 
//  the pointer for a specified interface.
//
//  NOTE: Applies only to events that contain IUnknown pointers.
//        Otherwise, the function returns MF_E_INVALIDTYPE.

template <class Q>
HRESULT GetEventObject(IMFMediaEvent *pEvent, Q **ppObject)
{
    *ppObject = NULL;   // zero output

    PROPVARIANT var;
    HRESULT hr = pEvent->GetValue(&var);
    if (SUCCEEDED(hr))
    {
        if (var.vt == VT_UNKNOWN)
        {
            hr = var.punkVal->QueryInterface(ppObject);
        }
        else
        {
            hr = MF_E_INVALIDTYPE;
        }
        PropVariantClear(&var);
    }
    return hr;
}


要求

要求
最低受支持的客户端 Windows Vista [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 mfobjects.h (包括 Mfidl.h)
Library Mfuuid.lib

另请参阅

IMFMediaEvent

媒体事件生成器