windows-nt/Source/XPSP1/NT/shell/osshell/snapins/devmgr/ocx/ctvctl.h
2020-09-26 16:20:57 +08:00

142 lines
4.5 KiB
C++

/*++
Copyright (C) 1997-1999 Microsoft Corporation
Module Name:
ctvctl.h
Abstract:
header file for ctvctl.cpp
Author:
William Hsieh (williamh) created
Revision History:
--*/
#include "..\inc\tvintf.h"
// CTVCtl.h : Declaration of the CTVCtrl OLE control class.
const int MAX_CONNECTIONS = 10;
/////////////////////////////////////////////////////////////////////////////
// CTVCtrl : See CTVCtl.cpp for implementation.
class CTVCtrl : public COleControl
{
DECLARE_DYNCREATE(CTVCtrl)
// Constructor
public:
CTVCtrl();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CTVCtrl)
public:
virtual void OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid);
virtual void DoPropExchange(CPropExchange* pPX);
virtual void OnResetState();
virtual BOOL PreTranslateMessage(MSG* pMsg);
//}}AFX_VIRTUAL
// Implementation
protected:
~CTVCtrl();
DECLARE_OLECREATE_EX(CTVCtrl) // Class factory and guid
DECLARE_OLETYPELIB(CTVCtrl) // GetTypeInfo
DECLARE_OLECTLTYPE(CTVCtrl) // Type name and misc status
// Subclassed control support
BOOL PreCreateWindow(CREATESTRUCT& cs);
BOOL IsSubclassedControl();
LRESULT OnOcmCommand(WPARAM wParam, LPARAM lParam);
// Message maps
//{{AFX_MSG(CTVCtrl)
afx_msg void OnDestroy();
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
//}}AFX_MSG
afx_msg LRESULT OnOcmNotify(WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP()
// Dispatch maps
//{{AFX_DISPATCH(CTVCtrl)
//}}AFX_DISPATCH
DECLARE_DISPATCH_MAP()
// Event maps
//{{AFX_EVENT(CTVCtrl)
//}}AFX_EVENT
DECLARE_EVENT_MAP()
// Dispatch and event IDs
public:
enum {
//{{AFX_DISP_ID(CTVCtrl)
//}}AFX_DISP_ID
};
protected:
DECLARE_INTERFACE_MAP()
BEGIN_INTERFACE_PART(DMTVOCX, IDMTVOCX)
public: virtual HTREEITEM InsertItem(LPTV_INSERTSTRUCT pis);
public: virtual HRESULT DeleteItem(HTREEITEM hItem);
public: virtual HRESULT DeleteAllItems();
public: virtual HIMAGELIST SetImageList(INT iImage, HIMAGELIST himl);
public: virtual HRESULT SetItem(TV_ITEM* pitem);
public: virtual HRESULT Expand(UINT Flags, HTREEITEM htiem);
public: virtual HRESULT SelectItem(UINT Flags, HTREEITEM hitem);
public: virtual HRESULT SetStyle(DWORD dwStyle);
public: virtual HWND GetWindowHandle();
public: virtual HRESULT GetItem(TV_ITEM* pti);
public: virtual HTREEITEM GetNextItem(UINT Flags, HTREEITEM htiRef);
public: virtual HRESULT SelectItem(HTREEITEM hti);
public: virtual UINT GetCount();
public: virtual HTREEITEM GetSelectedItem();
public: virtual HRESULT Connect(IComponent* pIComponent, MMC_COOKIE);
public: virtual HRESULT SetActiveConnection(MMC_COOKIE cookie);
public: virtual MMC_COOKIE GetActiveConnection();
public: virtual HRESULT SetRedraw(BOOL Redraw);
public: virtual BOOL EnsureVisible(HTREEITEM hitem);
END_INTERFACE_PART(DMTVOCX)
private:
HTREEITEM InsertItem(LPTV_INSERTSTRUCT pis);
HRESULT DeleteItem(HTREEITEM hItem);
HRESULT DeleteAllItems();
HIMAGELIST SetImageList(INT iImage, HIMAGELIST himl);
HRESULT SetItem(TV_ITEM* pitem);
HRESULT Expand(UINT Flags, HTREEITEM htiem);
HRESULT SelectItem(UINT Flags, HTREEITEM hitem);
HRESULT SetStyle(DWORD dwStyle);
HWND GetWindowHandle();
HRESULT GetItem(TV_ITEM* pti);
HTREEITEM GetNextItem(UINT Flags, HTREEITEM htiRef);
HRESULT SelectItem(HTREEITEM hti);
UINT GetCount();
HTREEITEM HitTest(LONG x, LONG y, UINT* phtFlags);
HTREEITEM GetSelectedItem();
HRESULT Connect(IComponent* pIComponent, MMC_COOKIE cookie);
HRESULT SetActiveConnection(MMC_COOKIE cookie);
MMC_COOKIE GetActiveConnection();
HRESULT SetRedraw(BOOL Redraw);
BOOL EnsureVisible(HTREEITEM hitem);
TV_NOTIFY_CODE DoMouseNotification(UINT code, MMC_COOKIE* pcookie,LPARAM* parg, LPARAM* param);
// private data
MMC_COOKIE m_ActiveCookie;
int m_nConnections;
BOOL m_HasFocus;
IComponent* m_pIComponent;
ISnapinCallback* m_pISnapinCallback;
BOOL m_Destroyed;
};