다음을 통해 공유


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

추가 정보

디바이스 형식 기능 검색

IWMDMDevice 인터페이스

IWMDMDevice3::GetFormatCapability

_WAVEFORMATEX