<Return[G]><Top>

GetMenuItemInfo

Declare Function Api_GetMenuItemInfo& Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu&, ByVal uItem&, ByVal fByPosition&, lpMInfo As MENUITEMINFO)

Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal b As Long, lpMenuItemInfo As MENUITEMINFO) As Long

メニュー項目に関する情報を取得する。

パラメータ
hMenu
    希望のメニュー項目を保持している 1 つのメニューのハンドルを指定する。
uItem
    情報を取得するべきメニュー項目の識別子または位置を指定する。

    このパラメータの意味は、fByPosition パラメータの値に依存する。
fByPosition
    uItem パラメータの意味を指定する。FALSE(0)を指定すると、uItem パラメータはメニュー項目の識別子を意味する。

    それ以外の値を指定すると、uItem パラメータはメニュー項目の位置を意味する。
lpmii
    取得対象の情報を保持している 1 個の MENUITEMINFO 構造体へのポインタを指定する。

    関数から制御が返ると、この構造体に、メニュー項目に関する情報が格納される。

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    MFT_STRING 型のメニュー項目を取得するには、最初に MENUITEMINFO 構造体の dwTypeData メンバを NULL に設定して

    GetMenuItemInfo 関数を呼び出し、文字列のサイズを取得する。次に、そのサイズのバッファを割り当て、dwTypeData メンバでそのバッ

    ファへのポインタを指定し、もう一度 GetMenuItemInfo 関数を呼び出して、目的の文字列をバッファに格納する。
    取得対象のメニュー項目が他のいずれかの型である場合、MENUITEMINFO 構造体の fType メンバでその型を指定し、cch メンバで

     0 を指定し、GetMenuItemInfo 関数を呼び出す。関数から制御が返ると、dwTypeData メンバに、そのメニュー項目の値が格納される。
    Windows 2000 と Windows 98:MENUITEMINFO 構造体の fMask メンバで MIIM_STRING を指定する場合、dwTypeData と cch

    の各メンバを使う。