windows-nt/Source/XPSP1/NT/net/config/netcfg/engine/iclass.h
2020-09-26 16:20:57 +08:00

82 lines
1.9 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1999.
//
// File: I C L A S S . H
//
// Contents: Implements the INetCfgClass and INetCfgClassSetup COM
// interfaces on the NetCfgClass sub-level COM object.
//
// Notes:
//
// Author: shaunco 15 Jan 1999
//
//----------------------------------------------------------------------------
#pragma once
#include "iatl.h"
#include "inetcfg.h"
#include "compdefs.h"
#include "netcfgx.h"
//+---------------------------------------------------------------------------
// INetCfgClass -
//
class ATL_NO_VTABLE CImplINetCfgClass :
public CImplINetCfgHolder,
public INetCfgClass,
public INetCfgClassSetup
{
private:
NETCLASS m_Class;
public:
CImplINetCfgClass ()
{
m_Class = NC_INVALID;
}
BEGIN_COM_MAP(CImplINetCfgClass)
COM_INTERFACE_ENTRY(INetCfgClass)
COM_INTERFACE_ENTRY(INetCfgClassSetup)
END_COM_MAP()
// INetCfgClass
//
STDMETHOD (FindComponent) (
IN PCWSTR pszInfId,
OUT INetCfgComponent** ppComp);
STDMETHOD (EnumComponents) (
OUT IEnumNetCfgComponent** ppIEnum);
// INetCfgClassSetup
//
STDMETHOD (SelectAndInstall) (
IN HWND hwndParent,
IN OBO_TOKEN* pOboToken,
OUT INetCfgComponent** ppIComp);
STDMETHOD (Install) (
IN PCWSTR pszwInfId,
IN OBO_TOKEN* pOboToken,
IN DWORD dwSetupFlags,
IN DWORD dwUpgradeFromBuildNo,
IN PCWSTR pszAnswerFile,
IN PCWSTR pszAnswerSection,
OUT INetCfgComponent** ppIComp);
STDMETHOD (DeInstall) (
IN INetCfgComponent* pIComp,
IN OBO_TOKEN* pOboToken,
OUT PWSTR* ppmszwRefs);
public:
static HRESULT HrCreateInstance (
IN CImplINetCfg* pINetCfg,
IN NETCLASS Class,
OUT INetCfgClass** ppIClass);
};