310 lines
9.7 KiB
Plaintext
310 lines
9.7 KiB
Plaintext
//+---------------------------------------------------------------------------
|
|
//
|
|
// (C) Copyright 1997 Microsoft Corporation. All Rights Reserved.
|
|
//
|
|
// Contents: Declarations for ActiveX Script Authoring
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
cpp_quote("//=--------------------------------------------------------------------------=")
|
|
cpp_quote("// ActivAut.h")
|
|
cpp_quote("//=--------------------------------------------------------------------------=")
|
|
cpp_quote("// (C) Copyright 1997 Microsoft Corporation. All Rights Reserved.")
|
|
cpp_quote("//")
|
|
cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
|
|
cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
|
|
cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
|
|
cpp_quote("// PARTICULAR PURPOSE.")
|
|
cpp_quote("//=--------------------------------------------------------------------------=")
|
|
cpp_quote("//")
|
|
cpp_quote("#pragma comment(lib,\"uuid.lib\")")
|
|
cpp_quote("//")
|
|
cpp_quote("// Declarations for ActiveX Script Authoring.")
|
|
cpp_quote("//")
|
|
|
|
cpp_quote("")
|
|
cpp_quote("#ifndef __ActivAut_h")
|
|
cpp_quote("#define __ActivAut_h")
|
|
cpp_quote("")
|
|
|
|
#ifndef DO_NO_IMPORTS
|
|
import "ocidl.idl";
|
|
import "oleidl.idl";
|
|
import "oaidl.idl";
|
|
#endif
|
|
|
|
cpp_quote("/* GUIDs")
|
|
cpp_quote(" ********/")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("#ifndef _NO_AUTHOR_GUIDS")
|
|
|
|
cpp_quote("// {0AEE2A92-BCBB-11d0-8C72-00C04FC2B085}")
|
|
cpp_quote("DEFINE_GUID(CATID_ActiveScriptAuthor, 0xaee2a92, 0xbcbb, 0x11d0, 0x8c, 0x72, 0x0, 0xc0, 0x4f, 0xc2, 0xb0, 0x85);")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("// {9C109DA0-7006-11d1-B36C-00A0C911E8B2}")
|
|
cpp_quote("DEFINE_GUID(IID_IActiveScriptAuthor, 0x9c109da0, 0x7006, 0x11d1, 0xb3, 0x6c, 0x00, 0xa0, 0xc9, 0x11, 0xe8, 0xb2);")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("// {0AEE2A94-BCBB-11d0-8C72-00C04FC2B085}")
|
|
cpp_quote("DEFINE_GUID(IID_IScriptNode, 0xaee2a94, 0xbcbb, 0x11d0, 0x8c, 0x72, 0x0, 0xc0, 0x4f, 0xc2, 0xb0, 0x85);")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("// {0AEE2A95-BCBB-11d0-8C72-00C04FC2B085}")
|
|
cpp_quote("DEFINE_GUID(IID_IScriptEntry, 0xaee2a95, 0xbcbb, 0x11d0, 0x8c, 0x72, 0x0, 0xc0, 0x4f, 0xc2, 0xb0, 0x85);")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("// {0AEE2A96-BCBB-11d0-8C72-00C04FC2B085}")
|
|
cpp_quote("DEFINE_GUID(IID_IScriptScriptlet, 0xaee2a96, 0xbcbb, 0x11d0, 0x8c, 0x72, 0x0, 0xc0, 0x4f, 0xc2, 0xb0, 0x85);")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("// {7E2D4B70-BD9A-11d0-9336-00A0C90DCAA9}")
|
|
cpp_quote("DEFINE_GUID(IID_IActiveScriptAuthorProcedure, 0x7e2d4b70, 0xbd9a, 0x11d0, 0x93, 0x36, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("#endif // _NO_AUTHOR_GUIDS")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("/* Interfaces")
|
|
cpp_quote(" *************/")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("")
|
|
cpp_quote("// Output flags for GetLanguageFlags")
|
|
cpp_quote("const DWORD fasaPreferInternalHandler = 0x0001;")
|
|
cpp_quote("const DWORD fasaSupportInternalHandler = 0x0002;")
|
|
cpp_quote("const DWORD fasaCaseSensitive = 0x0004;")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("// Flags for statement completion")
|
|
cpp_quote("const DWORD SCRIPT_CMPL_NOLIST = 0x0000;")
|
|
cpp_quote("const DWORD SCRIPT_CMPL_MEMBERLIST = 0x0001;")
|
|
cpp_quote("const DWORD SCRIPT_CMPL_ENUMLIST = 0x0002;")
|
|
cpp_quote("const DWORD SCRIPT_CMPL_PARAMTIP = 0x0004;")
|
|
cpp_quote("const DWORD SCRIPT_CMPL_GLOBALLIST = 0x0008;")
|
|
cpp_quote("")
|
|
cpp_quote("const DWORD SCRIPT_CMPL_ENUM_TRIGGER = 0x0001;")
|
|
cpp_quote("const DWORD SCRIPT_CMPL_MEMBER_TRIGGER = 0x0002;")
|
|
cpp_quote("const DWORD SCRIPT_CMPL_PARAM_TRIGGER = 0x0003;")
|
|
cpp_quote("const DWORD SCRIPT_CMPL_COMMIT = 0x0004;")
|
|
cpp_quote("")
|
|
cpp_quote("// Flags for getting attributes")
|
|
cpp_quote("const DWORD GETATTRTYPE_NORMAL = 0x0000;")
|
|
cpp_quote("const DWORD GETATTRTYPE_DEPSCAN = 0x0001;")
|
|
cpp_quote("")
|
|
cpp_quote("// GETATTRFLAG_THIS can be used with either GETATTRTYPE_NORMAL or GETATTRTYPE_DEPSCAN")
|
|
cpp_quote("const DWORD GETATTRFLAG_THIS = 0x0100;")
|
|
cpp_quote("const DWORD GETATTRFLAG_HUMANTEXT = 0x8000;")
|
|
cpp_quote("")
|
|
cpp_quote("// When the GETATTR_LOCALIZE flag is set the following bit will be")
|
|
cpp_quote("// set for source attributes that should be considered localized")
|
|
cpp_quote("const DWORD SOURCETEXT_ATTR_HUMANTEXT = 0x8000;")
|
|
cpp_quote("")
|
|
cpp_quote("// Valid attributes returned for GETATTR_DEPSCAN")
|
|
cpp_quote("const DWORD SOURCETEXT_ATTR_IDENTIFIER = 0x0100;")
|
|
cpp_quote("const DWORD SOURCETEXT_ATTR_MEMBERLOOKUP = 0x0200;")
|
|
cpp_quote("")
|
|
cpp_quote("// When the GETATTRFLAG_THIS flag is set the following bit will be")
|
|
cpp_quote("// set for the this pointer (JS) or me pointer (VBS)")
|
|
cpp_quote("const DWORD SOURCETEXT_ATTR_THIS = 0x0400;")
|
|
|
|
interface IActiveScriptAuthor;
|
|
interface IScriptNode;
|
|
interface IScriptEntry;
|
|
interface IScriptScriptlet;
|
|
|
|
typedef WORD SOURCE_TEXT_ATTR;
|
|
|
|
[
|
|
uuid(0AEE2A94-BCBB-11d0-8C72-00C04FC2B085),
|
|
pointer_default(unique)
|
|
]
|
|
interface IScriptNode : IUnknown
|
|
{
|
|
HRESULT Alive(void);
|
|
HRESULT Delete(void);
|
|
|
|
HRESULT GetParent([out] IScriptNode **ppsnParent);
|
|
HRESULT GetIndexInParent([out] ULONG *pisn);
|
|
|
|
HRESULT GetCookie([out] DWORD *pdwCookie);
|
|
|
|
HRESULT GetNumberOfChildren([out] ULONG *pcsn);
|
|
HRESULT GetChild([in] ULONG isn, [out] IScriptNode **ppsn);
|
|
|
|
HRESULT GetLanguage([out] BSTR *pbstr);
|
|
|
|
HRESULT CreateChildEntry(
|
|
[in] ULONG isn,
|
|
[in] DWORD dwCookie,
|
|
[in] LPCOLESTR pszDelimiter,
|
|
[out] IScriptEntry **ppse);
|
|
HRESULT CreateChildHandler(
|
|
[in] LPCOLESTR pszDefaultName,
|
|
[in, size_is(cpszNames)] LPCOLESTR *prgpszNames,
|
|
[in] ULONG cpszNames,
|
|
[in] LPCOLESTR pszEvent,
|
|
[in] LPCOLESTR pszDelimiter,
|
|
[in] ITypeInfo* ptiSignature,
|
|
[in] ULONG iMethodSignature,
|
|
[in] ULONG isn,
|
|
[in] DWORD dwCookie,
|
|
[out] IScriptEntry **ppse);
|
|
}
|
|
|
|
|
|
[
|
|
uuid(0AEE2A95-BCBB-11d0-8C72-00C04FC2B085),
|
|
pointer_default(unique)
|
|
]
|
|
interface IScriptEntry : IScriptNode
|
|
{
|
|
HRESULT GetText([out] BSTR *pbstr);
|
|
HRESULT SetText([in] LPCOLESTR psz);
|
|
|
|
HRESULT GetBody([out] BSTR *pbstr);
|
|
HRESULT SetBody([in] LPCOLESTR psz);
|
|
|
|
HRESULT GetName([out] BSTR *pbstr);
|
|
HRESULT SetName([in] LPCOLESTR psz);
|
|
|
|
HRESULT GetItemName([out] BSTR *pbstr);
|
|
HRESULT SetItemName([in] LPCOLESTR psz);
|
|
|
|
HRESULT GetSignature([out] ITypeInfo **ppti, [out] ULONG *piMethod);
|
|
HRESULT SetSignature([in] ITypeInfo *pti, [in] ULONG iMethod);
|
|
|
|
HRESULT GetRange([out] ULONG *pichMin, [out] ULONG *pcch);
|
|
}
|
|
|
|
|
|
[
|
|
uuid(0AEE2A96-BCBB-11d0-8C72-00C04FC2B085),
|
|
pointer_default(unique)
|
|
]
|
|
interface IScriptScriptlet : IScriptEntry
|
|
{
|
|
HRESULT GetSubItemName([out] BSTR *pbstr);
|
|
HRESULT SetSubItemName([in] LPCOLESTR psz);
|
|
|
|
HRESULT GetEventName([out] BSTR *pbstr);
|
|
HRESULT SetEventName([in] LPCOLESTR psz);
|
|
|
|
HRESULT GetSimpleEventName([out] BSTR *pbstr);
|
|
HRESULT SetSimpleEventName([in] LPCOLESTR psz);
|
|
}
|
|
|
|
|
|
[
|
|
uuid(9C109DA0-7006-11d1-B36C-00A0C911E8B2),
|
|
pointer_default(unique)
|
|
]
|
|
interface IActiveScriptAuthor : IUnknown
|
|
{
|
|
HRESULT AddNamedItem(
|
|
[in] LPCOLESTR pszName,
|
|
[in] DWORD dwFlags,
|
|
[in] IDispatch *pdisp);
|
|
|
|
HRESULT AddScriptlet(
|
|
[in] LPCOLESTR pszDefaultName,
|
|
[in] LPCOLESTR pszCode,
|
|
[in] LPCOLESTR pszItemName,
|
|
[in] LPCOLESTR pszSubItemName,
|
|
[in] LPCOLESTR pszEventName,
|
|
[in] LPCOLESTR pszDelimiter,
|
|
[in] DWORD dwCookie,
|
|
[in] DWORD dwFlags);
|
|
|
|
HRESULT ParseScriptText(
|
|
[in] LPCOLESTR pszCode,
|
|
[in] LPCOLESTR pszItemName,
|
|
[in] LPCOLESTR pszDelimiter,
|
|
[in] DWORD dwCookie,
|
|
[in] DWORD dwFlags);
|
|
|
|
HRESULT GetScriptTextAttributes(
|
|
[in, size_is(cch)] LPCOLESTR pszCode,
|
|
[in] ULONG cch,
|
|
[in] LPCOLESTR pszDelimiter,
|
|
[in] DWORD dwFlags,
|
|
[in, out, size_is(cch)] SOURCE_TEXT_ATTR *pattr);
|
|
|
|
HRESULT GetScriptletTextAttributes(
|
|
[in, size_is(cch)] LPCOLESTR pszCode,
|
|
[in] ULONG cch,
|
|
[in] LPCOLESTR pszDelimiter,
|
|
[in] DWORD dwFlags,
|
|
[in, out, size_is(cch)] SOURCE_TEXT_ATTR *pattr);
|
|
|
|
HRESULT GetRoot([out] IScriptNode **ppsp);
|
|
|
|
HRESULT GetLanguageFlags([out] DWORD *pgrfasa);
|
|
|
|
HRESULT GetEventHandler(
|
|
[in] IDispatch* pdisp,
|
|
[in] LPCOLESTR pszItem,
|
|
[in] LPCOLESTR pszSubItem,
|
|
[in] LPCOLESTR pszEvent,
|
|
[out] IScriptEntry **ppse);
|
|
|
|
HRESULT RemoveNamedItem(
|
|
[in] LPCOLESTR pszName);
|
|
|
|
HRESULT AddTypeLib(
|
|
[in] REFGUID rguidTypeLib,
|
|
[in] DWORD dwMajor,
|
|
[in] DWORD dwMinor,
|
|
[in] DWORD dwFlags);
|
|
|
|
HRESULT RemoveTypeLib(
|
|
[in] REFGUID rguidTypeLib,
|
|
[in] DWORD dwMajor,
|
|
[in] DWORD dwMinor);
|
|
|
|
// Statement completion functions
|
|
|
|
HRESULT GetChars(
|
|
[in] DWORD fRequestedList, // The list of characters requested
|
|
[out] BSTR * pbstrChars); // The characters for this flag
|
|
|
|
HRESULT GetInfoFromContext(
|
|
[in] LPCOLESTR pszCode, // The text from the block that is being edited.
|
|
[in] ULONG cchCode, // The length of the code block
|
|
[in] ULONG ichCurrentPosition, // Offset from the beginning of the block
|
|
[in] DWORD dwListTypesRequested, // The type of list requested
|
|
[out] DWORD * pdwListTypesProvided, // The type of list provided
|
|
[out] ULONG * pichListAnchorPosition, // The offset of the anchor position for the list
|
|
[out] ULONG * pichFuncAnchorPosition, // The offset of the anchor position for a function call
|
|
[out] MEMBERID * pmemid, // The memid of the function for a param tip.
|
|
[out] LONG * piCurrentParameter, // The index of the current parameter, -1 for symbol
|
|
[out] IUnknown * * ppunk); // The information from which to build the list
|
|
|
|
HRESULT IsCommitChar(
|
|
[in] OLECHAR ch, // The character that might be a commit char
|
|
[out] BOOL * pfcommit);
|
|
}
|
|
|
|
|
|
[
|
|
uuid(7E2D4B70-BD9A-11d0-9336-00A0C90DCAA9),
|
|
pointer_default(unique)
|
|
]
|
|
interface IActiveScriptAuthorProcedure : IUnknown
|
|
{
|
|
HRESULT ParseProcedureText(
|
|
[in] LPCOLESTR pszCode,
|
|
[in] LPCOLESTR pszFormalParams,
|
|
[in] LPCOLESTR pszProcedureName,
|
|
[in] LPCOLESTR pszItemName,
|
|
[in] LPCOLESTR pszDelimiter,
|
|
[in] DWORD dwCookie,
|
|
[in] DWORD dwFlags,
|
|
[in] IDispatch *pdispFor);
|
|
}
|
|
|
|
cpp_quote("")
|
|
cpp_quote("#endif // __ActivAut_h")
|
|
cpp_quote("")
|