Techwiki:Win32k/POPUPMENU
From ReactOS
Windows version of POPUPMENU
typedef struct tagPOPUPMENU
{
ULONG fIsMenuBar:1;
ULONG fHasMenuBar:1;
ULONG fIsSysMenu:1;
ULONG fIsTrackPopup:1;
ULONG fDroppedLeft:1;
ULONG fHierarchyDropped:1;
ULONG fRightButton:1;
ULONG fToggle:1;
ULONG fSynchronous:1;
ULONG fFirstClick:1;
ULONG fDropNextPopup:1;
ULONG fNoNotify:1;
ULONG fAboutToHide:1;
ULONG fShowTimer:1;
ULONG fHideTimer:1;
ULONG fDestroyed:1;
ULONG fDelayedFree:1;
ULONG fFlushDelayedFree:1;
ULONG fFreed:1;
ULONG fInCancel:1;
ULONG fTrackMouseEvent:1;
ULONG fSendUninit:1;
ULONG fRtoL:1;
// ULONG fDesktopMenu:1; // !dso
ULONG iDropDir:5;
ULONG fUseMonitorRect:1; // w7u
PWND spwndNotify;
PWND spwndPopupMenu;
PWND spwndNextPopup;
PWND spwndPrevPopup;
PMENU spmenu;
PMENU spmenuAlternate;
PWND spwndActivePopup;
struct tagPOPUPMENU ppopupmenuRoot;
struct tagPOPUPMENU ppmDelayedFree;
UINT posSelectedItem;
UINT posDropped;
} POPUPMENU, *PPOPUPMENU;
// Window Extra data container.
typedef struct _MENUWND
{
WND wnd;
PPOPUPMENU ppopupmenu;
} MENUWND, *PMENUWND;
typedef struct tagMENUSTATE
{
PPOPUPMENU pGlobalPopupMenu;
ULONG fMenuStarted:1;
ULONG fIsSysMenu:1;
ULONG fInsideMenuLoop:1;
ULONG fButtonDown:1;
ULONG fInEndMenu:1;
ULONG fUnderline:1;
ULONG fButtonAlwaysDown:1;
ULONG fDragging:1;
ULONG fModelessMenu:1;
ULONG fInCallHandleMenuMessages:1;
ULONG fDragAndDrop:1;
ULONG fAutoDismiss:1;
ULONG fAboutToAutoDismiss:1;
ULONG fIgnoreButtonUp:1;
ULONG fMouseOffMenu:1;
ULONG fInDoDragDrop:1;
ULONG fActiveNoForeground:1;
ULONG fNotifyByPos:1;
ULONG fSetCapture:1;
ULONG iAniDropDir:5;
POINT ptMouseLast;
INT mnFocus;
INT cmdLast;
PTHREADINFO ptiMenuStateOwner;
DWORD dwLockCount;
struct tagMENUSTATE* pmnsPrev;
POINT ptButtonDown;
ULONG_PTR uButtonDownHitArea;
UINT uButtonDownIndex;
INT vkButtonDown;
ULONG_PTR uDraggingHitArea;
UINT uDraggingIndex;
UINT uDraggingFlags;
HDC hdcWndAni;
DWORD dwAniStartTime;
INT ixAni;
INT iyAni;
INT cxAni;
INT cyAni;
HBITMAP hbmAni;
HDC hdcAni; // !dso is MENUANIDC
} MENUSTATE, *PMENUSTATE;
References
- Windows Symbol files, userkdx.dll, !dso, W7U

