<Return[G]><Top>

GetMessage

Declare Function Api_GetMessage& Lib "user32" Alias "GetMessageA" (lpMsg As MSG, ByVal hWnd&, ByVal wMsgFilterMin&, ByVal wMsgFilterMax&)

Declare Function GetMessage Lib "user32" Alias "GetMessageA" (lpMsg As MSG, ByVal hWnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long) As Long

呼び出し側スレッドのメッセージキューからメッセージを取得し、指定された構造体にそのメッセージを格納する。ポストされたメッセージが取得可能になるまで、この関数は、着信した送信済みメッセージをディスパッチ(送出)する。
GetMessage 関数とは異なり、PeekMessage 関数は、何かメッセージがポストされるのを待たずに制御を返す。

パラメータ
lpMsg
    1 個の MSG 構造体へのポインタを指定する。

    関数から制御が返ると、この構造体に、呼び出し側スレッドのメッセージキューから取得したメッセージ情報が格納される。
hWnd
    メッセージの取得に使う(取得元)ウィンドウのハンドルを指定する。

    このウィンドウは、呼び出し側スレッドに所属していなければならない。

    次の値には、特別な意味がある。

    値               

意味                                                                                                                                                                

    NULL

呼び出し側スレッドに所属する任意のウィンドウへ送信されたメッセージと、PostThreadMessage 関数を使って呼び出し側

 

スレ ッドへポストされたスレッドメッセージを取得する。

wMsgFilterMin
    取得対象のメッセージの最小値を整数で指定する。
wMsgFilterMax
    取得対象のメッセージの最大値を整数で指定する。
 

戻り値
    WM_QUIT 以外のメッセージを取得した場合、0 以外の値が返る。
    WM_QUIT メッセージを取得した場合、0 が返る。
    エラーが発生した場合、-1 が返る。

    たとえば、hWnd パラメータで無効なウィンドウハンドルを指定した場合や、lpMsg で無効なポインタを指定した場合は、エラーが発生する。

    拡張エラー情報を取得するには、GetLastError 関数を使う。
    警告 GetMessage 関数は、0 以外の値、0、-1 のいずれかを返す。したがって、次のようなコードは避けること。
    while (GetMessage(lpMsg, hWnd, 0, 0)) ...
    このようなコードを作成すると、GetMessage 関数が失敗して -1(0xFFFFFFFF、つまり TRUE)が返った場合、ループが持続し、致命

    的なアプリケーションエラーを発生させる可能性がある。