<Return[A]><Top>

acmFormatSuggest

Declare Function Api_acmFormatSuggest& Lib "msacm32" Alias "acmFormatSuggest" (ByVal had&, ByRef pwfxSrc As WAVEFORMATEX, ByRef pwfxDst As WAVEFORMATEX, ByVal cbwfxDst&, ByVal fdwSuggest&)

Declare Function acmFormatSuggest Lib "msacm32" (ByVal had As Long, ByRef pwfxSrc As WAVEFORMATEX, ByRef pwfxDst As WAVEFORMATEX, ByVal cbwfxDst As Long, ByVal fdwSuggest As Long) As Long

ACM または指定された ACM ドライバをテストして、目的のフォーマットを提供されるソースフォーマットとして推奨する。たとえば、この関数を使って、圧縮フォーマットを解凍できる 1 つまたは複数の有効な PCM フォーマットを調べることができる。

パラメータ

had
    推奨される目的のフォーマットについてテストするドライバの、オープンインスタンスのハンドルを指定する。このパラメータに NULL を指定する

    と、ACM は目的のフォーマットを推奨するための最適なドライバを検索する。
pwfxSrc
    ソースフォーマットを識別する 構造体のアドレスを指定する。このソースフォーマットには、ACM または指定された ACM ドライバによって目的

    のフォーマットが推奨される。
pwfxDst
    pwfxSrc フォーマットとして推奨される目的のフォーマットを受け取る WAVEFORMATEX 構造体のアドレスを指定する。pwfxDst パラメータ

    で指定する構造体のメンバは初期化が必要になる。初期化されるメンバは、fdwSuggest パラメータの値によって違う。cbwfxDst目的のフ

    ォーマットが利用できるサイズをバイト単位で指定する。acmMetrics 関数および acmFormatTagDetails 関数を使うと、指定されたドライバ

    (またはインストールされたすべての ACM ドライバ)で利用可能なフォーマットに必要な最大サイズを調べることができる。
fdwSuggest
    変換先フォーマットに適合するフラグをセットする。次の値が定義されている。
    ACM_FORMATSUGGESTF_NCHANNELS
        pwfxDst パラメータで指定する構造体の nChannels メンバが有効である。 ACM は、インストール済みの適切なドライバをテストし、

        nChannels メンバに適合する変換先フォーマットを推奨する。そうでない場合、失敗する。
    ACM_FORMATSUGGESTF_NSAMPLESPERSEC
        pwfxDst パラメータで指定する構造体の nSamplesPerSec メンバが有効である。ACM は、インストールされた適切なドライバをテストし、

        nSamplesPerSec に適合する送り先フォーマットを推奨する。そうでない場合、失敗する。
    ACM_FORMATSUGGESTF_WBITSPERSAMPLE
        pwfxDst によって指された構造体の wBitsPerSample メンバが有効である。ACM は、インストールされた適切なドライバをテストし、

        wBitsPerSample に適合する目的のフォーマットを推奨する。そうでな場合、失敗する。
    ACM_FORMATSUGGESTF_WFORMATTAG
        pwfxDst パラメータで指定した構造体の wFormatTag メンバが有効である。ACM は、インストールされた適切なドライバをテストし、

        wFormatTag に適合する送り先フォーマットを推奨する。そうでない場合、失敗する。

戻り値
    関数が成功すると 0 が返る
    関数が失敗するとエラーが返る。返されるエラー値は次のとおりである。

    値                                               

説明                                                  

    MMSYSERR_INVALFLAG

少なくとも 1 つのフラグが無効である。

    MMSYSERR_INVALHANDLE

指定されたハンドルは無効である。

    MMSYSERR_INVALPARAM

少なくとも 1 つのパラメータが無効である。