//+--------------------------------------------------------------------------- // // (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("")