windows-nt/Source/XPSP1/NT/net/homenet/config/inc/hnappprt.h
2020-09-26 16:20:57 +08:00

164 lines
2.8 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1997 - 2000
//
// File: H N A P P P R T . H
//
// Contents: CHNetAppProtocol declarations
//
// Notes:
//
// Author: jonburs 21 June 2000
//
//----------------------------------------------------------------------------
#pragma once
class ATL_NO_VTABLE CHNetAppProtocol :
public CComObjectRootEx<CComMultiThreadModel>,
public IHNetApplicationProtocol
{
private:
//
// IWbemServices for our namespace
//
IWbemServices *m_piwsHomenet;
//
// Path to WMI instance
//
BSTR m_bstrProtocol;
//
// True if this is a built-in protocol. We cache
// this value as it will be used quite often, and
// will never change for the instance.
//
BOOLEAN m_fBuiltIn;
//
// Obtains the protocol object from the stored path
//
HRESULT
GetProtocolObject(
IWbemClassObject **ppwcoInstance
);
public:
BEGIN_COM_MAP(CHNetAppProtocol)
COM_INTERFACE_ENTRY(IHNetApplicationProtocol)
END_COM_MAP()
DECLARE_PROTECT_FINAL_CONSTRUCT()
//
// Inline constructor.
//
CHNetAppProtocol()
{
m_piwsHomenet = NULL;
m_bstrProtocol = NULL;
m_fBuiltIn = FALSE;
};
//
// Atl methods
//
HRESULT
FinalRelease();
//
// Object initialization
//
HRESULT
Initialize(
IWbemServices *piwsNamespace,
IWbemClassObject *pwcoInstance
);
//
// IHNetApplicationProtocol methods
//
STDMETHODIMP
GetName(
OLECHAR **ppszwName
);
STDMETHODIMP
SetName(
OLECHAR *pszwName
);
STDMETHODIMP
GetOutgoingIPProtocol(
UCHAR *pucProtocol
);
STDMETHODIMP
SetOutgoingIPProtocol(
UCHAR ucProtocol
);
STDMETHODIMP
GetOutgoingPort(
USHORT *pusPort
);
STDMETHODIMP
SetOutgoingPort(
USHORT usPort
);
STDMETHODIMP
GetResponseRanges(
USHORT *puscResponses,
HNET_RESPONSE_RANGE *prgResponseRange[]
);
STDMETHODIMP
SetResponseRanges(
USHORT uscResponses,
HNET_RESPONSE_RANGE rgResponseRange[]
);
STDMETHODIMP
GetBuiltIn(
BOOLEAN *pfBuiltIn
);
STDMETHODIMP
GetEnabled(
BOOLEAN *pfEnabled
);
STDMETHODIMP
SetEnabled(
BOOLEAN fEnable
);
STDMETHODIMP
Delete();
};
//
// Type to use for our enumeration class
//
typedef CHNCEnum<
IEnumHNetApplicationProtocols,
IHNetApplicationProtocol,
CHNetAppProtocol
>
CEnumHNetApplicationProtocols;