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
3.2 KiB

/*++
Copyright (C) 1997-2001 Microsoft Corporation
Module Name:
Abstract:
History:
--*/
// PropUtil.h: interface for the CPropUtil class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_PROPUTIL_H__6F2C145F_F170_480E_B56B_C80A0039E388__INCLUDED_)
#define AFX_PROPUTIL_H__6F2C145F_F170_480E_B56B_C80A0039E388__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "OpWrap.h"
void ValuemapValuesToCombo(HWND hwnd, CPropInfo *pProp, LPCTSTR szDefault);
void BitmaskValuesToCheckListbox(CCheckListBox &ctlListbox, CPropInfo *pProp,
DWORD dwDefValue);
void CheckListboxToBitmaskValue(CCheckListBox &ctlListBox, DWORD *pdwValue);
class CSinglePropUtil
{
public:
BOOL m_bNewProperty;
CPropInfo m_prop;
VARIANT *m_pVar;
BOOL m_bTranslate;
CSinglePropUtil() :
m_bControlsInited(FALSE)
{
}
void Init(CWnd *pWnd) { m_pWnd = pWnd; }
void SetType(CIMTYPE type);
void ShowControls(BOOL bShow);
void EnableControls(BOOL bEnable);
void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Fake message handlers.
void OnEditEmbedded();
void OnClearEmbedded();
BOOL OnInitDialog();
static void EditObj(IUnknown *pUnk);
static BOOL GetNewObj(IUnknown **ppUnk);
protected:
CCheckListBox m_ctlBitmaskValues;
CComboBox m_ctlListValues;
CEdit m_ctlScalar,
m_ctlText;
IUnknownPtr m_pObjValue;
BOOL m_bControlsInited;
CRect m_rectScalar,
m_rectText;
enum VALUE_TYPE
{
TYPE_EDIT_TEXT,
TYPE_EDIT_SCALAR,
TYPE_CHECKLISTBOX,
TYPE_DROPDOWN,
TYPE_DROPDOWNLIST,
TYPE_EDIT_OBJ,
};
CWnd *m_pWnd;
VALUE_TYPE m_type;
DWORD m_dwScalarID;
void InitTypeCombo();
CIMTYPE GetCurrentType();
void InitControls();
};
class CPropUtil
{
public:
CComboBox m_ctlTypes;
BOOL m_bNewProperty,
m_bIsQualifier;
CPropInfo m_prop;
VARIANT *m_pVar;
BOOL m_bTranslate;
// Needed for spawning instances for embedded objects.
IWbemServices *m_pNamespace;
CPropUtil();
virtual ~CPropUtil();
void Init(CWnd *pWnd);
void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
void OnNull();
void OnAdd();
void OnDelete();
void OnUp();
void OnDown();
void OnSelchangeValueArray();
void OnSelchangeType();
void OnEdit();
void OnArray();
void OnEditEmbedded();
void OnClearEmbedded();
void OnDblclkArrayValues();
BOOL OnInitDialog();
BOOL OnSetActive();
protected:
enum VALUE_TYPE
{
TYPE_EDIT,
TYPE_CHECKLISTBOX,
TYPE_DROPDOWN,
TYPE_DROPDOWNLIST,
TYPE_ARRAYLISTBOX,
};
CWnd *m_pWnd;
CSinglePropUtil m_spropUtil;
CListBox m_ctlArrayValues;
VALUE_TYPE m_type;
DWORD m_dwScalarID;
BOOL m_bOnInitDialog;
BOOL IsObjEdit() { return GetCurrentType() == CIM_OBJECT; }
void UpdateArrayButtons();
void Modify(BOOL bEdit);
void InitTypeCombo();
CIMTYPE GetCurrentType();
void ShowArrayControls(BOOL bVal);
void MoveArrayButtons();
};
#endif // !defined(AFX_PROPUTIL_H__6F2C145F_F170_480E_B56B_C80A0039E388__INCLUDED_)