Files
admin
activec
admt
burnslib
cmdline
consoles
controls
cys
darwin
dcpromo
display
dsadminlib
dsclientnt4
dscmd
dsutils
dsweb
eelvewer
extens
hmonitor
netid
netui
pchealth
published
select
services
sms
snapin
wizards
wmi
wbem
adapters
bvt
common
consumers
copyright
cppunit
embedded
policman
providers
dmi
dmitest
doc
source
asyncjob.cpp
asyncjob.h
cimclass.cpp
cimclass.h
classfac.cpp
classfac.h
datatypes.cpp
datatypes.h
dmiactx_i.c
dmidata.cpp
dmidata.h
dmiinterface.cpp
dmiinterface.h
dmiinterfaceerror.h
dmilayer.cpp
dmilayer.h
dmipch.cpp
dmipch.h
dual.h
eventprovider.cpp
eventprovider.h
exception.h
iterator.cpp
iterator.h
maindll.cpp
mapping.cpp
mapping.h
motobjects.cpp
motobjects.h
new.rc
objectpath.cpp
objectpath.h
resource.h
services.cpp
services.h
strings.h
threadmgr.cpp
threadmgr.h
trace.cpp
trace.h
version.rc
wbemdmip.h
wbemloopback.cpp
wbemloopback.h
win32.def
makefile
motdmiengine.ocx
newnode.mof
relnotes.txt
wbemdmip.dll
wbemdmip.mof
wbemdmip.pdf
wcdmi.dll
wcdmidce.dll
wdmiutil.dll
dsprovider
framework
iproute
jobobjectprov
mofs
msiprovider
nteventprovider
ping
smbios
snmpprovider
viewprovider
wdmprovider
win32provider
dirs
makefile.sms
scripting
sdk
setup
shell
test
tools
valuadd
winmgmt
xmltransport
coverage_cleanbuild.bat
coverage_postbuild.bat
dirs
icecap_cleanbuild.bat
dirs
wmiprov
wmiscmgr
dirs
makefile.inc
project.mk
base
com
developer
drivers
ds
enduser
inetcore
inetsrv
loc
mergedcomponents
multimedia
net
printscan
public
published
sdktools
shell
termsrv
tools
windows
dirs
makefil0
2025-04-27 07:49:33 -04:00

223 lines
6.3 KiB
C++

/*
******************************************************************************
******************************************************************************
*
*
* INTEL CORPORATION PROPRIETARY INFORMATION
* This software is supplied under the terms of a license agreement or
* nondisclosure agreement with Intel Corporation and may not be copied or
* disclosed except in accordance with the terms of that agreement.
*
* Copyright (c) 1997, 1998 Intel Corporation All Rights Reserved
******************************************************************************
******************************************************************************
*
*
*
*
*
*/
#if !defined(__MAPPING_H__)
#define __MAPPING_H__
#include "Iterator.h"
#include "ObjectPath.h"
#define ITERATOR_COUNT 10
class CMapping
{
private:
CIterator* m_Iterators[ITERATOR_COUNT];
LONG m_lRefCount;
BOOL m_bFoundClass;
LONG m_lGroupCount;
CWbemLoopBack* m_pWbem;
void cimMakeGroupBindingClass( CCimObject& , CComponent* ,
CGroup* , IWbemContext*);
void cimMakeGroupClass( long compid , CGroup* ,
CCimObject& , IWbemContext* );
void cimMakeEnumInstance( CCimObject& , CEnum& ,
CCimObject& );
void cimMakeGroupBindingInstance(CCimObject&, CIterator* );
void cimMakeGroupInstance(CCimObject&, CRow*, CCimObject&);
void cimMakeLanguageInstance(CCimObject&, CIterator* );
void cimMakeLanguageBindingInstance(CCimObject&,
CIterator*);
void cimMakeComponentBindingInstance(CCimObject&,
CComponent*, CCimObject&);
void MakeGroupName( CComponent*, CGroup* , CBstr&);
void MakeGroupName( LONG, CGroup* , CBstr&);
BOOL MakeGroupBindingName(CBstr&,CComponent*, CGroup*);
void MakeAttributeName( LONG , LPWSTR , CString& );
void MakeGroupInstancePath(CVariant&, CIterator*);
void MakeComponentInstancePath( CComponent* , CVariant& );
void MakeLanguageInstancePath(CVariant&, CIterator*);
void AddStandardAssociationQualifiers( CCimObject&, LPWSTR);
// for dynamic class iterators
CIterator* New();
void dmiGetNextGroupOrRow( IWbemContext* , CString&,
CIterator*);
void dmiGetComponentGroupRowFromPath( IWbemContext* ,
CObjectPath& , CIterator*);
void dmiGetComponentAndGroup ( IWbemContext* , CString& cszClassName ,
CComponent& Component , CGroup& Group );
public:
CMapping();
~CMapping();
void cimMakeComponentInstance(CCimObject&, CComponent&, CRow& ,
CCimObject&);
void Init( CWbemLoopBack* , BSTR, IWbemContext*);
void GetNewCGAIterator( IWbemContext* , CIterator**);
void GetDynamicClassByName( CString&, CCimObject&,
CIterator* , IWbemContext* );
void GetInstanceByPath( LPWSTR, CCimObject&, CIterator* ,
IWbemContext*);
// Dynamic Cim Class Iterators
void NextDynamicBinding( CCimObject&, CIterator* ,
IWbemContext*);
void NextDynamicGroup( CCimObject&,CIterator* ,
IWbemContext*);
void NextDynamicInstance( CString&, CIterator*, IWbemContext* , CCimObject& );
void NextDynamicBindingInstance( IWbemContext* ,
CCimObject&, CIterator*);
void NextDynamicGroupInstance( IWbemContext* ,
CCimObject&, CIterator*);
void GetDynamicGroupClass ( long , CGroup& , CCimObject& );
void GetComponentClass( IWbemContext* , CCimObject& );
void GetComponentInstance( CString&, IWbemContext* , CCimObject&);
void GetComponentBindingClass( IWbemContext* , CCimObject& );
void GetLanguageClass( IWbemContext* pICtx , CCimObject&);
void GetLanguageInstance( CString&, IWbemContext* , CCimObject& );
void MakeLanguageInstance( CVariant& cvLanguage, IWbemContext* , CCimObject& );
void GetGroupRootClass( CCimObject&, IWbemContext*);
void GetBindingRootClass( CCimObject& , IWbemContext*);
void GetLanguageBindingClass(CCimObject&, IWbemContext*);
void GetAddParamsClass( CCimObject&, IWbemContext* );
void GetDeleteLanguageParamsClass( CCimObject& Class , IWbemContext* );
void GetEnumParamsClass( CCimObject& Class , IWbemContext* );
void GetNodeDataInstance( CCimObject& , IWbemContext* );
void GetNodeDataClass( CCimObject& , IWbemContext* );
void GetNodeDataBindingInstance( CCimObject& , IWbemContext* );
void GetNodeDataBindingClass ( CCimObject& , IWbemContext* );
void GetEnumClass( IWbemContext* , CCimObject& );
void GetDmiEventClass( IWbemContext* pICtx , CCimObject& Class);
void GetGroupRowInstance ( CRow& , CCimObject& ) ;
// Node Methods
void AddComponent( IWbemContext* , CCimObject&);
void SetDefaultLanguage( IWbemContext* , CCimObject& );
// Component Methods
void AddLanguage( CString&, CCimObject&, IWbemContext* );
void AddGroup( CString&, CCimObject&, IWbemContext*);
void DeleteLanguage( CString&, CCimObject& , IWbemContext* );
void DynamicGroupGetEnum( CString&, CCimObject&,
CCimObject& , IWbemContext* );
void ComponentGetEnum( CString&, CCimObject&, CCimObject& ,
IWbemContext* );
void ModifyInstanceOrAddRow( IWbemContext* , CCimObject&);
void GetNotifyStatusInstance( CCimObject&, ULONG, IWbemContext*); // from CIMOM
BOOL GetExtendedStatusInstance( CCimObject& Instance, ULONG ulStatus,
BSTR bstrDescription, BSTR bstrOperation,
BSTR bstrParameter, IWbemContext* pICtx );
void DeleteDynamicGroupClass(LPWSTR, IWbemContext* );
void DeleteInstance( CString& , IWbemContext* );
LONG Release() {return (InterlockedDecrement(&m_lRefCount));}
void AddRef() {InterlockedIncrement(&m_lRefCount);}
CString m_cszNamespace;
CMapping* m_pNext;
CMapping* m_pPrevious;
};
class CMappings
{
private:
CMapping* m_pFirst;
CMapping* m_pCurrent;
public:
CMappings();
~CMappings();
void MoveToHead() {m_pCurrent = m_pFirst;}
void Add(CMapping*);
CMapping* Next();
void Get( CWbemLoopBack* , CString&, CMapping**, IWbemContext*);
void Release(CMapping*);
};
#endif // __MAPPING_H__