Techwiki:Win32k/POPUPMENU

From ReactOS Wiki
Jump to: navigation, search

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