mirror of https://github.com/tongzx/nt5src
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.
168 lines
3.3 KiB
168 lines
3.3 KiB
/*++
|
|
|
|
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();
|
|
}
|