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;
}
요구 사항
요구 사항 | 값 |
---|---|
헤더 |
|