[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

ruby win32api call getMenuItemInfo

Ted Baker

2/6/2009 2:34:00 PM

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-....

1 Answer

daz

3/10/2009 3:37:00 AM

0

Ted Baker wrote:
> 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


Very late reply.

You should have been directed towards Ruby/DL in the
standard library.

This is now preferred to Win32API which is in the process
of being obsoleted.

http://www.jbrowse.com/text/r...


daz