You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.4 KiB
44 lines
1.4 KiB
#ifndef _WMISCRIPT_CLASSFAC_HEADER_
|
|
#define _WMISCRIPT_CLASSFAC_HEADER_
|
|
|
|
#include <clsfac.h>
|
|
#include <Script.h>
|
|
|
|
class WMIScriptClassFactory : public CClassFactory<CScriptConsumer>
|
|
{
|
|
public:
|
|
WMIScriptClassFactory(CLifeControl* pControl = NULL) :
|
|
CClassFactory<CScriptConsumer>(pControl)
|
|
{}
|
|
|
|
HRESULT CreateInstance(IUnknown* pOuter, REFIID riid, void** ppv);
|
|
|
|
static void FindScriptsAllowed(void);
|
|
static void IncrementScriptsRun(void);
|
|
static bool LimitReached(void);
|
|
|
|
static void CALLBACK TimeoutProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime);
|
|
|
|
protected:
|
|
// statics to control how many scripts we're allowed to run
|
|
// note that we don't bother wrapping these in critical sections
|
|
// The worst that can happen is that we initialize m_scriptsAllowed twice
|
|
// or that we run one too many scripts. I can live with that.
|
|
|
|
// number of scripts we've been asked to run
|
|
static DWORD m_scriptsStarted;
|
|
|
|
// number of scripts we've been configured to run
|
|
static DWORD m_scriptsAllowed;
|
|
|
|
// whether we've gone & looked at how many we need
|
|
static bool m_bIsScriptsAllowedInitialized;
|
|
|
|
// id for the timer, only valid if we've been asked to time out
|
|
static DWORD m_timerID;
|
|
|
|
// toggled when we reach our timeout limit or max # scripts
|
|
static bool m_bWeDeadNow;
|
|
};
|
|
|
|
#endif // _WMISCRIPT_CLASSFAC_HEADER_
|