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.
|
|
/*++
Copyright (C) 1997-2001 Microsoft Corporation
Module Name:
Abstract:
History:
--*/ // ParamsPg.cpp : implementation file
//
#include "stdafx.h"
#include "wmitest.h"
#include "WMITestDoc.h"
#include "OpView.h"
#include "OpWrap.h"
#include "ParamsPg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
/////////////////////////////////////////////////////////////////////////////
// CParamsPg property page
IMPLEMENT_DYNCREATE(CParamsPg, CPropertyPage)
CParamsPg::CParamsPg() : CPropertyPage(CParamsPg::IDD) { //{{AFX_DATA_INIT(CParamsPg)
m_strName = _T(""); //}}AFX_DATA_INIT
}
CParamsPg::~CParamsPg() { }
void CParamsPg::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CParamsPg)
DDX_Text(pDX, IDC_NAME, m_strName); //}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CParamsPg, CPropertyPage) //{{AFX_MSG_MAP(CParamsPg)
ON_BN_CLICKED(IDC_EDIT_INPUT, OnEditInput) ON_BN_CLICKED(IDC_EDIT_OUT, OnEditOut) ON_BN_CLICKED(IDC_NULL_IN, OnNullIn) ON_BN_CLICKED(IDC_NULL_OUT, OnNullOut) //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CParamsPg message handlers
BOOL CParamsPg::EditParams(DWORD dwID, IWbemClassObjectPtr &pObj) { HRESULT hr;
if (pObj == NULL) { //IWbemClassObjectPtr pClass;
if (SUCCEEDED(hr = g_pOpView->GetDocument()->m_pNamespace->GetObject( L"__PARAMETERS", WBEM_FLAG_RETURN_WBEM_COMPLETE, NULL, &pObj, NULL))) { //_variant_t vValue = dwID == IDS_EDIT_IN_PARAMS ? L"InParams"
//hr =
// pClass->SpawnInstance(
// 0,
// ppObj);
}
if (FAILED(hr)) { CWMITestDoc::DisplayWMIErrorBox(hr);
return FALSE; } } return CWMITestDoc::EditGenericObject(dwID, pObj); }
void CParamsPg::OnEditInput() { EditParams(IDS_EDIT_IN_PARAMS, m_pObjIn); }
void CParamsPg::OnEditOut() { EditParams(IDS_EDIT_OUT_PARAMS, m_pObjOut); }
void CParamsPg::OnNullIn() { GetDlgItem(IDC_EDIT_INPUT)->EnableWindow( !IsDlgButtonChecked(IDC_NULL_IN)); }
void CParamsPg::OnNullOut() { GetDlgItem(IDC_EDIT_OUT)->EnableWindow( !IsDlgButtonChecked(IDC_NULL_OUT)); }
BOOL CParamsPg::OnInitDialog() { CPropertyPage::OnInitDialog(); if (!m_bNewMethod) { m_pClass->GetMethod( _bstr_t(m_strName), 0, &m_pObjIn, &m_pObjOut); }
GetDlgItem(IDC_NAME)->EnableWindow(m_bNewMethod);
CheckDlgButton(IDC_NULL_IN, m_pObjIn == NULL); OnNullIn();
CheckDlgButton(IDC_NULL_OUT, m_pObjOut == NULL); OnNullOut(); return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CParamsPg::OnOK() { if (IsDlgButtonChecked(IDC_NULL_IN)) m_pObjIn = NULL; if (IsDlgButtonChecked(IDC_NULL_OUT)) m_pObjOut = NULL; CPropertyPage::OnOK(); }
BOOL CParamsPg::OnKillActive() { if (m_strName.IsEmpty()) { AfxMessageBox(IDS_METHOD_NAME_IS_EMPTY, MB_ICONEXCLAMATION | MB_OK);
return FALSE; } return CPropertyPage::OnKillActive(); }
|