2 * Copyright 2004 Kevin Koltzau
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
25 cpp_quote("#ifndef _NO_SCRIPT_GUIDS")
27 cpp_quote("DEFINE_GUID(CATID_ActiveScript, 0xf0b7a1a1,0x9847,0x11cf,0x8f,0x20,0x00,0x80,0x5f,0x2c,0xd0,0x64);")
28 cpp_quote("DEFINE_GUID(CATID_ActiveScriptParse, 0xf0b7a1a2,0x9847,0x11cf,0x8f,0x20,0x00,0x80,0x5f,0x2c,0xd0,0x64);")
29 cpp_quote("DEFINE_GUID(CATID_ActiveScriptEncode, 0xf0b7a1a3,0x9847,0x11cf,0x8f,0x20,0x00,0x80,0x5f,0x2c,0xd0,0x64);")
33 cpp_quote("#define SCRIPTPROP_NAME 0x00000000")
34 cpp_quote("#define SCRIPTPROP_MAJORVERSION 0x00000001")
35 cpp_quote("#define SCRIPTPROP_MINORVERSION 0x00000002")
36 cpp_quote("#define SCRIPTPROP_BUILDNUMBER 0x00000003")
37 cpp_quote("#define SCRIPTPROP_DELAYEDEVENTSINKING 0x00001000")
38 cpp_quote("#define SCRIPTPROP_CATCHEXCEPTION 0x00001001")
39 cpp_quote("#define SCRIPTPROP_CONVERSIONLCID 0x00001002")
40 cpp_quote("#define SCRIPTPROP_HOSTSTACKREQUIRED 0x00001003")
41 cpp_quote("#define SCRIPTPROP_DEBUGGER 0x00001100")
42 cpp_quote("#define SCRIPTPROP_JITDEBUG 0x00001101")
43 cpp_quote("#define SCRIPTPROP_INVOKEVERSIONING 0x00004000")
45 cpp_quote("#define SCRIPTPROP_HACK_FIBERSUPPORT 0x70000000")
46 cpp_quote("#define SCRIPTPROP_HACK_TRIDENTEVENTSINK 0x70000001")
47 cpp_quote("#define SCRIPTPROP_ABBREVIATE_GLOBALNAME_RESOLUTION 0x70000002")
49 typedef enum tagSCRIPTLANGUAGEVERSION {
50 SCRIPTLANGUAGEVERSION_DEFAULT = 0,
51 SCRIPTLANGUAGEVERSION_5_7 = 1,
52 SCRIPTLANGUAGEVERSION_5_8 = 2,
53 SCRIPTLANGUAGEVERSION_MAX = 255
54 } SCRIPTLANGUAGEVERSION;
56 typedef enum tagSCRIPTSTATE {
57 SCRIPTSTATE_UNINITIALIZED = 0,
58 SCRIPTSTATE_STARTED = 1,
59 SCRIPTSTATE_CONNECTED = 2,
60 SCRIPTSTATE_DISCONNECTED = 3,
61 SCRIPTSTATE_CLOSED = 4,
62 SCRIPTSTATE_INITIALIZED = 5
65 typedef enum tagSCRIPTTHREADSTATE {
66 SCRIPTTHREADSTATE_NOTINSCRIPT = 0,
67 SCRIPTTHREADSTATE_RUNNING = 1
70 typedef enum tagSCRIPTUICITEM {
71 SCRIPTUICITEM_INPUTBOX = 1,
72 SCRIPTUICITEM_MSGBOX = 2
75 typedef enum tagSCRIPTUICHANDLING {
76 SCRIPTUICHANDLING_ALLOW = 0,
77 SCRIPTUICHANDLING_NOUIERROR = 1,
78 SCRIPTUICHANDLING_NOUIDEFAULT = 2
81 typedef enum tagSCRIPTGCTYPE {
82 SCRIPTGCTYPE_NORMAL = 0,
83 SCRIPTGCTYPE_EXHAUSTIVE = 1
86 typedef DWORD SCRIPTTHREADID;
87 cpp_quote("#define SCRIPTTHREADID_CURRENT ((SCRIPTTHREADID)-1)")
88 cpp_quote("#define SCRIPTTHREADID_BASE ((SCRIPTTHREADID)-2)")
89 cpp_quote("#define SCRIPTTHREADID_ALL ((SCRIPTTHREADID)-3)")
91 cpp_quote("#define SCRIPTITEM_ISVISIBLE 0x00000002")
92 cpp_quote("#define SCRIPTITEM_ISSOURCE 0x00000004")
93 cpp_quote("#define SCRIPTITEM_GLOBALMEMBERS 0x00000008")
94 cpp_quote("#define SCRIPTITEM_ISPERSISTENT 0x00000040")
95 cpp_quote("#define SCRIPTITEM_CODEONLY 0x00000200")
96 cpp_quote("#define SCRIPTITEM_NOCODE 0x00000400")
97 cpp_quote("#define SCRIPTITEM_ALL_FLAGS (SCRIPTITEM_ISSOURCE | \\")
98 cpp_quote(" SCRIPTITEM_ISVISIBLE | \\")
99 cpp_quote(" SCRIPTITEM_ISPERSISTENT | \\")
100 cpp_quote(" SCRIPTITEM_GLOBALMEMBERS | \\")
101 cpp_quote(" SCRIPTITEM_NOCODE | \\")
102 cpp_quote(" SCRIPTITEM_CODEONLY)")
103 cpp_quote("#define SCRIPTTYPELIB_ISCONTROL 0x00000010")
104 cpp_quote("#define SCRIPTTYPELIB_ISPERSISTENT 0x00000040")
105 cpp_quote("#define SCRIPTTYPELIB_ALL_FLAGS (SCRIPTTEXT_ISCONTROL | SCRIPTTYPELIB_ISPERSISTENT)")
106 cpp_quote("#define SCRIPTTEXT_DELAYEXECUTION 0x00000001")
107 cpp_quote("#define SCRIPTTEXT_ISVISIBLE 0x00000002")
108 cpp_quote("#define SCRIPTTEXT_ISEXPRESSION 0x00000020")
109 cpp_quote("#define SCRIPTTEXT_ISPERSISTENT 0x00000040")
110 cpp_quote("#define SCRIPTTEXT_HOSTMANAGESSOURCE 0x00000080")
111 cpp_quote("#define SCRIPTTEXT_ALL_FLAGS (SCRIPTTEXT_DELAYEXECUTION | \\")
112 cpp_quote(" SCRIPTTEXT_ISVISIBLE | \\")
113 cpp_quote(" SCRIPTTEXT_ISEXPRESSION | \\")
114 cpp_quote(" SCRIPTTEXT_ISPERSISTENT | \\")
115 cpp_quote(" SCRIPTTEXT_HOSTMANAGESSOURCE)")
116 cpp_quote("#define SCRIPTPROC_ISEXPRESSION 0x00000020")
117 cpp_quote("#define SCRIPTPROC_HOSTMANAGESSOURCE 0x00000080")
118 cpp_quote("#define SCRIPTPROC_IMPLICIT_THIS 0x00000100")
119 cpp_quote("#define SCRIPTPROC_IMPLICIT_PARENTS 0x00000200")
120 cpp_quote("#define SCRIPTPROC_ALL_FLAGS (SCRIPTPROC_HOSTMANAGESSOURCE | \\")
121 cpp_quote(" SCRIPTPROC_IMPLICIT_THIS | \\")
122 cpp_quote(" SCRIPTPROC_IMPLICIT_PARENTS)")
123 cpp_quote("#define SCRIPTINFO_IUNKNOWN 0x00000001")
124 cpp_quote("#define SCRIPTINFO_ITYPEINFO 0x00000002")
125 cpp_quote("#define SCRIPTINFO_ALL_FLAGS (SCRIPTINFO_IUNKNOWN | SCRIPTINFO_ITYPEINFO)")
126 cpp_quote("#define SCRIPTINTERRUPT_DEBUG 0x00000001")
127 cpp_quote("#define SCRIPTINTERRUPT_RAISEEXCEPTION 0x00000002")
128 cpp_quote("#define SCRIPTINTERRUPT_ALL_FLAGS (SCRIPTINTERRUPT_DEBUG | SCRIPTINTERRUPT_RAISEEXCEPTION)")
129 cpp_quote("#define SCRIPTSTAT_STATEMENT_COUNT 1")
130 cpp_quote("#define SCRIPTSTAT_INSTRUCTION_COUNT 2")
131 cpp_quote("#define SCRIPTSTAT_INTSTRUCTION_TIME 3")
132 cpp_quote("#define SCRIPTSTAT_TOTAL_TIME 4")
134 cpp_quote("#define SCRIPT_E_RECORDED 0x86664004")
135 cpp_quote("#define SCRIPT_E_REPORTED 0x80020101")
136 cpp_quote("#define SCRIPT_E_PROPAGATE 0x80020102")
140 uuid(EAE1BA61-A4ED-11cf-8F20-00805F2CD064),
141 pointer_default(unique)
143 interface IActiveScriptError : IUnknown
145 HRESULT GetExceptionInfo(
146 [out] EXCEPINFO *pexcepinfo
149 HRESULT GetSourcePosition(
150 [out] DWORD *pdwSourceContext,
151 [out] ULONG *pulLineNumber,
152 [out] LONG *plCharacterPosition
155 HRESULT GetSourceLineText(
156 [out] BSTR *pbstrSourceLine
162 uuid(DB01A1E3-A42B-11cf-8F20-00805F2CD064),
163 pointer_default(unique)
165 interface IActiveScriptSite : IUnknown
171 [in] LPCOLESTR pstrName,
172 [in] DWORD dwReturnMask,
173 [out] IUnknown **ppiunkItem,
174 [out] ITypeInfo **ppti
177 HRESULT GetDocVersionString(
178 [out] BSTR *pbstrVersion
181 HRESULT OnScriptTerminate(
182 [in] const VARIANT *pvarResult,
183 [in] const EXCEPINFO *pexcepinfo
186 HRESULT OnStateChange(
187 [in] SCRIPTSTATE ssScriptState
190 HRESULT OnScriptError(
191 [in] IActiveScriptError *pscripterror
194 HRESULT OnEnterScript(void);
196 HRESULT OnLeaveScript(void);
199 cpp_quote("typedef IActiveScriptSite *PIActiveScriptSite;")
203 uuid(D10F6761-83E9-11cf-8F20-00805F2CD064),
204 pointer_default(unique)
206 interface IActiveScriptSiteWindow : IUnknown
212 HRESULT EnableModeless(
219 uuid(aedae97e-d7ee-4796-b960-7f092ae844ab),
220 pointer_default(unique)
222 interface IActiveScriptSiteUIControl : IUnknown
224 HRESULT GetUIBehavior(
225 [in] SCRIPTUICITEM UicItem,
226 [out] SCRIPTUICHANDLING *pUicHandling);
231 uuid(539698A0-CDCA-11CF-A5EB-00AA0047A063),
232 pointer_default(unique)
234 interface IActiveScriptSiteInterruptPoll : IUnknown
236 HRESULT QueryContinue();
241 uuid(BB1A2AE1-A4F9-11cf-8F20-00805F2CD064),
242 pointer_default(unique)
244 interface IActiveScript : IUnknown
246 HRESULT SetScriptSite(
247 [in] IActiveScriptSite *pass
250 HRESULT GetScriptSite(
252 [out, iid_is(riid)] void **ppvObject
255 HRESULT SetScriptState(
259 HRESULT GetScriptState(
260 [out] SCRIPTSTATE *pssState
265 HRESULT AddNamedItem(
266 [in] LPCOLESTR pstrName,
271 [in] REFGUID rguidTypeLib,
277 HRESULT GetScriptDispatch(
278 [in] LPCOLESTR pstrItemName,
279 [out] IDispatch **ppdisp
282 HRESULT GetCurrentScriptThreadID(
283 [out] SCRIPTTHREADID *pstidThread
286 HRESULT GetScriptThreadID(
287 [in] DWORD dwWin32ThreadId,
288 [out] SCRIPTTHREADID *pstidThread
291 HRESULT GetScriptThreadState(
292 [in] SCRIPTTHREADID stidThread,
293 [out] SCRIPTTHREADSTATE *pstsState
296 HRESULT InterruptScriptThread(
297 [in] SCRIPTTHREADID stidThread,
298 [in] const EXCEPINFO *pexcepinfo,
303 [out] IActiveScript **ppscript
307 cpp_quote("typedef IActiveScript *PIActiveScript;")
311 uuid(BB1A2AE2-A4F9-11cf-8F20-00805F2CD064),
312 pointer_default(unique)
314 interface IActiveScriptParse32 : IUnknown
316 HRESULT InitNew(void);
318 HRESULT AddScriptlet(
319 [in] LPCOLESTR pstrDefaultName,
320 [in] LPCOLESTR pstrCode,
321 [in] LPCOLESTR pstrItemName,
322 [in] LPCOLESTR pstrSubItemName,
323 [in] LPCOLESTR pstrEventName,
324 [in] LPCOLESTR pstrDelimiter,
325 [in] DWORD dwSourceContextCookie,
326 [in] ULONG ulStartingLineNumber,
328 [out] BSTR *pbstrName,
329 [out] EXCEPINFO *pexcepinfo
332 HRESULT ParseScriptText(
333 [in] LPCOLESTR pstrCode,
334 [in] LPCOLESTR pstrItemName,
335 [in] IUnknown *punkContext,
336 [in] LPCOLESTR pstrDelimiter,
337 [in] DWORD dwSourceContextCookie,
338 [in] ULONG ulStartingLineNumber,
340 [out] VARIANT *pvarResult,
341 [out] EXCEPINFO *pexcepinfo
347 uuid(c7ef7658-e1ee-480e-97ea-d52cb4d76d17),
348 pointer_default(unique)
350 interface IActiveScriptParse64 : IUnknown
352 HRESULT InitNew(void);
354 HRESULT AddScriptlet(
355 [in] LPCOLESTR pstrDefaultName,
356 [in] LPCOLESTR pstrCode,
357 [in] LPCOLESTR pstrItemName,
358 [in] LPCOLESTR pstrSubItemName,
359 [in] LPCOLESTR pstrEventName,
360 [in] LPCOLESTR pstrDelimiter,
361 [in] DWORDLONG dwSourceContextCookie,
362 [in] ULONG ulStartingLineNumber,
364 [out] BSTR *pbstrName,
365 [out] EXCEPINFO *pexcepinfo
368 HRESULT ParseScriptText(
369 [in] LPCOLESTR pstrCode,
370 [in] LPCOLESTR pstrItemName,
371 [in] IUnknown *punkContext,
372 [in] LPCOLESTR pstrDelimiter,
373 [in] DWORDLONG dwSourceContextCookie,
374 [in] ULONG ulStartingLineNumber,
376 [out] VARIANT *pvarResult,
377 [out] EXCEPINFO *pexcepinfo
381 cpp_quote("#ifdef _WIN64")
382 cpp_quote("#define IActiveScriptParse IActiveScriptParse64")
383 cpp_quote("#define IID_IActiveScriptParse IID_IActiveScriptParse64")
385 cpp_quote("#define IActiveScriptParse IActiveScriptParse32")
386 cpp_quote("#define IID_IActiveScriptParse IID_IActiveScriptParse32")
389 cpp_quote("typedef IActiveScriptParse *PIActiveScriptParse;")
393 uuid(1CFF0050-6FDD-11d0-9328-00A0C90DCAA9),
394 pointer_default(unique)
396 interface IActiveScriptParseProcedureOld32 : IUnknown
398 HRESULT ParseProcedureText(
399 [in] LPCOLESTR pstrCode,
400 [in] LPCOLESTR pstrFormalParams,
401 [in] LPCOLESTR pstrItemName,
402 [in] IUnknown *punkContext,
403 [in] LPCOLESTR pstrDelimiter,
404 [in] DWORD dwSourceContextCookie,
405 [in] ULONG ulStartingLineNumber,
407 [out] IDispatch **ppdisp
413 uuid(21f57128-08c9-4638-ba12-22d15d88dc5c),
414 pointer_default(unique)
416 interface IActiveScriptParseProcedureOld64 : IUnknown
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] DWORDLONG dwSourceContextCookie,
425 [in] ULONG ulStartingLineNumber,
427 [out] IDispatch **ppdisp
431 cpp_quote("#ifdef _WIN64")
432 cpp_quote("#define IActiveScriptParseProcedureOld IActiveScriptParseProcedureOld64")
433 cpp_quote("#define IID_IActiveScriptParseProcedureOld IID_IActiveScriptParseProcedureOld64")
435 cpp_quote("#define IActiveScriptParseProcedureOld IActiveScriptParseProcedureOld32")
436 cpp_quote("#define IID_IActiveScriptParseProcedureOld IID_IActiveScriptParseProcedureOld32")
441 uuid(AA5B6A80-B834-11d0-932F-00A0C90DCAA9),
442 pointer_default(unique)
444 interface IActiveScriptParseProcedure32 : IUnknown
446 HRESULT ParseProcedureText(
447 [in] LPCOLESTR pstrCode,
448 [in] LPCOLESTR pstrFormalParams,
449 [in] LPCOLESTR pstrProcedureName,
450 [in] LPCOLESTR pstrItemName,
451 [in] IUnknown *punkContext,
452 [in] LPCOLESTR pstrDelimiter,
453 [in] DWORD dwSourceContextCookie,
454 [in] ULONG ulStartingLineNumber,
456 [out] IDispatch **ppdisp
462 uuid(c64713b6-e029-4cc5-9200-438b72890b6a),
463 pointer_default(unique)
465 interface IActiveScriptParseProcedure64 : IUnknown
467 HRESULT ParseProcedureText(
468 [in] LPCOLESTR pstrCode,
469 [in] LPCOLESTR pstrFormalParams,
470 [in] LPCOLESTR pstrProcedureName,
471 [in] LPCOLESTR pstrItemName,
472 [in] IUnknown *punkContext,
473 [in] LPCOLESTR pstrDelimiter,
474 [in] DWORDLONG dwSourceContextCookie,
475 [in] ULONG ulStartingLineNumber,
477 [out] IDispatch **ppdisp
481 cpp_quote("#ifdef _WIN64")
482 cpp_quote("#define IActiveScriptParseProcedure IActiveScriptParseProcedure64")
483 cpp_quote("#define IID_IActiveScriptParseProcedure IID_IActiveScriptParseProcedure64")
485 cpp_quote("#define IActiveScriptParseProcedure IActiveScriptParseProcedure32")
486 cpp_quote("#define IID_IActiveScriptParseProcedure IID_IActiveScriptParseProcedure32")
491 uuid(71ee5b20-fb04-11d1-b3a8-00a0c911e8b2),
492 pointer_default(unique)
494 interface IActiveScriptParseProcedure2_32 : IActiveScriptParseProcedure32
500 uuid(fe7c4271-210c-448d-9f54-76dab7047b28),
501 pointer_default(unique)
503 interface IActiveScriptParseProcedure2_64 : IActiveScriptParseProcedure64
507 cpp_quote("#ifdef _WIN64")
508 cpp_quote("#define IActiveScriptParseProcedure2 IActiveScriptParseProcedure2_64")
509 cpp_quote("#define IID_IActiveScriptParseProcedure2 IID_IActiveScriptParseProcedure2_64")
511 cpp_quote("#define IActiveScriptParseProcedure2 IActiveScriptParseProcedure2_32")
512 cpp_quote("#define IID_IActiveScriptParseProcedure2 IID_IActiveScriptParseProcedure2_32")
517 uuid(63CDBCB0-C1B1-11d0-9336-00A0C90DCAA9),
518 pointer_default(unique)
520 interface IBindEventHandler : IUnknown
523 [in] LPCOLESTR pstrEvent,
524 [in] IDispatch *pdisp
530 uuid(B8DA6310-E19B-11d0-933C-00A0C90DCAA9),
531 pointer_default(unique)
533 interface IActiveScriptStats : IUnknown
547 HRESULT ResetStats(void);
552 uuid(4954e0d0-fbc7-11d1-8410-006008c3fbfc),
553 pointer_default(unique)
555 interface IActiveScriptProperty : IUnknown
558 [in] DWORD dwProperty,
559 [in] VARIANT *pvarIndex,
560 [out] VARIANT *pvarValue);
563 [in] DWORD dwProperty,
564 [in] VARIANT *pvarIndex,
565 [in] VARIANT *pvarValue);
570 uuid(6aa2c4a0-2b53-11d4-a2a0-00104bd35090),
571 pointer_default(unique)
573 interface IActiveScriptGarbageCollector : IUnknown
575 HRESULT CollectGarbage(
576 [in] SCRIPTGCTYPE gctype);