wscript.exe: Added IHost typelib.

This commit is contained in:
Jacek Caban 2010-07-29 14:47:22 +02:00 committed by Alexandre Julliard
parent baef9a7e92
commit 0a4e40ba3d
5 changed files with 268 additions and 0 deletions

1
.gitignore vendored
View File

@ -259,6 +259,7 @@ programs/winetest/*_test.exe
programs/winetest/*_test.rc
programs/winetest/build.rc
programs/winhlp32/macro.lex.yy.c
programs/wscript/ihost.tlb
server/wineserver
server/wineserver-installed
server/wineserver.de.man

View File

@ -7,7 +7,12 @@ APPMODE = -mwindows -municode
IMPORTS = uuid oleaut32 ole32 advapi32
EXTRADEFS = -DWINE_NO_UNICODE_MACROS
RC_SRCS = \
rsrc.rc
C_SRCS = \
main.c
IDL_TLB_SRCS = ihost.idl
@MAKE_PROG_RULES@

186
programs/wscript/ihost.idl Normal file
View File

@ -0,0 +1,186 @@
/*
* 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
*/
#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)]
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);
}
}

View File

@ -0,0 +1,56 @@
/*
* 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
*/
#define IHOST_NAME_DISPID DISPID_VALUE
#define IHOST_APPLICATION_DISPID 100
#define IHOST_FULLNAME_DISPID 101
#define IHOST_PATH_DISPID 102
#define IHOST_INTERACTIVE_DISPID 103
#define IHOST_QUIT_DISPID 200
#define IHOST_SCRIPTNAME_DISPID 1000
#define IHOST_SCRIPTFULLNAME_DISPID 1001
#define IHOST_ARGUMENTS_DISPID 1002
#define IHOST_VERSION_DISPID 1003
#define IHOST_BUILDVERSION_DISPID 1004
#define IHOST_TIMEOUT_DISPID 1005
#define IHOST_STDIN_DISPID 1006
#define IHOST_STDOUT_DISPID 1007
#define IHOST_STDERR_DISPID 1008
#define IHOST_CREATEOBJECT_DISPID 2000
#define IHOST_ECHO_DISPID 2001
#define IHOST_GETOBJECT_DISPID 2002
#define IHOST_DISCONNECTOBJECT_DISPID 2003
#define IHOST_SLEEP_DISPID 2004
#define IHOST_CONNECTOBJECT_DISPID 2005
#define IARGUMENTS2_COUNT_DISPID 1
#define IARGUMENTS2_LENGTH_DISPID 2
#define ITEXTSTREAM_LINE_DISPID 10000
#define ITEXTSTREAM_COLUMN_DISPID -529
#define ITEXTSTREAM_ATENDOFSTREAM_DISPID 10002
#define ITEXTSTREAM_ATENDOFLINE_DISPID 10003
#define ITEXTSTREAM_READ_DISPID 10004
#define ITEXTSTREAM_READLINE_DISPID 10005
#define ITEXTSTREAM_READALL_DISPID 10006
#define ITEXTSTREAM_WRITE_DISPID 10007
#define ITEXTSTREAM_WRITELINE_DISPID 10008
#define ITEXTSTREAM_WRITEBLANKLINES_DISPID 10009
#define ITEXTSTREAM_SKIP_DISPID 10010
#define ITEXTSTREAM_SKIPLINE_DISPID 10011
#define ITEXTSTREAM_CLOSE_DISPID 10012

20
programs/wscript/rsrc.rc Normal file
View File

@ -0,0 +1,20 @@
/*
* 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
*/
/* @makedep: ihost.tlb */
1 TYPELIB ihost.tlb