1/* 2 * Copyright 2010 Jacek Caban for CodeWeavers 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 */ 18 19#pragma makedep typelib 20 21#include "ihost_dispid.h" 22 23import "oaidl.idl"; 24 25[ 26 uuid(60254ca0-953b-11cf-8c96-00aa00b8708c), 27 version(5.6), 28] 29library IHost 30{ 31 importlib("stdole2.tlb"); 32 33 [ 34 odl, 35 uuid(2cc5a9d1-b1e5-11d3-a286-00104bd35090), 36 dual, 37 oleautomation 38 ] 39 interface IArguments2 : IDispatch { 40 [id(DISPID_VALUE)] 41 HRESULT Item( 42 [in] LONG Index, 43 [out, retval] BSTR *out_Value); 44 45 [id(IARGUMENTS2_COUNT_DISPID)] 46 HRESULT Count([out, retval] LONG *out_Count); 47 48 [id(IARGUMENTS2_LENGTH_DISPID), propget] 49 HRESULT length([out, retval] LONG *out_Count); 50 } 51 52 [ 53 odl, 54 uuid(53bad8c1-e718-11cf-893d-00a0c9054228), 55 hidden, 56 dual, 57 nonextensible, 58 oleautomation 59 ] 60 interface ITextStream : IDispatch { 61 [id(ITEXTSTREAM_LINE_DISPID), propget] 62 HRESULT Line([out, retval] LONG *Line); 63 64 [id(ITEXTSTREAM_COLUMN_DISPID), propget] 65 HRESULT Column([out, retval] LONG *Column); 66 67 [id(ITEXTSTREAM_ATENDOFSTREAM_DISPID), propget] 68 HRESULT AtEndOfStream([out, retval] VARIANT_BOOL *EOS); 69 70 [id(ITEXTSTREAM_ATENDOFLINE_DISPID), propget] 71 HRESULT AtEndOfLine([out, retval] VARIANT_BOOL *EOL); 72 73 [id(ITEXTSTREAM_READ_DISPID)] 74 HRESULT Read( 75 [in] LONG Characters, 76 [out, retval] BSTR *Text); 77 78 [id(ITEXTSTREAM_READLINE_DISPID)] 79 HRESULT ReadLine([out, retval] BSTR *Text); 80 81 [id(ITEXTSTREAM_READALL_DISPID)] 82 HRESULT ReadAll([out, retval] BSTR *Text); 83 84 [id(ITEXTSTREAM_WRITE_DISPID)] 85 HRESULT Write([in] BSTR Text); 86 87 [id(ITEXTSTREAM_WRITELINE_DISPID)] 88 HRESULT WriteLine([in, optional, defaultvalue("")] BSTR Text); 89 90 [id(ITEXTSTREAM_WRITEBLANKLINES_DISPID)] 91 HRESULT WriteBlankLines([in] LONG Lines); 92 93 [id(ITEXTSTREAM_SKIP_DISPID)] 94 HRESULT Skip([in] LONG Characters); 95 96 [id(ITEXTSTREAM_SKIPLINE_DISPID)] 97 HRESULT SkipLine(); 98 99 [id(ITEXTSTREAM_CLOSE_DISPID)] 100 HRESULT Close(); 101 } 102 103 [ 104 odl, 105 uuid(91afbd1b-5feb-43f5-b028-e2ca960617ec), 106 dual, 107 oleautomation 108 ] 109 interface IHost : IDispatch { 110 [id(IHOST_NAME_DISPID), propget] 111 HRESULT Name([out, retval] BSTR *out_Name); 112 113 [id(IHOST_APPLICATION_DISPID), propget] 114 HRESULT Application([out, retval] IDispatch **out_Dispatch); 115 116 [id(IHOST_FULLNAME_DISPID), propget] 117 HRESULT FullName([out, retval] BSTR *out_Path); 118 119 [id(IHOST_PATH_DISPID), propget] 120 HRESULT Path([out, retval] BSTR* out_Path); 121 122 [id(IHOST_INTERACTIVE_DISPID), propget] 123 HRESULT Interactive([out, retval] VARIANT_BOOL *out_Interactive); 124 125 [id(IHOST_INTERACTIVE_DISPID), propput] 126 HRESULT Interactive([in] VARIANT_BOOL out_Interactive); 127 128 [id(IHOST_QUIT_DISPID)] 129 HRESULT Quit([in, optional, defaultvalue(0)] int ExitCode); 130 131 [id(IHOST_SCRIPTNAME_DISPID), propget] 132 HRESULT ScriptName([out, retval] BSTR *out_ScriptName); 133 134 [id(IHOST_SCRIPTFULLNAME_DISPID), propget] 135 HRESULT ScriptFullName([out, retval] BSTR* out_ScriptFullName); 136 137 [id(IHOST_ARGUMENTS_DISPID), propget] 138 HRESULT Arguments([out, retval] IArguments2 **out_Arguments); 139 140 [id(IHOST_VERSION_DISPID), propget] 141 HRESULT Version([out, retval] BSTR *out_Version); 142 143 [id(IHOST_BUILDVERSION_DISPID), propget] 144 HRESULT BuildVersion([out, retval] int *out_Build); 145 146 [id(IHOST_TIMEOUT_DISPID), propget] 147 HRESULT Timeout([out, retval] LONG *out_Timeout); 148 149 [id(IHOST_TIMEOUT_DISPID), propput] 150 HRESULT Timeout([in] LONG out_Timeout); 151 152 [id(IHOST_CREATEOBJECT_DISPID)] 153 HRESULT CreateObject( 154 [in] BSTR ProgID, 155 [in, optional, defaultvalue("")] BSTR Prefix, 156 [out, retval] IDispatch **out_Dispatch); 157 158 [id(IHOST_ECHO_DISPID), vararg] 159 HRESULT Echo([in] SAFEARRAY(VARIANT) pArgs); 160 161 [id(IHOST_GETOBJECT_DISPID)] 162 HRESULT GetObject( 163 [in] BSTR Pathname, 164 [in, optional, defaultvalue("")] BSTR ProgID, 165 [in, optional, defaultvalue("")] BSTR Prefix, 166 [out, retval] IDispatch **out_Dispatch); 167 168 [id(IHOST_DISCONNECTOBJECT_DISPID)] 169 HRESULT DisconnectObject([in] IDispatch *Object); 170 171 [id(IHOST_SLEEP_DISPID)] 172 HRESULT Sleep([in] LONG Time); 173 174 [id(IHOST_CONNECTOBJECT_DISPID)] 175 HRESULT ConnectObject( 176 [in] IDispatch *Object, 177 [in] BSTR Prefix); 178 179 [id(IHOST_STDIN_DISPID), propget] 180 HRESULT StdIn([out, retval] ITextStream **out_ppts); 181 182 [id(IHOST_STDOUT_DISPID), propget] 183 HRESULT StdOut([out, retval] ITextStream **ppts); 184 185 [id(IHOST_STDERR_DISPID), propget] 186 HRESULT StdErr([out, retval] ITextStream **ppts); 187 } 188} 189