Win32 API 日本語リファレンス
ホーム › Media.Audio › ACMFORMATENUMCBW

ACMFORMATENUMCBW

コールバック

シグネチャ

BOOL ACMFORMATENUMCBW(
    HACMDRIVERID hadid,
    tACMFORMATDETAILSW* pafd,
    UINT_PTR dwInstance,
    DWORD fdwSupport
);

パラメーター

フィールド型説明
hadidHACMDRIVERIDACM ドライバー識別子のハンドル。
pafdtACMFORMATDETAILSW*あるフォーマットタグについて列挙されたフォーマットの詳細が格納された ACMFORMATDETAILS 構造体へのポインター。
dwInstanceUINT_PTRacmFormatEnum 関数で指定された、アプリケーション定義の値。
fdwSupportDWORD

ACMDRIVERDETAILS 構造体で識別されるドライバーに固有のドライバーサポートフラグですが、これらは列挙対象のフォーマットに固有のものです。このパラメーターには次の値の組み合わせを指定でき、ドライバーがそのフォーマットタグに対してサポートする操作を示します。

値 意味
ACMDRIVERDETAILS_SUPPORTF_ASYNC ドライバーは、指定されたフィルタータグでの非同期変換をサポートします。
ACMDRIVERDETAILS_SUPPORTF_CODEC ドライバーは、指定されたフォーマットについて、2 つの異なるフォーマットタグ間の変換をサポートします。たとえば、指定されたフォーマットで WAVE_FORMAT_PCM から WAVE_FORMAT_ADPCM への圧縮をサポートするドライバーでは、このフラグが設定されます。
ACMDRIVERDETAILS_SUPPORTF_CONVERTER ドライバーは、指定されたフォーマットを使用して、同じフォーマットタグを持つ 2 つの異なるフォーマット間の変換をサポートします。たとえば、WAVE_FORMAT_PCM から指定されたフォーマットへのリサンプリングをサポートするドライバーでは、このフラグが設定されます。
ACMDRIVERDETAILS_SUPPORTF_FILTER ドライバーは、指定されたフォーマットでのフィルター (フォーマット属性を変更せずにデータを加工する処理) をサポートします。たとえば、WAVE_FORMAT_PCM に対する音量やエコーの操作をサポートするドライバーでは、このフラグが設定されます。
ACMDRIVERDETAILS_SUPPORTF_HARDWARE ドライバーは、波形オーディオデバイスを介して、指定されたフォーマットタグのハードウェア入力、出力、またはその両方をサポートします。アプリケーションは、acmMetrics 関数に ACM_METRIC_HARDWARE_WAVE_INPUT および ACM_METRIC_HARDWARE_WAVE_OUTPUT のメトリックインデックスを指定して、対応する ACM ドライバーに関連付けられた波形オーディオデバイスの識別子を取得してください。

公式ドキュメント

acmFormatEnumCallback 関数は、acmFormatEnum 関数で使用されるコールバック関数を指定します。acmFormatEnumCallback という名前は、アプリケーション定義の関数名のプレースホルダーです。

戻り値

コールバック関数は、列挙を続行する場合は TRUE を、列挙を停止する場合は FALSE を返す必要があります。

解説(Remarks)

列挙するフォーマットが存在しない場合、acmFormatEnum 関数は MMSYSERR_NOERROR (ゼロ) を返します。また、その場合コールバック関数は呼び出されません。

コールバック関数内からは、次の関数を呼び出さないでください。acmDriverAdd、acmDriverRemove、acmDriverPriority。

メモ

msacm.h ヘッダーは、UNICODE プリプロセッサ定数の定義に応じてこの関数の ANSI 版と Unicode 版を自動的に選択するエイリアスとして ACMFORMATENUMCB を定義しています。エンコーディング中立のエイリアスと、エンコーディング中立ではないコードを混在させると、不一致が生じてコンパイルエラーや実行時エラーの原因となることがあります。詳細については、関数プロトタイプの規則 を参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)