WMDM _ FORMAT _ CAPABILITY 结构

WMDM _ FORMAT _ CAPABILITY 结构描述特定格式的设备功能。 此结构包含 WMDM PROP CONFIG 结构的数组 _ 中的 _ 一组属性 配置。 每个属性配置表示给定格式支持的所有属性中的一组兼容属性值。 应用程序可以通过调用 IWMDMDevice3::GetFormatCapability 方法并输入格式代码来获取此结构。 有关格式代码的列表,请参阅 WMDM _ FORMATCODE

语法

typedef struct _WMDM_FORMAT_CAPABILITY {
  UINT              nPropConfig;
  WMDM_PROP_CONFIG  *pConfigs;
} WMDM_FORMAT_CAPABILITY;

成员

nPropConfig

pConfigs 数组中的属性配置数。

pConfigs

指向 WMDM PROP _ _ CONFIG 结构的 数组的指针。 数组的大小等于 nPropConfig 的值

备注

WMDM _ FORMAT _ CAPABILITY 结构提供了一种灵活的机制,用于表示特定格式的设备功能。

如果内容由设备 (例如,设备) 播放的音频文件,则内容的属性必须与 WMDM _ FORMAT _ CAPABILITY 结构中 IWMDMDevice3::GetFormatCapability返回的属性配置之一匹配。 例如,对于音频文件,比特率和采样率必须满足返回的属性配置之一。

调用方负责释放为此结构分配的内存。 以下函数演示如何清除 WMDM _ FORMAT _ CAPABILITY 结构。

void FreeFormatCapability(WMDM_FORMAT_CAPABILITY formatCap)
{
    // Loop through all configurations.
    for (UINT i=0; i < formatCap.nPropConfig; i++) 
    {
        // Loop through all descriptions of a configuration and delete
        // the values particular to that description type.
        for (UINT j=0; j < formatCap.pConfigs[i].nPropDesc; j++) 
        {
            switch (formatCap.pConfigs[i].pPropDesc[j].ValidValuesForm)
            {
                case WMDM_ENUM_PROP_VALID_VALUES_ENUM:
                    for (UINT k=0; k < formatCap.pConfigs[i].pPropDesc[j].ValidValues.EnumeratedValidValues.cEnumValues; k++)
                    {
                        PropVariantClear (&(formatCap.pConfigs[i].pPropDesc[j].ValidValues.EnumeratedValidValues.pValues[k]));
                    }
                    CoTaskMemFree(formatCap.pConfigs[i].pPropDesc[j].ValidValues.EnumeratedValidValues.pValues);
                    break;
                case WMDM_ENUM_PROP_VALID_VALUES_RANGE:
                    PropVariantClear (&(formatCap.pConfigs[i].pPropDesc[j].ValidValues.ValidValuesRange.rangeMin));
                    PropVariantClear (&(formatCap.pConfigs[i].pPropDesc[j].ValidValues.ValidValuesRange.rangeMax));
                    PropVariantClear (&(formatCap.pConfigs[i].pPropDesc[j].ValidValues.ValidValuesRange.rangeStep));
                    break;
                case WMDM_ENUM_PROP_VALID_VALUES_ANY:
                    // No dynamically allocated memory for this value.
                default:
                    break;
            }

            // Free the memory for the description name.
            CoTaskMemFree(formatCap.pConfigs[i].pPropDesc[j].pwszPropName);
        }
        // Free the memory holding the array of description items for this configuration.
        CoTaskMemFree(formatCap.pConfigs[i].pPropDesc);
    }

    // Free the memory pointing to the array of configurations.
    CoTaskMemFree(formatCap.pConfigs);
    formatCap.nPropConfig = 0;
}

要求

要求 Value
标头
Wmdm.idl

请参阅

IWMDMDevice3::GetFormatCapability

WMDM _ 枚举 _ 属性 _ 有效 _ 值 _ 窗体

WMDM _ PROP _ CONFIG

WMDM _ PROP _ DESC

WMDM _ PROP _ _ 值枚举

WMDM _ PROP _ 值 _ 范围

结构