| /* | 
 |  * Copyright 2004 Kevin Koltzau | 
 |  * | 
 |  * This library is free software; you can redistribute it and/or | 
 |  * modify it under the terms of the GNU Lesser General Public | 
 |  * License as published by the Free Software Foundation; either | 
 |  * version 2.1 of the License, or (at your option) any later version. | 
 |  * | 
 |  * This library is distributed in the hope that it will be useful, | 
 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
 |  * Lesser General Public License for more details. | 
 |  * | 
 |  * You should have received a copy of the GNU Lesser General Public | 
 |  * License along with this library; if not, write to the Free Software | 
 |  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | 
 |  */ | 
 |  | 
 | import "ocidl.idl"; | 
 | import "oleidl.idl"; | 
 | import "oaidl.idl"; | 
 |   | 
 | typedef enum tagSCRIPTSTATE { | 
 |     SCRIPTSTATE_UNINITIALIZED = 0, | 
 |     SCRIPTSTATE_STARTED       = 1, | 
 |     SCRIPTSTATE_CONNECTED     = 2, | 
 |     SCRIPTSTATE_DISCONNECTED  = 3, | 
 |     SCRIPTSTATE_CLOSED        = 4, | 
 |     SCRIPTSTATE_INITIALIZED   = 5 | 
 | } SCRIPTSTATE; | 
 |  | 
 | typedef enum tagSCRIPTTHREADSTATE { | 
 |     SCRIPTTHREADSTATE_NOTINSCRIPT = 0, | 
 |     SCRIPTTHREADSTATE_RUNNING     = 1 | 
 | } SCRIPTTHREADSTATE; | 
 |  | 
 | typedef DWORD SCRIPTTHREADID; | 
 | cpp_quote("#define SCRIPTTHREADID_CURRENT ((SCRIPTTHREADID)-1)") | 
 | cpp_quote("#define SCRIPTTHREADID_BASE ((SCRIPTTHREADID)-2)") | 
 | cpp_quote("#define SCRIPTTHREADID_ALL ((SCRIPTTHREADID)-3)") | 
 |  | 
 | cpp_quote("#define SCRIPTITEM_ISVISIBLE           0x00000002") | 
 | cpp_quote("#define SCRIPTITEM_ISSOURCE            0x00000004") | 
 | cpp_quote("#define SCRIPTITEM_GLOBALMEMBERS       0x00000008") | 
 | cpp_quote("#define SCRIPTITEM_ISPERSISTENT        0x00000040") | 
 | cpp_quote("#define SCRIPTITEM_CODEONLY            0x00000200") | 
 | cpp_quote("#define SCRIPTITEM_NOCODE              0x00000400") | 
 | cpp_quote("#define SCRIPTITEM_ALL_FLAGS           (SCRIPTITEM_ISSOURCE | \\") | 
 | cpp_quote("                                        SCRIPTITEM_ISVISIBLE | \\") | 
 | cpp_quote("                                        SCRIPTITEM_ISPERSISTENT | \\") | 
 | cpp_quote("                                        SCRIPTITEM_GLOBALMEMBERS | \\") | 
 | cpp_quote("                                        SCRIPTITEM_NOCODE | \\") | 
 | cpp_quote("                                        SCRIPTITEM_CODEONLY)") | 
 | cpp_quote("#define SCRIPTTYPELIB_ISCONTROL        0x00000010") | 
 | cpp_quote("#define SCRIPTTYPELIB_ISPERSISTENT     0x00000040") | 
 | cpp_quote("#define SCRIPTTYPELIB_ALL_FLAGS        (SCRIPTTEXT_ISCONTROL | SCRIPTTYPELIB_ISPERSISTENT)") | 
 | cpp_quote("#define SCRIPTTEXT_DELAYEXECUTION      0x00000001") | 
 | cpp_quote("#define SCRIPTTEXT_ISVISIBLE           0x00000002") | 
 | cpp_quote("#define SCRIPTTEXT_ISEXPRESSION        0x00000020") | 
 | cpp_quote("#define SCRIPTTEXT_ISPERSISTENT        0x00000040") | 
 | cpp_quote("#define SCRIPTTEXT_HOSTMANAGESSOURCE   0x00000080") | 
 | cpp_quote("#define SCRIPTTEXT_ALL_FLAGS           (SCRIPTTEXT_DELAYEXECUTION | \\") | 
 | cpp_quote("                                        SCRIPTTEXT_ISVISIBLE | \\") | 
 | cpp_quote("                                        SCRIPTTEXT_ISEXPRESSION | \\") | 
 | cpp_quote("                                        SCRIPTTEXT_ISPERSISTENT | \\") | 
 | cpp_quote("                                        SCRIPTTEXT_HOSTMANAGESSOURCE)") | 
 | cpp_quote("#define SCRIPTPROC_HOSTMANAGESSOURCE   0x00000080") | 
 | cpp_quote("#define SCRIPTPROC_IMPLICIT_THIS       0x00000100") | 
 | cpp_quote("#define SCRIPTPROC_IMPLICIT_PARENTS    0x00000200") | 
 | cpp_quote("#define SCRIPTPROC_ALL_FLAGS           (SCRIPTPROC_HOSTMANAGESSOURCE | \\") | 
 | cpp_quote("                                        SCRIPTPROC_IMPLICIT_THIS | \\") | 
 | cpp_quote("                                        SCRIPTPROC_IMPLICIT_PARENTS)") | 
 | cpp_quote("#define SCRIPTINFO_IUNKNOWN            0x00000001") | 
 | cpp_quote("#define SCRIPTINFO_ITYPEINFO           0x00000002") | 
 | cpp_quote("#define SCRIPTINFO_ALL_FLAGS           (SCRIPTINFO_IUNKNOWN | SCRIPTINFO_ITYPEINFO)") | 
 | cpp_quote("#define SCRIPTINTERRUPT_DEBUG          0x00000001") | 
 | cpp_quote("#define SCRIPTINTERRUPT_RAISEEXCEPTION 0x00000002") | 
 | cpp_quote("#define SCRIPTINTERRUPT_ALL_FLAGS      (SCRIPTINTERRUPT_DEBUG | SCRIPTINTERRUPT_RAISEEXCEPTION)") | 
 | cpp_quote("#define SCRIPTSTAT_STATEMENT_COUNT      1") | 
 | cpp_quote("#define SCRIPTSTAT_INSTRUCTION_COUNT    2") | 
 | cpp_quote("#define SCRIPTSTAT_INTSTRUCTION_TIME    3") | 
 | cpp_quote("#define SCRIPTSTAT_TOTAL_TIME           4") | 
 |  | 
 | [ | 
 | object, | 
 | uuid(EAE1BA61-A4ED-11cf-8F20-00805F2CD064), | 
 | pointer_default(unique) | 
 | ] | 
 | interface IActiveScriptError : IUnknown | 
 | { | 
 |     HRESULT GetExceptionInfo( | 
 |             [out] EXCEPINFO *pexcepinfo | 
 |     ); | 
 |      | 
 |     HRESULT GetSourcePosition( | 
 |             [out] DWORD *pdwSourceContext, | 
 |             [out] ULONG *pulLineNumber, | 
 |             [out] LONG *plCharacterPosition | 
 |     ); | 
 |      | 
 |     HRESULT GetSourceLineText( | 
 |             [out] BSTR *pbstrSourceLine | 
 |     ); | 
 | } | 
 |  | 
 | [ | 
 | object, | 
 | uuid(DB01A1E3-A42B-11cf-8F20-00805F2CD064), | 
 | pointer_default(unique) | 
 | ] | 
 | interface IActiveScriptSite : IUnknown | 
 | { | 
 |     HRESULT GetLCID( | 
 |             [out] LCID *plcid); | 
 |      | 
 |     HRESULT GetItemInfo( | 
 |             [in] LPCOLESTR pstrName, | 
 |             [in] DWORD dwReturnMask, | 
 |             [out] IUnknown **ppiunkItem, | 
 |             [out] ITypeInfo **ppti | 
 |     ); | 
 |      | 
 |     HRESULT GetDocVersionString( | 
 |             [out] BSTR *pbstrVersion | 
 |     ); | 
 |      | 
 |     HRESULT OnScriptTerminate( | 
 |             [in] const VARIANT *pvarResult, | 
 |             [in] const EXCEPINFO *pexcepinfo | 
 |     ); | 
 |      | 
 |     HRESULT OnStateChange( | 
 |             [in] SCRIPTSTATE ssScriptState | 
 |     ); | 
 |      | 
 |     HRESULT OnScriptError( | 
 |             [in] IActiveScriptError *pscripterror | 
 |     ); | 
 |      | 
 |     HRESULT OnEnterScript(void); | 
 |      | 
 |     HRESULT OnLeaveScript(void); | 
 | } | 
 |  | 
 | cpp_quote("typedef IActiveScriptSite *PIActiveScriptSite;") | 
 |  | 
 | [ | 
 | object, | 
 | uuid(D10F6761-83E9-11cf-8F20-00805F2CD064), | 
 | pointer_default(unique) | 
 | ] | 
 | interface IActiveScriptSiteWindow : IUnknown | 
 | { | 
 |     HRESULT GetWindow( | 
 |             [out] HWND *phwnd | 
 |     ); | 
 |  | 
 |     HRESULT EnableModeless( | 
 |             [in] BOOL fEnable | 
 |     ); | 
 | } | 
 |  | 
 | [ | 
 | object, | 
 | uuid(539698A0-CDCA-11CF-A5EB-00AA0047A063), | 
 | pointer_default(unique) | 
 | ] | 
 | interface IActiveScriptSiteInterruptPoll : IUnknown | 
 | { | 
 |     HRESULT QueryContinue(); | 
 | } | 
 |  | 
 | [ | 
 | object, | 
 | uuid(BB1A2AE1-A4F9-11cf-8F20-00805F2CD064), | 
 | pointer_default(unique) | 
 | ] | 
 | interface IActiveScript : IUnknown | 
 | { | 
 |     HRESULT SetScriptSite( | 
 |             [in] IActiveScriptSite *pass | 
 |     ); | 
 |  | 
 |     HRESULT GetScriptSite( | 
 |             [in] REFIID riid, | 
 |             [out, iid_is(riid)] void **ppvObject | 
 |     ); | 
 |  | 
 |     HRESULT SetScriptState( | 
 |             [in] SCRIPTSTATE ss | 
 |     ); | 
 |  | 
 |     HRESULT GetScriptState( | 
 |             [out] SCRIPTSTATE *pssState | 
 |     ); | 
 |  | 
 |     HRESULT Close(void); | 
 |  | 
 |     HRESULT AddNamedItem( | 
 |             [in] LPCOLESTR pstrName, | 
 |             [in] DWORD dwFlags | 
 |     ); | 
 |  | 
 |     HRESULT AddTypeLib( | 
 |             [in] REFGUID rguidTypeLib, | 
 |             [in] DWORD dwMajor, | 
 |             [in] DWORD dwMinor, | 
 |             [in] DWORD dwFlags | 
 |     ); | 
 |  | 
 |     HRESULT GetScriptDispatch( | 
 |             [in] LPCOLESTR pstrItemName, | 
 |             [out] IDispatch **ppdisp | 
 |     ); | 
 |  | 
 |     HRESULT GetCurrentScriptThreadID( | 
 |             [out] SCRIPTTHREADID *pstidThread | 
 |     ); | 
 |  | 
 |     HRESULT GetScriptThreadID( | 
 |             [in] DWORD dwWin32ThreadId, | 
 |             [out] SCRIPTTHREADID *pstidThread | 
 |     ); | 
 |  | 
 |     HRESULT GetScriptThreadState( | 
 |             [in] SCRIPTTHREADID stidThread, | 
 |             [out] SCRIPTTHREADSTATE *pstsState | 
 |     ); | 
 |  | 
 |     HRESULT InterruptScriptThread( | 
 |             [in] SCRIPTTHREADID stidThread, | 
 |             [in] const EXCEPINFO *pexcepinfo, | 
 |             [in] DWORD dwFlags | 
 |     ); | 
 |  | 
 |     HRESULT Clone( | 
 |             [out] IActiveScript **ppscript | 
 |     ); | 
 | } | 
 |  | 
 | cpp_quote("typedef IActiveScript *PIActiveScript;") | 
 |  | 
 | [ | 
 | object, | 
 | uuid(BB1A2AE2-A4F9-11cf-8F20-00805F2CD064), | 
 | pointer_default(unique) | 
 | ] | 
 | interface IActiveScriptParse : IUnknown | 
 | { | 
 |     HRESULT InitNew(void); | 
 |  | 
 |     HRESULT AddScriptlet( | 
 |             [in] LPCOLESTR pstrDefaultName, | 
 |             [in] LPCOLESTR pstrCode, | 
 |             [in] LPCOLESTR pstrItemName, | 
 |             [in] LPCOLESTR pstrSubItemName, | 
 |             [in] LPCOLESTR pstrEventName, | 
 |             [in] LPCOLESTR pstrDelimiter, | 
 |             [in] DWORD dwSourceContextCookie, | 
 |             [in] ULONG ulStartingLineNumber, | 
 |             [in] DWORD dwFlags, | 
 |             [out] BSTR *pbstrName, | 
 |             [out] EXCEPINFO *pexcepinfo | 
 |     ); | 
 |  | 
 |     HRESULT ParseScriptText( | 
 |             [in] LPCOLESTR pstrCode, | 
 |             [in] LPCOLESTR pstrItemName, | 
 |             [in] IUnknown *punkContext, | 
 |             [in] LPCOLESTR pstrDelimiter, | 
 |             [in] DWORD dwSourceContextCookie, | 
 |             [in] ULONG ulStartingLineNumber, | 
 |             [in] DWORD dwFlags, | 
 |             [out] VARIANT *pvarResult, | 
 |             [out] EXCEPINFO *pexcepinfo | 
 |     ); | 
 | } | 
 |  | 
 | cpp_quote("typedef IActiveScriptParse *PIActiveScriptParse;") | 
 |  | 
 | [ | 
 | object, | 
 | uuid(1CFF0050-6FDD-11d0-9328-00A0C90DCAA9), | 
 | pointer_default(unique) | 
 | ] | 
 | interface IActiveScriptParseProcedureOld : IUnknown | 
 | { | 
 |     HRESULT ParseProcedureText( | 
 |             [in] LPCOLESTR pstrCode, | 
 |             [in] LPCOLESTR pstrFormalParams, | 
 |             [in] LPCOLESTR pstrItemName, | 
 |             [in] IUnknown *punkContext, | 
 |             [in] LPCOLESTR pstrDelimiter, | 
 |             [in] DWORD dwSourceContextCookie, | 
 |             [in] ULONG ulStartingLineNumber, | 
 |             [in] DWORD dwFlags, | 
 |             [out] IDispatch **ppdisp | 
 |     ); | 
 | } | 
 |  | 
 | [ | 
 | object, | 
 | uuid(AA5B6A80-B834-11d0-932F-00A0C90DCAA9), | 
 | pointer_default(unique) | 
 | ] | 
 | interface IActiveScriptParseProcedure : IUnknown | 
 | { | 
 |     HRESULT ParseProcedureText( | 
 |             [in] LPCOLESTR pstrCode, | 
 |             [in] LPCOLESTR pstrFormalParams, | 
 |             [in] LPCOLESTR pstrProcedureName, | 
 |             [in] LPCOLESTR pstrItemName, | 
 |             [in] IUnknown *punkContext, | 
 |             [in] LPCOLESTR pstrDelimiter, | 
 |             [in] DWORD dwSourceContextCookie, | 
 |             [in] ULONG ulStartingLineNumber, | 
 |             [in] DWORD dwFlags, | 
 |             [out] IDispatch **ppdisp | 
 |     ); | 
 | } | 
 |  | 
 | [ | 
 | object, | 
 | uuid(63CDBCB0-C1B1-11d0-9336-00A0C90DCAA9), | 
 | pointer_default(unique) | 
 | ] | 
 | interface IBindEventHandler : IUnknown | 
 | { | 
 |     HRESULT BindHandler( | 
 |             [in] LPCOLESTR pstrEvent, | 
 |             [in] IDispatch *pdisp | 
 |     ); | 
 | } | 
 |  | 
 | [ | 
 | object, | 
 | uuid(B8DA6310-E19B-11d0-933C-00A0C90DCAA9), | 
 | pointer_default(unique) | 
 | ] | 
 | interface IActiveScriptStats : IUnknown | 
 | { | 
 |     HRESULT GetStat( | 
 |             [in] DWORD stid, | 
 |             [out] ULONG *pluHi, | 
 |             [out] ULONG *pluLo | 
 |     ); | 
 |  | 
 |     HRESULT GetStatEx( | 
 |             [in] REFGUID guid, | 
 |             [out] ULONG *pluHi, | 
 |             [out] ULONG *pluLo | 
 |     ); | 
 |  | 
 |     HRESULT ResetStats(void); | 
 | } |