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.
99 lines
2.4 KiB
99 lines
2.4 KiB
#ifndef __CSCPSITE_H__
|
|
#define __CSCPSITE_H__
|
|
|
|
#include <windows.h>
|
|
#include <olectl.h>
|
|
#include <activscp.h>
|
|
#include "jsproxy.h"
|
|
#include "utils.h"
|
|
|
|
|
|
/********************************************************************************************/
|
|
// ScriptSite Class
|
|
//
|
|
//
|
|
//
|
|
class CScriptSite : public IActiveScriptSite,
|
|
public IServiceProvider,
|
|
public IInternetHostSecurityManager
|
|
{
|
|
|
|
public:
|
|
CScriptSite();
|
|
~CScriptSite();
|
|
// IUnknown Interface methods.
|
|
STDMETHODIMP QueryInterface(REFIID riid, PVOID *ppvObject);
|
|
|
|
STDMETHODIMP_(ULONG) AddRef()
|
|
{
|
|
return ++m_refCount;
|
|
}
|
|
|
|
STDMETHODIMP_(ULONG) Release()
|
|
{
|
|
if (--m_refCount)
|
|
return m_refCount;
|
|
|
|
delete this;
|
|
return 0;
|
|
}
|
|
|
|
STDMETHODIMP GetLCID(LCID *plcid);
|
|
STDMETHODIMP GetItemInfo(LPCOLESTR pstrName, DWORD dwReturnMask, IUnknown **ppunkItem, ITypeInfo **ppTypeInfo);
|
|
STDMETHODIMP GetDocVersionString(BSTR *pstrVersionString);
|
|
STDMETHODIMP OnScriptTerminate(const VARIANT *pvarResult,const EXCEPINFO *pexcepinfo);
|
|
STDMETHODIMP OnStateChange(SCRIPTSTATE ssScriptState);
|
|
STDMETHODIMP OnScriptError(IActiveScriptError *pase);
|
|
STDMETHODIMP OnEnterScript();
|
|
STDMETHODIMP OnLeaveScript();
|
|
|
|
STDMETHODIMP Init(AUTO_PROXY_HELPER_APIS* pAPHA, LPCSTR szScript);
|
|
STDMETHODIMP DeInit();
|
|
STDMETHODIMP RunScript(LPCSTR szURL, LPCSTR szHost, LPSTR* result);
|
|
|
|
//
|
|
// IServiceProvider
|
|
//
|
|
STDMETHODIMP QueryService(
|
|
REFGUID guidService,
|
|
REFIID riid,
|
|
void **ppvObject);
|
|
|
|
//
|
|
// IInternetHostSecurityManager
|
|
//
|
|
STDMETHODIMP GetSecurityId(
|
|
BYTE *pbSecurityId,
|
|
DWORD *pcbSecurityId,
|
|
DWORD_PTR dwReserved);
|
|
|
|
STDMETHODIMP ProcessUrlAction(
|
|
DWORD dwAction,
|
|
BYTE *pPolicy,
|
|
DWORD cbPolicy,
|
|
BYTE *pContext,
|
|
DWORD cbContext,
|
|
DWORD dwFlags,
|
|
DWORD dwReserved);
|
|
|
|
STDMETHODIMP QueryCustomPolicy(
|
|
REFGUID guidKey,
|
|
BYTE **ppPolicy,
|
|
DWORD *pcbPolicy,
|
|
BYTE *pContext,
|
|
DWORD cbContext,
|
|
DWORD dwReserved);
|
|
|
|
private:
|
|
BOOL m_fInitialized;
|
|
long m_refCount;
|
|
IActiveScript *m_pios;
|
|
IActiveScriptParse *m_pasp;
|
|
CJSProxy *m_punkJSProxy;
|
|
IDispatch *m_pScriptDispatch; // Stored dispatch for script
|
|
DISPID m_Scriptdispid; // DISPID for stored script to facilitate quicker invoke.
|
|
|
|
};
|
|
|
|
|
|
#endif
|