/* * Copyright 2010 Jacek Caban for CodeWeavers * * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ #pragma makedep typelib #include "ihost_dispid.h" import "oaidl.idl"; [ uuid(60254ca0-953b-11cf-8c96-00aa00b8708c), version(5.6), ] library IHost { importlib("stdole2.tlb"); [ odl, uuid(2cc5a9d1-b1e5-11d3-a286-00104bd35090), dual, oleautomation ] interface IArguments2 : IDispatch { [id(DISPID_VALUE)] HRESULT Item( [in] LONG Index, [out, retval] BSTR *out_Value); [id(IARGUMENTS2_COUNT_DISPID)] HRESULT Count([out, retval] LONG *out_Count); [id(IARGUMENTS2_LENGTH_DISPID), propget] HRESULT length([out, retval] LONG *out_Count); } [ odl, uuid(53bad8c1-e718-11cf-893d-00a0c9054228), hidden, dual, nonextensible, oleautomation ] interface ITextStream : IDispatch { [id(ITEXTSTREAM_LINE_DISPID), propget] HRESULT Line([out, retval] LONG *Line); [id(ITEXTSTREAM_COLUMN_DISPID), propget] HRESULT Column([out, retval] LONG *Column); [id(ITEXTSTREAM_ATENDOFSTREAM_DISPID), propget] HRESULT AtEndOfStream([out, retval] VARIANT_BOOL *EOS); [id(ITEXTSTREAM_ATENDOFLINE_DISPID), propget] HRESULT AtEndOfLine([out, retval] VARIANT_BOOL *EOL); [id(ITEXTSTREAM_READ_DISPID)] HRESULT Read( [in] LONG Characters, [out, retval] BSTR *Text); [id(ITEXTSTREAM_READLINE_DISPID)] HRESULT ReadLine([out, retval] BSTR *Text); [id(ITEXTSTREAM_READALL_DISPID)] HRESULT ReadAll([out, retval] BSTR *Text); [id(ITEXTSTREAM_WRITE_DISPID)] HRESULT Write([in] BSTR Text); [id(ITEXTSTREAM_WRITELINE_DISPID)] HRESULT WriteLine([in, optional, defaultvalue("")] BSTR Text); [id(ITEXTSTREAM_WRITEBLANKLINES_DISPID)] HRESULT WriteBlankLines([in] LONG Lines); [id(ITEXTSTREAM_SKIP_DISPID)] HRESULT Skip([in] LONG Characters); [id(ITEXTSTREAM_SKIPLINE_DISPID)] HRESULT SkipLine(); [id(ITEXTSTREAM_CLOSE_DISPID)] HRESULT Close(); } [ odl, uuid(91afbd1b-5feb-43f5-b028-e2ca960617ec), dual, oleautomation ] interface IHost : IDispatch { [id(IHOST_NAME_DISPID), propget] HRESULT Name([out, retval] BSTR *out_Name); [id(IHOST_APPLICATION_DISPID), propget] HRESULT Application([out, retval] IDispatch **out_Dispatch); [id(IHOST_FULLNAME_DISPID), propget] HRESULT FullName([out, retval] BSTR *out_Path); [id(IHOST_PATH_DISPID), propget] HRESULT Path([out, retval] BSTR* out_Path); [id(IHOST_INTERACTIVE_DISPID), propget] HRESULT Interactive([out, retval] VARIANT_BOOL *out_Interactive); [id(IHOST_INTERACTIVE_DISPID), propput] HRESULT Interactive([in] VARIANT_BOOL out_Interactive); [id(IHOST_QUIT_DISPID)] HRESULT Quit([in, optional, defaultvalue(0)] int ExitCode); [id(IHOST_SCRIPTNAME_DISPID), propget] HRESULT ScriptName([out, retval] BSTR *out_ScriptName); [id(IHOST_SCRIPTFULLNAME_DISPID), propget] HRESULT ScriptFullName([out, retval] BSTR* out_ScriptFullName); [id(IHOST_ARGUMENTS_DISPID), propget] HRESULT Arguments([out, retval] IArguments2 **out_Arguments); [id(IHOST_VERSION_DISPID), propget] HRESULT Version([out, retval] BSTR *out_Version); [id(IHOST_BUILDVERSION_DISPID), propget] HRESULT BuildVersion([out, retval] int *out_Build); [id(IHOST_TIMEOUT_DISPID), propget] HRESULT Timeout([out, retval] LONG *out_Timeout); [id(IHOST_TIMEOUT_DISPID), propput] HRESULT Timeout([in] LONG out_Timeout); [id(IHOST_CREATEOBJECT_DISPID)] HRESULT CreateObject( [in] BSTR ProgID, [in, optional, defaultvalue("")] BSTR Prefix, [out, retval] IDispatch **out_Dispatch); [id(IHOST_ECHO_DISPID), vararg] HRESULT Echo([in] SAFEARRAY(VARIANT) pArgs); [id(IHOST_GETOBJECT_DISPID)] HRESULT GetObject( [in] BSTR Pathname, [in, optional, defaultvalue("")] BSTR ProgID, [in, optional, defaultvalue("")] BSTR Prefix, [out, retval] IDispatch **out_Dispatch); [id(IHOST_DISCONNECTOBJECT_DISPID)] HRESULT DisconnectObject([in] IDispatch *Object); [id(IHOST_SLEEP_DISPID)] HRESULT Sleep([in] LONG Time); [id(IHOST_CONNECTOBJECT_DISPID)] HRESULT ConnectObject( [in] IDispatch *Object, [in] BSTR Prefix); [id(IHOST_STDIN_DISPID), propget] HRESULT StdIn([out, retval] ITextStream **out_ppts); [id(IHOST_STDOUT_DISPID), propget] HRESULT StdOut([out, retval] ITextStream **ppts); [id(IHOST_STDERR_DISPID), propget] HRESULT StdErr([out, retval] ITextStream **ppts); } }