home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tricks of the Windows Gam…ming Gurus (2nd Edition)
/
Disc2.iso
/
vc98
/
include
/
olescrpt.h
< prev
next >
Wrap
C/C++ Source or Header
|
1998-04-25
|
9KB
|
358 lines
//=--------------------------------------------------------------------------=
// 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