/* * Copyright (C) 2012 Alistair Leslie-Hughes * * 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 "unknwn.idl"; import "objidl.idl"; import "oaidl.idl"; cpp_quote("#ifdef WINE_NO_UNICODE_MACROS") cpp_quote("#undef CopyFile") cpp_quote("#undef DeleteFile") cpp_quote("#undef MoveFile") cpp_quote("#endif") [ uuid(420B2830-E718-11CF-893D-00A0C9054228), version(1.0) ] library Scripting { importlib("stdole2.tlb"); interface IDictionary; interface IDrive; interface IDriveCollection; interface IFile; interface IFileCollection; interface IFileSystem; interface IFileSystem3; interface IFolder; interface IFolderCollection; interface IScriptEncoder; interface ITextStream; typedef enum CompareMethod { BinaryCompare = 0, TextCompare = 1, DatabaseCompare = 2 } CompareMethod; typedef enum IOMode { ForReading = 1, ForWriting = 2, ForAppending = 8 } IOMode; typedef enum Tristate { TristateTrue = 0xffffffff, TristateFalse = 0, TristateUseDefault = 0xfffffffe, TristateMixed = 0xfffffffe } Tristate; typedef enum FileAttribute { Normal = 0, ReadOnly = 1, Hidden = 2, System = 4, Volume = 8, Directory = 16, Archive = 32, Alias = 1024, Compressed = 2048 } FileAttribute; typedef enum SpecialFolderConst { WindowsFolder = 0, SystemFolder = 1, TemporaryFolder = 2 } SpecialFolderConst; typedef enum DriveTypeConst { UnknownType = 0, Removable = 1, Fixed = 2, Remote = 3, CDRom = 4, RamDisk = 5 } DriveTypeConst; typedef enum StandardStreamTypes { StdIn = 0, StdOut = 1, StdErr = 2 } StandardStreamTypes; [ odl, uuid(42C642C1-97E1-11CF-978F-00A02463E06F), hidden, dual, oleautomation ] interface IDictionary : IDispatch { [id(00000000), propputref] HRESULT Item([in] VARIANT* Key, [in] VARIANT* pRetItem); [id(00000000), propput] HRESULT Item([in] VARIANT* Key, [in] VARIANT* pRetItem); [id(00000000), propget] HRESULT Item([in] VARIANT* Key, [out, retval] VARIANT* pRetItem); [id(0x00000001)] HRESULT Add([in] VARIANT* Key, [in] VARIANT* Item); [id(0x00000002), propget] HRESULT Count([out, retval] long* pCount); [id(0x00000003)] HRESULT Exists([in] VARIANT* Key, [out, retval] VARIANT_BOOL* pExists); [id(0x00000004)] HRESULT Items([out, retval] VARIANT* pItemsArray); [id(0x00000005), propput] HRESULT Key([in] VARIANT* Key, [in] VARIANT* rhs); [id(0x00000006)] HRESULT Keys([out, retval] VARIANT* pKeysArray); [id(0x00000007)] HRESULT Remove([in] VARIANT* Key); [id(0x00000008)] HRESULT RemoveAll(); [id(0x00000009), propput] HRESULT CompareMode([in] CompareMethod pcomp); [id(0x00000009), propget] HRESULT CompareMode([out, retval] CompareMethod* pcomp); [id(DISPID_NEWENUM), restricted] HRESULT _NewEnum([out, retval] IUnknown** ppunk); [id(0x0000000a), propget, hidden] HRESULT HashVal([in] VARIANT* Key, [out, retval] VARIANT* HashVal); } [ odl, uuid(0AB5A3D0-E5B6-11D0-ABF5-00A0C90FFFC0), hidden, dual, nonextensible, oleautomation ] interface IFileSystem : IDispatch { [id(0x0000271a), propget] HRESULT Drives([out, retval] IDriveCollection** ppdrives); [id(0x00002710)] HRESULT BuildPath([in] BSTR Path, [in] BSTR Name, [out, retval] BSTR* pbstrResult); [id(0x00002714)] HRESULT GetDriveName([in] BSTR Path, [out, retval] BSTR* pbstrResult); [id(0x00002715)] HRESULT GetParentFolderName([in] BSTR Path, [out, retval] BSTR* pbstrResult); [id(0x00002716)] HRESULT GetFileName([in] BSTR Path, [out, retval] BSTR* pbstrResult); [id(0x00002717)] HRESULT GetBaseName([in] BSTR Path, [out, retval] BSTR* pbstrResult); [id(0x00002718)] HRESULT GetExtensionName([in] BSTR Path, [out, retval] BSTR* pbstrResult); [id(0x00002712)] HRESULT GetAbsolutePathName([in] BSTR Path, [out, retval] BSTR* pbstrResult); [id(0x00002713)] HRESULT GetTempName([out, retval] BSTR* pbstrResult); [id(0x0000271f)] HRESULT DriveExists([in] BSTR DriveSpec, [out, retval] VARIANT_BOOL* pfExists); [id(0x00002720)] HRESULT FileExists([in] BSTR FileSpec, [out, retval] VARIANT_BOOL* pfExists); [id(0x00002721)] HRESULT FolderExists([in] BSTR FolderSpec, [out, retval] VARIANT_BOOL* pfExists); [id(0x0000271b)] HRESULT GetDrive([in] BSTR DriveSpec, [out, retval] IDrive** ppdrive); [id(0x0000271c)] HRESULT GetFile([in] BSTR FilePath, [out, retval] IFile** ppfile); [id(0x0000271d)] HRESULT GetFolder([in] BSTR FolderPath, [out, retval] IFolder** ppfolder); [id(0x0000271e)] HRESULT GetSpecialFolder([in] SpecialFolderConst SpecialFolder, [out, retval] IFolder** ppfolder); [id(0x000004b0)] HRESULT DeleteFile([in] BSTR FileSpec, [in, optional, defaultvalue(0)] VARIANT_BOOL Force); [id(0x000004b1)] HRESULT DeleteFolder([in] BSTR FolderSpec, [in, optional, defaultvalue(0)] VARIANT_BOOL Force); [id(0x000004b4), helpstring("Move a file"), helpcontext(0x00214bab)] HRESULT MoveFile([in] BSTR Source, [in] BSTR Destination); [id(0x000004b5)] HRESULT MoveFolder([in] BSTR Source, [in] BSTR Destination); [id(0x000004b2)] HRESULT CopyFile([in] BSTR Source, [in] BSTR Destination, [in, optional, defaultvalue(-1)] VARIANT_BOOL OverWriteFiles); [id(0x000004b3)] HRESULT CopyFolder([in] BSTR Source, [in] BSTR Destination, [in, optional, defaultvalue(-1)] VARIANT_BOOL OverWriteFiles); [id(0x00000460)] HRESULT CreateFolder([in] BSTR Path, [out, retval] IFolder** ppfolder); [id(0x0000044d)] HRESULT CreateTextFile([in] BSTR FileName, [in, optional, defaultvalue(-1)] VARIANT_BOOL Overwrite, [in, optional, defaultvalue(0)] VARIANT_BOOL Unicode, [out, retval] ITextStream** ppts); [id(0x0000044c)] HRESULT OpenTextFile([in] BSTR FileName, [in, optional, defaultvalue(1)] IOMode IOMode, [in, optional, defaultvalue(0)] VARIANT_BOOL Create, [in, optional, defaultvalue(0)] Tristate Format, [out, retval] ITextStream** ppts); } [ odl, uuid(C7C3F5A1-88A3-11D0-ABCB-00A0C90FFFC0), hidden, dual, nonextensible, oleautomation ] interface IDriveCollection : IDispatch { [id(00000000)] HRESULT Item([in] VARIANT Key, [out, retval] IDrive** ppdrive); [id(DISPID_NEWENUM), propget, restricted, hidden] HRESULT _NewEnum([out, retval] IUnknown** ppenum); [id(0x00000001), propget] HRESULT Count([out, retval] long* plCount); } [ odl, uuid(C7C3F5A0-88A3-11D0-ABCB-00A0C90FFFC0), hidden, dual, nonextensible, oleautomation ] interface IDrive : IDispatch { [id(00000000), propget] HRESULT Path([out, retval] BSTR* pbstrPath); [id(0x00002710), propget] HRESULT DriveLetter([out, retval] BSTR* pbstrLetter) ; [id(0x00002711), propget] HRESULT ShareName([out, retval] BSTR* pbstrShareName); [id(0x00002712), propget] HRESULT DriveType([out, retval] DriveTypeConst* pdt); [id(0x00002713), propget] HRESULT RootFolder([out, retval] IFolder** ppfolder); [id(0x00002715), propget] HRESULT AvailableSpace([out, retval] VARIANT* pvarAvail); [id(0x00002714), propget] HRESULT FreeSpace([out, retval] VARIANT* pvarFree); [id(0x00002716), propget] HRESULT TotalSize([out, retval] VARIANT* pvarTotal); [id(0x00002717), propget] HRESULT VolumeName([out, retval] BSTR* pbstrName); [id(0x00002717), propput] HRESULT VolumeName([in] BSTR pbstrName); [id(0x00002718), propget] HRESULT FileSystem([out, retval] BSTR* pbstrFileSystem); [id(0x00002719), propget] HRESULT SerialNumber([out, retval] long* pulSerialNumber); [id(0x0000271a), propget] HRESULT IsReady([out, retval] VARIANT_BOOL* pfReady); } [ odl, uuid(C7C3F5A2-88A3-11D0-ABCB-00A0C90FFFC0), hidden, dual, nonextensible, oleautomation ] interface IFolder : IDispatch { [id(00000000), propget] HRESULT Path([out, retval] BSTR* pbstrPath); [id(0x000003e8), propget] HRESULT Name([out, retval] BSTR* pbstrName); [id(0x000003e8), propput] HRESULT Name([in] BSTR pbstrName); [id(0x000003ea), propget] HRESULT ShortPath([out, retval] BSTR* pbstrPath); [id(0x000003e9), propget] HRESULT ShortName([out, retval] BSTR* pbstrName); [id(0x000003ec), propget] HRESULT Drive([out, retval] IDrive** ppdrive); [id(0x000003ed), propget] HRESULT ParentFolder([out, retval] IFolder** ppfolder); [id(0x000003eb), propget] HRESULT Attributes([out, retval] FileAttribute* pfa); [id(0x000003eb), propput] HRESULT Attributes([in] FileAttribute pfa); [id(0x000003ee), propget] HRESULT DateCreated([out, retval] DATE* pdate); [id(0x000003ef), propget] HRESULT DateLastModified([out, retval] DATE* pdate); [id(0x000003f0), propget] HRESULT DateLastAccessed([out, retval] DATE* pdate); [id(0x000003f2), propget] HRESULT Type([out, retval] BSTR* pbstrType); [id(0x000004b1)] HRESULT Delete([in, optional, defaultvalue(0)] VARIANT_BOOL Force); [id(0x000004b3)] HRESULT Copy([in] BSTR Destination, [in, optional, defaultvalue(-1)] VARIANT_BOOL OverWriteFiles); [id(0x000004b5)] HRESULT Move([in] BSTR Destination); [id(0x00002710), propget] HRESULT IsRootFolder([out, retval] VARIANT_BOOL* pfRootFolder); [id(0x000003f1), propget] HRESULT Size([out, retval] VARIANT* pvarSize); [id(0x00002711), propget] HRESULT SubFolders([out, retval] IFolderCollection** ppfolders); [id(0x00002712), propget] HRESULT Files([out, retval] IFileCollection** ppfiles); [id(0x0000044d)] HRESULT CreateTextFile([in] BSTR FileName, [in, optional, defaultvalue(-1)] VARIANT_BOOL Overwrite, [in, optional, defaultvalue(0)] VARIANT_BOOL Unicode, [out, retval] ITextStream** ppts); } [ odl, uuid(C7C3F5A3-88A3-11D0-ABCB-00A0C90FFFC0), hidden, dual, nonextensible, oleautomation ] interface IFolderCollection : IDispatch { [id(0x00000002)] HRESULT Add([in] BSTR Name, [out, retval] IFolder** ppfolder); [id(00000000), propget] HRESULT Item([in] VARIANT Key, [out, retval] IFolder** ppfolder); [id(DISPID_NEWENUM), propget, restricted, hidden] HRESULT _NewEnum([out, retval] IUnknown** ppenum); [id(0x00000001), propget] HRESULT Count([out, retval] long* plCount); } [ odl, uuid(C7C3F5A5-88A3-11D0-ABCB-00A0C90FFFC0), hidden, dual, nonextensible, oleautomation ] interface IFileCollection : IDispatch { [id(00000000), propget] HRESULT Item([in] VARIANT Key, [out, retval] IFile** ppfile); [id(DISPID_NEWENUM), propget, restricted, hidden] HRESULT _NewEnum([out, retval] IUnknown** ppenum); [id(0x00000001), propget] HRESULT Count([out, retval] long* plCount); } [ odl, uuid(C7C3F5A4-88A3-11D0-ABCB-00A0C90FFFC0), hidden, dual, nonextensible, oleautomation ] interface IFile : IDispatch { [id(00000000), propget] HRESULT Path([out, retval] BSTR* pbstrPath); [id(0x000003e8), propget] HRESULT Name([out, retval] BSTR* pbstrName); [id(0x000003e8), propput] HRESULT Name([in] BSTR pbstrName); [id(0x000003ea), propget] HRESULT ShortPath([out, retval] BSTR* pbstrPath); [id(0x000003e9), propget] HRESULT ShortName([out, retval] BSTR* pbstrName); [id(0x000003ec), propget] HRESULT Drive([out, retval] IDrive** ppdrive); [id(0x000003ed), propget] HRESULT ParentFolder([out, retval] IFolder** ppfolder); [id(0x000003eb), propget] HRESULT Attributes([out, retval] FileAttribute* pfa); [id(0x000003eb), propput] HRESULT Attributes([in] FileAttribute pfa); [id(0x000003ee), propget] HRESULT DateCreated([out, retval] DATE* pdate); [id(0x000003ef), propget] HRESULT DateLastModified([out, retval] DATE* pdate); [id(0x000003f0), propget] HRESULT DateLastAccessed([out, retval] DATE* pdate); [id(0x000003f1), propget] HRESULT Size([out, retval] VARIANT* pvarSize); [id(0x000003f2), propget] HRESULT Type([out, retval] BSTR* pbstrType); [id(0x000004b0)] HRESULT Delete([in, optional, defaultvalue(0)] VARIANT_BOOL Force); [id(0x000004b2)] HRESULT Copy([in] BSTR Destination, [in, optional, defaultvalue(-1)] VARIANT_BOOL OverWriteFiles); [id(0x000004b4)] HRESULT Move([in] BSTR Destination); [id(0x0000044c)] HRESULT OpenAsTextStream([in, optional, defaultvalue(1)] IOMode IOMode, [in, optional, defaultvalue(0)] Tristate Format, [out, retval] ITextStream** ppts); } [ odl, uuid(53BAD8C1-E718-11CF-893D-00A0C9054228), hidden, dual, nonextensible, oleautomation ] interface ITextStream : IDispatch { [id(0x00002710), propget] HRESULT Line([out, retval] long* Line); [id(0xfffffdef), propget] HRESULT Column([out, retval] long* Column); [id(0x00002712), propget] HRESULT AtEndOfStream([out, retval] VARIANT_BOOL* EOS); [id(0x00002713), propget] HRESULT AtEndOfLine([out, retval] VARIANT_BOOL* EOL); [id(0x00002714)] HRESULT Read([in] long Characters, [out, retval] BSTR* Text); [id(0x00002715)] HRESULT ReadLine([out, retval] BSTR* Text); [id(0x00002716)] HRESULT ReadAll([out, retval] BSTR* Text); [id(0x00002717)] HRESULT Write([in] BSTR Text); [id(0x00002718)] HRESULT WriteLine([in, optional, defaultvalue("")] BSTR Text); [id(0x00002719)] HRESULT WriteBlankLines([in] long Lines); [id(0x0000271a)] HRESULT Skip([in] long Characters); [id(0x0000271b)] HRESULT SkipLine(); [id(0x0000271c)] HRESULT Close(); } [ odl, uuid(2A0B9D10-4B87-11D3-A97A-00104B365C9F), dual, nonextensible, oleautomation ] interface IFileSystem3 : IFileSystem { [id(0x00004e20)] HRESULT GetStandardStream([in] StandardStreamTypes StandardStreamType, [in, optional, defaultvalue(0)] VARIANT_BOOL Unicode, [out, retval] ITextStream** ppts); [id(0x00004e2a)] HRESULT GetFileVersion([in] BSTR FileName, [out, retval] BSTR* FileVersion); } [ odl, uuid(AADC65F6-CFF1-11D1-B747-00C04FC2B085), dual, oleautomation ] interface IScriptEncoder : IDispatch { [id(00000000)] HRESULT EncodeScriptFile([in] BSTR szExt, [in] BSTR bstrStreamIn, [in] long cFlags, [in] BSTR bstrDefaultLang, [out, retval] BSTR* pbstrStreamOut); } [ uuid(EE09B103-97E0-11CF-978F-00A02463E06F), version(1.0), helpstring("Scripting.Dictionary"), threading(apartment), progid("Scripting.Dictionary") ] coclass Dictionary { [default] interface IDictionary; } [ uuid(0D43FE01-F093-11CF-8940-00A0C9054228), version(1.0), helpstring("FileSystem Object"), threading(both), progid("Scripting.FileSystemObject") ] coclass FileSystemObject { [default] interface IFileSystem3; } [ uuid(C7C3F5B1-88A3-11D0-ABCB-00A0C90FFFC0), noncreatable, version(1.0) ] coclass Drive { [default] interface IDrive; } [ uuid(C7C3F5B2-88A3-11D0-ABCB-00A0C90FFFC0), noncreatable, version(1.0) ] coclass Drives { [default] interface IDriveCollection; } [ uuid(C7C3F5B3-88A3-11D0-ABCB-00A0C90FFFC0), noncreatable, version(1.0) ] coclass Folder { [default] interface IFolder; } [ uuid(C7C3F5B4-88A3-11D0-ABCB-00A0C90FFFC0), noncreatable, version(1.0) ] coclass Folders { [default] interface IFolderCollection; } [ uuid(C7C3F5B5-88A3-11D0-ABCB-00A0C90FFFC0), noncreatable, version(1.0) ] coclass File { [default] interface IFile; } [ uuid(C7C3F5B6-88A3-11D0-ABCB-00A0C90FFFC0), noncreatable, version(1.0) ] coclass Files { [default] interface IFileCollection; } [ uuid(0BB02EC0-EF49-11CF-8940-00A0C9054228), noncreatable, version(1.0) ] coclass TextStream { [default] interface ITextStream; } [ uuid(32DA2B15-CFED-11D1-B747-00C04FC2B085), version(1.0), helpstring("Script Encoder Object"), threading(apartment), progid("Scripting.Encoder") ] coclass Encoder { [default] interface IScriptEncoder; } }