|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// BVTReposit.CPP
//
//
// Copyright (c)2000 Microsoft Corporation, All Rights Reserved
//
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <bvt.h>
#define NO_ERRORS_EXPECTED FALSE,__FILE__,__LINE__
#define ERRORS_CAN_BE_EXPECTED TRUE,__FILE__,__LINE__
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// UTility functions for this file only
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int OpenNamespaceAndCreateTestClasses( CAutoDeleteString & sNamespace, IWbemServices ** ppNamespace) { int nRc = FATAL_ERROR; //=========================================================
// Get the name of the test namespace that was created
//=========================================================
if( g_Options.GetOptionsForAPITest(sNamespace,APITEST4)) { //=========================================================
// Create classes with different properties. Some of
// these should be in the following inheritance chain and
// some should not inherit from the others at all:
// classes = {A, B, C, D:A, E:A, F:E, G:F, H:G, I:F}.
// A mix of simple string & sint32 keys are fine.
//=========================================================
CAutoDeleteString sClassList; if( g_Options.GetOptionsForAPITest(sClassList, APITEST5)) { ClassList MasterList; //=======================================================
// Get the list of the classes to be created
//=======================================================
if( InitMasterListOfClasses(sClassList.GetPtr(),MasterList)) { // ==================================================
// Open the namespace
// ==================================================
nRc = OpenNamespaceAndKeepOpen( ppNamespace, sNamespace.GetPtr(),TRUE); if( SUCCESS == nRc ) { for( int i = 0; i < MasterList.Size(); i++ ) { ClassInfo * p = MasterList.GetAt(i); CAutoDeleteString sClassInformation;
if( g_Options.GetSpecificOptionForAPITest(p->Class,sClassInformation,APITEST5) ) { //===========================================================
// Add the keys and properties
//===========================================================
nRc = CreateClassAndLogErrors(*ppNamespace,p->Class, sClassInformation.GetPtr(), sNamespace.GetPtr(),NO_ERRORS_EXPECTED); if( nRc != SUCCESS ) { break; } } } } } } } return nRc; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int OpenNamespaceAndCreateTestClassesAndAssociations( CAutoDeleteString & sNamespace, IWbemServices ** ppNamespace) {
// =====================================================================
// Open the namespace and create all of the test classes, this happens
// a lot, so is is a utility function
// =====================================================================
int nRc = OpenNamespaceAndCreateTestClasses( sNamespace, ppNamespace ); if( nRc == SUCCESS ) { //=================================================
// Get the list of associations to create
//=================================================
CAutoDeleteString sClassList;
if( g_Options.GetOptionsForAPITest(sClassList, APITEST7)) { ClassList MasterList; //=======================================================
// Parse the list of the associations to be created
//=======================================================
if( InitMasterListOfClasses(sClassList.GetPtr(),MasterList)) {
for( int i = 0; i < MasterList.Size(); i++ ) { ClassInfo * p = MasterList.GetAt(i); CAutoDeleteString sClassInformation;
// =============================================================
// Get definition of the association
// =============================================================
if( g_Options.GetSpecificOptionForAPITest(p->Class,sClassInformation,APITEST7) ) { //===========================================================
// Create the association
//===========================================================
nRc = CreateAssociationAndLogErrors(*ppNamespace,p->Class,sClassInformation.GetPtr(), sNamespace.GetPtr()); if( nRc != SUCCESS ) { break; } } } } } } return nRc; }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 1
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int BasicConnectUsingIWbemLocator(void) { int nRc = FATAL_ERROR; IWbemServices * pNamespace = NULL; CAutoDeleteString sNamespace;
if( g_Options.GetOptionsForAPITest(sNamespace, APITEST1) ) { // =====================================================================
// Open the namespace
// =====================================================================
nRc = OpenNamespaceAndKeepOpen( &pNamespace, sNamespace.GetPtr(),FALSE); // =====================================================================
// Release the pointers
// =====================================================================
SAFE_RELEASE_PTR(pNamespace); } return nRc; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 2
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int BasicSyncConnectUsingIWbemConnection(void) { int nRc = FATAL_ERROR; IWbemConnection * pConnection = NULL; CAutoDeleteString sNamespace; CAutoDeleteString sClass; if( g_Options.GetOptionsForAPITest(sNamespace,sClass,APITEST2) ) { nRc = CoCreateInstanceAndLogErrors(CLSID_WbemConnection,IID_IWbemConnection,(void**)&pConnection,NO_ERRORS_EXPECTED); if( SUCCESS == nRc ) { // =================================================================
// Test Open with all three types:
//
// IWbemServices
// IWbemServicesEx
// IWbemClassObject
//
// Initialize all vars
// =================================================================
short FatalErrors = 0;
// =================================================================
// Open the namespace with IWbemServices
// =================================================================
IWbemServices * pNamespace = NULL; nRc = OpenObjectAndLogErrors(pConnection, IID_IWbemServices, (void**) &pNamespace, sNamespace.GetPtr(),NO_ERRORS_EXPECTED); if ( nRc != SUCCESS ) { FatalErrors++; } SAFE_RELEASE_PTR(pNamespace);
// =================================================================
// Open the namespace with IWbemServicesEx
// =================================================================
IWbemServicesEx * pNamespaceEx = NULL; nRc = OpenObjectAndLogErrors(pConnection, IID_IWbemServicesEx, (void**) &pNamespaceEx,sNamespace.GetPtr(),NO_ERRORS_EXPECTED); if ( nRc != SUCCESS ) { FatalErrors++; } SAFE_RELEASE_PTR(pNamespaceEx);
// =================================================================
// Open the Class for IWbemClassObject
// =================================================================
IWbemClassObject* pWbemClassObject = NULL; nRc = OpenObjectAndLogErrors(pConnection, IID_IWbemClassObject, (void**) &pWbemClassObject,sClass.GetPtr(),NO_ERRORS_EXPECTED); if ( nRc != SUCCESS ) { FatalErrors++; } SAFE_RELEASE_PTR(pWbemClassObject);
// =================================================================
// Check to see if there were any fatal errors
// =================================================================
if( !FatalErrors ) { nRc = SUCCESS; } } // =====================================================================
// Release the locator
// =====================================================================
SAFE_RELEASE_PTR(pConnection); }
return nRc; }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 3
//*****************************************************************************************************************
int BasicAsyncConnectUsingIWbemConnection(void) { int nRc = FATAL_ERROR; HRESULT hr = S_OK; IWbemConnection * pConnection = NULL; CAutoDeleteString sNamespace; CAutoDeleteString sClass; if( g_Options.GetOptionsForAPITest(sNamespace,sClass,APITEST2) ) { nRc = CoCreateInstanceAndLogErrors(CLSID_WbemConnection,IID_IWbemConnection,(void**)&pConnection,NO_ERRORS_EXPECTED); if( SUCCESS == nRc ) { // =================================================================
// Test Open with all three types:
//
// IWbemServices
// IWbemServicesEx
// IWbemClassObject
//
// Initialize all the vars
// =================================================================
short FatalErrors = 0; CSinkEx * pHandler = NULL;
pHandler = new CSinkEx; if( pHandler ) { // =================================================================
// Open the namespace with IWbemServices
// =================================================================
nRc = OpenObjectAsyncAndLogErrors(pConnection, IID_IWbemServices,sNamespace.GetPtr(),pHandler,NO_ERRORS_EXPECTED); if ( nRc == FATAL_ERROR ) { FatalErrors++; } else { IWbemServices * pNamespace = NULL;
pHandler->WaitForSignal(INFINITE); hr = pHandler->GetStatusCode(); if(SUCCEEDED(hr)) { pNamespace = (IWbemServices*)pHandler->GetInterface(); }
SAFE_RELEASE_PTR(pNamespace); } } else { g_LogFile.LogError(__FILE__,__LINE__,FATAL_ERROR, L"Allocation of new CSinkEx Failed - Out of memory."); } SAFE_DELETE_PTR(pHandler);
// =================================================================
// Open the namespace with IWbemServicesEx
// =================================================================
pHandler = new CSinkEx; if( pHandler ) { nRc = OpenObjectAsyncAndLogErrors(pConnection, IID_IWbemServicesEx,sNamespace.GetPtr(), pHandler,NO_ERRORS_EXPECTED); if ( nRc == FATAL_ERROR ) { FatalErrors++; } else { IWbemServicesEx * pNamespace = NULL;
pHandler->WaitForSignal(INFINITE); hr = pHandler->GetStatusCode(); if(SUCCEEDED(hr)) { pNamespace = (IWbemServicesEx*)pHandler->GetInterface(); }
SAFE_RELEASE_PTR(pNamespace); } } else { g_LogFile.LogError(__FILE__,__LINE__,FATAL_ERROR, L"Allocation of new CSinkEx Failed - Out of memory."); } SAFE_DELETE_PTR(pHandler);
// =================================================================
// Open the class for IWbemClassObject
// =================================================================
pHandler = new CSinkEx; if( pHandler ) { nRc = OpenObjectAsyncAndLogErrors(pConnection, IID_IWbemClassObject,sClass.GetPtr(), pHandler,NO_ERRORS_EXPECTED); if ( nRc == FATAL_ERROR ) { FatalErrors++; } else { IWbemClassObject * pWbemClassObject = NULL; pHandler->WaitForSignal(INFINITE); hr = pHandler->GetStatusCode(); if(SUCCEEDED(hr)) { pWbemClassObject = (IWbemClassObject*)pHandler->GetInterface(); }
SAFE_RELEASE_PTR(pWbemClassObject); } } else { g_LogFile.LogError(__FILE__,__LINE__,FATAL_ERROR, L"Allocation of new CSinkEx Failed - Out of memory."); } SAFE_DELETE_PTR(pHandler);
// =================================================================
// Check to see if there are any fatal errors
// =================================================================
if( !FatalErrors ) { nRc = SUCCESS; } }
// =====================================================================
// Release the locator
// =====================================================================
SAFE_RELEASE_PTR(pConnection); } return nRc; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 4
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int CreateNewTestNamespace() { int nRc = SUCCESS; CAutoDeleteString sNamespace; CAutoDeleteString sInstance; if( g_Options.GetOptionsForAPITest(sNamespace, sInstance, APITEST4)) { IWbemLocator * pLocator = NULL;
nRc = CoCreateInstanceAndLogErrors(CLSID_WbemLocator,IID_IWbemLocator,(void**)&pLocator,NO_ERRORS_EXPECTED); if( SUCCESS == nRc ) { //==========================================================================
// Parse the namespace name to get the parent first, and open the parent
// this one must be existing
//==========================================================================
IWbemServices * pParentNamespace = NULL; IWbemServices * pChildNamespace = NULL;
nRc = ConnectServerAndLogErrors(pLocator,&pParentNamespace,sNamespace.GetPtr(),NO_ERRORS_EXPECTED); if( nRc == SUCCESS ) { //==============================================================
// If we got here, then we know that the child namespace does
// not exist, so create it.
//==============================================================
nRc = CreateInstances(pParentNamespace, sInstance, sNamespace.GetPtr(), APITEST4 ); if( SUCCESS == nRc ) { //==========================================================
// Open the namespace with IWbemServices as the new parent
//==========================================================
nRc = ConnectServerAndLogErrors(pLocator, &pChildNamespace, sNamespace.GetPtr(),NO_ERRORS_EXPECTED); } } SAFE_RELEASE_PTR(pParentNamespace); SAFE_RELEASE_PTR(pChildNamespace); } // =============================================================================
// Release the locator
// =============================================================================
SAFE_RELEASE_PTR(pLocator); } return nRc; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 5
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int CreateNewClassesInTestNamespace() { int nRc = FATAL_ERROR; CAutoDeleteString sNamespace; IWbemServices * pNamespace = NULL;
// =====================================================================
// Open the namespace and create all of the test classes, this happens
// a lot, so is is a utility function
// =====================================================================
nRc = OpenNamespaceAndCreateTestClasses( sNamespace, &pNamespace );
// =====================================================================
// Release the pointers
// =====================================================================
SAFE_RELEASE_PTR(pNamespace);
return nRc; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 6
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int DeleteAndRecreateNewClassesInTestNamespace() { int nRc = FATAL_ERROR; CAutoDeleteString sNamespace; IWbemServices * pNamespace = NULL;
// =====================================================================
// Open the namespace and create all of the test classes, this happens
// a lot, so is is a utility function
// =====================================================================
nRc = OpenNamespaceAndCreateTestClasses( sNamespace, &pNamespace ); if( nRc == SUCCESS ) { //=========================================
// Get all of the class operations for
// this test:
// Classes to be deleted
// Classes to be compared
// Classes to be added
// Classes to be compared
// Classes to be added_deleted
// Classes to be compared
//=============================================
CAutoDeleteString sDeleteClasses; CAutoDeleteString sClassesAfterDelete; CAutoDeleteString sAddClasses; CAutoDeleteString sClassesAfterAdd; CAutoDeleteString sDeleteAddClassOrder; CAutoDeleteString sClassesAfterDeleteAdd;
if( g_Options.GetOptionsForAPITest( sDeleteClasses, sClassesAfterDelete,sAddClasses, sClassesAfterAdd,sDeleteAddClassOrder, sClassesAfterDeleteAdd ) ) { nRc = DeleteClasses(sDeleteClasses, pNamespace, sNamespace.GetPtr()); if( nRc == SUCCESS ) { nRc = EnumerateClassesAndCompare(sClassesAfterDelete, pNamespace, sNamespace.GetPtr()); if( nRc == SUCCESS ) { nRc = AddClasses(sAddClasses, pNamespace, sNamespace.GetPtr()); if( nRc == SUCCESS ) { nRc = EnumerateClassesAndCompare(sClassesAfterAdd, pNamespace, sNamespace.GetPtr()); if( nRc == SUCCESS ) { nRc = DeleteAndAddClasses(sDeleteAddClassOrder, pNamespace, sNamespace.GetPtr()); if( nRc == SUCCESS ) { nRc = EnumerateClassesAndCompare(sClassesAfterDeleteAdd, pNamespace, sNamespace.GetPtr()); } } } } } } } // =====================================================================
// Release the pointers
// =====================================================================
SAFE_RELEASE_PTR(pNamespace); return nRc; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 7
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int CreateSimpleAssociations() { int nRc = FATAL_ERROR; // =====================================================================
// Made into a utility function as it is used more than once
// =====================================================================
CAutoDeleteString sNamespace; IWbemServices * pNamespace = NULL;
nRc = OpenNamespaceAndCreateTestClassesAndAssociations( sNamespace,&pNamespace);
// =====================================================================
// Release the pointers
// =====================================================================
SAFE_RELEASE_PTR(pNamespace);
return nRc; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 8
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int QueryAllClassesInTestNamespace() { int nRc = FATAL_ERROR; CAutoDeleteString sNamespace; IWbemServices * pNamespace = NULL;
// =====================================================================
// Made into a utility function as it is used more than once
// =====================================================================
nRc = OpenNamespaceAndCreateTestClassesAndAssociations( sNamespace,&pNamespace); if( nRc == SUCCESS ) { //==================================================================
// Query classes in test namespace
//==================================================================
CAutoDeleteString sQueryList; if( g_Options.GetOptionsForAPITest(sQueryList, APITEST8)) { ClassList MasterList; //=======================================================
// Get the list of the queries
//=======================================================
if( InitMasterListOfClasses(sQueryList.GetPtr(),MasterList)) { for( int i = 0; i < MasterList.Size(); i++ ) { ClassInfo * p = MasterList.GetAt(i); CAutoDeleteString sQuery;
if( g_Options.GetSpecificOptionForAPITest(p->Class,sQuery,APITEST8) ) { //==================================================================
// Regular query
//==================================================================
nRc = QueryAndCompareResults( pNamespace, sQuery.GetPtr(), sNamespace.GetPtr()); if( nRc != S_OK ) { break; } } } } } } // =====================================================================
// Release the pointers
// =====================================================================
SAFE_RELEASE_PTR(pNamespace);
return nRc; }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 9
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int CreateClassInstances() { int nRc = FATAL_ERROR; CAutoDeleteString sNamespace; IWbemServices * pNamespace = NULL;
// =====================================================================
// Open the namespace and create all of the test classes, this happens
// a lot, so is is a utility function
// =====================================================================
nRc = OpenNamespaceAndCreateTestClasses( sNamespace, &pNamespace ); if( nRc == SUCCESS ) { // =============================================================
// Get the list of classes to get instances for
// =============================================================
CAutoDeleteString sInstanceList; CAutoDeleteString sInstanceCompareList;
if( g_Options.GetOptionsForAPITest( sInstanceList, sInstanceCompareList, APITEST9 ) ) { // =========================================================
// Create the instances in the namespace
// =========================================================
nRc = CreateInstances(pNamespace, sInstanceList, sNamespace.GetPtr(), APITEST4 ); if( SUCCESS == nRc ) { // =====================================================
// Make sure those instances are in the namespace
// =====================================================
nRc = EnumerateInstancesAndCompare(pNamespace, sInstanceList, sInstanceCompareList,sNamespace.GetPtr()); } } } // =====================================================================
// Release the pointers
// =====================================================================
SAFE_RELEASE_PTR(pNamespace); return nRc; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 10
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int DeleteClassInstances() { int nRc = FATAL_ERROR; CAutoDeleteString sNamespace; IWbemServices * pNamespace = NULL;
// =====================================================================
// Open the namespace and create all of the test classes, this happens
// a lot, so is is a utility function
//==========================================================================
// Delete instances
//==========================================================================
nRc = OpenNamespaceAndCreateTestClasses( sNamespace, &pNamespace ); if( nRc == SUCCESS ) { // =============================================================
// Get the list of instances to delete
// =============================================================
CAutoDeleteString sInstanceList; if( g_Options.GetOptionsForAPITest( sInstanceList, APITEST13 ) ) { // =========================================================
// Delete the instances in the namespace
// =========================================================
nRc = DeleteInstances(sInstanceList, pNamespace, sNamespace.GetPtr()); if( SUCCESS == nRc ) { // =====================================================
// Make sure those instances are not in the namespace
// =====================================================
} } } // =====================================================================
// Release the pointers
// =====================================================================
SAFE_RELEASE_PTR(pNamespace); return nRc; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 11
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int EnumerateClassInstances() { //==========================================================================
// Get instance enumerator for requested classes
//==========================================================================
int nRc = FATAL_ERROR; CAutoDeleteString sNamespace; IWbemServices * pNamespace = NULL;
// =====================================================================
// Open the namespace and create all of the test classes, this happens
// a lot, so is is a utility function
// =====================================================================
nRc = OpenNamespaceAndCreateTestClasses( sNamespace, &pNamespace ); if( nRc == SUCCESS ) { // =============================================================
// Get the list of classes to get instances for
// =============================================================
CAutoDeleteString sInstanceList; CAutoDeleteString sInstanceCompareList; if( g_Options.GetOptionsForAPITest( sInstanceList, sInstanceCompareList, APITEST11 ) ) { // =========================================================
// Make sure those instances are in the namespace
// =========================================================
nRc = EnumerateInstancesAndCompare(pNamespace, sInstanceList, sInstanceCompareList, sNamespace.GetPtr()); } } // =====================================================================
// Release the pointers
// =====================================================================
SAFE_RELEASE_PTR(pNamespace); return nRc; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 12
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int CreateAssociationInstances() { //==========================================================================
// Get instance enumerator for requested classes
//==========================================================================
int nRc = FATAL_ERROR; CAutoDeleteString sNamespace; IWbemServices * pNamespace = NULL;
// =====================================================================
// Open the namespace and create all of the test classes, this happens
// a lot, so is is a utility function
// =====================================================================
nRc = OpenNamespaceAndCreateTestClasses( sNamespace, &pNamespace ); if( nRc == SUCCESS ) { // =============================================================
// Get the list of classes to get instances for
// =============================================================
CAutoDeleteString sInstanceList; CAutoDeleteString sInstanceCompareList;
if( g_Options.GetOptionsForAPITest( sInstanceList, sInstanceCompareList, APITEST12 ) ) { // =========================================================
// Create the instances in the namespace
// =========================================================
nRc = CreateInstances(pNamespace, sInstanceList, sNamespace.GetPtr(), APITEST4 ); if( SUCCESS == nRc ) { // =====================================================
// Make sure those instances are in the namespace
// =====================================================
nRc = EnumerateInstancesAndCompare(pNamespace, sInstanceList, sInstanceCompareList,sNamespace.GetPtr()); } } } // =====================================================================
// Release the pointers
// =====================================================================
SAFE_RELEASE_PTR(pNamespace); return nRc; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 13
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int DeleteAssociationInstances() { //==========================================================================
// Delete instances
//==========================================================================
int nRc = FATAL_ERROR; CAutoDeleteString sNamespace; IWbemServices * pNamespace = NULL;
// =====================================================================
// Open the namespace and create all of the test classes, this happens
// a lot, so is is a utility function
// =====================================================================
nRc = OpenNamespaceAndCreateTestClasses( sNamespace, &pNamespace ); if( nRc == SUCCESS ) { // =============================================================
// Get the list of instances to delete
// =============================================================
CAutoDeleteString sInstanceList; if( g_Options.GetOptionsForAPITest( sInstanceList, APITEST13 ) ) { // =========================================================
// Delete the instances in the namespace
// =========================================================
nRc = DeleteInstances(sInstanceList, pNamespace, sNamespace.GetPtr()); if( SUCCESS == nRc ) { // =====================================================
// Make sure those instances are not in the namespace
// =====================================================
} } } // =====================================================================
// Release the pointers
// =====================================================================
SAFE_RELEASE_PTR(pNamespace); return nRc; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 14
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int EnumerateAssociationInstances() { //==========================================================================
// Get instance enumerator for requested classes
//==========================================================================
int nRc = FATAL_ERROR; CAutoDeleteString sNamespace; IWbemServices * pNamespace = NULL;
// =====================================================================
// Open the namespace and create all of the test classes, this happens
// a lot, so is is a utility function
// =====================================================================
nRc = OpenNamespaceAndCreateTestClasses( sNamespace, &pNamespace ); if( nRc == SUCCESS ) { // =============================================================
// Get the list of classes to get instances for
// =============================================================
CAutoDeleteString sInstanceList; CAutoDeleteString sInstanceCompareList;
if( g_Options.GetOptionsForAPITest( sInstanceList, sInstanceCompareList, APITEST14 ) ) { // =========================================================
// Make sure those instances are in the namespace
// =========================================================
nRc = EnumerateInstancesAndCompare(pNamespace, sInstanceList, sInstanceCompareList, sNamespace.GetPtr()); } } // =====================================================================
// Release the pointers
// =====================================================================
SAFE_RELEASE_PTR(pNamespace); return nRc; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 15
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int DeleteClassDeletesInstances() { int nRc = FATAL_ERROR; CAutoDeleteString sNamespace; IWbemServices * pNamespace = NULL;
// =====================================================================
// Open the namespace and create all of the test classes, this happens
// a lot, so is is a utility function
// =====================================================================
nRc = OpenNamespaceAndCreateTestClasses( sNamespace, &pNamespace ); if( nRc == SUCCESS ) { } // =====================================================================
// Release the pointers
// =====================================================================
SAFE_RELEASE_PTR(pNamespace); return nRc; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 16
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int GetObjects() { //==========================================================================
// Get the various types of objects (classes/instances) using the various
// types of paths accepted by WMI ( WMI path/ UMI path/ HTTP path)
//==========================================================================
int nRc = FATAL_ERROR; CAutoDeleteString sNamespace; IWbemServices * pNamespace = NULL;
// =====================================================================
// Open the namespace and create all of the test classes, this happens
// a lot, so is is a utility function
// =====================================================================
nRc = OpenNamespaceAndCreateTestClasses( sNamespace, &pNamespace ); if( nRc == SUCCESS ) { // =============================================================
// Get the list of objexts to get
// =============================================================
CAutoDeleteString sObjects; if( g_Options.GetOptionsForAPITest( sObjects, APITEST16 ) ) { // =========================================================
// Get the requested objects
// =========================================================
nRc = GetSpecificObjects(sObjects, pNamespace, sNamespace.GetPtr()); } } // =====================================================================
// Release the pointers
// =====================================================================
SAFE_RELEASE_PTR(pNamespace); return nRc; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 17
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int GetClassMethods() { // =====================================================================
// Getting a list of Methods for a class
// =====================================================================
int nRc = FATAL_ERROR; CAutoDeleteString sNamespace; IWbemServices * pNamespace = NULL;
// =====================================================================
// Open the namespace and create all of the test classes, this happens
// a lot, so is is a utility function
// =====================================================================
nRc = OpenNamespaceAndCreateTestClasses( sNamespace, &pNamespace ); if( nRc == SUCCESS ) { } SAFE_RELEASE_PTR(pNamespace); return nRc; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************************************************
// Test 18
//*****************************************************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int GetInstanceMethods() { // =====================================================================
// Getting a list of Methods for an instance
// =====================================================================
int nRc = FATAL_ERROR; CAutoDeleteString sNamespace; IWbemServices * pNamespace = NULL;
// =====================================================================
// Open the namespace and create all of the test classes, this happens
// a lot, so is is a utility function
// =====================================================================
nRc = OpenNamespaceAndCreateTestClasses( sNamespace, &pNamespace ); if( nRc == SUCCESS ) { } SAFE_RELEASE_PTR(pNamespace); return nRc; }
|