<Return[A]><Top>

acmStreamConvert

Declare Function Api_acmStreamConvert& Lib "msacm32" (ByVal has&, ByRef pash As ACMSTREAMHEADER, ByVal fdwConvert&)

Declare Function acmStreamConvert Lib "msacm32" (ByVal has As Long, ByRef pash As ACMSTREAMHEADER, ByVal fdwConvert As Long) As Long

指定された変換ストリームでの変換を ACM に要求する。ストリームを開いた方法により、変換は同期的または非同期的に行われる。

パラメータ

has

    開いている変換ストリームのハンドルを指定する。pash変換元および変換先のバッファを表すストリームヘッダのアドレスを指定する。このヘッ

    ダは acmStreamPrepareHeader 関数を使ってあらかじめ設定しておかなければならない。fdwConvert変換を行うためのフラグをセットす

    る。次の値が定義されている。
    ACM_STREAMCONVERTF_BLOCKALIGN
        整数ブロックだけが変換される。変換されたデータはブロック整列された境界で終わる。アプリケーションは、ブロック整列された変換先に

        対して変換するソースデータが足りなくなるまで、ストリームの変換にはすべてこのフラグを使う。この場合、最後の変換はこのフラグなし

        で指定される。
    ACM_STREAMCONVERTF_END
        ACM 変換ストリームは未処理のインスタンスデータの返信を開始する。たとえば、変換ストリームにエコーフィルタ操作の終端などのイン

        スタンスデータがある場合、このフラグにより、ストリームは、任意のソースデータとともに残りのデータの返信を開始する。このフラグは

        ACM_STREAMCONVERTF_START フラグと合わせて指定できる。
    ACM_STREAMCONVERTF_START
        ACM 変換ストリームは、インスタンスデータを再初期化する。たとえば、変換ストリームに差分または予測子情報などのインスタンスデー

        タがある場合、このフラグはストリームを開始時の既定の状態に復元する。このフラグは ACM_STREAMCONVERTF_END フラグと合

        わせて指定できる。

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

    値                                            

説明                                                

    ACMERR_BUSY

pash パラメータで指定されたストリームヘッダは現在使用中のため、再使用できない。

    ACMERR_UNPREPARED

pash パラメータで指定されたストリームヘッダは、現在 acmStreamPrepareHeader 関数で準備されていない。

    MMSYSERR_INVALFLAG

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

    MMSYSERR_INVALHANDLE

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

    MMSYSERR_INVALPARAM

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

 

解説
    acmStreamConver 関数に渡す前に、acmStreamPrepareHeader 関数を使って、変換元および変換先バッファを準備しなければならな

    い。
    ACM またはドライバによって非同期変換要求がキューに追加され、後でその変換が不可能と判断されると、ACMSTREAMHEADER 構

    造体は、cbDstLengthUsed メンバを 0 に設定してアプリケーションのコールバック関数にポストされる。