mirror of https://github.com/lianthony/NT4.0
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.
357 lines
8.8 KiB
357 lines
8.8 KiB
//=--------------------------------------------------------------------------=
|
|
// OleScrpt.h
|
|
//=--------------------------------------------------------------------------=
|
|
// (C) Copyright 1996 Microsoft Corporation. All Rights Reserved.
|
|
//
|
|
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
|
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
|
// PARTICULAR PURPOSE.
|
|
//=--------------------------------------------------------------------------=
|
|
//
|
|
// Declarations for OLE Scripting host applications and script engines.
|
|
//
|
|
|
|
#ifndef __OleScript_h
|
|
#define __OleScript_h
|
|
|
|
#ifndef _OLECTL_H_
|
|
#include <olectl.h>
|
|
#endif
|
|
|
|
/* GUIDs
|
|
********/
|
|
|
|
// {75033F81-7077-11cf-8F20-00805F2CD064}
|
|
DEFINE_GUID(IID_IOleScript, 0x75033f81, 0x7077, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);
|
|
|
|
// {4B0797A2-692C-11cf-8F20-00805F2CD064}
|
|
DEFINE_GUID(IID_IOleScriptParse, 0x4b0797a2, 0x692c, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);
|
|
|
|
// {75033F82-7077-11cf-8F20-00805F2CD064}
|
|
DEFINE_GUID(IID_IOleScriptSite, 0x75033f82, 0x7077, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);
|
|
|
|
// Constants used by OLE Scripting:
|
|
//
|
|
|
|
/* IOleScript::AddNamedItem() input flags */
|
|
|
|
#define SCRIPTITEM_ISPERSISTENT 0x00000001
|
|
#define SCRIPTITEM_ISVISIBLE 0x00000002
|
|
#define SCRIPTITEM_ISSOURCE 0x00000004
|
|
#define SCRIPTITEM_GLOBALMEMBERS 0x00000008
|
|
#define SCRIPTITEM_EXISTS 0x00000080
|
|
#define SCRIPTITEM_MULTIINSTANCE 0x00000100
|
|
#define SCRIPTITEM_CODEONLY 0x00000200
|
|
|
|
#define SCRIPTITEM_ALL_FLAGS (SCRIPTITEM_PERSISTENT \
|
|
SCRIPTITEM_SOURCE | \
|
|
SCRIPTITEM_VISIBLE | \
|
|
SCRIPTITEM_GLOBALMEMBERS | \
|
|
SCRIPTITEM_EXISTS | \
|
|
SCRIPTITEM_MULTIINSTANCE | \
|
|
SCRIPTITEM_CODEONLY)
|
|
|
|
/* IOleScript::AddTypeLib() input flags */
|
|
|
|
#define SCRIPTTYPELIB_ISPERSISTENT 0x00000001
|
|
#define SCRIPTTYPELIB_ISCONTROL 0x00000010
|
|
#define SCRIPTTYPELIB_ALL_FLAGS (SCRIPTTEXT_ISPERSISTENT | \
|
|
SCRIPTTEXT_ISCONTROL)
|
|
|
|
/* IOleScriptParse::AddScriptText() and IOleScriptParse::EvaluateScriptText() input flags */
|
|
|
|
#define SCRIPTTEXT_ISPERSISTENT 0x00000001
|
|
#define SCRIPTTEXT_ISVISIBLE 0x00000002
|
|
#define SCRIPTTEXT_ISEXPRESSION 0x00000020
|
|
#define SCRIPTTEXT_KEEPDEFINITIONS 0x00000040
|
|
#define SCRIPTTEXT_ALLOWEXECUTION 0x00000400
|
|
#define SCRIPTTEXT_ALL_FLAGS (SCRIPTTEXT_ISPERSISTENT | \
|
|
SCRIPTTEXT_ISVISIBLE | \
|
|
SCRIPTTEXT_ISEXPRESSION | \
|
|
SCRIPTTEXT_KEEPDEFINITIONS | \
|
|
SCRIPTTEXT_ALLOWEXECUTION)
|
|
|
|
/* IOleScriptSite::GetItemInfo() input flags */
|
|
|
|
#define SCRIPTINFO_IUNKNOWN 0x00000001
|
|
#define SCRIPTINFO_ITYPEINFO 0x00000002
|
|
#define SCRIPTINFO_ALL_FLAGS (SCRIPTINFO_IUNKNOWN | \
|
|
SCRIPTINFO_ITYPEINFO)
|
|
|
|
/* IOleScriptSite::CreateItem() input flags */
|
|
|
|
#define SCRIPTCREATE_NEW 0x00000001
|
|
#define SCRIPTCREATE_CREATENAMED 0x00000002
|
|
#define SCRIPTCREATE_GETNAMED 0x00000004
|
|
#define SCRIPTCREATE_ALL_FLAGS (SCRIPTCREATE_NEW | \
|
|
SCRIPTCREATE_CREATENAMED | \
|
|
SCRIPTCREATE_GETNAMED)
|
|
|
|
/* IOleScript::Interrupt() Flags */
|
|
|
|
#define SCRIPTINTERRUPT_DEBUG 0x00000001
|
|
#define SCRIPTINTERRUPT_RAISEEXCEPTION 0x00000002
|
|
|
|
/* script state values */
|
|
|
|
typedef enum {
|
|
|
|
SCRIPTSTATE_UNINITIALIZED = 0,
|
|
SCRIPTSTATE_LOADED = 1,
|
|
SCRIPTSTATE_CONNECTED = 2,
|
|
SCRIPTSTATE_DISCONNECTED = 3,
|
|
SCRIPTSTATE_ZOMBIED = 4,
|
|
|
|
} SCRIPTSTATE ;
|
|
|
|
/* script thread state values */
|
|
|
|
typedef enum {
|
|
|
|
SCRIPTTHREADSTATE_NOTINSCRIPT = 0,
|
|
SCRIPTTHREADSTATE_RUNNING = 1,
|
|
SCRIPTTHREADSTATE_BLOCKED = 2,
|
|
|
|
} SCRIPTTHREADSTATE ;
|
|
|
|
/* Thread IDs */
|
|
|
|
typedef DWORD SCRIPTTHREADID;
|
|
|
|
#define SCRIPTTHREADID_CURRENT ((SCRIPTTHREADID)-1)
|
|
#define SCRIPTTHREADID_BASE ((SCRIPTTHREADID)-2)
|
|
#define SCRIPTTHREADID_ALL ((SCRIPTTHREADID)-3)
|
|
|
|
/* Interfaces
|
|
*************/
|
|
|
|
typedef interface IOleComponentManager IOleComponentManager;
|
|
typedef interface IStream IStream;
|
|
typedef interface ITypeInfo ITypeInfo;
|
|
typedef interface IOleScriptSite IOleScriptSite;
|
|
typedef interface IOleScript IOleScript;
|
|
typedef interface IOleScriptParse IOleScriptParse;
|
|
typedef interface IOleScriptDebug IOleScriptDebug;
|
|
typedef interface IOleScriptAuthor IOleScriptAuthor;
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IOleScriptSite
|
|
|
|
DECLARE_INTERFACE_(IOleScriptSite, IUnknown)
|
|
{
|
|
/* IUnknown methods */
|
|
|
|
STDMETHOD(QueryInterface)(THIS_
|
|
/* [in] */ REFIID riid,
|
|
/* [out] */ PVOID *ppvObject
|
|
) PURE;
|
|
|
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
|
|
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
|
|
|
/* IOleScriptSite methods */
|
|
|
|
STDMETHOD(GetLCID)(THIS_
|
|
/* [out] */ LCID *plcid
|
|
) PURE;
|
|
|
|
STDMETHOD(GetItemInfo)(THIS_
|
|
/* [in] */ LPCOLESTR pstrName,
|
|
/* [in] */ DWORD dwReturnMask,
|
|
/* [out] */ IUnknown ** ppiunkItem,
|
|
/* [out] */ ITypeInfo **ppti
|
|
) PURE;
|
|
|
|
STDMETHOD(GetDocVersionString)(THIS_
|
|
/* [out] */ BSTR *pszVersion
|
|
) PURE;
|
|
|
|
STDMETHOD(RequestItems)(THIS) PURE;
|
|
|
|
STDMETHOD(RequestTypeLibs)(THIS) PURE;
|
|
|
|
STDMETHOD(GetComponentManager)(THIS_
|
|
/* [out] */ IOleComponentManager **ppicm
|
|
) PURE;
|
|
|
|
STDMETHOD(EnableModeless)(THIS_
|
|
/* [in] */ BOOL fEnable
|
|
) PURE;
|
|
|
|
STDMETHOD(OnScriptTerminate)(THIS_
|
|
/* [in] */ const VARIANT *pvarResult,
|
|
/* [in] */ const EXCEPINFO *pexcepinfo
|
|
) PURE;
|
|
|
|
STDMETHOD(OnStateChange)(THIS_
|
|
/* [in] */ SCRIPTSTATE ssScriptState
|
|
) PURE;
|
|
|
|
STDMETHOD(OnScriptError)(THIS_
|
|
/* [in] */ const EXCEPINFO *pexcepinfo
|
|
) PURE;
|
|
|
|
STDMETHOD(CreateItem)(THIS_
|
|
/* [in] */ LPCOLESTR pstrName,
|
|
/* [out] */ IUnknown ** ppunkItemNew
|
|
) PURE;
|
|
};
|
|
|
|
typedef IOleScriptSite *PIOleScriptSite;
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IOleScript
|
|
|
|
DECLARE_INTERFACE_(IOleScript, IUnknown)
|
|
{
|
|
/* IUnknown methods */
|
|
|
|
STDMETHOD(QueryInterface)(THIS_
|
|
/* [in] */ REFIID riid,
|
|
/* [out] */ PVOID *ppvObject
|
|
) PURE;
|
|
|
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
|
|
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
|
|
|
/* IOleScript methods */
|
|
|
|
STDMETHOD(SetScriptSite)(THIS_
|
|
/* [in] */ IOleScriptSite *pioss
|
|
) PURE;
|
|
|
|
STDMETHOD(GetScriptSite)(THIS_
|
|
/* [in] */ REFIID iid,
|
|
/* [out] */ VOID **ppvSiteObject
|
|
) PURE;
|
|
|
|
STDMETHOD(SetScriptState)(THIS_
|
|
/* [in] */ SCRIPTSTATE ss
|
|
) PURE;
|
|
|
|
STDMETHOD(GetScriptState)(THIS_
|
|
/* [out] */ SCRIPTSTATE *pssState
|
|
) PURE;
|
|
|
|
STDMETHOD(Close)(THIS) PURE;
|
|
|
|
STDMETHOD(AddNamedItem)(THIS_
|
|
/* [in] */ LPCOLESTR pstrName,
|
|
/* [in] */ DWORD dwFlags
|
|
) PURE;
|
|
|
|
STDMETHOD(RenameItem)(THIS_
|
|
/* [in] */ LPCOLESTR pstrOldName,
|
|
/* [in] */ LPCOLESTR pstrNewName
|
|
) PURE;
|
|
|
|
STDMETHOD(RemoveItem)(THIS_
|
|
/* [in] */ LPCOLESTR pstrName
|
|
) PURE;
|
|
|
|
STDMETHOD(AddTypeLib)(THIS_
|
|
/* [in] */ REFGUID rguidTypeLib,
|
|
/* [in] */ DWORD dwMajor,
|
|
/* [in] */ DWORD dwMinor,
|
|
/* [in] */ DWORD dwFlags
|
|
) PURE;
|
|
|
|
STDMETHOD(RemoveTypeLib)(THIS_
|
|
/* [in] */ REFGUID rguidTypeLib
|
|
) PURE;
|
|
|
|
STDMETHOD(GetExtensibilityObject)(THIS_
|
|
/* [out] */ IDispatch **ppdisp
|
|
) PURE;
|
|
|
|
STDMETHOD(GetScriptMacroObject)(THIS_
|
|
/* [in] */ LPCOLESTR pstrItemName,
|
|
/* [out] */ IDispatch **ppdisp
|
|
) PURE;
|
|
|
|
STDMETHOD(GetCurrentScriptThreadID)(THIS_
|
|
/* [out] */ SCRIPTTHREADID *pstidThread
|
|
) PURE;
|
|
|
|
STDMETHOD(GetScriptThreadID)(THIS_
|
|
/* [in] */ DWORD dwWin32ThreadId,
|
|
/* [out] */ SCRIPTTHREADID *pstidThread
|
|
) PURE;
|
|
|
|
STDMETHOD(GetScriptThreadState)(THIS_
|
|
/* [in] */ SCRIPTTHREADID stidThread,
|
|
/* [out] */ SCRIPTTHREADSTATE *pstsState
|
|
) PURE;
|
|
|
|
STDMETHOD(InterruptScriptThread)(THIS_
|
|
/* [in] */ SCRIPTTHREADID stidThread,
|
|
/* [in] */ const EXCEPINFO *pexcepinfo,
|
|
/* [in] */ DWORD dwFlags
|
|
) PURE;
|
|
|
|
STDMETHOD(Clone)(THIS_
|
|
/* [out] */ IOleScript **ppscript
|
|
) PURE;
|
|
|
|
STDMETHOD(CauseCreateItem)(THIS_
|
|
/* [in] */ LPCOLESTR pstrName,
|
|
/* [in] */ DWORD dwFlags,
|
|
/* [out] */ IUnknown ** ppunkCodeNew
|
|
) PURE;
|
|
|
|
};
|
|
typedef IOleScript *PIOleScript;
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IOleScriptParse
|
|
|
|
DECLARE_INTERFACE_(IOleScriptParse, IUnknown)
|
|
{
|
|
/* IUnknown methods */
|
|
|
|
STDMETHOD(QueryInterface)(THIS_
|
|
/* [in] */ REFIID riid,
|
|
/* [out] */ PVOID *ppvObject
|
|
) PURE;
|
|
|
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
|
|
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
|
|
|
/* IOleScriptParse methods */
|
|
|
|
STDMETHOD(AddScriptlet)(THIS_
|
|
/* [in] */ LPCOLESTR pstrDefaultName,
|
|
/* [in] */ LPCOLESTR pstrCode,
|
|
/* [in] */ LPCOLESTR pstrItemName,
|
|
/* [in] */ LPCOLESTR pstrSubItemName,
|
|
/* [in] */ LPCOLESTR pstrEventName,
|
|
/* [in] */ LPCOLESTR pstrDelimiter,
|
|
/* [in] */ DWORD dwFlags,
|
|
/* [out] */ BSTR * pbstrName,
|
|
/* [out] */ EXCEPINFO * pexcepinfo
|
|
) PURE;
|
|
|
|
STDMETHOD(RemoveScriptlet)(THIS_
|
|
/* [in] */ LPCOLESTR pstrName
|
|
) PURE;
|
|
|
|
STDMETHOD(ParseScriptText)(THIS_
|
|
/* [in] */ LPCOLESTR pstrCode,
|
|
/* [in] */ LPCOLESTR pstrItemName,
|
|
/* [in] */ IUnknown * punkContext,
|
|
/* [in] */ LPCOLESTR pstrDelimiter,
|
|
/* [in] */ DWORD dwFlags,
|
|
/* [out] */ VARIANT * pvarResult,
|
|
/* [out] */ EXCEPINFO * pexcepinfo
|
|
) PURE;
|
|
|
|
};
|
|
|
|
typedef IOleScriptParse *PIOleScriptParse;
|
|
|
|
|
|
#endif // __OleScript_h
|