2025-04-27 07:49:33 -04:00

124 lines
3.7 KiB
C++

// Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved
#if !defined(AFX_BROWSEFORINSTANCES_H__9F7CEA71_CAF9_11D0_963D_00C04FD9B15B__INCLUDED_)
#define AFX_BROWSEFORINSTANCES_H__9F7CEA71_CAF9_11D0_963D_00C04FD9B15B__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// BrowseforInstances.h : header file
//
class CAvailClasses;
class CResults;
class CNavigatorCtrl;
#define ID_SETTREEROOT WM_USER + 24
/////////////////////////////////////////////////////////////////////////////
// CBrowseforInstances dialog
class CBrowseforInstances : public CDialog
{
// Construction
public:
CBrowseforInstances(CWnd* pParent = NULL); // standard constructor
void SetServices(IWbemServices *pServices)
{m_pServices = pServices;}
CSortedCStringArray &GetCurrentAvailClasses();
CByteArray &GetCurrentNonInstClasses();
BOOL HasNonInstClasses();
void SetTMFont(TEXTMETRIC *ptmFont)
{m_tmFont = *ptmFont;}
void SetParent(CNavigatorCtrl *pParent)
{m_pParent = pParent;}
enum {TreeRoot, InitialObject};
void SetMode(int nMode) {m_nMode = nMode;}
// Dialog Data
//{{AFX_DATA(CBrowseforInstances)
enum { IDD = IDD_DIALOGBROWSEFORINSTANCES };
CStatic m_cstaticBrowse;
CButton m_cbAssoc;
CButton m_cbRemove;
CButton m_cbAdd;
CButton m_cbOK;
//}}AFX_DATA
CAvailClassEdit m_ceditClass;
CAvailClasses m_clbAllClasses;
CSelectedClasses m_clbSelClasses;
void SetNewRoot(IWbemClassObject *pObject);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CBrowseforInstances)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
IWbemServices *m_pServices;
CNavigatorCtrl *m_pParent;
void GetClassArray
(CSortedCStringArray &rcsaOut, CString *pcsParent = NULL, BOOL bDeep = TRUE,
BOOL bOnlyCanHaveInstances = TRUE, BOOL bSystemClasses = FALSE,
BOOL bAssoc = FALSE);
void OnOKReally();
void OnCancelReally();
void UpdateUI();
BOOL m_bEscSeen;
BOOL IsClassAvailable(CString &rcsClass);
CSortedCStringArray m_csaAllClasses;
CSortedCStringArray m_csaInstClasses;
CSortedCStringArray m_csaAllPlusAssocClasses;
CSortedCStringArray m_csaInstPlusAssocClasses;
CStringArray m_csaSelectedClasses;
CByteArray m_cbaAllClasses;
CByteArray m_cbaAllPlusAssocClasses;
BOOL m_bShowAll;
BOOL m_bShowAssoc;
TEXTMETRIC m_tmFont;
CPictureHolder *m_pcphImage;
int m_nBitmapH;
int m_nBitmapW;
int m_nMode;
CString m_csSelectedInstancePath;
void ClearSelectedSelection();
void ClearAvailSelection();
// Generated message map functions
//{{AFX_MSG(CBrowseforInstances)
virtual BOOL OnInitDialog();
afx_msg void OnRadioallclasses();
afx_msg void OnRadioclassescanhaveinst();
afx_msg void OnCheckassoc();
afx_msg void OnChangeEDITClass();
afx_msg void OnButtonadd();
afx_msg void OnButtonremove();
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
virtual void OnCancel();
virtual void OnOK();
afx_msg void OnPaint();
afx_msg void OnDestroy();
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
//}}AFX_MSG
afx_msg LRESULT UpdateAvailClass(WPARAM, LPARAM);
DECLARE_MESSAGE_MAP()
friend class CAvailClasses;
friend class CAvailClassEdit;
friend class CSelectedClasses;
friend class CResults;
friend class CNavigatorCtrl;
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_BROWSEFORINSTANCES_H__9F7CEA71_CAF9_11D0_963D_00C04FD9B15B__INCLUDED_)