mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +00:00
[WSHOM.OCX]
* Import from Wine 1.7.27. CORE-8768 #resolve #comment Imported in r65315. CORE-8540 svn path=/trunk/; revision=65315
This commit is contained in:
parent
32019a9b0f
commit
5c37fe1739
13 changed files with 2272 additions and 0 deletions
|
@ -243,6 +243,7 @@ add_subdirectory(ws2_32)
|
||||||
add_subdirectory(ws2_32_new)
|
add_subdirectory(ws2_32_new)
|
||||||
add_subdirectory(ws2help)
|
add_subdirectory(ws2help)
|
||||||
add_subdirectory(wshirda)
|
add_subdirectory(wshirda)
|
||||||
|
add_subdirectory(wshom.ocx)
|
||||||
add_subdirectory(wshtcpip)
|
add_subdirectory(wshtcpip)
|
||||||
add_subdirectory(wsock32)
|
add_subdirectory(wsock32)
|
||||||
add_subdirectory(wtsapi32)
|
add_subdirectory(wtsapi32)
|
||||||
|
|
30
reactos/dll/win32/wshom.ocx/CMakeLists.txt
Normal file
30
reactos/dll/win32/wshom.ocx/CMakeLists.txt
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
|
||||||
|
add_definitions(-D__WINESRC__)
|
||||||
|
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
|
||||||
|
spec2def(wshom.ocx wshom.ocx.spec)
|
||||||
|
add_idl_headers(wshom_idlheader wshom.idl)
|
||||||
|
add_typelib(wshom.idl)
|
||||||
|
|
||||||
|
list(APPEND SOURCE
|
||||||
|
shell.c
|
||||||
|
wshom_main.c
|
||||||
|
wshom_private.h)
|
||||||
|
|
||||||
|
add_library(wshom SHARED
|
||||||
|
${SOURCE}
|
||||||
|
guid.c
|
||||||
|
wshom.rc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/wshom.def)
|
||||||
|
|
||||||
|
list(APPEND wshom_rc_deps
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/wshom.rgs
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/wshom.tlb.rgs
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/wshom.tlb)
|
||||||
|
|
||||||
|
set_source_files_properties(wshom.rc PROPERTIES OBJECT_DEPENDS "${wshom_rc_deps}")
|
||||||
|
set_module_type(wshom win32ocx)
|
||||||
|
target_link_libraries(wshom uuid wine)
|
||||||
|
add_importlibs(wshom oleaut32 ole32 shell32 msvcrt kernel32 ntdll)
|
||||||
|
add_dependencies(wshom stdole2 wshom_idlheader)
|
||||||
|
add_pch(wshom wshom_private.h SOURCE)
|
||||||
|
add_cd_file(TARGET wshom DESTINATION reactos/system32 FOR all)
|
15
reactos/dll/win32/wshom.ocx/guid.c
Normal file
15
reactos/dll/win32/wshom.ocx/guid.c
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
/* DO NOT USE THE PRECOMPILED HEADER FOR THIS FILE! */
|
||||||
|
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
|
#define WIN32_NO_STATUS
|
||||||
|
#define _INC_WINDOWS
|
||||||
|
#define COM_NO_WINDOWS_H
|
||||||
|
|
||||||
|
#include <windef.h>
|
||||||
|
#include <winbase.h>
|
||||||
|
#include <objbase.h>
|
||||||
|
#include <initguid.h>
|
||||||
|
#include <wshom.h>
|
||||||
|
|
||||||
|
/* NO CODE HERE, THIS IS JUST REQUIRED FOR THE GUID DEFINITIONS */
|
1069
reactos/dll/win32/wshom.ocx/shell.c
Normal file
1069
reactos/dll/win32/wshom.ocx/shell.c
Normal file
File diff suppressed because it is too large
Load diff
666
reactos/dll/win32/wshom.ocx/wshom.idl
Normal file
666
reactos/dll/win32/wshom.ocx/wshom.idl
Normal file
|
@ -0,0 +1,666 @@
|
||||||
|
/*
|
||||||
|
* 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma makedep regtypelib
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
4
reactos/dll/win32/wshom.ocx/wshom.ocx.spec
Normal file
4
reactos/dll/win32/wshom.ocx/wshom.ocx.spec
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
@ stdcall -private DllCanUnloadNow()
|
||||||
|
@ stdcall -private DllGetClassObject(ptr ptr ptr)
|
||||||
|
@ stdcall -private DllRegisterServer()
|
||||||
|
@ stdcall -private DllUnregisterServer()
|
27
reactos/dll/win32/wshom.ocx/wshom.rc
Normal file
27
reactos/dll/win32/wshom.ocx/wshom.rc
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
/*
|
||||||
|
* 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <windef.h>
|
||||||
|
|
||||||
|
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||||
|
|
||||||
|
/* @makedep: wshom.rgs */
|
||||||
|
1 WINE_REGISTRY wshom.rgs
|
||||||
|
|
||||||
|
2 WINE_REGISTRY wshom.tlb.rgs
|
||||||
|
1 TYPELIB wshom.tlb
|
34
reactos/dll/win32/wshom.ocx/wshom.rgs
Normal file
34
reactos/dll/win32/wshom.ocx/wshom.rgs
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
HKCR
|
||||||
|
{
|
||||||
|
NoRemove CLSID
|
||||||
|
{
|
||||||
|
'{f935dc22-1cf0-11d0-adb9-00c04fd58a0b}'
|
||||||
|
{
|
||||||
|
'Implemented Categories'
|
||||||
|
{
|
||||||
|
'{40fc6ed5-2438-11cf-a3db-080036f12502}'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'{72c24dd5-d70a-438b-8a42-98424b88afb8}'
|
||||||
|
{
|
||||||
|
'Implemented Categories'
|
||||||
|
{
|
||||||
|
'{40fc6ed5-2438-11cf-a3db-080036f12502}'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'{f935dc26-1cf0-11d0-adb9-00c04fd58a0b}'
|
||||||
|
{
|
||||||
|
'Implemented Categories'
|
||||||
|
{
|
||||||
|
'{40fc6ed5-2438-11cf-a3db-080036f12502}'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'{093ff999-1ea0-4079-9525-9614c3504b74}'
|
||||||
|
{
|
||||||
|
'Implemented Categories'
|
||||||
|
{
|
||||||
|
'{40fc6ed5-2438-11cf-a3db-080036f12502}'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
172
reactos/dll/win32/wshom.ocx/wshom.tlb.rgs
Normal file
172
reactos/dll/win32/wshom.ocx/wshom.tlb.rgs
Normal file
|
@ -0,0 +1,172 @@
|
||||||
|
HKCR
|
||||||
|
{
|
||||||
|
NoRemove Typelib
|
||||||
|
{
|
||||||
|
NoRemove '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}'
|
||||||
|
{
|
||||||
|
'1.0' = s 'Windows Script Host Object Model'
|
||||||
|
{
|
||||||
|
'0' { win32 = s '%MODULE%' }
|
||||||
|
FLAGS = s '0'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
NoRemove Interface
|
||||||
|
{
|
||||||
|
'{53BAD8C1-E718-11CF-893D-00A0C9054228}' = s 'ITextStream'
|
||||||
|
{
|
||||||
|
ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' }
|
||||||
|
}
|
||||||
|
'{C7C3F5A0-88A3-11D0-ABCB-00A0C90FFFC0}' = s 'IDrive'
|
||||||
|
{
|
||||||
|
ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' }
|
||||||
|
}
|
||||||
|
'{C7C3F5A4-88A3-11D0-ABCB-00A0C90FFFC0}' = s 'IFile'
|
||||||
|
{
|
||||||
|
ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' }
|
||||||
|
}
|
||||||
|
'{C7C3F5A5-88A3-11D0-ABCB-00A0C90FFFC0}' = s 'IFileCollection'
|
||||||
|
{
|
||||||
|
ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' }
|
||||||
|
}
|
||||||
|
'{C7C3F5A2-88A3-11D0-ABCB-00A0C90FFFC0}' = s 'IFolder'
|
||||||
|
{
|
||||||
|
ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' }
|
||||||
|
}
|
||||||
|
'{C7C3F5A3-88A3-11D0-ABCB-00A0C90FFFC0}' = s 'IFolderCollection'
|
||||||
|
{
|
||||||
|
ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' }
|
||||||
|
}
|
||||||
|
'{F935DC27-1CF0-11D0-ADB9-00C04FD58A0B}' = s 'IWshCollection'
|
||||||
|
{
|
||||||
|
ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' }
|
||||||
|
}
|
||||||
|
'{F935DC29-1CF0-11D0-ADB9-00C04FD58A0B}' = s 'IWshEnvironment'
|
||||||
|
{
|
||||||
|
ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' }
|
||||||
|
}
|
||||||
|
'{08FED190-BE19-11D3-A28B-00104BD35090}' = s 'IWshExec'
|
||||||
|
{
|
||||||
|
ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' }
|
||||||
|
}
|
||||||
|
'{F935DC23-1CF0-11D0-ADB9-00C04FD58A0B}' = s 'IWshShortcut'
|
||||||
|
{
|
||||||
|
ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' }
|
||||||
|
}
|
||||||
|
'{F935DC21-1CF0-11D0-ADB9-00C04FD58A0B}' = s 'IWshShell'
|
||||||
|
{
|
||||||
|
ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' }
|
||||||
|
}
|
||||||
|
'{24BE5A30-EDFE-11D2-B933-00104B365C9F}' = s 'IWshShell2'
|
||||||
|
{
|
||||||
|
ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' }
|
||||||
|
}
|
||||||
|
'{41904400-BE18-11D3-A28B-00104BD35090}' = s 'IWshShell3'
|
||||||
|
{
|
||||||
|
ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' }
|
||||||
|
}
|
||||||
|
'{24BE5A31-EDFE-11D2-B933-00104B365C9F}' = s 'IWshNetwork2'
|
||||||
|
{
|
||||||
|
ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}' { val Version = s '1.0' }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
NoRemove CLSID
|
||||||
|
{
|
||||||
|
'{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}' = s 'Windows Script Host Shell Object'
|
||||||
|
{
|
||||||
|
InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' }
|
||||||
|
ProgId = s 'WScript.Shell.1'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}'
|
||||||
|
Version = s '1.0'
|
||||||
|
VersionIndependentProgId = s 'WScript.Shell'
|
||||||
|
}
|
||||||
|
'{72C24DD5-D70A-438B-8A42-98424B88AFB8}' = s 'Windows Script Host Shell Object'
|
||||||
|
{
|
||||||
|
InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' }
|
||||||
|
ProgId = s 'WScript.Shell.1'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}'
|
||||||
|
Version = s '1.0'
|
||||||
|
VersionIndependentProgId = s 'WScript.Shell'
|
||||||
|
}
|
||||||
|
'{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}' = s 'Windows Script Host Network Object'
|
||||||
|
{
|
||||||
|
InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' }
|
||||||
|
ProgId = s 'WScript.Network.1'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}'
|
||||||
|
Version = s '1.0'
|
||||||
|
VersionIndependentProgId = s 'WScript.Network'
|
||||||
|
}
|
||||||
|
'{093FF999-1EA0-4079-9525-9614C3504B74}' = s 'Windows Script Host Network Object'
|
||||||
|
{
|
||||||
|
InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' }
|
||||||
|
ProgId = s 'WScript.Network.1'
|
||||||
|
TypeLib = s '{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}'
|
||||||
|
Version = s '1.0'
|
||||||
|
VersionIndependentProgId = s 'WScript.Network'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'WScript.Shell.1' = s 'Windows Script Host Shell Object'
|
||||||
|
{
|
||||||
|
CLSID = s '{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}'
|
||||||
|
}
|
||||||
|
'WScript.Shell' = s 'Windows Script Host Shell Object'
|
||||||
|
{
|
||||||
|
CLSID = s '{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}'
|
||||||
|
CurVer = s 'WScript.Shell.1'
|
||||||
|
}
|
||||||
|
'WScript.Shell.1' = s 'Windows Script Host Shell Object'
|
||||||
|
{
|
||||||
|
CLSID = s '{72C24DD5-D70A-438B-8A42-98424B88AFB8}'
|
||||||
|
}
|
||||||
|
'WScript.Shell' = s 'Windows Script Host Shell Object'
|
||||||
|
{
|
||||||
|
CLSID = s '{72C24DD5-D70A-438B-8A42-98424B88AFB8}'
|
||||||
|
CurVer = s 'WScript.Shell.1'
|
||||||
|
}
|
||||||
|
'WScript.Network.1' = s 'Windows Script Host Network Object'
|
||||||
|
{
|
||||||
|
CLSID = s '{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}'
|
||||||
|
}
|
||||||
|
'WScript.Network' = s 'Windows Script Host Network Object'
|
||||||
|
{
|
||||||
|
CLSID = s '{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}'
|
||||||
|
CurVer = s 'WScript.Network.1'
|
||||||
|
}
|
||||||
|
'WScript.Network.1' = s 'Windows Script Host Network Object'
|
||||||
|
{
|
||||||
|
CLSID = s '{093FF999-1EA0-4079-9525-9614C3504B74}'
|
||||||
|
}
|
||||||
|
'WScript.Network' = s 'Windows Script Host Network Object'
|
||||||
|
{
|
||||||
|
CLSID = s '{093FF999-1EA0-4079-9525-9614C3504B74}'
|
||||||
|
CurVer = s 'WScript.Network.1'
|
||||||
|
}
|
||||||
|
}
|
205
reactos/dll/win32/wshom.ocx/wshom_main.c
Normal file
205
reactos/dll/win32/wshom.ocx/wshom_main.c
Normal file
|
@ -0,0 +1,205 @@
|
||||||
|
/*
|
||||||
|
* 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "wshom_private.h"
|
||||||
|
|
||||||
|
#include <rpcproxy.h>
|
||||||
|
|
||||||
|
static HINSTANCE wshom_instance;
|
||||||
|
|
||||||
|
static ITypeLib *typelib;
|
||||||
|
static ITypeInfo *typeinfos[LAST_tid];
|
||||||
|
|
||||||
|
static REFIID tid_ids[] = {
|
||||||
|
&IID_NULL,
|
||||||
|
&IID_IWshCollection,
|
||||||
|
&IID_IWshEnvironment,
|
||||||
|
&IID_IWshShell3,
|
||||||
|
&IID_IWshShortcut
|
||||||
|
};
|
||||||
|
|
||||||
|
static HRESULT load_typelib(void)
|
||||||
|
{
|
||||||
|
HRESULT hres;
|
||||||
|
ITypeLib *tl;
|
||||||
|
|
||||||
|
hres = LoadRegTypeLib(&LIBID_IWshRuntimeLibrary, 1, 0, LOCALE_SYSTEM_DEFAULT, &tl);
|
||||||
|
if(FAILED(hres)) {
|
||||||
|
ERR("LoadRegTypeLib failed: %08x\n", hres);
|
||||||
|
return hres;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(InterlockedCompareExchangePointer((void**)&typelib, tl, NULL))
|
||||||
|
ITypeLib_Release(tl);
|
||||||
|
return hres;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT get_typeinfo(tid_t tid, ITypeInfo **typeinfo)
|
||||||
|
{
|
||||||
|
HRESULT hres;
|
||||||
|
|
||||||
|
if (!typelib)
|
||||||
|
hres = load_typelib();
|
||||||
|
if (!typelib)
|
||||||
|
return hres;
|
||||||
|
|
||||||
|
if(!typeinfos[tid]) {
|
||||||
|
ITypeInfo *ti;
|
||||||
|
|
||||||
|
hres = ITypeLib_GetTypeInfoOfGuid(typelib, tid_ids[tid], &ti);
|
||||||
|
if(FAILED(hres)) {
|
||||||
|
ERR("GetTypeInfoOfGuid(%s) failed: %08x\n", debugstr_guid(tid_ids[tid]), hres);
|
||||||
|
return hres;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(InterlockedCompareExchangePointer((void**)(typeinfos+tid), ti, NULL))
|
||||||
|
ITypeInfo_Release(ti);
|
||||||
|
}
|
||||||
|
|
||||||
|
*typeinfo = typeinfos[tid];
|
||||||
|
ITypeInfo_AddRef(*typeinfo);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
void release_typelib(void)
|
||||||
|
{
|
||||||
|
unsigned i;
|
||||||
|
|
||||||
|
if(!typelib)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for(i=0; i < sizeof(typeinfos)/sizeof(*typeinfos); i++)
|
||||||
|
if(typeinfos[i])
|
||||||
|
ITypeInfo_Release(typeinfos[i]);
|
||||||
|
|
||||||
|
ITypeLib_Release(typelib);
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv)
|
||||||
|
{
|
||||||
|
*ppv = NULL;
|
||||||
|
|
||||||
|
if(IsEqualGUID(&IID_IUnknown, riid)) {
|
||||||
|
TRACE("(%p)->(IID_IUnknown %p)\n", iface, ppv);
|
||||||
|
*ppv = iface;
|
||||||
|
}else if(IsEqualGUID(&IID_IClassFactory, riid)) {
|
||||||
|
TRACE("(%p)->(IID_IClassFactory %p)\n", iface, ppv);
|
||||||
|
*ppv = iface;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(*ppv) {
|
||||||
|
IUnknown_AddRef((IUnknown*)*ppv);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
FIXME("(%p)->(%s %p)\n", iface, debugstr_guid(riid), ppv);
|
||||||
|
return E_NOINTERFACE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ULONG WINAPI ClassFactory_AddRef(IClassFactory *iface)
|
||||||
|
{
|
||||||
|
TRACE("(%p)\n", iface);
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ULONG WINAPI ClassFactory_Release(IClassFactory *iface)
|
||||||
|
{
|
||||||
|
TRACE("(%p)\n", iface);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL fLock)
|
||||||
|
{
|
||||||
|
TRACE("(%p)->(%x)\n", iface, fLock);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const IClassFactoryVtbl WshShellFactoryVtbl = {
|
||||||
|
ClassFactory_QueryInterface,
|
||||||
|
ClassFactory_AddRef,
|
||||||
|
ClassFactory_Release,
|
||||||
|
WshShellFactory_CreateInstance,
|
||||||
|
ClassFactory_LockServer
|
||||||
|
};
|
||||||
|
|
||||||
|
static IClassFactory WshShellFactory = { &WshShellFactoryVtbl };
|
||||||
|
|
||||||
|
/******************************************************************
|
||||||
|
* DllMain (wshom.ocx.@)
|
||||||
|
*/
|
||||||
|
BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
|
||||||
|
{
|
||||||
|
TRACE("(%p %d %p)\n", hInstDLL, fdwReason, lpv);
|
||||||
|
|
||||||
|
switch(fdwReason)
|
||||||
|
{
|
||||||
|
case DLL_WINE_PREATTACH:
|
||||||
|
return FALSE; /* prefer native version */
|
||||||
|
case DLL_PROCESS_ATTACH:
|
||||||
|
wshom_instance = hInstDLL;
|
||||||
|
DisableThreadLibraryCalls(wshom_instance);
|
||||||
|
break;
|
||||||
|
case DLL_PROCESS_DETACH:
|
||||||
|
if (lpv) break;
|
||||||
|
release_typelib();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* DllGetClassObject (wshom.ocx.@)
|
||||||
|
*/
|
||||||
|
HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
|
||||||
|
{
|
||||||
|
if(IsEqualGUID(&CLSID_WshShell, rclsid)) {
|
||||||
|
TRACE("(CLSID_WshShell %s %p)\n", debugstr_guid(riid), ppv);
|
||||||
|
return IClassFactory_QueryInterface(&WshShellFactory, riid, ppv);
|
||||||
|
}
|
||||||
|
|
||||||
|
FIXME("%s %s %p\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
|
||||||
|
return CLASS_E_CLASSNOTAVAILABLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* DllCanUnloadNow (wshom.ocx.@)
|
||||||
|
*/
|
||||||
|
HRESULT WINAPI DllCanUnloadNow(void)
|
||||||
|
{
|
||||||
|
return S_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* DllRegisterServer (wshom.ocx.@)
|
||||||
|
*/
|
||||||
|
HRESULT WINAPI DllRegisterServer(void)
|
||||||
|
{
|
||||||
|
TRACE("()\n");
|
||||||
|
return __wine_register_resources(wshom_instance);
|
||||||
|
}
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* DllUnregisterServer (wshom.ocx.@)
|
||||||
|
*/
|
||||||
|
HRESULT WINAPI DllUnregisterServer(void)
|
||||||
|
{
|
||||||
|
TRACE("()\n");
|
||||||
|
return __wine_unregister_resources(wshom_instance);
|
||||||
|
}
|
47
reactos/dll/win32/wshom.ocx/wshom_private.h
Normal file
47
reactos/dll/win32/wshom.ocx/wshom_private.h
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
/*
|
||||||
|
* 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _WSHOM_PRIVATE_H_
|
||||||
|
#define _WSHOM_PRIVATE_H_
|
||||||
|
|
||||||
|
#define WIN32_NO_STATUS
|
||||||
|
#define _INC_WINDOWS
|
||||||
|
#define COBJMACROS
|
||||||
|
|
||||||
|
#include <windef.h>
|
||||||
|
#include <winbase.h>
|
||||||
|
#include <wshom.h>
|
||||||
|
|
||||||
|
#include <wine/debug.h>
|
||||||
|
WINE_DEFAULT_DEBUG_CHANNEL(wshom);
|
||||||
|
|
||||||
|
/* typelibs */
|
||||||
|
typedef enum tid_t {
|
||||||
|
NULL_tid,
|
||||||
|
IWshCollection_tid,
|
||||||
|
IWshEnvironment_tid,
|
||||||
|
IWshShell3_tid,
|
||||||
|
IWshShortcut_tid,
|
||||||
|
LAST_tid
|
||||||
|
} tid_t;
|
||||||
|
|
||||||
|
HRESULT get_typeinfo(tid_t tid, ITypeInfo **typeinfo) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
|
HRESULT WINAPI WshShellFactory_CreateInstance(IClassFactory*,IUnknown*,REFIID,void**) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
|
#endif /* _WSHOM_PRIVATE_H_ */
|
|
@ -221,6 +221,7 @@ reactos/dll/win32/winscard # Synced to Wine-1.7.27
|
||||||
reactos/dll/win32/wintrust # Synced to Wine-1.7.27
|
reactos/dll/win32/wintrust # Synced to Wine-1.7.27
|
||||||
reactos/dll/win32/wldap32 # Synced to Wine-1.7.27
|
reactos/dll/win32/wldap32 # Synced to Wine-1.7.27
|
||||||
reactos/dll/win32/wmi # Synced to Wine-1.7.27
|
reactos/dll/win32/wmi # Synced to Wine-1.7.27
|
||||||
|
reactos/dll/win32/wshom.ocx # Synced to Wine-1.7.27
|
||||||
reactos/dll/win32/wtsapi32 # Synced to Wine-1.7.27
|
reactos/dll/win32/wtsapi32 # Synced to Wine-1.7.27
|
||||||
reactos/dll/win32/wuapi # Synced to Wine-1.7.27
|
reactos/dll/win32/wuapi # Synced to Wine-1.7.27
|
||||||
reactos/dll/win32/xinput1_1 # Synced to Wine-1.7.27
|
reactos/dll/win32/xinput1_1 # Synced to Wine-1.7.27
|
||||||
|
|
|
@ -101,6 +101,7 @@ AddReg=Classes
|
||||||
11,,winhttp.dll,1
|
11,,winhttp.dll,1
|
||||||
11,,wininet.dll,2
|
11,,wininet.dll,2
|
||||||
11,,wintrust.dll,1
|
11,,wintrust.dll,1
|
||||||
|
11,,wshom.ocx,1
|
||||||
11,,wuapi.dll,1
|
11,,wuapi.dll,1
|
||||||
11,wbem,wbemdisp.dll,1
|
11,wbem,wbemdisp.dll,1
|
||||||
11,wbem,wbemprox.dll,1
|
11,wbem,wbemprox.dll,1
|
||||||
|
|
Loading…
Reference in a new issue