From: Ted Baker Date: 2009-02-06T23:33:53+09:00 Subject: ruby win32api call getMenuItemInfo Hi all, I have successfully managed to implement the following apis findWindow=Win32API.new("user32.dll", "FindWindow", ['P','P'], 'N') sendMessage=Win32API.new("user32.dll", "SendMessage",['N','N','N','P'], 'N') getMenu=Win32API.new("user32.dll", "GetMenu", ['N'], 'N') getMenuItemCount=Win32API.new("user32.dll", "GetMenuItemCount",['N'], 'N') getSubMenu=Win32API.new("user32.dll", "GetSubMenu", ['N','N'], 'N') deleteMenu=Win32API.new("user32.dll", "DeleteMenu", ['N','N','N',],'N') drawMenuBar=Win32API.new("user32.dll", "DrawMenuBar", ['N'], 'N') setWindowLong=Win32API.new("user32.dll", "SetWindowLong",['N','N','N'], 'N') but am unable to get getMenuItemInfo to work, this is because it takes a type structure and boolean as parameters and i can't figure it out... this is what i have getMenuItemInfo =Win32API.new("user32.dll", "GetMenuItemInfo", ['L','L','NEED','NEED'], 'L') the api is as follows... BOOL GetMenuItemInfo( HMENU hMenu, UINT uItem, BOOL fByPosition, LPMENUITEMINFO lpmii ); typedef struct tagMENUITEMINFO { UINT cbSize; UINT fMask; UINT fType; UINT fState; UINT wID; HMENU hSubMenu; HBITMAP hbmpChecked; HBITMAP hbmpUnchecked; ULONG_PTR dwItemData; LPTSTR dwTypeData; UINT cch; HBITMAP hbmpItem; } MENUITEMINFO, *LPMENUITEMINFO; any help greatly appreciated... Thanks Ted -- Posted via http://www.ruby-forum.com/.