Leaked source code of windows server 2003
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.
|
|
#ifndef __WBEM_SCRIPT_CONSUMER__H_
#define __WBEM_SCRIPT_CONSUMER__H_
#include <unk.h>
#include <wbemidl.h>
#include "txttempl.h"
#include <stdio.h>
#include <activscp.h>
#include <ErrorObj.h>
class CScriptConsumer : public CUnk { protected: class XProvider : public CImpl<IWbemEventConsumerProvider, CScriptConsumer> { public: XProvider(CScriptConsumer* pObj) : CImpl<IWbemEventConsumerProvider, CScriptConsumer>(pObj){} HRESULT STDMETHODCALLTYPE FindConsumer( IWbemClassObject* pLogicalConsumer, IWbemUnboundObjectSink** ppConsumer); } m_XProvider; friend XProvider;
public: CScriptConsumer(CLifeControl* pControl = NULL, IUnknown* pOuter = NULL) : CUnk(pControl, pOuter), m_XProvider(this) {} ~CScriptConsumer(){} void* GetInterface(REFIID riid); };
class CScriptSink : public CUnk { protected: class XSink : public CImpl<IWbemUnboundObjectSink, CScriptSink> { public: XSink(CScriptSink* pObj) : CImpl<IWbemUnboundObjectSink, CScriptSink>(pObj){}
HRESULT STDMETHODCALLTYPE IndicateToConsumer( IWbemClassObject* pLogicalConsumer, long lNumObjects, IWbemClassObject** apObjects); } m_XSink; friend XSink;
protected: // do the dirty work of making the script go
HRESULT RunScriptFile(IWbemClassObject *pObj); HRESULT RunScriptText(IWbemClassObject *pObj);
// logical consumer values
WString m_wsScript; WString m_wsScriptFileName; PSID m_pSidCreator; // delay in seconds before killing script.
// If zero, script will not be killed; it must suicide.
DWORD m_dwKillTimeout;
IClassFactory* m_pEngineFac;
// scripting DLL
HMODULE m_hMod;
WString m_wsErrorMessage; WString m_wsErrorLine;
ErrorObj* m_pErrorObj;
friend class CScriptSite; public: CScriptSink(CLifeControl* pControl = NULL) : CUnk(pControl), m_XSink(this), m_pEngineFac(NULL), m_pSidCreator(NULL), m_pErrorObj(NULL) {} HRESULT Initialize(IWbemClassObject* pLogicalConsumer); ~CScriptSink();
void* GetInterface(REFIID riid); };
#endif
|