223 lines
6.1 KiB
C++
223 lines
6.1 KiB
C++
//-----------------------------------------------------------------------------
|
|
// Microsoft Local Test Manager (LTM)
|
|
// Copyright (C) 1997 - 1999 By Microsoft Corporation.
|
|
//
|
|
// @doc
|
|
//
|
|
// @module MODCLASSES.HPP
|
|
//
|
|
//-----------------------------------------------------------------------------------
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
// Defines
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////
|
|
#ifndef __MODCLASSES_HPP_
|
|
#define __MODCLASSES_HPP_
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Include
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
#include "ModuleCore.h"
|
|
#include "MODError.hpp"
|
|
|
|
#pragma warning( disable : 4275 )
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Forwards
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
class CThisTestModule;
|
|
class CTestCases;
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Defines
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
typedef BOOL (*pfnModGlobal)(CThisTestModule *);
|
|
typedef void *(*pfnModGetCase)(long, CThisTestModule *);
|
|
typedef int (IUnknown::*PFNVARIATION)(void);
|
|
|
|
typedef struct tagVARINFO
|
|
{
|
|
PFNVARIATION pfnVariation;
|
|
const WCHAR* wszDescription;
|
|
DWORD id; // Variation ID. Valid values start at 1.
|
|
} VARINFO;
|
|
|
|
|
|
struct GlobalModuleData
|
|
{
|
|
pfnModGlobal m_pfnModuleInit;
|
|
pfnModGlobal m_pfnModuleTerminate;
|
|
pfnModGetCase m_pfnModuleGetCase;
|
|
WORD m_wTestCount;
|
|
const WCHAR * m_wszModuleOwner;
|
|
const WCHAR * m_wszModuleName;
|
|
const GUID * m_pguidModuleCLSID;
|
|
const WCHAR * m_wszDescription;
|
|
DWORD m_dwVersion;
|
|
};
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// CTestModuleClassFactory
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
class CTestModuleClassFactory : public IClassFactory //@base public | IClassFactory
|
|
{
|
|
protected: //@Access protected:
|
|
// @cmember Reference Counter
|
|
DWORD m_cRef;
|
|
GlobalModuleData * m_pGlobData;
|
|
|
|
public: //@Access public:
|
|
// @cmember Class Constructor
|
|
CTestModuleClassFactory(GlobalModuleData *);
|
|
// @cmember Class Destructor
|
|
virtual ~CTestModuleClassFactory();
|
|
|
|
// @cmember Retrieve pointer to specified interface
|
|
STDMETHODIMP QueryInterface(REFIID, LPVOID*);
|
|
// @cmember Increment reference count
|
|
STDMETHODIMP_(DWORD) AddRef(void);
|
|
// @cmember Decrement reference count
|
|
STDMETHODIMP_(DWORD) Release(void);
|
|
|
|
// @cmember Create specified object
|
|
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID*);
|
|
// @cmember Toggle lifetime of object
|
|
STDMETHODIMP LockServer(BOOL);
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// CThisTestModule
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
class CThisTestModule : public ITestModule
|
|
{
|
|
protected:
|
|
DWORD m_cRef;
|
|
|
|
public:
|
|
GlobalModuleData m_gmd;
|
|
|
|
SHORT m_nTestCount;
|
|
BSTR m_pwszProviderName;
|
|
BSTR m_pwszProviderFName; // Provider Friendly Name
|
|
BSTR m_pwszInitString;
|
|
BSTR m_pwszMachineName;
|
|
|
|
CLSID m_ProviderClsid;
|
|
CLSCTX m_clsctxProvider;
|
|
|
|
CError * m_pError;
|
|
IProviderInfo* m_pIProviderInfo;
|
|
|
|
IUnknown * m_pIUnknown;
|
|
IUnknown * m_pIUnknown2;
|
|
|
|
void * m_pVoid;
|
|
void * m_pVoid2;
|
|
|
|
CThisTestModule(GlobalModuleData *);
|
|
virtual ~CThisTestModule();
|
|
|
|
STDMETHODIMP QueryInterface(REFIID, void **);
|
|
STDMETHODIMP_(DWORD) AddRef(void);
|
|
STDMETHODIMP_(DWORD) Release(void);
|
|
|
|
STDMETHODIMP GetName (BSTR *);
|
|
STDMETHODIMP GetDescription (BSTR *);
|
|
STDMETHODIMP GetOwnerName (BSTR *);
|
|
STDMETHODIMP GetCLSID (BSTR *);
|
|
STDMETHODIMP GetVersion (LONG *);
|
|
|
|
STDMETHODIMP SetProviderInterface (IProviderInfo *);
|
|
STDMETHODIMP SetErrorInterface (IError *);
|
|
|
|
STDMETHODIMP GetProviderInterface (IProviderInfo **);
|
|
STDMETHODIMP GetErrorInterface (IError **);
|
|
|
|
STDMETHODIMP Init (LONG *);
|
|
STDMETHODIMP Terminate (VARIANT_BOOL *);
|
|
STDMETHODIMP GetCaseCount (LONG *);
|
|
STDMETHODIMP GetCase (LONG, ITestCases **);
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// CTestCases
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
class CTestCases : public ITestCases
|
|
{
|
|
protected:
|
|
DWORD m_cRef;
|
|
|
|
public:
|
|
DWORD m_dwTestCaseNumber;
|
|
BSTR m_pwszCLSID;
|
|
BSTR m_pwszTestCaseName;
|
|
BSTR m_pwszTestCaseDesc;
|
|
|
|
CThisTestModule * m_pThisTestModule;
|
|
CError* m_pError;
|
|
|
|
BSTR m_pwszProviderName;
|
|
BSTR m_pwszProviderFName;
|
|
BSTR m_pwszInitString;
|
|
CLSID m_ProviderClsid;
|
|
BSTR m_pwszMachineName;
|
|
CLSCTX m_clsctxProvider;
|
|
|
|
DWORD m_pIStats;
|
|
DWORD m_pTmdSpy;
|
|
|
|
CTestCases(const WCHAR* pwszTestCaseName);
|
|
virtual ~CTestCases(void);
|
|
|
|
private:
|
|
void DeleteProviderInfo(void);
|
|
|
|
public:
|
|
STDMETHODIMP QueryInterface(REFIID, void **);
|
|
STDMETHODIMP_(DWORD) AddRef(void);
|
|
STDMETHODIMP_(DWORD) Release(void);
|
|
|
|
STDMETHODIMP GetName (BSTR *);
|
|
STDMETHODIMP GetDescription (BSTR *);
|
|
|
|
STDMETHODIMP SyncProviderInterface ();
|
|
STDMETHODIMP GetProviderInterface(IProviderInfo **);
|
|
|
|
STDMETHODIMP GetOwningITestModule(ITestModule **);
|
|
|
|
STDMETHODIMP Init (LONG *);
|
|
STDMETHODIMP Terminate (VARIANT_BOOL *);
|
|
STDMETHODIMP GetVariationCount (LONG *);
|
|
|
|
STDMETHODIMP ExecuteVariation (LONG, VARIATION_STATUS *);
|
|
STDMETHODIMP GetVariationDesc (LONG, BSTR *);
|
|
STDMETHODIMP GetVariationID (LONG, LONG *);
|
|
|
|
HRESULT SetOwningMod(LONG iVariation, CThisTestModule* pCThisTestModule);
|
|
|
|
virtual BOOL Init (void) { return TRUE; }
|
|
virtual BOOL Terminate (void) { return TRUE; }
|
|
|
|
virtual DWORD GetVarCount(void) { assert(FALSE); return 0; }
|
|
virtual const VARINFO* GetVarInfoArray(void) { assert(FALSE); return NULL; }
|
|
virtual const WCHAR* GetCaseDesc(void) { assert(FALSE); return NULL; }
|
|
virtual const WCHAR* GetCaseName(void) { assert(FALSE); return NULL; }
|
|
|
|
};
|
|
|
|
#endif // __MODCLASSES_HPP_
|