110 lines
2.4 KiB
C++
110 lines
2.4 KiB
C++
/*++
|
|
|
|
Copyright (C) 1997-2001 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
Abstract:
|
|
|
|
History:
|
|
|
|
--*/
|
|
|
|
// ErrorDlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "wmitest.h"
|
|
#include "ErrorDlg.h"
|
|
#include "WMITestDoc.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CErrorDlg dialog
|
|
|
|
|
|
CErrorDlg::CErrorDlg(CWnd* pParent /*=NULL*/) :
|
|
CDialog(CErrorDlg::IDD, pParent)
|
|
//m_pResult(NULL)
|
|
{
|
|
//{{AFX_DATA_INIT(CErrorDlg)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
|
|
void CErrorDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CErrorDlg)
|
|
// NOTE: the ClassWizard will add DDX and DDV calls here
|
|
//}}AFX_DATA_MAP
|
|
|
|
if (!pDX->m_bSaveAndValidate)
|
|
{
|
|
CString strError,
|
|
strFacility;
|
|
|
|
IWbemStatusCodeText *pStatus = NULL;
|
|
|
|
SCODE sc = CoCreateInstance(
|
|
CLSID_WbemStatusCodeText,
|
|
0,
|
|
CLSCTX_INPROC_SERVER,
|
|
IID_IWbemStatusCodeText,
|
|
(LPVOID *) &pStatus);
|
|
|
|
if (sc == S_OK)
|
|
{
|
|
BSTR bstr = NULL;
|
|
|
|
if (SUCCEEDED(pStatus->GetFacilityCodeText(m_hr, 0, 0, &bstr)))
|
|
{
|
|
strFacility = bstr;
|
|
SysFreeString(bstr);
|
|
}
|
|
|
|
if (SUCCEEDED(pStatus->GetErrorCodeText(m_hr, 0, 0, &bstr)))
|
|
{
|
|
strError = bstr;
|
|
SysFreeString(bstr);
|
|
}
|
|
|
|
pStatus->Release();
|
|
}
|
|
|
|
if (strError.IsEmpty())
|
|
strError.FormatMessage(IDS_ERROR_FAILED, m_hr);
|
|
|
|
SetDlgItemText(IDC_FACILITY, strFacility);
|
|
SetDlgItemText(IDC_DESCRIPTION, strError);
|
|
|
|
strError.Format(_T("0x%X"), m_hr);
|
|
SetDlgItemText(IDC_NUMBER, strError);
|
|
|
|
if (m_pObj == NULL)
|
|
GetDlgItem(IDC_INFO)->EnableWindow(FALSE);
|
|
}
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CErrorDlg, CDialog)
|
|
//{{AFX_MSG_MAP(CErrorDlg)
|
|
ON_BN_CLICKED(IDC_INFO, OnInfo)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CErrorDlg message handlers
|
|
|
|
void CErrorDlg::OnInfo()
|
|
{
|
|
if (m_pObj != NULL)
|
|
CWMITestDoc::DisplayWMIErrorDetails(m_pObj);
|
|
}
|