Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: inplace.h
//
// Contents: inplace.h from OLE2
//
// History: 11-Apr-94 DrewB Copied from OLE2
//
//----------------------------------------------------------------------------
#if !defined( _INPLACE_H_ )
#define _INPLACE_H_
// This ACCEL structure and the related constants definitions come with WIN32.
// Win31 also uses the same stuff internally but it's not exposed in the
// header files.
#ifndef FVIRTKEY
#define FVIRTKEY TRUE // Assumed to be == TRUE
#define FLASTKEY 0x80 // Indicates last key in the table
#define FNOINVERT 0x02
#define FSHIFT 0x04
#define FCONTROL 0x08
#define FALT 0x10
#pragma pack(1)
typedef struct tagACCEL { // Accelerator Table structure
BYTE fVirt; WORD key; WORD cmd; } ACCEL, FAR* LPACCEL; #pragma pack()
#endif // FVIRTKEY
typedef struct tagOLEMENUITEM { UINT item; WORD fwPopup; BOOL fObjectMenu; } OLEMENUITEM; typedef OLEMENUITEM FAR* LPOLEMENUITEM;
typedef struct tagOLEMENU { WORD wSignature; HWND hwndFrame; HMENU hmenuCombined; OLEMENUGROUPWIDTHS MenuWidths; LONG lMenuCnt; OLEMENUITEM menuitem[1]; } OLEMENU; typedef OLEMENU FAR* LPOLEMENU;
class FAR CFrameFilter { public: static HRESULT Create(HOLEMENU hOleMenu, HMENU hmenuCombined, HWND hwndFrame, HWND hwndActiveObj, LPOLEINPLACEFRAME lpFrame, LPOLEINPLACEACTIVEOBJECT lpActiveObj); CFrameFilter (HWND hwndFrame, HWND hwndActiveObj); ~CFrameFilter(void); inline LRESULT OnSysCommand(UINT uParam, LONG lParam); inline void OnEnterMenuMode(void); inline void OnExitMenuMode(void); inline void OnEnterAltTabMode(void); inline void OnExitAltTabMode(void); inline LRESULT OnMessage(UINT msg, UINT uParam, LONG lParam); inline void IsObjectMenu (UINT uMenuItem, UINT fwMenu); inline BOOL IsMenuCollision(UINT uParam, LONG lParam); inline BOOL DoContextSensitiveHelp(); private: HWND m_hwndObject; HWND m_hwndFrame; LPOLEINPLACEFRAME m_lpFrame; LPOLEINPLACEACTIVEOBJECT m_lpObject; WNDPROC m_lpfnPrevWndProc; BOOL m_fObjectMenu; BOOL m_fCurItemPopup; BOOL m_fInMenuMode; BOOL m_fDiscardWmCommand; BOOL m_fGotMenuCloseEvent; UINT m_cmdId; UINT m_uCurItemID; HOLEMENU m_hOleMenu; HMENU m_hmenuCombined; HWND m_hwndFocusOnEnter; int m_cAltTab; };
typedef CFrameFilter FAR* PCFRAMEFILTER;
OLEAPI_(LRESULT) FrameWndFilterProc (HWND hwnd, UINT msg, UINT uParam, LONG lParam); OLEAPI_(LRESULT) MessageFilterProc(int nCode, WPARAM wParam, LPARAM lParam);
BOOL IsMDIAccelerator(LPMSG lpMsg, WORD FAR* cmd);
inline PCFRAMEFILTER wGetFrameFilterPtr(HWND hwndFrame);
LPOLEMENU wGetOleMenuPtr(HOLEMENU holemenu); inline void wReleaseOleMenuPtr(HOLEMENU holemenu);
inline UINT wSysKeyToKey(LPMSG lpMsg);
#endif // _INPLACE_H
|