|
|
#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
|