windows-nt/Source/XPSP1/NT/termsrv/setup/tsdiag/evntutl/view.cpp
2020-09-26 16:20:57 +08:00

83 lines
1.7 KiB
C++

/////////////////////////////////////////////////////////////////////////////
//
// Copyright: Microsoft Corp. 1997-1999. All rights reserved
//
/////////////////////////////////////////////////////////////////////////////
// View.cpp : Implementation of CView
#include "stdafx.h"
#include "Evntutl.h"
#include "View.h"
/////////////////////////////////////////////////////////////////////////////
// CView
STDMETHODIMP CView::InterfaceSupportsErrorInfo(REFIID riid)
{
static const IID* arr[] =
{
&IID_IView
};
for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++)
{
if (InlineIsEqualGUID(*arr[i],riid))
return S_OK;
}
return S_FALSE;
}
/*
Function: get_Logs
Inputs: empty variant
Outputs: variant dispatch pointer to an ILogs interface
Purpose: Provide access to ILogs
*/
STDMETHODIMP CView::get_Logs(VARIANT *pVal)
{
HRESULT hr = S_OK;
VariantInit(pVal);
IDispatch* pDisp;
hr = m_pLogs->QueryInterface (IID_IDispatch, (void**) &pDisp);
if (SUCCEEDED(hr))
{
pVal->vt = VT_DISPATCH;
pVal->pdispVal = pDisp;
m_pLogs->m_ServerName = m_ServerName.copy();
hr = m_pLogs->Init();
}
return hr;
}
/*
Function: get_Server
Inputs: empty BSTR
Outputs: BSTR containing the current value of the server member variable
Purpose: Allows user to see which Server's EventLog will be displayed
*/
STDMETHODIMP CView::get_Server(BSTR *pVal)
{
HRESULT hr = S_OK;
if (pVal) *pVal = m_ServerName.copy();
else hr = E_POINTER;
return hr;
}
/*
Function: put_Server
Inputs: BSTR containing a valid server name
Outputs: none
Purpose: Allows user to set which Server's EventLog will be displayed
*/
STDMETHODIMP CView::put_Server(BSTR newVal)
{
m_ServerName = newVal;
m_pLogs->m_ServerName = m_ServerName.copy();
return S_OK;
}