共用方式為


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