Leaked source code of windows server 2003
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.
 
 
 
 
 
 

181 lines
6.9 KiB

/////////////////////////////////////////////////////////////////////////////
// Copyright (C) 1993-1996 Microsoft Corporation. All Rights Reserved.
//
// MODULE: Infcolum.h
//
// PURPOSE: Defines the CInfoColumn class.
#ifndef __INFCOLUM_H__
#define __INFCOLUM_H__
#include "treeview.h"
interface IMsgrAb;
// interface IBLView;
#define MAX_WIDTH 0xffff
#define IMAGE_HEIGHT 16
#define INVALID_BAND_INDEX (UINT)-1
#define INFOCOLUMN_LAST (0xffff - 1)
#define INFOCOLUMN_FIRST 0xffff
class CFolderBar;
#define LEFTPANE_VERSION 0x01
//Band Ids
enum {
ICTREEVIEW = 0,
ICBLAB,
ICOETODAY,
IC_MAX_OBJECTS
};
#define idcInfoColumn 2500
#define idcTreeViewBand idcInfoColumn + 1
#define idcOETodayBand idcInfoColumn + 2
typedef struct TagColumnObjItem
{
IInputObject *pBandObj;
BORDERWIDTHS rcBandBorder;
DWORD fShow;
}ColumnObjItem;
class CInfoColumn : public IDockingWindow,
public IDropTarget,
public IInputObject,
public IInputObjectSite,
public IObjectWithSite,
public IOleCommandTarget
{
public:
CInfoColumn();
HRESULT HrInit(IAthenaBrowser *pBrowser,
ITreeViewNotify *ptvNotify);
virtual ~CInfoColumn(void);
virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID* ppvObj);
virtual STDMETHODIMP_(ULONG) AddRef(void);
virtual STDMETHODIMP_(ULONG) Release(void);
HRESULT CInfoColumn::GetInfoColWnd(HWND * lphwnd);
HRESULT RegisterFlyOut(CFolderBar *pFolderBar);
HRESULT RevokeFlyOut(void);
LRESULT PrivateProcessing(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
static LRESULT CALLBACK InfoColumnWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
CTreeView* GetTreeView();
BOOL CycleFocus(BOOL fReverse);
BOOL CycleFocus(DWORD LastorFirst, BOOL fReverse);
void ForwardMessages(UINT msg, WPARAM wParam, LPARAM lParam);
HRESULT HasFocus(UINT itb);
IMsgrAb* GetBAComtrol(void) {return m_pMsgrAb; }
//IOleWindow::GetWindow
virtual STDMETHODIMP GetWindow(HWND* lphwnd);
virtual STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode);
//IDockingWindow
virtual STDMETHODIMP ShowDW(BOOL fShow);
virtual STDMETHODIMP ResizeBorderDW(LPCRECT prcBorder,
IUnknown* punkToolbarSite,
BOOL fReserved);
virtual STDMETHODIMP CloseDW(DWORD dwReserved);
//IInputObject
virtual STDMETHODIMP UIActivateIO(BOOL fActivate, LPMSG lpMsg);
virtual STDMETHODIMP HasFocusIO(void);
virtual STDMETHODIMP TranslateAcceleratorIO(LPMSG pMsg);
//IIinputObjectSite
virtual STDMETHODIMP OnFocusChangeIS(IUnknown *punk, BOOL fSetFocus);
//IObjectWithSite
virtual STDMETHODIMP GetSite(REFIID riid, LPVOID *ppvSite);
virtual STDMETHODIMP SetSite(IUnknown *pUnkSite);
//IOleCommandTarget
HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *pguidCmdGroup,
ULONG cCmds,
OLECMD rgCmds[],
OLECMDTEXT *pCmdText);
HRESULT STDMETHODCALLTYPE Exec(const GUID *pguidCmdGroup,
DWORD nCmdID,
DWORD nCmdExecOpt,
VARIANTARG *pvaIn,
VARIANTARG *pvaOut);
//IDropTarget
virtual STDMETHODIMP DragEnter( IDataObject *pDataObject,
DWORD grfKeyState,
POINTL pt,
DWORD *pdwEffect);
virtual STDMETHODIMP DragOver( DWORD grfKeyState,
POINTL pt,
DWORD *pdwEffect );
virtual STDMETHODIMP DragLeave(void);
virtual STDMETHODIMP Drop( IDataObject *pDataObject,
DWORD grfKeyState,
POINTL pt,
DWORD *pdwEffect);
private:
HRESULT CreateInfoColumn(BOOL fVisible);
LRESULT WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
BOOL OnCreate(HWND hwnd, LPCREATESTRUCT lpCreateStruct);
LRESULT OnNotify(HWND hwnd, WPARAM wParam, LPNMHDR lParam);
void OnSize(HWND hwnd, UINT state, int cxClient, int cyClient);
void OnLButtonDown(HWND hwnd, BOOL fDoubleClick, int x, int y, UINT keyFlags);
void OnMouseMove(HWND hwnd, int x, int y, UINT keyFlags);
void OnLButtonUp(HWND hwnd, int x, int y, UINT keyFlags);
LRESULT OnICBeginDrag(LPNMREBAR pnm);
void OnContextMenu(HWND hwnd, HWND hwndContext, UINT xPos, UINT yPos);
HRESULT FindBandListIndex(DWORD *pdwindex);
DWORD FindBandObject(IInputObject *punk);
HRESULT AddObject(IInputObject *pinpObj, DWORD fShow);
void ResizeBands(int width);
void GetFontParams();
BOOL SetCycledFocus(DWORD Index, BOOL fReverse);
DWORD GetFirstBand();
DWORD GetLastBand();
HRESULT AddTreeView(DWORD dwSize = 0, BOOL fVisible = TRUE);
HRESULT AddMsgrAb(DWORD dwSize = 0, BOOL fVisible = TRUE);
void AddOETodayBand(DWORD dwSize = 0, BOOL fVisible = TRUE);
HRESULT SaveSettings(void);
HRESULT CreateBands(void);
HRESULT CreateDefaultBands(void);
void ShowHideBand(DWORD dwBandID);
BOOL IsOurWindow(HWND hwnd);
HRESULT RegisterChildren(CFolderBar *pFolder, BOOL Register);
void CleanupLParam();
void ShowAllBands();
private:
HFONT m_hfIcon;
UINT m_cRef;
IDockingWindowSite *m_pDwSite;
ColumnObjItem m_BandList[IC_MAX_OBJECTS];
IOleCommandTarget *m_CacheCmdTarget[IC_MAX_OBJECTS];
IInputObject *m_CurFocus;
HWND m_hwndInfoColumn;
HWND m_hwndRebar;
HWND m_hwndParent;
BOOL m_fShow;
CTreeView *m_pTreeView;
IMsgrAb *m_pMsgrAb;
LONG m_xWidth;
HIMAGELIST m_himl;
BOOL m_fRebarDragging;
CFolderBar *m_pFolderBar;
int m_cVisibleBands;
BOOL m_fDragging;
};
#endif //__INFCOLUM_H__