home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / activscp.idl < prev    next >
Text File  |  1998-04-25  |  18KB  |  495 lines

  1. //+---------------------------------------------------------------------------
  2. //
  3. //  (C) Copyright 1996 Microsoft Corporation. All Rights Reserved.
  4. //
  5. //  Contents:   Declarations for ActiveX Scripting host applications and script engines
  6. //
  7. //----------------------------------------------------------------------------
  8.  
  9. cpp_quote(     "//=--------------------------------------------------------------------------=")
  10. cpp_quote(     "// ActivScp.h")
  11. cpp_quote(     "//=--------------------------------------------------------------------------=")
  12. cpp_quote(     "// (C) Copyright 1996 Microsoft Corporation.  All Rights Reserved.")
  13. cpp_quote(     "//")
  14. cpp_quote(     "// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
  15. cpp_quote(     "// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
  16. cpp_quote(     "// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
  17. cpp_quote(     "// PARTICULAR PURPOSE.")
  18. cpp_quote(     "//=--------------------------------------------------------------------------=")
  19. cpp_quote(     "//")
  20. cpp_quote("#pragma comment(lib,\"uuid.lib\")")
  21. cpp_quote(     "//")
  22. cpp_quote(     "// Declarations for ActiveX Scripting host applications and script engines.")
  23. cpp_quote(     "//")
  24.  
  25. cpp_quote(     "")
  26. cpp_quote(     "#ifndef __ActivScp_h")
  27. cpp_quote(     "#define __ActivScp_h")
  28. cpp_quote(     "")
  29.  
  30.  
  31. #ifndef DO_NO_IMPORTS
  32. import "ocidl.idl";
  33. import "oleidl.idl";
  34. import "oaidl.idl";
  35. #endif
  36.  
  37. cpp_quote(     "/* GUIDs")
  38. cpp_quote(     " ********/")
  39. cpp_quote(     "")
  40.  
  41. cpp_quote(     "#ifndef _NO_SCRIPT_GUIDS")
  42.  
  43. cpp_quote(     "// {F0B7A1A1-9847-11cf-8F20-00805F2CD064}")
  44. cpp_quote(     "DEFINE_GUID(CATID_ActiveScript, 0xf0b7a1a1, 0x9847, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);")
  45. cpp_quote(     "")
  46.  
  47. cpp_quote(     "// {F0B7A1A2-9847-11cf-8F20-00805F2CD064}")
  48. cpp_quote(     "DEFINE_GUID(CATID_ActiveScriptParse, 0xf0b7a1a2, 0x9847, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);")
  49. cpp_quote(     "")
  50.  
  51. cpp_quote(     "// {BB1A2AE1-A4F9-11cf-8F20-00805F2CD064}")
  52. cpp_quote(     "DEFINE_GUID(IID_IActiveScript, 0xbb1a2ae1, 0xa4f9, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);")
  53. cpp_quote(     "")
  54.  
  55. cpp_quote(     "// {BB1A2AE2-A4F9-11cf-8F20-00805F2CD064}")
  56. cpp_quote(     "DEFINE_GUID(IID_IActiveScriptParse, 0xbb1a2ae2, 0xa4f9, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);")
  57. cpp_quote(     "")
  58.  
  59. cpp_quote(     "// {1CFF0050-6FDD-11d0-9328-00A0C90DCAA9}")
  60. cpp_quote(     "DEFINE_GUID(IID_IActiveScriptParseProcedureOld, 0x1cff0050, 0x6fdd, 0x11d0, 0x93, 0x28, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);")
  61. cpp_quote(     "")
  62.  
  63. cpp_quote(     "// {AA5B6A80-B834-11d0-932F-00A0C90DCAA9}")
  64. cpp_quote(     "DEFINE_GUID(IID_IActiveScriptParseProcedure, 0xaa5b6a80, 0xb834, 0x11d0, 0x93, 0x2f, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);")
  65. cpp_quote(     "")
  66.  
  67. cpp_quote(     "// {DB01A1E3-A42B-11cf-8F20-00805F2CD064}")
  68. cpp_quote(     "DEFINE_GUID(IID_IActiveScriptSite, 0xdb01a1e3, 0xa42b, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);")
  69. cpp_quote(     "")
  70.  
  71. cpp_quote(     "// {D10F6761-83E9-11cf-8F20-00805F2CD064}")
  72. cpp_quote(     "DEFINE_GUID(IID_IActiveScriptSiteWindow, 0xd10f6761, 0x83e9, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);")
  73. cpp_quote(     "")
  74.  
  75. cpp_quote(     "// {539698A0-CDCA-11CF-A5EB-00AA0047A063}")
  76. cpp_quote(     "DEFINE_GUID(IID_IActiveScriptSiteInterruptPoll, 0x539698a0, 0xcdca, 0x11cf, 0xa5, 0xeb, 0x00, 0xaa, 0x00, 0x47, 0xa0, 0x63);")
  77. cpp_quote(     "")
  78.  
  79. cpp_quote(     "// {EAE1BA61-A4ED-11cf-8F20-00805F2CD064}")
  80. cpp_quote(     "DEFINE_GUID(IID_IActiveScriptError, 0xeae1ba61, 0xa4ed, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);")
  81. cpp_quote(     "")
  82.  
  83. cpp_quote(     "// {63CDBCB0-C1B1-11d0-9336-00A0C90DCAA9}")
  84. cpp_quote(     "DEFINE_GUID(IID_IBindEventHandler, 0x63cdbcb0, 0xc1b1, 0x11d0, 0x93, 0x36, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);")
  85. cpp_quote(     "")
  86.  
  87. cpp_quote(     "// {B8DA6310-E19B-11d0-933C-00A0C90DCAA9}")
  88. cpp_quote(     "DEFINE_GUID(IID_IActiveScriptStats, 0xb8da6310, 0xe19b, 0x11d0, 0x93, 0x3c, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);")
  89. cpp_quote(     "")
  90.  
  91. cpp_quote(     "#endif // _NO_SCRIPT_GUIDS")
  92. cpp_quote(     "")
  93.  
  94. cpp_quote(     "// Constants used by ActiveX Scripting:")
  95. cpp_quote(     "//")
  96. cpp_quote(     "")
  97. cpp_quote(     "/* IActiveScript::AddNamedItem() input flags */")
  98. cpp_quote(     "")
  99. cpp_quote(     "#define SCRIPTITEM_ISVISIBLE            0x00000002")
  100. cpp_quote(     "#define SCRIPTITEM_ISSOURCE             0x00000004")
  101. cpp_quote(     "#define SCRIPTITEM_GLOBALMEMBERS        0x00000008")
  102. cpp_quote(     "#define SCRIPTITEM_ISPERSISTENT         0x00000040")
  103. cpp_quote(     "#define SCRIPTITEM_CODEONLY             0x00000200")
  104. cpp_quote(     "#define SCRIPTITEM_NOCODE               0x00000400")
  105. cpp_quote(     "")
  106. cpp_quote(     "#define SCRIPTITEM_ALL_FLAGS            (SCRIPTITEM_ISSOURCE | \\")
  107. cpp_quote(     "                                         SCRIPTITEM_ISVISIBLE | \\")
  108. cpp_quote(     "                                         SCRIPTITEM_ISPERSISTENT | \\")
  109. cpp_quote(     "                                         SCRIPTITEM_GLOBALMEMBERS | \\")
  110. cpp_quote(     "                                         SCRIPTITEM_NOCODE | \\")
  111. cpp_quote(     "                                         SCRIPTITEM_CODEONLY)")
  112. cpp_quote(     "")
  113. cpp_quote(     "/* IActiveScript::AddTypeLib() input flags */")
  114. cpp_quote(     "")
  115. cpp_quote(     "#define SCRIPTTYPELIB_ISCONTROL         0x00000010")
  116. cpp_quote(     "#define SCRIPTTYPELIB_ISPERSISTENT      0x00000040")
  117. cpp_quote(     "#define SCRIPTTYPELIB_ALL_FLAGS         (SCRIPTTEXT_ISCONTROL | SCRIPTTYPELIB_ISPERSISTENT)")
  118. cpp_quote(     "")
  119. cpp_quote(     "/* IActiveScriptParse::AddScriptlet() and IActiveScriptParse::ParseScriptText() input flags */")
  120. cpp_quote(     "")
  121. cpp_quote(     "#define SCRIPTTEXT_DELAYEXECUTION       0x00000001")
  122. cpp_quote(     "#define SCRIPTTEXT_ISVISIBLE            0x00000002")
  123. cpp_quote(     "#define SCRIPTTEXT_ISEXPRESSION         0x00000020")
  124. cpp_quote(     "#define SCRIPTTEXT_ISPERSISTENT         0x00000040")
  125. cpp_quote(     "#define SCRIPTTEXT_HOSTMANAGESSOURCE    0x00000080")
  126. cpp_quote(     "#define SCRIPTTEXT_ALL_FLAGS            (SCRIPTTEXT_DELAYEXECUTION | \\")
  127. cpp_quote(     "                                         SCRIPTTEXT_ISVISIBLE | \\")
  128. cpp_quote(     "                                         SCRIPTTEXT_ISEXPRESSION | \\")
  129. cpp_quote(     "                                         SCRIPTTEXT_ISPERSISTENT | \\")
  130. cpp_quote(     "                                         SCRIPTTEXT_HOSTMANAGESSOURCE)")
  131. cpp_quote(     "")
  132. cpp_quote(     "/* IActiveScriptParseProcedure::ParseProcedureText() input flags */")
  133. cpp_quote(     "")
  134. cpp_quote(     "#define SCRIPTPROC_HOSTMANAGESSOURCE    0x00000080")
  135. cpp_quote(     "#define SCRIPTPROC_IMPLICIT_THIS        0x00000100")
  136. cpp_quote(     "#define SCRIPTPROC_IMPLICIT_PARENTS     0x00000200")
  137. cpp_quote(     "#define SCRIPTPROC_ALL_FLAGS            (SCRIPTPROC_HOSTMANAGESSOURCE | \\")
  138. cpp_quote(     "                                         SCRIPTPROC_IMPLICIT_THIS | \\")
  139. cpp_quote(     "                                         SCRIPTPROC_IMPLICIT_PARENTS)")
  140. cpp_quote(     "")
  141. cpp_quote(     "/* IActiveScriptSite::GetItemInfo() input flags */")
  142. cpp_quote(     "")
  143. cpp_quote(     "#define SCRIPTINFO_IUNKNOWN             0x00000001")
  144. cpp_quote(     "#define SCRIPTINFO_ITYPEINFO            0x00000002")
  145. cpp_quote(     "#define SCRIPTINFO_ALL_FLAGS            (SCRIPTINFO_IUNKNOWN | \\")
  146. cpp_quote(     "                                         SCRIPTINFO_ITYPEINFO)")
  147. cpp_quote(     "")
  148. cpp_quote(     "/* IActiveScript::Interrupt() Flags */")
  149. cpp_quote(     "")
  150. cpp_quote(     "#define SCRIPTINTERRUPT_DEBUG           0x00000001")
  151. cpp_quote(     "#define SCRIPTINTERRUPT_RAISEEXCEPTION  0x00000002")
  152. cpp_quote(     "#define SCRIPTINTERRUPT_ALL_FLAGS       (SCRIPTINTERRUPT_DEBUG | \\")
  153. cpp_quote(     "                                         SCRIPTINTERRUPT_RAISEEXCEPTION)")
  154. cpp_quote(     "")
  155. cpp_quote(     "/* IActiveScriptStats::GetStat() values */")
  156. cpp_quote(     "")
  157. cpp_quote(     "#define SCRIPTSTAT_STATEMENT_COUNT       1")
  158. cpp_quote(     "#define SCRIPTSTAT_INSTRUCTION_COUNT     2")
  159. cpp_quote(     "#define SCRIPTSTAT_INTSTRUCTION_TIME     3")
  160. cpp_quote(     "#define SCRIPTSTAT_TOTAL_TIME            4")
  161. cpp_quote(     "")
  162. cpp_quote(     "/* script state values */")
  163. cpp_quote(     "")
  164.  
  165. typedef enum tagSCRIPTSTATE {
  166.         SCRIPTSTATE_UNINITIALIZED       = 0,
  167.         SCRIPTSTATE_INITIALIZED         = 5,
  168.         SCRIPTSTATE_STARTED             = 1,
  169.         SCRIPTSTATE_CONNECTED           = 2,
  170.         SCRIPTSTATE_DISCONNECTED        = 3,
  171.         SCRIPTSTATE_CLOSED              = 4,
  172.  
  173. } SCRIPTSTATE ;
  174.  
  175. cpp_quote(     "")
  176. cpp_quote(     "/* script thread state values */")
  177. cpp_quote(     "")
  178.  
  179. typedef enum tagSCRIPTTHREADSTATE {
  180.         SCRIPTTHREADSTATE_NOTINSCRIPT   = 0,
  181.         SCRIPTTHREADSTATE_RUNNING       = 1,
  182. } SCRIPTTHREADSTATE ;
  183.  
  184. cpp_quote(     "")
  185. cpp_quote(     "/* Thread IDs */")
  186. cpp_quote(     "")
  187.  
  188. typedef DWORD SCRIPTTHREADID;
  189.  
  190. cpp_quote(     "")
  191. cpp_quote(     "#define SCRIPTTHREADID_CURRENT  ((SCRIPTTHREADID)-1)")
  192. cpp_quote(     "#define SCRIPTTHREADID_BASE     ((SCRIPTTHREADID)-2)")
  193. cpp_quote(     "#define SCRIPTTHREADID_ALL      ((SCRIPTTHREADID)-3)")
  194. cpp_quote(     "")
  195. cpp_quote(     "/* Structures */")
  196. cpp_quote(     "")
  197.  
  198. cpp_quote(     "/* Interfaces")
  199. cpp_quote(     " *************/")
  200. cpp_quote(     "")
  201.  
  202. interface IActiveScriptSite;
  203. interface IActiveScriptSiteWindow;
  204. interface IActiveScript;
  205. interface IActiveScriptParse;
  206. interface IActiveScriptParseProcedure;
  207. interface IActiveScriptError;
  208.  
  209. cpp_quote(     "")
  210.  
  211. [
  212.         object,
  213.         uuid(DB01A1E3-A42B-11cf-8F20-00805F2CD064),
  214.         pointer_default(unique)
  215. ]
  216. interface IActiveScriptSite : IUnknown
  217. {
  218.         HRESULT GetLCID(
  219.                 [out] LCID *plcid);
  220.  
  221.         HRESULT GetItemInfo(
  222.                 [in]  LPCOLESTR pstrName,
  223.                 [in]  DWORD     dwReturnMask,
  224.                 [out] IUnknown  **ppiunkItem,
  225.                 [out] ITypeInfo **ppti
  226.         );
  227.  
  228.         HRESULT GetDocVersionString(
  229.                 [out] BSTR      *pbstrVersion
  230.         );
  231.  
  232.         HRESULT OnScriptTerminate(
  233.                 [in]  const VARIANT     *pvarResult,
  234.                 [in]  const EXCEPINFO   *pexcepinfo
  235.         );
  236.  
  237.         HRESULT OnStateChange(
  238.                 [in]  SCRIPTSTATE       ssScriptState
  239.         );
  240.  
  241.         HRESULT OnScriptError(
  242.                 [in]  IActiveScriptError *pscripterror
  243.         );
  244.  
  245.         HRESULT OnEnterScript(void);
  246.  
  247.         HRESULT OnLeaveScript(void);
  248. }
  249.  
  250. [
  251.         object,
  252.         uuid(EAE1BA61-A4ED-11cf-8F20-00805F2CD064),
  253.         pointer_default(unique)
  254. ]
  255. interface IActiveScriptError : IUnknown
  256. {
  257.         HRESULT GetExceptionInfo(
  258.                 [out] EXCEPINFO  *pexcepinfo
  259.         );
  260.         HRESULT GetSourcePosition(
  261.                 [out] DWORD     *pdwSourceContext,
  262.                 [out] ULONG     *pulLineNumber,
  263.                 [out] LONG      *plCharacterPosition    // -1 --> unknown
  264.         );
  265.         HRESULT GetSourceLineText(
  266.                 [out] BSTR      *pbstrSourceLine
  267.         );
  268. }
  269.  
  270. [
  271.         object,
  272.         uuid(D10F6761-83E9-11cf-8F20-00805F2CD064),
  273.         pointer_default(unique)
  274. ]
  275. interface IActiveScriptSiteWindow : IUnknown
  276. {
  277.         HRESULT GetWindow(
  278.                 [out] HWND      *phwnd
  279.         );
  280.  
  281.         HRESULT EnableModeless(
  282.                 [in]  BOOL      fEnable
  283.         );
  284. }
  285.  
  286.  
  287. [
  288.         object,
  289.         uuid(539698A0-CDCA-11CF-A5EB-00AA0047A063),
  290.         pointer_default(unique)
  291. ]
  292. interface IActiveScriptSiteInterruptPoll : IUnknown
  293. {
  294.           HRESULT QueryContinue();
  295. }
  296.  
  297.  
  298. cpp_quote(     "typedef IActiveScriptSite *PIActiveScriptSite;")
  299.  
  300. [
  301.         object,
  302.         uuid(BB1A2AE1-A4F9-11cf-8F20-00805F2CD064),
  303.         pointer_default(unique)
  304. ]
  305. interface IActiveScript : IUnknown
  306. {
  307.         HRESULT SetScriptSite(
  308.                 [in]  IActiveScriptSite *pass
  309.         );
  310.  
  311.         HRESULT GetScriptSite(
  312.                 [in]                REFIID riid,
  313.                 [out, iid_is(riid)] void **ppvObject
  314.         );
  315.  
  316.         HRESULT SetScriptState(
  317.                 [in]  SCRIPTSTATE ss
  318.         );
  319.  
  320.         HRESULT GetScriptState(
  321.                 [out] SCRIPTSTATE *pssState
  322.         );
  323.  
  324.         HRESULT Close(void);
  325.  
  326.         HRESULT AddNamedItem(
  327.                 [in]  LPCOLESTR pstrName,
  328.                 [in]  DWORD     dwFlags
  329.         );
  330.  
  331.         HRESULT AddTypeLib(
  332.                 [in]  REFGUID   rguidTypeLib,
  333.                 [in]  DWORD     dwMajor,
  334.                 [in]  DWORD     dwMinor,
  335.                 [in]  DWORD     dwFlags
  336.         );
  337.  
  338.         HRESULT GetScriptDispatch(
  339.                 [in]  LPCOLESTR pstrItemName,
  340.                 [out] IDispatch **ppdisp
  341.         );
  342.  
  343.         HRESULT GetCurrentScriptThreadID(
  344.                 [out] SCRIPTTHREADID *pstidThread
  345.         );
  346.  
  347.         HRESULT GetScriptThreadID(
  348.                 [in]  DWORD             dwWin32ThreadId,
  349.                 [out] SCRIPTTHREADID    *pstidThread
  350.         );
  351.  
  352.         HRESULT GetScriptThreadState(
  353.                 [in]  SCRIPTTHREADID    stidThread,
  354.                 [out] SCRIPTTHREADSTATE *pstsState
  355.         );
  356.  
  357.         HRESULT InterruptScriptThread(
  358.                 [in]  SCRIPTTHREADID    stidThread,
  359.                 [in]  const EXCEPINFO   *pexcepinfo,
  360.                 [in]  DWORD dwFlags
  361.         );
  362.  
  363.         HRESULT Clone(
  364.                 [out] IActiveScript     **ppscript
  365.         );
  366.  
  367. }
  368.  
  369. cpp_quote(     "typedef IActiveScript *PIActiveScript;")
  370.  
  371. [
  372.         object,
  373.         uuid(BB1A2AE2-A4F9-11cf-8F20-00805F2CD064),
  374.         pointer_default(unique)
  375. ]
  376. interface IActiveScriptParse : IUnknown
  377. {
  378.         HRESULT InitNew(void);
  379.  
  380.         HRESULT AddScriptlet(
  381.                 [in]  LPCOLESTR         pstrDefaultName,
  382.                 [in]  LPCOLESTR         pstrCode,
  383.                 [in]  LPCOLESTR         pstrItemName,
  384.                 [in]  LPCOLESTR         pstrSubItemName,
  385.                 [in]  LPCOLESTR         pstrEventName,
  386.                 [in]  LPCOLESTR         pstrDelimiter,
  387.                 [in]  DWORD             dwSourceContextCookie,
  388.                 [in]  ULONG             ulStartingLineNumber,
  389.                 [in]  DWORD             dwFlags,
  390.                 [out] BSTR              *pbstrName,
  391.                 [out] EXCEPINFO         *pexcepinfo
  392.         );
  393.  
  394.         HRESULT ParseScriptText(
  395.                 [in]  LPCOLESTR         pstrCode,
  396.                 [in]  LPCOLESTR         pstrItemName,
  397.                 [in]  IUnknown          *punkContext,
  398.                 [in]  LPCOLESTR         pstrDelimiter,
  399.                 [in]  DWORD             dwSourceContextCookie,
  400.                 [in]  ULONG             ulStartingLineNumber,
  401.                 [in]  DWORD             dwFlags,
  402.                 [out] VARIANT           *pvarResult,
  403.                 [out] EXCEPINFO         *pexcepinfo
  404.         );
  405.  
  406. }
  407. cpp_quote(     "")
  408. cpp_quote(     "typedef IActiveScriptParse *PIActiveScriptParse;")
  409. cpp_quote(     "")
  410.  
  411. [
  412.         object,
  413.         uuid(1CFF0050-6FDD-11d0-9328-00A0C90DCAA9),
  414.         pointer_default(unique)
  415. ]
  416. interface IActiveScriptParseProcedureOld : IUnknown
  417. {
  418.         HRESULT ParseProcedureText(
  419.                 [in]  LPCOLESTR         pstrCode,
  420.                 [in]  LPCOLESTR         pstrFormalParams,
  421.                 [in]  LPCOLESTR         pstrItemName,
  422.                 [in]  IUnknown          *punkContext,
  423.                 [in]  LPCOLESTR         pstrDelimiter,
  424.                 [in]  DWORD             dwSourceContextCookie,
  425.                 [in]  ULONG             ulStartingLineNumber,
  426.                 [in]  DWORD             dwFlags,
  427.                 [out] IDispatch         **ppdisp
  428.         );
  429. }
  430.  
  431.  
  432. [
  433.         object,
  434.         uuid(AA5B6A80-B834-11d0-932F-00A0C90DCAA9),
  435.         pointer_default(unique)
  436. ]
  437. interface IActiveScriptParseProcedure : IUnknown
  438. {
  439.         HRESULT ParseProcedureText(
  440.                 [in]  LPCOLESTR         pstrCode,
  441.                 [in]  LPCOLESTR         pstrFormalParams,
  442.                 [in]  LPCOLESTR         pstrProcedureName,
  443.                 [in]  LPCOLESTR         pstrItemName,
  444.                 [in]  IUnknown          *punkContext,
  445.                 [in]  LPCOLESTR         pstrDelimiter,
  446.                 [in]  DWORD             dwSourceContextCookie,
  447.                 [in]  ULONG             ulStartingLineNumber,
  448.                 [in]  DWORD             dwFlags,
  449.                 [out] IDispatch         **ppdisp
  450.         );
  451. }
  452.  
  453.  
  454. [
  455.         object,
  456.         uuid(63CDBCB0-C1B1-11d0-9336-00A0C90DCAA9),
  457.         pointer_default(unique)
  458. ]
  459. interface IBindEventHandler : IUnknown
  460. {
  461.         HRESULT BindHandler(
  462.                 [in]  LPCOLESTR         pstrEvent,
  463.                 [in]  IDispatch         *pdisp
  464.         );
  465. }
  466.  
  467.  
  468. [
  469.         object,
  470.         uuid(B8DA6310-E19B-11d0-933C-00A0C90DCAA9),
  471.         pointer_default(unique)
  472. ]
  473. interface IActiveScriptStats : IUnknown
  474. {
  475.         HRESULT GetStat(
  476.                 [in] DWORD stid,
  477.                 [out] ULONG *pluHi,
  478.                 [out] ULONG *pluLo
  479.         );
  480.  
  481.         HRESULT GetStatEx(
  482.                 [in]  REFGUID guid,
  483.                 [out] ULONG *pluHi,
  484.                 [out] ULONG *pluLo
  485.         );
  486.  
  487.         HRESULT ResetStats(void);
  488. }
  489.  
  490.  
  491. cpp_quote(     "")
  492. cpp_quote(     "#endif  // __ActivScp_h")
  493. cpp_quote(     "")
  494.  
  495.