166 lines
5.5 KiB
C++
166 lines
5.5 KiB
C++
/* *
|
|
* Front Page IAthenaView implementation
|
|
*
|
|
* Apr 97: EricAn
|
|
*/
|
|
|
|
#ifndef _FRNTPAGE_H
|
|
#define _FRNTPAGE_H
|
|
|
|
// for IAthenaView
|
|
#include "browser.h"
|
|
|
|
class CFrontBody;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Types
|
|
//
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Exported functions
|
|
//
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Global Exported Data
|
|
//
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// CCommonView
|
|
//
|
|
|
|
class CFrontPage :
|
|
public IViewWindow,
|
|
public IOleCommandTarget,
|
|
public IMessageWindow
|
|
{
|
|
public:
|
|
/////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// OLE Interfaces
|
|
//
|
|
|
|
// IUnknown
|
|
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject);
|
|
virtual ULONG STDMETHODCALLTYPE AddRef(void);
|
|
virtual ULONG STDMETHODCALLTYPE Release(void);
|
|
|
|
// IOleWindow
|
|
HRESULT STDMETHODCALLTYPE GetWindow(HWND * lphwnd);
|
|
HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode);
|
|
|
|
// IViewWindow
|
|
HRESULT STDMETHODCALLTYPE TranslateAccelerator(LPMSG lpmsg);
|
|
HRESULT STDMETHODCALLTYPE UIActivate(UINT uState);
|
|
HRESULT STDMETHODCALLTYPE CreateViewWindow(IViewWindow *lpPrevView, IAthenaBrowser * psb,
|
|
RECT * prcView, HWND * phWnd);
|
|
HRESULT STDMETHODCALLTYPE DestroyViewWindow();
|
|
HRESULT STDMETHODCALLTYPE SaveViewState();
|
|
HRESULT STDMETHODCALLTYPE OnPopupMenu(HMENU hMenu, HMENU hMenuPopup, UINT uID);
|
|
|
|
// IOleCommandTarget
|
|
virtual STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[],
|
|
OLECMDTEXT *pCmdText);
|
|
virtual STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdExecOpt,
|
|
VARIANTARG *pvaIn, VARIANTARG *pvaOut);
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// IMessageWindow
|
|
//
|
|
|
|
STDMETHOD(OnFrameWindowActivate)(THIS_ BOOL fActivate);
|
|
STDMETHOD(GetCurCharSet)(THIS_ UINT *cp);
|
|
STDMETHOD(UpdateLayout)(THIS_ BOOL fPreviewVisible, BOOL fPreviewHeader,
|
|
BOOL fPreviewVert, BOOL fReload);
|
|
STDMETHOD(GetMessageList)(THIS_ IMessageList ** ppMsgList) {return E_NOTIMPL;}
|
|
|
|
//
|
|
// Constructors, Destructors, and Initialization
|
|
//
|
|
CFrontPage();
|
|
virtual ~CFrontPage();
|
|
HRESULT HrInit(FOLDERID idFolder);
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// virtuals
|
|
//
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// accessors
|
|
//
|
|
// LPITEMIDLIST PidlRoot() { return m_pidlRoot; }
|
|
// LPFOLDERIDLIST Fidl() { return m_fidl; }
|
|
HWND HwndOwner() { return m_hwndOwner; }
|
|
|
|
private:
|
|
BOOL LoadBaseSettings();
|
|
BOOL SaveBaseSettings();
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Callback Functions
|
|
//
|
|
// Note: All callbacks must be made static members to avoid having the
|
|
// implicit "this" pointer passed as the first parameter.
|
|
//
|
|
static LRESULT CALLBACK FrontPageWndProc(HWND, UINT, WPARAM, LPARAM);
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Message Handling
|
|
//
|
|
LRESULT WndProc(HWND, UINT, WPARAM, LPARAM);
|
|
BOOL OnCreate(HWND hwnd, LPCREATESTRUCT lpCreateStruct);
|
|
void OnSize(HWND hwnd, UINT state, int cxClient, int cyClient);
|
|
LRESULT OnNotify(HWND hwnd, int idFrom, LPNMHDR pnmhdr);
|
|
void OnSetFocus(HWND hwnd, HWND hwndOldFocus);
|
|
void PostCreate();
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Shell Interface Handling
|
|
//
|
|
BOOL OnActivate(UINT uActivation);
|
|
BOOL OnDeactivate();
|
|
|
|
private:
|
|
/////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Private Data
|
|
//
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// Shell Stuff
|
|
UINT m_cRef;
|
|
FOLDERID m_idFolder;
|
|
FOLDERTYPE m_ftType;
|
|
IAthenaBrowser *m_pShellBrowser;
|
|
BOOL m_fFirstActive;
|
|
UINT m_uActivation;
|
|
HWND m_hwndOwner; // Owner window
|
|
HWND m_hwnd; // Our window
|
|
HWND m_hwndCtlFocus; // Child control to set focus to
|
|
#ifndef WIN16 // No RAS support in Win16
|
|
HMENU m_hMenuConnect;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// Child support
|
|
CFrontBody *m_pBodyObj;
|
|
IOleCommandTarget *m_pBodyObjCT;
|
|
CStatusBar *m_pStatusBar;
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// Language support
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// Layout members
|
|
};
|
|
|
|
#endif // _FRNTPAGE_H
|