mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +00:00
[WSHOM_WINETEST]
* Import from Wine 1.7.27. CORE-8768 CORE-8540 svn path=/trunk/; revision=65316
This commit is contained in:
@@ -114,6 +114,7 @@ add_subdirectory(wintrust)
|
||||
add_subdirectory(wlanapi)
|
||||
add_subdirectory(wldap32)
|
||||
add_subdirectory(ws2_32)
|
||||
add_subdirectory(wshom)
|
||||
add_subdirectory(xcopy)
|
||||
add_subdirectory(xinput1_3)
|
||||
add_subdirectory(xmllite)
|
||||
|
||||
@@ -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)
|
||||
@@ -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 }
|
||||
};
|
||||
@@ -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();
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user