155 lines
4.7 KiB
C++
155 lines
4.7 KiB
C++
// Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved
|
|
|
|
|
|
|
|
IWbemServices * InitServices(CString *pcsNameSpace = NULL, IWbemLocator *pLocator = NULL);
|
|
|
|
BOOL WbemObjectIdentity(CString &rcsWbem1, CString &rcsWbem2);
|
|
|
|
int StringInArray
|
|
(CStringArray *pcsaArray, CString *pcsString, int nIndex);
|
|
|
|
BOOL GetErrorObjectText
|
|
(IWbemClassObject *pErrorObject, CString &rcsDescription);
|
|
|
|
IWbemClassObject *CreateSimpleClass
|
|
(IWbemServices * pProv, CString *pcsNewClass, CString *pcsParentClass,
|
|
int &nError, CString &csError );
|
|
|
|
IWbemClassObject *GetClassObject (IWbemServices *pProv,CString *pcsClass, BOOL bQuiet = FALSE);
|
|
|
|
BOOL SetProperty
|
|
(IWbemServices * pProv, IWbemClassObject * pInst,
|
|
CString *pcsProperty, CString *pcsPropertyValue);
|
|
|
|
BOOL SetProperty
|
|
(IWbemServices * pProv, IWbemClassObject * pInst,
|
|
CString *pcsProperty, long lValue);
|
|
|
|
CString GetProperty
|
|
(IWbemClassObject * pInst, CString *pcsProperty, BOOL bQuietly = FALSE);
|
|
|
|
CString GetBSTRProperty
|
|
(IWbemServices * pProv, IWbemClassObject * pInst,
|
|
CString *pcsProperty);
|
|
|
|
CString GetBSTRProperty
|
|
(IWbemClassObject * pInst, CString *pcsProperty);
|
|
|
|
SCODE GetClasses(IWbemServices * pIWbemServices, CString *pcsParent,
|
|
CPtrArray &cpaClasses, CString &rcsNamespace);
|
|
|
|
int GetAllClasses(IWbemServices * pIWbemServices, CPtrArray &cpaClasses, CString &rcsNamespace);
|
|
|
|
CStringArray *GetAllClassPaths(IWbemServices * pIWbemServices, CString &rcsNamespace);
|
|
|
|
BOOL HasSubclasses(IWbemServices * pIWbemServices, CString *pcsClass, CString &rcsNamespace);
|
|
|
|
BOOL HasSubclasses(IWbemServices * pIWbemServices, IWbemClassObject *pimcoClass, CString &rcsNamespace);
|
|
|
|
long GetAttribBSTR
|
|
(IWbemClassObject * pClassInt,CString *pcsPropName, CString *pcsAttribName,
|
|
CString &csReturn);
|
|
|
|
long GetAttribBool
|
|
(IWbemClassObject * pClassInt,CString *pcsPropName, CString *pcsAttribName,
|
|
BOOL &bReturn);
|
|
|
|
SCODE MakeSafeArray
|
|
(SAFEARRAY FAR ** pRet, VARTYPE vt, int iLen);
|
|
|
|
SCODE PutStringInSafeArray
|
|
(SAFEARRAY FAR * psa,CString *pcs, int iIndex);
|
|
|
|
BOOL DeleteAClass
|
|
(IWbemServices * pProv, CString *pcsClass);
|
|
|
|
IWbemClassObject *RenameAClass
|
|
(IWbemServices * pProv, IWbemClassObject *pimcoClass, CString *pcsNewName,
|
|
BOOL bDeleteOriginal = FALSE);
|
|
|
|
IWbemClassObject *ReparentAClass
|
|
(IWbemServices * pProv, IWbemClassObject *pimcoParent, IWbemClassObject *pimcoChild);
|
|
|
|
CString GetIWbemFullPath(IWbemClassObject *pClass);
|
|
|
|
CString GetIWbemRelativePath(IWbemClassObject *pClass);
|
|
|
|
BOOL ClassIdentity(IWbemClassObject *piWbem1, IWbemClassObject *piWbem2);
|
|
|
|
void ReleaseErrorObject(IWbemClassObject *&rpErrorObject);
|
|
|
|
void ErrorMsg
|
|
(CString *pcsUserMsg, SCODE sc, IWbemClassObject *pErrorObject, BOOL bLog,
|
|
CString *pcsLogMsg, char *szFile, int nLine, UINT uType = MB_ICONEXCLAMATION);
|
|
|
|
void LogMsg
|
|
(CString *pcsLogMsg, char *szFile, int nLine);
|
|
|
|
BOOL ObjectInDifferentNamespace
|
|
(IWbemServices *pProv, CString *pcsNamespace, IWbemClassObject *pObject);
|
|
|
|
CString GetHmomWorkingDirectory();
|
|
|
|
SCODE GetInstances
|
|
(IWbemServices *pServices, CString *pcsClass, CPtrArray &cpaInstances, BOOL bDeep);
|
|
|
|
CString BuildOBJDBGetAssocsQuery
|
|
(IWbemServices *pProv,
|
|
CString *pcsTargetPath,
|
|
CString *pcsAssocClass,
|
|
CString *pcsResultClass,
|
|
CString *pcsMyRoleFilter,
|
|
CString *pcsReqAttrib,
|
|
CString *pcsReqAssocAttrib,
|
|
CString *pcsResultRole, BOOL bClassOnly);
|
|
|
|
CString BuildOBJDBGetRefQuery
|
|
(IWbemServices *pProv,
|
|
CString *pcsTarget,
|
|
CString *pcsResultClass,
|
|
CString *pcsRoleFilter,
|
|
CString *pcsReqAttrib = NULL,
|
|
BOOL bClassOnly = FALSE);
|
|
|
|
IEnumWbemClassObject *ExecOBJDBQuery
|
|
(IWbemServices * pProv, CString &csQuery);
|
|
|
|
CPtrArray *SemiSyncEnum
|
|
(IEnumWbemClassObject *pEnum, BOOL &bCancel, HRESULT &hResult, int nRes);
|
|
|
|
CString GetIWbemClass(IWbemClassObject *pClass);
|
|
|
|
CStringArray *GetAllKeyPropValuePairs(IWbemClassObject *pObject);
|
|
|
|
CString GetClass(CString *pcsPath);
|
|
|
|
BOOL ArePathsEqual (CString csPath1, CString csPath2);
|
|
|
|
CString GetPropertyNameByAttrib(IWbemClassObject *pObject , CString *pcsAttrib);
|
|
|
|
BOOL IsClassAbstract(IWbemClassObject* pObject);
|
|
|
|
CStringArray *ClassDerivation (IWbemClassObject *pObject);
|
|
|
|
BOOL IsObjectOfClass(CString &csClass, IWbemClassObject *pObject);
|
|
|
|
//HRESULT ConfigureSecurity(IUnknown *pUnknown);
|
|
|
|
struct ParsedObjectPath;
|
|
|
|
class CComparePaths
|
|
{
|
|
public:
|
|
BOOL PathsRefSameObject(BSTR bstrPath1, BSTR bstrPath2);
|
|
|
|
private:
|
|
int CompareNoCase(LPWSTR pws1, LPWSTR pws2);
|
|
BOOL IsEqual(LPWSTR pws1, LPWSTR pws2) {return CompareNoCase(pws1, pws2) == 0; }
|
|
BOOL PathsRefSameObject(ParsedObjectPath* ppath1, ParsedObjectPath* ppath2);
|
|
void NormalizeKeyArray(ParsedObjectPath& path);
|
|
BOOL IsSameObject(BSTR bstrPath1, BSTR bstrPath2);
|
|
BOOL KeyValuesAreEqual(VARIANT& variant1, VARIANT& variant2);
|
|
};
|
|
|