<Return[WXYZ]><Top>

waveInOpen

Declare Function Api_waveInOpen& Lib "winmm" Alias "waveInOpen" (lphWaveIn&, ByVal uDeviceID&, lpFormat As WAVEFORMAT, ByVal dwCallback&, ByVal dwInstance&, ByVal dwFlags&)

Declare Function waveInOpen Lib "winmm" Alias "waveInOpen" (lphWaveIn As Long, ByVal uDeviceID As Long, lpFormat As WAVEFORMAT, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long

提供されたウェーブフォームオーディオ入力デバイスを、録音のためにオープンする。

パラメータ
phwi
    オープンしているウェーブフォームオーディオ入力デバイスを識別するハンドルが入る、アドレスを指定する。このハンドルは、ほかのウェーブフ

    ォームオーディオ入力関数を呼び出すときに、デバイスを識別するのに使う。fdwOpen パラメータに WAVE_FORMAT_QUERY フラグを指

    定すると、このパラメータは NULL になる。
uDeviceID
    オープンするウェーブフォームオーディオ入力デバイスの識別子を指定する。このパラメータには、オープンしているウェーブフォームオーディオ

    入力デバイスの、識別子またはハンドルのいずれかを指定できる。デバイス識別子の代わりに、次のフラグを使うことができる。
    WAVE_MAPPER
    関数は、指定された形式での録音が可能なウェーブフォームオーディオ入力デバイスを選択する。
pwfx
    ウェーブフォームオーディオデータの録音に必要な形式を識別する WAVEFORMATEX 構造体のアドレスを指定する。waveInOpen 関数が

    戻った後は、この構造体をただちに解放できる。
dwCallback
    固定のコールバック関数、イベントハンドル、ウィンドウのハンドル、またはスレッドの識別子のアドレスを指定する。これらは、録音の進捗

    状況に関連したメッセージを処理するために、ウェーブフォームオーディオの録音中に呼び出される。コールバック関数が必要でない場合、こ

    の値に 0 を指定することができる。
dwCallbackInstance
    コールバック機構に渡されるユーザーインスタンスデータを指定する。このパラメータは、ウィンドウコールバック機構では使われない。
fdwOpen
    デバイスをオープンするためのフラグを指定する。次の値が定義されている。
    CALLBACK_EVENT
        dwCallback パラメータは、イベントハンドルである。
    CALLBACK_FUNCTION
        dwCallback パラメータは、コールバックプロシージャアドレスである。
    CALLBACK_NULL
        コールバック機構はありません。これが既定の設定である。
    CALLBACK_THREAD
        dwCallback パラメータは、スレッド識別子である。
    CALLBACK_WINDOW
        dwCallback パラメータは、ウィンドウハンドルである。
    WAVE_FORMAT_DIRECT
        このフラグが指定されている場合、ACM ドライバはオーディオデータを変換しない。
    WAVE_FORMAT_QUERY
        関数はデバイスを照会して、提供された形式をサポートするかどうかを調べるが、デバイスはオープンしない。
    WAVE_MAPPED
        uDeviceID パラメータは、ウェーブマッパーでマップされるウェーブフォームオーディオデバイスを指定する。

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

    値                                             

説明                                                                                                                        

    MMSYSERR_ALLOCATED

指定されたリソースはすでに割り当てられている。

    MMSYSERR_BADDEVICEID

指定されたデバイス識別子は範囲外である。

    MMSYSERR_NODRIVER

デバイスドライバが存在しない。

    WAVERR_BADFORMAT サポートされていないウェーブフォームオーディオ形式でオープンしようとした。


解説
    システムに存在するウェーブフォームオーディオ入力デバイス数を調べるには、waveInGetNumDevs 関数を使う。uDeviceID パラメータで指

    定したデバイス識別子は、0 から存在するデバイス数よりも 1 つ少ない値までの範囲である。WAVE_MAPPER 定数は、デバイス識別子

    として使うこともできる。
    コールバック情報を受け取るウィンドウまたはスレッドを選択した場合、ウェーブフォームオーディオ入力の進捗状況を示すために、ウィンドプロ

    シージャまたはスレッドに、メッセージ MM_WIM_OPEN、MM_WIM_CLOSE および MM_WIM_DATA が送信される。
    コールバック関数を受け取る関数を選択した場合、ウェーブフォームオーディオ入力の進捗状況を示すために、関数にメッセージ

    WIM_OPEN、WIM_CLOSE および WIM_DATA が送信される。