152 lines
4.3 KiB
C++
152 lines
4.3 KiB
C++
/*++
|
|
|
|
Copyright (C) 1997-2001 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
Abstract:
|
|
|
|
History:
|
|
|
|
--*/
|
|
// OpView.h : interface of the COpView class
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_OPVIEW_H__4419F1AE_692B_11D3_BD30_0080C8E60955__INCLUDED_)
|
|
#define AFX_OPVIEW_H__4419F1AE_692B_11D3_BD30_0080C8E60955__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#include "OpWrap.h"
|
|
|
|
#define WM_OBJ_INDICATE (WM_USER + 101)
|
|
#define WM_OP_STATUS (WM_USER + 102)
|
|
|
|
class CWMITestDoc;
|
|
|
|
class COpView : public CTreeView
|
|
{
|
|
protected: // create from serialization only
|
|
COpView();
|
|
DECLARE_DYNCREATE(COpView)
|
|
|
|
// Attributes
|
|
public:
|
|
CWMITestDoc* GetDocument();
|
|
CTreeCtrl *m_pTree;
|
|
HTREEITEM m_hitemRoot;
|
|
|
|
// Operations
|
|
public:
|
|
|
|
void AddOpItem(WMI_OP_TYPE type, LPCTSTR szText, BOOL bOption = FALSE);
|
|
void AddOpItem(COpWrap *pWrap);
|
|
void AddOpItemChild(
|
|
CObjInfo* pInfo,
|
|
HTREEITEM hParent,
|
|
int iImage,
|
|
LPCTSTR szText);
|
|
void RefreshItem(HTREEITEM hitem);
|
|
void RefreshItem(COpWrap *pWrap);
|
|
void RefreshItems();
|
|
void RefreshObject(CObjInfo *pInfo);
|
|
void FlushItems();
|
|
void RemoveItemFromTree(HTREEITEM item, BOOL bNoWMIRemove);
|
|
void UpdateRootText();
|
|
BOOL IsRoot(HTREEITEM hitem) { return hitem == m_hitemRoot; }
|
|
BOOL IsOp(HTREEITEM hitem) { return IsRoot(m_pTree->GetParentItem(hitem)); }
|
|
BOOL IsObj(HTREEITEM hitem);
|
|
BOOL IsObjDeleteable(HTREEITEM hitem);
|
|
void RemoveChildrenFromTree(HTREEITEM item, BOOL bDoRemove);
|
|
COpWrap *GetCurrentOp();
|
|
CObjInfo *GetCurrentObj();
|
|
void DoContextMenuForItem(HTREEITEM hItem);
|
|
int GetOpCount();
|
|
CObjInfo *GetObjInfo(HTREEITEM hItem);
|
|
void UpdateCurrentObject(BOOL bReloadProps = FALSE);
|
|
void UpdateItem(HTREEITEM hitem);
|
|
void UpdateCurrentItem();
|
|
void UpdateStatusText();
|
|
BOOL GetSelectedObjPath(CString &strPath);
|
|
BOOL GetSelectedClass(CString &strClass);
|
|
void DoPopupMenu(UINT nMenuID);
|
|
void UpdateObject(CObjInfo *pInfo);
|
|
|
|
void EditObj(CObjInfo *pInfo);
|
|
|
|
void ExportItemToFile(LPCTSTR szFilename, HTREEITEM hitem,
|
|
BOOL bShowSystem, BOOL bTranslate);
|
|
|
|
//void SerializeForClipboard(CArchive &arcNative, CArchive &arcText,
|
|
// CLIPFORMAT *pFormat);
|
|
//void SerializeTreeItem(HTREEITEM item, CArchive &arcNative, CArchive &arcText);
|
|
|
|
void DoCopy(COpList &list);
|
|
void BuildSelectedOpList(COpList &list);
|
|
BOOL CanCopy();
|
|
|
|
|
|
static DWORD WINAPI CopyThreadProc(COpView *pThis);
|
|
void DoThreadedCopy();
|
|
void CopyToClipboard();
|
|
|
|
// Overrides
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(COpView)
|
|
public:
|
|
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
|
|
protected:
|
|
virtual void OnInitialUpdate(); // called first time after construct
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Implementation
|
|
public:
|
|
virtual ~COpView();
|
|
#ifdef _DEBUG
|
|
virtual void AssertValid() const;
|
|
virtual void Dump(CDumpContext& dc) const;
|
|
#endif
|
|
|
|
protected:
|
|
int GetChildCount(HTREEITEM hitem);
|
|
|
|
// Generated message map functions
|
|
protected:
|
|
void RemoveNonOpObjectFromTree(HTREEITEM item);
|
|
void ExportItem(CStdioFile *pFile, HTREEITEM item, BOOL bShowSystem,
|
|
BOOL bTranslate);
|
|
|
|
//{{AFX_MSG(COpView)
|
|
afx_msg void OnSize(UINT nType, int cx, int cy);
|
|
afx_msg void OnDblclk(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnSelChanged(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnRclick(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnDelete();
|
|
afx_msg void OnUpdateDelete(CCmdUI* pCmdUI);
|
|
afx_msg void OnModify();
|
|
afx_msg void OnUpdateModify(CCmdUI* pCmdUI);
|
|
afx_msg void OnEditCopy();
|
|
afx_msg void OnUpdateEditCopy(CCmdUI* pCmdUI);
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
afx_msg LRESULT OnObjIndicate(WPARAM wParam, LPARAM lParam);
|
|
afx_msg LRESULT OnOpStatus(WPARAM wParam, LPARAM lParam);
|
|
};
|
|
|
|
extern COpView *g_pOpView;
|
|
|
|
#ifndef _DEBUG // debug version in OpView.cpp
|
|
inline CWMITestDoc* COpView::GetDocument()
|
|
{ return (CWMITestDoc*)m_pDocument; }
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
//{{AFX_INSERT_LOCATION}}
|
|
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
|
|
|
#endif // !defined(AFX_OPVIEW_H__4419F1AE_692B_11D3_BD30_0080C8E60955__INCLUDED_)
|