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.
70 lines
2.5 KiB
70 lines
2.5 KiB
#ifndef _FRAME_H
|
|
#define _FRAME_H
|
|
|
|
class CMDIFrame :
|
|
public IOleInPlaceFrame
|
|
{
|
|
public:
|
|
CMDIFrame();
|
|
virtual ~CMDIFrame();
|
|
|
|
// *** IUnknown methods ***
|
|
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, LPVOID FAR *);
|
|
virtual ULONG STDMETHODCALLTYPE AddRef();
|
|
virtual ULONG STDMETHODCALLTYPE Release();
|
|
|
|
// *** IOleWindow methods ***
|
|
virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND *);
|
|
virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL);
|
|
|
|
// *** IOleInPlaceUIWindow methods ***
|
|
virtual HRESULT STDMETHODCALLTYPE GetBorder(LPRECT);
|
|
virtual HRESULT STDMETHODCALLTYPE RequestBorderSpace(LPCBORDERWIDTHS);
|
|
virtual HRESULT STDMETHODCALLTYPE SetBorderSpace(LPCBORDERWIDTHS);
|
|
virtual HRESULT STDMETHODCALLTYPE SetActiveObject(IOleInPlaceActiveObject *, LPCOLESTR);
|
|
|
|
// *** IOleInPlaceFrame methods ***
|
|
virtual HRESULT STDMETHODCALLTYPE InsertMenus(HMENU, LPOLEMENUGROUPWIDTHS);
|
|
virtual HRESULT STDMETHODCALLTYPE SetMenu(HMENU, HOLEMENU, HWND);
|
|
virtual HRESULT STDMETHODCALLTYPE RemoveMenus(HMENU);
|
|
virtual HRESULT STDMETHODCALLTYPE SetStatusText(LPCOLESTR);
|
|
virtual HRESULT STDMETHODCALLTYPE EnableModeless(BOOL);
|
|
virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(LPMSG, WORD);
|
|
|
|
|
|
static LRESULT CALLBACK ExtWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
|
static BOOL CALLBACK ExtOptDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
|
|
|
LRESULT WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
|
BOOL OptDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
|
|
|
HRESULT HrInit(LPSTR pszCmdLine);
|
|
HRESULT TranslateAcclerator(LPMSG);
|
|
|
|
private:
|
|
HWND m_hwnd,
|
|
m_hToolbar,
|
|
m_hStatusbar,
|
|
m_hwndClient,
|
|
m_hwndFocus;
|
|
BOOL m_fToolbar;
|
|
BOOL m_fStatusbar;
|
|
ULONG m_cRef;
|
|
IOleInPlaceActiveObject *m_pInPlaceActiveObj;
|
|
|
|
BOOL WMCreate(HWND hwnd);
|
|
void WMDestroy();
|
|
HRESULT HrWMCommand(HWND hwnd, int id, WORD wCmd);
|
|
void WMNotify(WPARAM wParam, NMHDR* pnmhdr);
|
|
void WMPaint();
|
|
void WMSize();
|
|
void SetToolbar();
|
|
void SetStatusbar();
|
|
void DoOptions();
|
|
LRESULT WMInitMenuPopup(HWND hwnd, HMENU hmenuPopup, UINT uPos);
|
|
HRESULT OpenDoc(LPSTR pszFileName);
|
|
};
|
|
|
|
typedef CMDIFrame *LPMDIFRAME;
|
|
|
|
#endif //_FRAME_H
|