Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

151 lines
4.3 KiB

/*++
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_)