Author: akhaldi
Date: Sat Nov 8 10:27:05 2014
New Revision: 65316
URL:
http://svn.reactos.org/svn/reactos?rev=65316&view=rev
Log:
[WSHOM_WINETEST]
* Import from Wine 1.7.27.
CORE-8768 CORE-8540
Added:
trunk/rostests/winetests/wshom/ (with props)
trunk/rostests/winetests/wshom/CMakeLists.txt (with props)
trunk/rostests/winetests/wshom/testlist.c (with props)
trunk/rostests/winetests/wshom/wshom.c (with props)
trunk/rostests/winetests/wshom/wshom.idl (with props)
Modified:
trunk/rostests/winetests/CMakeLists.txt
Modified: trunk/rostests/winetests/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/CMakeLists.txt?…
==============================================================================
--- trunk/rostests/winetests/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/rostests/winetests/CMakeLists.txt [iso-8859-1] Sat Nov 8 10:27:05 2014
@@ -114,6 +114,7 @@
add_subdirectory(wlanapi)
add_subdirectory(wldap32)
add_subdirectory(ws2_32)
+add_subdirectory(wshom)
add_subdirectory(xcopy)
add_subdirectory(xinput1_3)
add_subdirectory(xmllite)
Propchange: trunk/rostests/winetests/wshom/
------------------------------------------------------------------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Sat Nov 8 10:27:05 2014
@@ -0,0 +1,2 @@
+([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))?
+(\d+)
Propchange: trunk/rostests/winetests/wshom/
------------------------------------------------------------------------------
bugtraq:message = See issue #%BUGID% for more details.
Propchange: trunk/rostests/winetests/wshom/
------------------------------------------------------------------------------
bugtraq:url =
http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Added: trunk/rostests/winetests/wshom/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/wshom/CMakeList…
==============================================================================
--- trunk/rostests/winetests/wshom/CMakeLists.txt (added)
+++ trunk/rostests/winetests/wshom/CMakeLists.txt [iso-8859-1] Sat Nov 8 10:27:05 2014
@@ -0,0 +1,8 @@
+
+add_definitions(-DUSE_WINE_TODOS)
+add_idl_headers(wshom_winetest_idlheaders wshom.idl)
+add_executable(wshom_winetest wshom.c testlist.c)
+set_module_type(wshom_winetest win32cui)
+add_importlibs(wshom_winetest oleaut32 ole32 msvcrt kernel32)
+add_dependencies(wshom_winetest stdole2 wshom_winetest_idlheaders)
+add_cd_file(TARGET wshom_winetest DESTINATION reactos/bin FOR all)
Propchange: trunk/rostests/winetests/wshom/CMakeLists.txt
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/rostests/winetests/wshom/testlist.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/wshom/testlist.…
==============================================================================
--- trunk/rostests/winetests/wshom/testlist.c (added)
+++ trunk/rostests/winetests/wshom/testlist.c [iso-8859-1] Sat Nov 8 10:27:05 2014
@@ -0,0 +1,12 @@
+/* Automatically generated by make depend; DO NOT EDIT!! */
+
+#define STANDALONE
+#include <wine/test.h>
+
+extern void func_wshom(void);
+
+const struct test winetest_testlist[] =
+{
+ { "wshom", func_wshom },
+ { 0, 0 }
+};
Propchange: trunk/rostests/winetests/wshom/testlist.c
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/rostests/winetests/wshom/wshom.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/wshom/wshom.c?r…
==============================================================================
--- trunk/rostests/winetests/wshom/wshom.c (added)
+++ trunk/rostests/winetests/wshom/wshom.c [iso-8859-1] Sat Nov 8 10:27:05 2014
@@ -0,0 +1,189 @@
+/*
+ * Copyright 2011 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 WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COBJMACROS
+#define CONST_VTABLE
+
+#include <windef.h>
+#include <winbase.h>
+#include <initguid.h>
+#include <dispex.h>
+#include <wshom.h>
+#include <wine/test.h>
+
+DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
+
+#define EXPECT_HR(hr,hr_exp) \
+ ok(hr == hr_exp, "got 0x%08x, expected 0x%08x\n", hr, hr_exp)
+
+static void test_wshshell(void)
+{
+ static const WCHAR desktopW[] =
{'D','e','s','k','t','o','p',0};
+ static const WCHAR lnk1W[] =
{'f','i','l','e','.','l','n','k',0};
+ static const WCHAR pathW[] =
{'%','P','A','T','H','%',0};
+ static const WCHAR sysW[] =
{'S','Y','S','T','E','M',0};
+ static const WCHAR path2W[] = {'P','A','T','H',0};
+ IWshEnvironment *env;
+ IWshShell3 *sh3;
+ IDispatchEx *dispex;
+ IWshCollection *coll;
+ IDispatch *disp, *shortcut;
+ IUnknown *shell;
+ IFolderCollection *folders;
+ IWshShortcut *shcut;
+ ITypeInfo *ti;
+ HRESULT hr;
+ TYPEATTR *tattr;
+ DISPPARAMS dp;
+ EXCEPINFO ei;
+ VARIANT arg, res;
+ BSTR str, ret;
+ UINT err;
+
+ hr = CoCreateInstance(&CLSID_WshShell, NULL,
CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
+ &IID_IDispatch, (void**)&disp);
+ if(FAILED(hr)) {
+ win_skip("Could not create WshShell object: %08x\n", hr);
+ return;
+ }
+
+ hr = IDispatch_QueryInterface(disp, &IID_IWshShell3, (void**)&shell);
+ EXPECT_HR(hr, S_OK);
+ IDispatch_Release(disp);
+
+ hr = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (void**)&dispex);
+ EXPECT_HR(hr, E_NOINTERFACE);
+
+ hr = IUnknown_QueryInterface(shell, &IID_IWshShell3, (void**)&sh3);
+ EXPECT_HR(hr, S_OK);
+
+ hr = IWshShell3_get_SpecialFolders(sh3, &coll);
+ EXPECT_HR(hr, S_OK);
+
+ hr = IWshCollection_QueryInterface(coll, &IID_IFolderCollection,
(void**)&folders);
+ EXPECT_HR(hr, E_NOINTERFACE);
+
+ hr = IWshCollection_QueryInterface(coll, &IID_IDispatch, (void**)&disp);
+ EXPECT_HR(hr, S_OK);
+
+ hr = IDispatch_GetTypeInfo(disp, 0, 0, &ti);
+ EXPECT_HR(hr, S_OK);
+
+ hr = ITypeInfo_GetTypeAttr(ti, &tattr);
+ EXPECT_HR(hr, S_OK);
+ ok(IsEqualIID(&tattr->guid, &IID_IWshCollection), "got wrong type
guid\n");
+ ITypeInfo_ReleaseTypeAttr(ti, tattr);
+
+ /* try to call Item() with normal IDispatch procedure */
+ str = SysAllocString(desktopW);
+ V_VT(&arg) = VT_BSTR;
+ V_BSTR(&arg) = str;
+ dp.rgvarg = &arg;
+ dp.rgdispidNamedArgs = NULL;
+ dp.cArgs = 1;
+ dp.cNamedArgs = 0;
+ hr = IDispatch_Invoke(disp, DISPID_VALUE, &IID_NULL, 1033, DISPATCH_PROPERTYGET,
&dp, &res, &ei, &err);
+ EXPECT_HR(hr, DISP_E_MEMBERNOTFOUND);
+
+ /* try Item() directly, it returns directory path apparently */
+ V_VT(&res) = VT_EMPTY;
+ hr = IWshCollection_Item(coll, &arg, &res);
+ EXPECT_HR(hr, S_OK);
+ ok(V_VT(&res) == VT_BSTR, "got res type %d\n", V_VT(&res));
+ SysFreeString(str);
+ VariantClear(&res);
+
+ /* CreateShortcut() */
+ str = SysAllocString(lnk1W);
+ hr = IWshShell3_CreateShortcut(sh3, str, &shortcut);
+ EXPECT_HR(hr, S_OK);
+ SysFreeString(str);
+ hr = IDispatch_QueryInterface(shortcut, &IID_IWshShortcut, (void**)&shcut);
+ EXPECT_HR(hr, S_OK);
+
+ hr = IWshShortcut_get_Arguments(shcut, NULL);
+ ok(hr == E_POINTER, "got 0x%08x\n", hr);
+
+ hr = IWshShortcut_get_IconLocation(shcut, NULL);
+ ok(hr == E_POINTER, "got 0x%08x\n", hr);
+
+ IWshShortcut_Release(shcut);
+ IDispatch_Release(shortcut);
+
+ /* ExpandEnvironmentStrings */
+ hr = IWshShell3_ExpandEnvironmentStrings(sh3, NULL, NULL);
+ ok(hr == E_POINTER, "got 0x%08x\n", hr);
+
+ str = SysAllocString(pathW);
+ hr = IWshShell3_ExpandEnvironmentStrings(sh3, str, NULL);
+ ok(hr == E_POINTER, "got 0x%08x\n", hr);
+ SysFreeString(str);
+
+ V_VT(&arg) = VT_BSTR;
+ V_BSTR(&arg) = SysAllocString(sysW);
+ hr = IWshShell3_get_Environment(sh3, &arg, &env);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ VariantClear(&arg);
+
+ hr = IWshEnvironment_get_Item(env, NULL, NULL);
+ ok(hr == E_POINTER, "got 0x%08x\n", hr);
+
+ ret = (BSTR)0x1;
+ hr = IWshEnvironment_get_Item(env, NULL, &ret);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(ret && !*ret, "got %p\n", ret);
+ SysFreeString(ret);
+
+ /* invalid var name */
+ str = SysAllocString(lnk1W);
+ hr = IWshEnvironment_get_Item(env, str, NULL);
+ ok(hr == E_POINTER, "got 0x%08x\n", hr);
+
+ ret = NULL;
+ hr = IWshEnvironment_get_Item(env, str, &ret);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(ret && *ret == 0, "got %s\n", wine_dbgstr_w(ret));
+ SysFreeString(ret);
+ SysFreeString(str);
+
+ /* valid name */
+ str = SysAllocString(path2W);
+ hr = IWshEnvironment_get_Item(env, str, &ret);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(ret && *ret != 0, "got %s\n", wine_dbgstr_w(ret));
+ SysFreeString(ret);
+ SysFreeString(str);
+
+ IWshEnvironment_Release(env);
+
+ IWshCollection_Release(coll);
+ IDispatch_Release(disp);
+ IWshShell3_Release(sh3);
+ IUnknown_Release(shell);
+}
+
+START_TEST(wshom)
+{
+ CoInitialize(NULL);
+
+ test_wshshell();
+
+ CoUninitialize();
+}
Propchange: trunk/rostests/winetests/wshom/wshom.c
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/rostests/winetests/wshom/wshom.idl
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/wshom/wshom.idl…
==============================================================================
--- trunk/rostests/winetests/wshom/wshom.idl (added)
+++ trunk/rostests/winetests/wshom/wshom.idl [iso-8859-1] Sat Nov 8 10:27:05 2014
@@ -0,0 +1,664 @@
+/*
+ * Copyright 2011 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
+ */
+
+import "oaidl.idl";
+cpp_quote("#undef ExpandEnvironmentStrings")
+
+[
+ helpstring("Windows Script Host Object Model"),
+ uuid(f935dc20-1cf0-11d0-adb9-00c04fd58a0b),
+ version(1.0)
+]
+library IWshRuntimeLibrary
+{
+ importlib("stdole2.tlb");
+
+ typedef enum {
+ WshRunning = 0,
+ WshFinished,
+ WshFailed
+ } WshExecStatus;
+
+ typedef enum {
+ UnknownType = 0,
+ Removable,
+ Fixed,
+ Remote,
+ CDRom,
+ RamDisk
+ } DriveTypeConst;
+
+ typedef enum {
+ Normal = 0x000,
+ ReadOnly = 0x001,
+ Hidden = 0x002,
+ System = 0x004,
+ Volume = 0x008,
+ Directory = 0x010,
+ Archive = 0x020,
+ Alias = 0x400,
+ Compressed = 0x800
+ } FileAttribute;
+
+ typedef enum {
+ ForReading = 0x1,
+ ForWriting = 0x2,
+ ForAppending = 0x8
+ } IOMode;
+
+ typedef enum {
+ TristateTrue = -1,
+ TristateFalse = 0,
+ TristateUseDefault = -2,
+ TristateMixed = -2
+ } Tristate;
+
+ interface IFolder;
+ interface IFolderCollection;
+
+ [
+ uuid(53bad8c1-e718-11cf-893d-00a0c9054228),
+ odl,
+ hidden,
+ dual,
+ nonextensible,
+ oleautomation
+ ]
+ interface ITextStream : IDispatch {
+ [id(0x2710), propget]
+ HRESULT Line([out, retval] long* Line);
+
+ [id(0xfffffdef), propget]
+ HRESULT Column([out, retval] long* Column);
+
+ [id(0x2712), propget]
+ HRESULT AtEndOfStream([out, retval] VARIANT_BOOL* EOS);
+
+ [id(0x2713), propget]
+ HRESULT AtEndOfLine([out, retval] VARIANT_BOOL* EOL);
+
+ [id(0x2714)]
+ HRESULT Read([in] long Characters, [out, retval] BSTR* Text);
+
+ [id(0x2715)]
+ HRESULT ReadLine([out, retval] BSTR* Text);
+
+ [id(0x2716)]
+ HRESULT ReadAll([out, retval] BSTR* Text);
+
+ [id(0x2717)]
+ HRESULT Write([in] BSTR Text);
+
+ [id(0x2718)]
+ HRESULT WriteLine([in, defaultvalue("")] BSTR Text);
+
+ [id(0x2719)]
+ HRESULT WriteBlankLines([in] long Lines);
+
+ [id(0x271a)]
+ HRESULT Skip([in] long Characters);
+
+ [id(0x271b)]
+ HRESULT SkipLine();
+
+ [id(0x271c)]
+ HRESULT Close();
+ };
+
+ [
+ uuid(c7c3f5a0-88a3-11d0-abcb-00a0c90fffc0),
+ odl,
+ hidden,
+ dual,
+ nonextensible,
+ oleautomation
+ ]
+ interface IDrive : IDispatch {
+ [id(DISPID_VALUE), propget]
+ HRESULT Path([out, retval] BSTR* path);
+
+ [id(0x2710), propget]
+ HRESULT DriveLetter([out, retval] BSTR* letter);
+
+ [id(0x2711), propget]
+ HRESULT ShareName([out, retval] BSTR* ShareName);
+
+ [id(0x2712), propget]
+ HRESULT DriveType([out, retval] DriveTypeConst* type);
+
+ [id(0x2713), propget]
+ HRESULT RootFolder([out, retval] IFolder** folder);
+
+ [id(0x2715), propget]
+ HRESULT AvailableSpace([out, retval] VARIANT* Avail);
+
+ [id(0x2714), propget]
+ HRESULT FreeSpace([out, retval] VARIANT* pFree);
+
+ [id(0x2716), propget]
+ HRESULT TotalSize([out, retval] VARIANT* Total);
+
+ [id(0x2717), propget]
+ HRESULT VolumeName([out, retval] BSTR* Name);
+
+ [id(0x2717), propput]
+ HRESULT VolumeName([in] BSTR Name);
+
+ [id(0x2718), propget]
+ HRESULT FileSystem([out, retval] BSTR* pFileSystem);
+
+ [id(0x2719), propget]
+ HRESULT SerialNumber([out, retval] long* SerialNumber);
+
+ [id(0x271a), propget]
+ HRESULT IsReady([out, retval] VARIANT_BOOL* pfReady);
+ };
+
+ [
+ uuid(c7c3f5a4-88a3-11d0-abcb-00a0c90fffc0),
+ odl,
+ hidden,
+ dual,
+ nonextensible,
+ oleautomation
+ ]
+ interface IFile : IDispatch {
+ [id(DISPID_VALUE), propget]
+ HRESULT Path([out, retval] BSTR* path);
+
+ [id(0x03e8), propget]
+ HRESULT Name([out, retval] BSTR* Name);
+
+ [id(0x03e8), propput]
+ HRESULT Name([in] BSTR Name);
+
+ [id(0x03ea), propget]
+ HRESULT ShortPath([out, retval] BSTR* path);
+
+ [id(0x03e9), propget]
+ HRESULT ShortName([out, retval] BSTR* Name);
+
+ [id(0x03ec), propget]
+ HRESULT Drive([out, retval] IDrive** drive);
+
+ [id(0x03ed), propget]
+ HRESULT ParentFolder([out, retval] IFolder** folder);
+
+ [id(0x03eb), propget]
+ HRESULT Attributes([out, retval] FileAttribute* attr);
+
+ [id(0x03eb), propput]
+ HRESULT Attributes([in] FileAttribute attr);
+
+ [id(0x03ee), propget]
+ HRESULT DateCreated([out, retval] DATE* date);
+
+ [id(0x03ef), propget]
+ HRESULT DateLastModified([out, retval] DATE* date);
+
+ [id(0x03f0), propget]
+ HRESULT DateLastAccessed([out, retval] DATE* date);
+
+ [id(0x03f1), propget]
+ HRESULT Size([out, retval] VARIANT* Size);
+
+ [id(0x03f2), propget]
+ HRESULT Type([out, retval] BSTR* Type);
+
+ [id(0x04b0)]
+ HRESULT Delete([in, defaultvalue(0)] VARIANT_BOOL Force);
+
+ [id(0x04b2)]
+ HRESULT Copy(
+ [in] BSTR Destination,
+ [in, defaultvalue(-1)] VARIANT_BOOL OverWriteFiles);
+
+ [id(0x04b4)]
+ HRESULT Move([in] BSTR Destination);
+
+ [id(0x044c)]
+ HRESULT OpenAsTextStream(
+ [in, defaultvalue(1)] IOMode IOMode,
+ [in, defaultvalue(0)] Tristate Format,
+ [out, retval] ITextStream** ppts);
+ };
+
+ [
+ uuid(c7c3f5a5-88a3-11d0-abcb-00a0c90fffc0),
+ odl,
+ hidden,
+ dual,
+ nonextensible,
+ oleautomation
+ ]
+ interface IFileCollection : IDispatch {
+ [id(DISPID_VALUE), propget]
+ HRESULT Item(
+ [in] VARIANT Key,
+ [out, retval] IFile** ppfile);
+ [id(DISPID_NEWENUM), propget, restricted, hidden]
+ HRESULT _NewEnum([out, retval] IUnknown** ppenum);
+ [id(1), propget]
+ HRESULT Count([out, retval] long* count);
+ };
+
+ [
+ uuid(c7c3f5a2-88a3-11d0-abcb-00a0c90fffc0),
+ odl,
+ hidden,
+ dual,
+ nonextensible,
+ oleautomation
+ ]
+ interface IFolder : IDispatch {
+ [id(DISPID_VALUE), propget]
+ HRESULT Path([out, retval] BSTR* path);
+
+ [id(0x03e8), propget]
+ HRESULT Name([out, retval] BSTR* name);
+
+ [id(0x03e8), propput]
+ HRESULT Name([in] BSTR name);
+
+ [id(0x03ea), propget]
+ HRESULT ShortPath([out, retval] BSTR* path);
+
+ [id(0x03e9), propget]
+ HRESULT ShortName([out, retval] BSTR* name);
+
+ [id(0x03ec), propget]
+ HRESULT Drive([out, retval] IDrive** drive);
+
+ [id(0x03ed), propget]
+ HRESULT ParentFolder([out, retval] IFolder** folder);
+
+ [id(0x03eb), propget]
+ HRESULT Attributes([out, retval] FileAttribute* attr);
+
+ [id(0x03eb), propput]
+ HRESULT Attributes([in] FileAttribute attr);
+
+ [id(0x03ee), propget]
+ HRESULT DateCreated([out, retval] DATE* date);
+
+ [id(0x03ef), propget]
+ HRESULT DateLastModified([out, retval] DATE* date);
+
+ [id(0x03f0), propget]
+ HRESULT DateLastAccessed([out, retval] DATE* date);
+
+ [id(0x03f2), propget]
+ HRESULT Type([out, retval] BSTR* type);
+
+ [id(0x04b1)]
+ HRESULT Delete([in, defaultvalue(0)] VARIANT_BOOL force);
+
+ [id(0x04b3)]
+ HRESULT Copy(
+ [in] BSTR Destination,
+ [in, defaultvalue(-1)] VARIANT_BOOL OverWriteFiles);
+
+ [id(0x04b5)]
+ HRESULT Move([in] BSTR Destination);
+
+ [id(0x2710), propget]
+ HRESULT IsRootFolder([out, retval] VARIANT_BOOL* root);
+
+ [id(0x03f1), propget]
+ HRESULT Size([out, retval] VARIANT* size);
+
+ [id(0x2711), propget]
+ HRESULT SubFolders([out, retval] IFolderCollection** folders);
+
+ [id(0x2712), propget]
+ HRESULT Files([out, retval] IFileCollection** files);
+
+ [id(0x044d)]
+ HRESULT CreateTextFile(
+ [in] BSTR FileName,
+ [in, defaultvalue(-1)] VARIANT_BOOL Overwrite,
+ [in, defaultvalue(0)] VARIANT_BOOL Unicode,
+ [out, retval] ITextStream** ppts);
+ };
+
+ [
+ uuid(c7c3f5a3-88a3-11d0-abcb-00a0c90fffc0),
+ odl,
+ hidden,
+ dual,
+ nonextensible,
+ oleautomation
+ ]
+ interface IFolderCollection : IDispatch {
+ [id(2)]
+ HRESULT Add(
+ [in] BSTR Name,
+ [out, retval] IFolder** folder);
+
+ [id(DISPID_VALUE), propget]
+ HRESULT Item(
+ [in] VARIANT Key,
+ [out, retval] IFolder** folder);
+
+ [id(DISPID_NEWENUM), propget, restricted, hidden]
+ HRESULT _NewEnum([out, retval] IUnknown** ppenum);
+
+ [id(1), propget]
+ HRESULT Count([out, retval] long* count);
+ };
+
+ [
+ uuid(f935dc27-1cf0-11d0-adb9-00c04fd58a0b),
+ odl,
+ dual,
+ oleautomation
+ ]
+ interface IWshCollection : IDispatch {
+ [id(DISPID_VALUE)]
+ HRESULT Item(
+ [in] VARIANT *Index,
+ [out, retval] VARIANT *out_Value);
+
+ [id(1)]
+ HRESULT Count([out, retval] long *out_Count);
+
+ [id(2), propget]
+ HRESULT length([out, retval] long *out_Count);
+
+ [id(DISPID_NEWENUM)]
+ HRESULT _NewEnum([out, retval] IUnknown *out_Enum);
+ }
+
+ [
+ uuid(f935dc29-1cf0-11d0-adb9-00c04fd58a0b),
+ odl,
+ dual,
+ oleautomation
+ ]
+ interface IWshEnvironment : IDispatch {
+ [id(DISPID_VALUE), propget]
+ HRESULT Item(
+ [in] BSTR Name,
+ [out, retval] BSTR *out_Value);
+
+ [id(DISPID_VALUE), propput]
+ HRESULT Item(
+ [in] BSTR Name,
+ [in] BSTR Value);
+
+ [id(1)]
+ HRESULT Count([out, retval] long *out_Count);
+
+ [id(2), propget]
+ HRESULT length([out, retval] long *out_Count);
+
+ [id(DISPID_NEWENUM)]
+ HRESULT _NewEnum([out, retval] IUnknown **out_Enum);
+
+ [id(0x03e9)]
+ HRESULT Remove([in] BSTR Name);
+ }
+
+ [
+ uuid(08fed190-be19-11d3-a28b-00104bd35090),
+ odl,
+ dual,
+ oleautomation
+ ]
+ interface IWshExec : IDispatch {
+ [id(0x0001), propget]
+ HRESULT Status([out, retval] WshExecStatus* Status);
+
+ [id(0x0003), propget]
+ HRESULT StdIn([out, retval] ITextStream** stream);
+
+ [id(0x0004), propget]
+ HRESULT StdOut([out, retval] ITextStream** stream);
+
+ [id(0x0005), propget]
+ HRESULT StdErr([out, retval] ITextStream** stream);
+
+ [id(0x0006), propget]
+ HRESULT ProcessID([out, retval] long* pid);
+
+ [id(0x0007), propget]
+ HRESULT ExitCode([out, retval] long* ExitCode);
+
+ [id(0x0008)]
+ HRESULT Terminate();
+ };
+
+ [
+ uuid(f935dc23-1cf0-11d0-adb9-00c04fd58a0b),
+ odl,
+ dual,
+ oleautomation
+ ]
+ interface IWshShortcut : IDispatch {
+ [id(DISPID_VALUE), propget]
+ HRESULT FullName([out, retval] BSTR* name);
+
+ [id(0x03e8), propget]
+ HRESULT Arguments([out, retval] BSTR* Arguments);
+
+ [id(0x03e8), propput]
+ HRESULT Arguments([in] BSTR Arguments);
+
+ [id(0x03e9), propget]
+ HRESULT Description([out, retval] BSTR* Description);
+
+ [id(0x03e9), propput]
+ HRESULT Description([in] BSTR Description);
+
+ [id(0x03ea), propget]
+ HRESULT Hotkey([out, retval] BSTR* HotKey);
+
+ [id(0x03ea), propput]
+ HRESULT Hotkey([in] BSTR HotKey);
+
+ [id(0x03eb), propget]
+ HRESULT IconLocation([out, retval] BSTR* IconPath);
+
+ [id(0x03eb), propput]
+ HRESULT IconLocation([in] BSTR IconPath);
+
+ [id(0x03ec), propput]
+ HRESULT RelativePath([in] BSTR rhs);
+
+ [id(0x03ed), propget]
+ HRESULT TargetPath([out, retval] BSTR* Path);
+
+ [id(0x03ed), propput]
+ HRESULT TargetPath([in] BSTR Path);
+
+ [id(0x03ee), propget]
+ HRESULT WindowStyle([out, retval] int* ShowCmd);
+
+ [id(0x03ee), propput]
+ HRESULT WindowStyle([in] int ShowCmd);
+
+ [id(0x03ef), propget]
+ HRESULT WorkingDirectory([out, retval] BSTR* WorkingDirectory);
+
+ [id(0x03ef), propput]
+ HRESULT WorkingDirectory([in] BSTR WorkingDirectory);
+
+ [id(0x07d0), hidden]
+ HRESULT Load([in] BSTR PathLink);
+
+ [id(0x07d1)]
+ HRESULT Save();
+ };
+
+ [
+ uuid(f935dc21-1cf0-11d0-adb9-00c04fd58a0b),
+ odl,
+ dual,
+ oleautomation,
+ hidden
+ ]
+ interface IWshShell : IDispatch {
+ [id(0x0064), propget]
+ HRESULT SpecialFolders([out, retval] IWshCollection** out_Folders);
+
+ [id(0x00c8), propget]
+ HRESULT Environment(
+ [in, optional] VARIANT* Type,
+ [out, retval] IWshEnvironment** out_Env);
+
+ [id(0x03e8)]
+ HRESULT Run(
+ [in] BSTR Command,
+ [in, optional] VARIANT* WindowStyle,
+ [in, optional] VARIANT* WaitOnReturn,
+ [out, retval] int* out_ExitCode);
+
+ [id(0x03e9)]
+ HRESULT Popup(
+ [in] BSTR Text,
+ [in, optional] VARIANT* SecondsToWait,
+ [in, optional] VARIANT* Title,
+ [in, optional] VARIANT* Type,
+ [out, retval] int* out_Button);
+
+ [id(0x03ea)]
+ HRESULT CreateShortcut(
+ [in] BSTR PathLink,
+ [out, retval] IDispatch** out_Shortcut);
+
+ [id(0x03ee)]
+ HRESULT ExpandEnvironmentStrings(
+ [in] BSTR Src,
+ [out, retval] BSTR* out_Dst);
+
+ [id(0x07d0)]
+ HRESULT RegRead(
+ [in] BSTR Name,
+ [out, retval] VARIANT* out_Value);
+
+ [id(0x07d1)]
+ HRESULT RegWrite(
+ [in] BSTR Name,
+ [in] VARIANT* Value,
+ [in, optional] VARIANT* Type);
+
+ [id(0x07d2)]
+ HRESULT RegDelete([in] BSTR Name);
+ };
+
+ [
+ uuid(24be5a30-edfe-11d2-b933-00104b365c9f),
+ odl,
+ dual,
+ oleautomation,
+ hidden
+ ]
+ interface IWshShell2 : IWshShell {
+ [id(0x0bb8)]
+ HRESULT LogEvent(
+ [in] VARIANT* Type,
+ [in] BSTR Message,
+ [in, defaultvalue("")] BSTR Target,
+ [out, retval] VARIANT_BOOL* out_Success);
+
+ [id(0x0bc2)]
+ HRESULT AppActivate(
+ [in] VARIANT* App,
+ [in, optional] VARIANT* Wait,
+ [out, retval] VARIANT_BOOL* out_Success);
+
+ [id(0x0bc3)]
+ HRESULT SendKeys(
+ [in] BSTR Keys,
+ [in, optional] VARIANT* Wait);
+ };
+
+ [
+ uuid(41904400-be18-11d3-a28b-00104bd35090),
+ odl,
+ dual,
+ oleautomation
+ ]
+ interface IWshShell3 : IWshShell2 {
+ [id(0x0bc4)]
+ HRESULT Exec(
+ [in] BSTR Command,
+ [out, retval] IWshExec** out_Exec);
+
+ [id(0x0bc5), propget]
+ HRESULT CurrentDirectory([out, retval] BSTR* out_Directory);
+
+ [id(0x0bc5), propput]
+ HRESULT CurrentDirectory([in] BSTR out_Directory);
+ };
+
+ [
+ uuid(24be5a31-edfe-11d2-b933-00104b365c9f),
+ odl,
+ dual,
+ oleautomation
+ ]
+ interface IWshNetwork2 : IDispatch {
+ [id(0x60020000), propget]
+ HRESULT UserDomain([out, retval] BSTR *out_UserDomain);
+ }
+
+ [
+ helpstring("Windows Script Host Shell Object"),
+ uuid(f935dc22-1cf0-11d0-adb9-00c04fd58a0b),
+ threading(apartment),
+ progid("WScript.Shell.1"),
+ vi_progid("WScript.Shell")
+ ]
+ coclass IWshShell_Class {
+ [default] interface IWshShell3;
+ }
+
+ [
+ helpstring("Windows Script Host Shell Object"),
+ uuid(72c24dd5-d70a-438b-8a42-98424b88afb8),
+ threading(apartment),
+ progid("WScript.Shell.1"),
+ vi_progid("WScript.Shell")
+ ]
+ coclass WshShell {
+ [default] interface IWshShell3;
+ }
+
+ [
+ helpstring("Windows Script Host Network Object"),
+ uuid(f935dc26-1cf0-11d0-adb9-00c04fd58a0b),
+ threading(apartment),
+ progid("WScript.Network.1"),
+ vi_progid("WScript.Network")
+ ]
+ coclass IWshNetwork_Class {
+ [default] interface IWshNetwork2;
+ }
+
+ [
+ helpstring("Windows Script Host Network Object"),
+ uuid(093ff999-1ea0-4079-9525-9614c3504b74),
+ threading(apartment),
+ progid("WScript.Network.1"),
+ vi_progid("WScript.Network")
+ ]
+ coclass WshNetwork {
+ [default] interface IWshNetwork2;
+ }
+}
Propchange: trunk/rostests/winetests/wshom/wshom.idl
------------------------------------------------------------------------------
svn:eol-style = native