169 lines
3.3 KiB
C++
169 lines
3.3 KiB
C++
|
/*++
|
||
|
|
||
|
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();
|
||
|
}
|