<Return[A]><Top>

acmStreamSize

Declare Function Api_acmStreamSize& Lib "msacm32" Alias "acmStreamSize" (ByVal has&, ByVal cbInput&, ByRef pdwOutputBytes&, ByVal fdwSize&)

Declare Function acmStreamSize Lib "msacm32" (ByVal has As Long, ByVal cbInput As Long, ByRef pdwOutputBytes As Long, ByVal fdwSize As Long) As Long

ACM ストリームの変換元または変換先バッファの推奨サイズを取得する。

パラメータ

has
    変換ストリームのハンドルを指定する。
cbInput
    変換元または変換先バッファのサイズをバイト単位で指定する。fdwSize フラグは入力パラメータが定義するものを指定する。このパラメータ

    は、0 以外の値でなければならない。
pdwOutputBytes
    変換元または変換先バッファのバイト単位のサイズが入る変数のアドレスを指定する。fdwSize フラグは出力パラメータが定義するものを指

    定する。acmStreamSize 関数が成功すると、この位置には常に 0 以外の値が入る。
fdwSize
    ストリームサイズを照会するためのフラグをセットする。次の値が定義されている。
    ACM_STREAMSIZEF_DESTINATION
        cbInput パラメータには変換先バッファのサイズが入る。pdwOutputBytes パラメータは推奨される変換元バッファのバイト単位のサイズを

        受け取る。
    ACM_STREAMSIZEF_SOURCE
        cbInput パラメータには変換元バッファのサイズが入る。pdwOutputBytes パラメータは推奨される変換先バッファのバイト単位のサイズを

        受け取る。

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

    値                                               

説明                                                           

    ACMERR_NOTPOSSIBLE

要求された操作を実行できない。

    MMSYSERR_INVALFLAG

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

    MMSYSERR_INVALHANDLE

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

    MMSYSERR_INVALPARAM

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

 

解説
    アプリケーションはこの関数を使って、変換元または変換先バッファの推奨されるバッファサイズを調べることができる。返されるバッファサイ

    ズは、実際の変換に必要なサイズを推定したものに過ぎない。変換前に実際の変換サイズが調べられるとは限らないため、返されるサイズ

    は通常多めに推定されている。
    エラーが発生すると、pdwOutputBytes パラメータが指す場所に 0 が入る。これにより、pdwOutputBytes パラメータが指定したポインタが

    有効であると推定される。