/* * 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 header 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] DWORD *pid); [id(0x0007), propget] HRESULT ExitCode([out, retval] DWORD *code); [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] DWORD* 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; } [ uuid(08fed191-be19-11d3-a28b-00104bd35090), threading(apartment) ] coclass WshExec { [default] interface IWshExec; } }