次の方法で共有


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
Library Mssachlp.lib

こちらもご覧ください

デバイス形式の機能の検出

IWMDMDevice インターフェイス

IWMDMDevice3::GetFormatCapability

_WAVEFORMATEX