blob: a89b3fcb8aa47b34a35353cf3a5132777ae6f37b [file] [log] [blame]
/*
* 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, optional, 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, optional, defaultvalue(0)] VARIANT_BOOL Force);
[id(0x04b2)]
HRESULT Copy(
[in] BSTR Destination,
[in, optional, defaultvalue(-1)] VARIANT_BOOL OverWriteFiles);
[id(0x04b4)]
HRESULT Move([in] BSTR Destination);
[id(0x044c)]
HRESULT OpenAsTextStream(
[in, optional, defaultvalue(1)] IOMode IOMode,
[in, optional, 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, optional, defaultvalue(0)] VARIANT_BOOL force);
[id(0x04b3)]
HRESULT Copy(
[in] BSTR Destination,
[in, optional, 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, optional, defaultvalue(-1)] VARIANT_BOOL Overwrite,
[in, optional, 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 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);
[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, optional, 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;
}
}