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.

107 lines
2.8 KiB

  1. #ifndef __CSCPSITE_H__
  2. #define __CSCPSITE_H__
  3. #include <olectl.h>
  4. #include <activscp.h>
  5. class CAutoProxy;
  6. class CJSProxy;
  7. /********************************************************************************************/
  8. // ScriptSite Class
  9. //
  10. //
  11. //
  12. class CScriptSite : public IActiveScriptSite,
  13. public IServiceProvider,
  14. public IActiveScriptSiteInterruptPoll,
  15. public IInternetHostSecurityManager
  16. {
  17. public:
  18. CScriptSite(CAutoProxy * pAutoProxy);
  19. ~CScriptSite();
  20. // IUnknown Interface methods.
  21. STDMETHODIMP QueryInterface(REFIID riid, PVOID *ppvObject);
  22. STDMETHODIMP_(ULONG) AddRef()
  23. {
  24. return ++m_refCount;
  25. }
  26. STDMETHODIMP_(ULONG) Release()
  27. {
  28. if (--m_refCount)
  29. return m_refCount;
  30. delete this;
  31. return 0;
  32. }
  33. STDMETHODIMP GetLCID(LCID *plcid);
  34. STDMETHODIMP GetItemInfo(LPCOLESTR pstrName, DWORD dwReturnMask, IUnknown **ppunkItem, ITypeInfo **ppTypeInfo);
  35. STDMETHODIMP GetDocVersionString(BSTR *pstrVersionString);
  36. STDMETHODIMP OnScriptTerminate(const VARIANT *pvarResult,const EXCEPINFO *pexcepinfo);
  37. STDMETHODIMP OnStateChange(SCRIPTSTATE ssScriptState);
  38. STDMETHODIMP OnScriptError(IActiveScriptError *pase);
  39. STDMETHODIMP OnEnterScript();
  40. STDMETHODIMP OnLeaveScript();
  41. STDMETHODIMP Init(AUTO_PROXY_HELPER_APIS* pAPHA, LPCSTR szScript);
  42. STDMETHODIMP DeInit();
  43. STDMETHODIMP RunScript(LPCSTR szURL, LPCSTR szHost, LPSTR* result);
  44. //
  45. // IServiceProvider
  46. //
  47. STDMETHODIMP QueryService(
  48. REFGUID guidService,
  49. REFIID riid,
  50. void **ppvObject);
  51. //
  52. // IActiveScriptSiteInterruptPoll
  53. //
  54. STDMETHODIMP QueryContinue(void);
  55. //
  56. // IInternetHostSecurityManager
  57. //
  58. STDMETHODIMP GetSecurityId(
  59. BYTE *pbSecurityId,
  60. DWORD *pcbSecurityId,
  61. DWORD_PTR dwReserved);
  62. STDMETHODIMP ProcessUrlAction(
  63. DWORD dwAction,
  64. BYTE *pPolicy,
  65. DWORD cbPolicy,
  66. BYTE *pContext,
  67. DWORD cbContext,
  68. DWORD dwFlags,
  69. DWORD dwReserved);
  70. STDMETHODIMP QueryCustomPolicy(
  71. REFGUID guidKey,
  72. BYTE **ppPolicy,
  73. DWORD *pcbPolicy,
  74. BYTE *pContext,
  75. DWORD cbContext,
  76. DWORD dwReserved);
  77. private:
  78. BOOL m_fInitialized;
  79. long m_refCount;
  80. IActiveScript *m_pios;
  81. IActiveScriptParse *m_pasp;
  82. CJSProxy *m_punkJSProxy;
  83. IDispatch *m_pScriptDispatch; // Stored dispatch for script
  84. DISPID m_Scriptdispid; // DISPID for stored script to facilitate quicker invoke.
  85. DWORD m_dwScriptStartTime;
  86. CAutoProxy * m_pAutoProxy;
  87. };
  88. #endif