22#include <commoncontrols.h>
33#define UNIMPLEMENTED TRACE("%s is UNIMPLEMENTED!\n", __FUNCTION__)
36 m_staticToolbar(
NULL),
41 m_subMenuParent(
NULL),
47 m_topLevelWindow(
NULL),
194 if (pUnkSite ==
NULL)
235 CComPtr<IOleWindow> pTopLevelWindow;
267 if (phwnd) *phwnd =
NULL;
274 SIZE maxStatic = { 0 };
275 SIZE maxShlFld = { 0 };
293 int syStatic = maxStatic.
cy;
294 int syShlFld = sy - syStatic;
347 SIZE minStatic = { 0 };
348 SIZE minShlFld = { 0 };
349 SIZE maxStatic = { 0 };
350 SIZE maxShlFld = { 0 };
351 SIZE intStatic = { 0 };
352 SIZE intShlFld = { 0 };
452 TRACE(
"Child object should have removed itself.\n");
489 CComPtr<IOleWindow> pTopLevelWindow;
518 else if (nCmdID == 19)
522 else if (nCmdID == 5)
524 if (nCmdexecopt == 0)
544 if (
IsEqualIID(guidService, SID_SMenuBandChild) ||
545 IsEqualIID(guidService, SID_SMenuBandBottom) ||
546 IsEqualIID(guidService, SID_SMenuBandBottomSelected))
564 switch (dwSelectType)
659 (*ppunkClient)->AddRef();
784 smData.
punk =
static_cast<IShellMenu2*
>(
this);
827 CComPtr<IContextMenu> ctxMenu = contextMenu;
834 TRACE(
"Before Query\n");
838 TRACE(
"Query failed\n");
847 TRACE(
"Before Tracking\n");
856 TRACE(
"Before InvokeCommand\n");
857 CMINVOKECOMMANDINFO cmi = { 0 };
858 cmi.cbSize =
sizeof(cmi);
862 TRACE(
"InvokeCommand returned hr=%08x\n",
hr);
866 TRACE(
"TrackPopupMenu failed. Code=%d, LastError=%d\n", uCommand,
GetLastError());
936 hr =
tb->KeyboardItemChange(change);
957 CComPtr<CMenuBand> safeThis =
this;
1002 tb->PrepareExecuteItem(
item);
1007 TRACE(
"Menu closed, executing item...\n");
1058 CComPtr<IBandSite> pBandSite;
1059 CComPtr<IDeskBar> pDeskBar;
1070 hr = pDeskBar->SetClient(pBandSite);
1074 hr = pBandSite->AddBand(childShellMenu);
1079 CComPtr<IMenuPopup> popup;
1093 if (keyInitiated &&
m_dwFlags & SMINIT_VERTICAL)
1096 popup->Popup(pAt, pExclude,
flags);
1315 return ShellObjectCreator<CMenuBand>(
riid,
ppv);
HRESULT WINAPI RSHELL_CMenuBand_CreateInstance(REFIID riid, LPVOID *ppv)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define STDMETHODCALLTYPE
HRESULT _CallCBWithItemPidl(LPITEMIDLIST pidl, UINT uMsg, WPARAM wParam, LPARAM lParam)
virtual HRESULT STDMETHODCALLTYPE Load(IStream *pStm)
virtual HRESULT STDMETHODCALLTYPE Popup(POINTL *ppt, RECTL *prcExclude, MP_POPUPFLAGS dwFlags)
virtual HRESULT STDMETHODCALLTYPE IsWindowOwner(HWND hWnd)
virtual HRESULT STDMETHODCALLTYPE HasFocusIO()
virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
virtual HRESULT STDMETHODCALLTYPE SetClient(IUnknown *punkClient)
virtual HRESULT STDMETHODCALLTYPE GetShellFolder(DWORD *pdwFlags, LPITEMIDLIST *ppidl, REFIID riid, void **ppv)
HRESULT _OnPopupSubMenu(IShellMenu *childShellMenu, POINTL *pAt, RECTL *pExclude, BOOL mouseInitiated)
HRESULT _GetTopLevelWindow(HWND *topLevel)
virtual HRESULT STDMETHODCALLTYPE GetSite(REFIID riid, PVOID *ppvSite)
virtual HRESULT STDMETHODCALLTYPE OnPosRectChangeDB(RECT *prc)
virtual HRESULT STDMETHODCALLTYPE ShowDW(BOOL fShow)
virtual HRESULT STDMETHODCALLTYPE GetParentSite(THIS)
virtual HRESULT STDMETHODCALLTYPE CloseDW(DWORD dwReserved)
virtual HRESULT STDMETHODCALLTYPE GetTop(THIS)
virtual HRESULT STDMETHODCALLTYPE TranslateMenuMessage(MSG *pmsg, LRESULT *plRet)
CMenuSFToolbar * m_SFToolbar
CMenuFocusManager * m_focusManager
HRESULT _TrackContextMenu(IContextMenu *popup, INT x, INT y)
HRESULT _TrackSubMenu(HMENU popup, INT x, INT y, RECT &rcExclude)
virtual HRESULT STDMETHODCALLTYPE UIActivateIO(BOOL fActivate, LPMSG lpMsg)
virtual HRESULT STDMETHODCALLTYPE SetNoBorder(THIS)
virtual HRESULT STDMETHODCALLTYPE GetClient(IUnknown **ppunkClient)
CMenuToolbarBase * m_popupBar
virtual HRESULT STDMETHODCALLTYPE Initialize(IShellMenuCallback *psmc, UINT uId, UINT uIdAncestor, DWORD dwFlags)
HRESULT _DisableMouseTrack(BOOL bDisable)
CComPtr< IMenuPopup > m_subMenuChild
HRESULT _KillPopupTimers()
HRESULT _MenuItemSelect(DWORD changeType)
HRESULT _MenuBarMouseUp(HWND hwnd, INT item, BOOL isLButton)
CComPtr< IOleWindow > m_site
virtual HRESULT STDMETHODCALLTYPE OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult)
HRESULT _SetParentBand(CMenuBand *parent)
virtual HRESULT STDMETHODCALLTYPE SetMenuToolbar(IUnknown *punk, DWORD dwFlags)
virtual HRESULT STDMETHODCALLTYPE InvalidateItem(LPSMDATA psmd, DWORD dwFlags)
virtual HRESULT STDMETHODCALLTYPE Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
virtual HRESULT STDMETHODCALLTYPE GetClassID(CLSID *pClassID)
virtual HRESULT STDMETHODCALLTYPE SetTheme(THIS)
virtual HRESULT STDMETHODCALLTYPE GetBottom(THIS)
CComPtr< CMenuBand > m_childBand
virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorIO(LPMSG lpMsg)
CComPtr< CMenuBand > m_parentBand
virtual HRESULT STDMETHODCALLTYPE IsEmpty(THIS)
virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND *phwnd)
HRESULT _CancelCurrentPopup()
virtual HRESULT STDMETHODCALLTYPE SetShellFolder(IShellFolder *psf, LPCITEMIDLIST pidlFolder, HKEY hKey, DWORD dwFlags)
HRESULT _CallCBWithItemId(UINT Id, UINT uMsg, WPARAM wParam, LPARAM lParam)
virtual HRESULT STDMETHODCALLTYPE GetBandInfo(DWORD dwBandID, DWORD dwViewMode, DESKBANDINFO *pdbi)
virtual HRESULT STDMETHODCALLTYPE IsDirty()
CComPtr< IShellMenuCallback > m_psmc
virtual HRESULT STDMETHODCALLTYPE GetMenuInfo(IShellMenuCallback **ppsmc, UINT *puId, UINT *puIdAncestor, DWORD *pdwFlags)
virtual HRESULT STDMETHODCALLTYPE SetSubMenu(IMenuPopup *pmp, BOOL fSet)
HRESULT _KeyboardItemChange(DWORD change)
virtual HRESULT STDMETHODCALLTYPE SetMenu(HMENU hmenu, HWND hwnd, DWORD dwFlags)
virtual HRESULT STDMETHODCALLTYPE ResizeBorderDW(LPCRECT prcBorder, IUnknown *punkToolbarSite, BOOL fReserved)
HRESULT _ChangeHotItem(CMenuToolbarBase *tb, INT id, DWORD dwFlags)
virtual HRESULT STDMETHODCALLTYPE GetSizeMax(ULARGE_INTEGER *pcbSize)
HRESULT _CallCB(UINT uMsg, WPARAM wParam, LPARAM lParam, UINT id=0, LPITEMIDLIST pidl=NULL)
HRESULT _SetChildBand(CMenuBand *child)
HRESULT AdjustForTheme(BOOL bFlatStyle)
virtual HRESULT STDMETHODCALLTYPE QueryService(REFGUID guidService, REFIID riid, void **ppvObject)
CComPtr< IMenuPopup > m_subMenuParent
virtual HRESULT STDMETHODCALLTYPE GetSubMenu(THIS)
HRESULT _MenuBarMouseDown(HWND hwnd, INT item, BOOL isLButton)
virtual HRESULT STDMETHODCALLTYPE Save(IStream *pStm, BOOL fClearDirty)
virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode)
virtual HRESULT STDMETHODCALLTYPE GetState(LPSMDATA psmd)
virtual HRESULT STDMETHODCALLTYPE IsMenuMessage(MSG *pmsg)
CMenuToolbarBase * m_hotBar
CMenuStaticToolbar * m_staticToolbar
virtual HRESULT STDMETHODCALLTYPE SetToolbar(THIS)
virtual HRESULT STDMETHODCALLTYPE SetMinWidth(THIS)
HRESULT _ChangePopupItem(CMenuToolbarBase *tb, INT id)
virtual HRESULT STDMETHODCALLTYPE OnSelect(DWORD dwSelectType)
virtual HRESULT STDMETHODCALLTYPE GetTracked(THIS)
virtual HRESULT STDMETHODCALLTYPE DoDefaultAction(THIS)
virtual HRESULT STDMETHODCALLTYPE GetMenu(HMENU *phmenu, HWND *phwnd, DWORD *pdwFlags)
HRESULT _BeforeCancelPopup()
virtual HRESULT STDMETHODCALLTYPE SetSite(IUnknown *pUnkSite)
HRESULT WINAPI IUnknown_QueryServiceExec(IUnknown *lpUnknown, REFIID service, const GUID *group, DWORD cmdId, DWORD cmdOpt, VARIANT *pIn, VARIANT *pOut)
HRESULT WINAPI IUnknown_QueryService(IUnknown *, REFGUID, REFIID, LPVOID *)
HRESULT WINAPI IUnknown_SetSite(IUnknown *obj, IUnknown *site)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLenum const GLfloat * params
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
void WINAPI ILFree(LPITEMIDLIST pidl)
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
static __inline const char * wine_dbgstr_guid(const GUID *id)
#define FAILED_UNEXPECTEDLY(hr)
ITEMIDLIST UNALIGNED * LPITEMIDLIST
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
TW_UINT32 TW_UINT16 TW_UINT16 MSG
DWORD WINAPI GetLastError(void)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
BOOL WINAPI IsWindow(_In_opt_ HWND)
HMENU WINAPI CreatePopupMenu(void)
BOOL WINAPI TrackPopupMenuEx(_In_ HMENU, _In_ UINT, _In_ int, _In_ int, _In_ HWND, _In_opt_ LPTPMPARAMS)
struct tagTPMPARAMS TPMPARAMS
#define MAKEINTRESOURCEA(i)
BOOL WINAPI DestroyMenu(_In_ HMENU)
#define SystemParametersInfo
#define IID_PPV_ARG(Itype, ppType)