IWMDMDevice::GetFormatSupport 메서드(mswmdm.h)
GetFormatSupport 메서드는 코덱 및 파일 형식을 포함하여 디바이스에서 지원하는 모든 형식을 검색합니다.
구문
HRESULT GetFormatSupport(
[out] _WAVEFORMATEX **ppFormatEx,
[out] UINT *pnFormatCount,
[out] LPWSTR **pppwszMimeType,
[out] UINT *pnMimeTypeCount
);
매개 변수
[out] ppFormatEx
디바이스에서 지원하는 코덱 및 비트 속도에 대한 정보를 지정하는 _WAVEFORMATEX 구조의 배열에 대한 포인터입니다. Windows Media 장치 관리자 이 매개 변수에 대한 메모리를 할당합니다. 호출자는 CoTaskMemFree를 사용하여 메모리를 해제해야 합니다.
[out] pnFormatCount
ppFormatEx 배열의 요소 수에 대한 포인터입니다.
[out] pppwszMimeType
디바이스에서 지원하는 파일 형식 및 디지털 권한 관리 체계를 설명하는 배열에 대한 포인터입니다. Windows Media 장치 관리자 이 매개 변수에 대한 메모리를 할당합니다. 호출자는 CoTaskMemFree를 사용하여 메모리를 해제해야 합니다.
[out] pnMimeTypeCount
pppwszMimeType 배열의 요소 수에 대한 포인터입니다.
반환 값
이 메서드는 HRESULT를 반환합니다. Windows Media 장치 관리자 모든 인터페이스 메서드는 다음 오류 코드 클래스 중 어느 것을 반환할 수 있습니다.
- 표준 COM 오류 코드
- HRESULT 값으로 변환된 Windows 오류 코드
- Windows Media 장치 관리자 오류 코드
설명
디바이스 지원 형식을 검색하는 권장 방법은 IWMDMDevice3::GetFormatCapability입니다.
예제
다음 C++ 함수는 다양한 디바이스 기능을 검색합니다.
// Function to print out device caps for a device that supports
// only IWMDMDevice.
void GetCaps(IWMDMDevice* pDevice)
{
HRESULT hr = S_OK;
// Get all capabilities for audio and mime support.
_WAVEFORMATEX* pAudioFormats;
LPWSTR* pMimeFormats;
UINT numAudioFormats = 0;
UINT numMimeFormats = 0;
hr = pDevice->GetFormatSupport(
&pAudioFormats,
&numAudioFormats,
&pMimeFormats,
&numMimeFormats);
HANDLE_HR(hr, "Got audio and mime formats in GetCaps IWMDMDevice", "Couldn't get audio and mime formats in GetCaps IWMDMDevice");
// Print out audio format data.
if (numAudioFormats > 0)
{
/ /TODO: Display a banner to precede the supported formats.
}
else
{
// TODO: Display a message indicating that no formats are supported.
}
for(int i = 0; i < numAudioFormats; i++)
{
// TODO: Display a configuration value.
PrintWaveFormatGuid(pAudioFormats[i].wFormatTag);
// TODO: Display a max channel value.
// TODO: Display a max samples/second value.
// TODO: Display the max bytes/second value.
// TODO: Display the block alignment value.
// TODo: Display the max bits/sample value.
}
// Print out MIME formats.
if (numMimeFormats > 0)
// TODO: Display a banner for the MIME format listing.
else
/ /TODO: Display a message indicating that no MIME formats are supported.
for(i = 0; i < numMimeFormats; i++)
{
// TODO: Display each individual MIME format.
}
e_Exit:
return;
}
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | mswmdm.h |
라이브러리 | Mssachlp.lib |