* The definitions for PChar class and buf2dword()
* functions can be found in other code samples on this webpage
DEFINE CLASS Tform As Form
PROTECTED hWindow
hWindow=0
ShowWindow=2
Autocenter=.T.
Caption="Calling GetMenuBarInfo"
PROCEDURE Activate
IF THIS.hWindow = 0
THIS.hWindow = THIS.HWnd
LOCAL cBuffer, oMBInfo As PChar, nResult
cBuffer = PADR(num2dword(MENUBARINFO_SIZE),;
MENUBARINFO_SIZE, CHR(0))
oMBInfo = CREATEOBJECT("PChar", m.cBuffer)
nResult = GetMenuBarInfo(THIS.hWindow,;
OBJID_SYSMENU, 0, oMBInfo.hMem)
IF nResult = 0
= MESSAGEBOX("GetMenuBarInfo failed: " +;
TRANSFORM(GetLastError()))
ELSE
* parse MENUBARINFO structure
cBuffer = oMBInfo.GetValue()
ACTIVATE SCREEN
? "Rectangle:",;
buf2dword(SUBSTR(cBuffer,5,4)),;
buf2dword(SUBSTR(cBuffer,9,4)),;
buf2dword(SUBSTR(cBuffer,13,4)),;
buf2dword(SUBSTR(cBuffer,17,4))
? "hMenu:",;
buf2dword(SUBSTR(cBuffer,21,4))
? "hwndMenu:",;
buf2dword(SUBSTR(cBuffer,25,4))
ENDIF
ENDIF
PROCEDURE Destroy
CLEAR EVENTS
ENDDEFINE
|