2 * Copyright (C) 2012 Alistair Leslie-Hughes
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #pragma makedep regtypelib
25 cpp_quote
("#ifdef WINE_NO_UNICODE_MACROS")
26 cpp_quote
("#undef CopyFile")
27 cpp_quote
("#undef DeleteFile")
28 cpp_quote
("#undef MoveFile")
32 uuid(420B2830
-E718
-11CF
-893D
-00A0C9054228
),
37 importlib
("stdole2.tlb");
39 interface IDictionary
;
41 interface IDriveCollection
;
43 interface IFileCollection
;
44 interface IFileSystem
;
45 interface IFileSystem3
;
47 interface IFolderCollection
;
48 interface IScriptEncoder
;
49 interface ITextStream
;
51 typedef enum CompareMethod
67 TristateTrue
= 0xffffffff,
69 TristateUseDefault
= 0xfffffffe,
70 TristateMixed
= 0xfffffffe
73 typedef enum FileAttribute
86 typedef enum SpecialFolderConst
93 typedef enum DriveTypeConst
103 typedef enum StandardStreamTypes
108 } StandardStreamTypes
;
112 uuid(42C642C1
-97E1
-11CF
-978F
-00A02463E06F
),
117 interface IDictionary
: IDispatch
119 [id(DISPID_VALUE
), propputref]
120 HRESULT Item
([in] VARIANT* Key
, [in] VARIANT* pRetItem
);
122 [id(DISPID_VALUE
), propput]
123 HRESULT Item
([in] VARIANT* Key
, [in] VARIANT* pRetItem
);
125 [id(DISPID_VALUE
), propget]
126 HRESULT Item
([in] VARIANT* Key
, [out, retval] VARIANT* pRetItem
);
129 HRESULT Add
([in] VARIANT* Key
, [in] VARIANT* Item
);
131 [id(0x00000002), propget]
132 HRESULT Count
([out, retval] long* pCount
);
135 HRESULT Exists
([in] VARIANT* Key
, [out, retval] VARIANT_BOOL* pExists
);
138 HRESULT Items
([out, retval] VARIANT* pItemsArray
);
140 [id(0x00000005), propput]
141 HRESULT Key
([in] VARIANT* Key
, [in] VARIANT* rhs
);
144 HRESULT Keys
([out, retval] VARIANT* pKeysArray
);
147 HRESULT Remove
([in] VARIANT* Key
);
152 [id(0x00000009), propput]
153 HRESULT CompareMode
([in] CompareMethod pcomp
);
155 [id(0x00000009), propget]
156 HRESULT CompareMode
([out, retval] CompareMethod
* pcomp
);
158 [id(DISPID_NEWENUM
), restricted]
159 HRESULT _NewEnum
([out, retval] IUnknown
** ppunk
);
161 [id(0x0000000a), propget, hidden]
162 HRESULT HashVal
([in] VARIANT* Key
, [out, retval] VARIANT* HashVal
);
167 uuid(0AB5A3D0
-E5B6
-11D0
-ABF5
-00A0C90FFFC0
),
173 interface IFileSystem
: IDispatch
175 [id(0x0000271a), propget]
176 HRESULT Drives
([out, retval] IDriveCollection
** ppdrives
);
179 HRESULT BuildPath
([in] BSTR Path
, [in] BSTR Name
, [out, retval] BSTR* pbstrResult
);
182 HRESULT GetDriveName
([in] BSTR Path
, [out, retval] BSTR* pbstrResult
);
185 HRESULT GetParentFolderName
([in] BSTR Path
, [out, retval] BSTR* pbstrResult
);
188 HRESULT GetFileName
([in] BSTR Path
, [out, retval] BSTR* pbstrResult
);
191 HRESULT GetBaseName
([in] BSTR Path
, [out, retval] BSTR* pbstrResult
);
194 HRESULT GetExtensionName
([in] BSTR Path
, [out, retval] BSTR* pbstrResult
);
197 HRESULT GetAbsolutePathName
([in] BSTR Path
, [out, retval] BSTR* pbstrResult
);
200 HRESULT GetTempName
([out, retval] BSTR* pbstrResult
);
203 HRESULT DriveExists
([in] BSTR DriveSpec
, [out, retval] VARIANT_BOOL* pfExists
);
206 HRESULT FileExists
([in] BSTR FileSpec
, [out, retval] VARIANT_BOOL* pfExists
);
209 HRESULT FolderExists
([in] BSTR FolderSpec
, [out, retval] VARIANT_BOOL* pfExists
);
212 HRESULT GetDrive
([in] BSTR DriveSpec
, [out, retval] IDrive
** ppdrive
);
215 HRESULT GetFile
([in] BSTR FilePath
, [out, retval] IFile
** ppfile
);
218 HRESULT GetFolder
([in] BSTR FolderPath
, [out, retval] IFolder
** ppfolder
);
221 HRESULT GetSpecialFolder
([in] SpecialFolderConst SpecialFolder
, [out, retval] IFolder
** ppfolder
);
224 HRESULT DeleteFile
([in] BSTR FileSpec
, [in, optional, defaultvalue(0)] VARIANT_BOOL Force
);
227 HRESULT DeleteFolder
([in] BSTR FolderSpec
, [in, optional, defaultvalue(0)] VARIANT_BOOL Force
);
229 [id(0x000004b4), helpstring("Move a file"), helpcontext(0x00214bab)]
230 HRESULT MoveFile
([in] BSTR Source, [in] BSTR Destination
);
233 HRESULT MoveFolder
([in] BSTR Source, [in] BSTR Destination
);
236 HRESULT CopyFile
([in] BSTR Source, [in] BSTR Destination
,
237 [in, optional, defaultvalue(-1)] VARIANT_BOOL OverWriteFiles
);
240 HRESULT CopyFolder
([in] BSTR Source, [in] BSTR Destination
,
241 [in, optional, defaultvalue(-1)] VARIANT_BOOL OverWriteFiles
);
244 HRESULT CreateFolder
([in] BSTR Path
, [out, retval] IFolder
** ppfolder
);
247 HRESULT CreateTextFile
([in] BSTR FileName
, [in, optional, defaultvalue(-1)] VARIANT_BOOL Overwrite
,
248 [in, optional, defaultvalue(0)] VARIANT_BOOL Unicode
, [out, retval] ITextStream
** ppts
);
251 HRESULT OpenTextFile
([in] BSTR FileName
, [in, optional, defaultvalue(1)] IOMode IOMode
,
252 [in, optional, defaultvalue(0)] VARIANT_BOOL Create
,
253 [in, optional, defaultvalue(0)] Tristate Format
,
254 [out, retval] ITextStream
** ppts
);
259 uuid(C7C3F5A1
-88A3
-11D0
-ABCB
-00A0C90FFFC0
),
265 interface IDriveCollection
: IDispatch
{
267 HRESULT Item
([in] VARIANT Key
, [out, retval] IDrive
** ppdrive
);
269 [id(DISPID_NEWENUM
), propget, restricted, hidden]
270 HRESULT _NewEnum
([out, retval] IUnknown
** ppenum
);
272 [id(0x00000001), propget]
273 HRESULT Count
([out, retval] long* plCount
);
278 uuid(C7C3F5A0
-88A3
-11D0
-ABCB
-00A0C90FFFC0
),
284 interface IDrive
: IDispatch
286 [id(DISPID_VALUE
), propget]
287 HRESULT Path
([out, retval] BSTR* pbstrPath
);
289 [id(0x00002710), propget]
290 HRESULT DriveLetter
([out, retval] BSTR* pbstrLetter
)
292 [id(0x00002711), propget]
293 HRESULT ShareName
([out, retval] BSTR* pbstrShareName
);
295 [id(0x00002712), propget]
296 HRESULT DriveType
([out, retval] DriveTypeConst
* pdt
);
298 [id(0x00002713), propget]
299 HRESULT RootFolder
([out, retval] IFolder
** ppfolder
);
301 [id(0x00002715), propget]
302 HRESULT AvailableSpace
([out, retval] VARIANT* pvarAvail
);
304 [id(0x00002714), propget]
305 HRESULT FreeSpace
([out, retval] VARIANT* pvarFree
);
307 [id(0x00002716), propget]
308 HRESULT TotalSize
([out, retval] VARIANT* pvarTotal
);
310 [id(0x00002717), propget]
311 HRESULT VolumeName
([out, retval] BSTR* pbstrName
);
313 [id(0x00002717), propput]
314 HRESULT VolumeName
([in] BSTR pbstrName
);
316 [id(0x00002718), propget]
317 HRESULT FileSystem
([out, retval] BSTR* pbstrFileSystem
);
319 [id(0x00002719), propget]
320 HRESULT SerialNumber
([out, retval] long* pulSerialNumber
);
322 [id(0x0000271a), propget]
323 HRESULT IsReady
([out, retval] VARIANT_BOOL* pfReady
);
328 uuid(C7C3F5A2
-88A3
-11D0
-ABCB
-00A0C90FFFC0
),
334 interface IFolder
: IDispatch
336 [id(DISPID_VALUE
), propget]
337 HRESULT Path
([out, retval] BSTR* pbstrPath
);
339 [id(0x000003e8), propget]
340 HRESULT Name
([out, retval] BSTR* pbstrName
);
342 [id(0x000003e8), propput]
343 HRESULT Name
([in] BSTR pbstrName
);
345 [id(0x000003ea), propget]
346 HRESULT ShortPath
([out, retval] BSTR* pbstrPath
);
348 [id(0x000003e9), propget]
349 HRESULT ShortName
([out, retval] BSTR* pbstrName
);
351 [id(0x000003ec), propget]
352 HRESULT Drive
([out, retval] IDrive
** ppdrive
);
354 [id(0x000003ed), propget]
355 HRESULT ParentFolder
([out, retval] IFolder
** ppfolder
);
357 [id(0x000003eb), propget]
358 HRESULT Attributes
([out, retval] FileAttribute
* pfa
);
360 [id(0x000003eb), propput]
361 HRESULT Attributes
([in] FileAttribute pfa
);
363 [id(0x000003ee), propget]
364 HRESULT DateCreated
([out, retval] DATE
* pdate
);
366 [id(0x000003ef), propget]
367 HRESULT DateLastModified
([out, retval] DATE
* pdate
);
369 [id(0x000003f0), propget]
370 HRESULT DateLastAccessed
([out, retval] DATE
* pdate
);
372 [id(0x000003f2), propget]
373 HRESULT Type
([out, retval] BSTR* pbstrType
);
376 HRESULT Delete
([in, optional, defaultvalue(0)] VARIANT_BOOL Force
);
379 HRESULT Copy
([in] BSTR Destination
, [in, optional, defaultvalue(-1)] VARIANT_BOOL OverWriteFiles
);
382 HRESULT Move
([in] BSTR Destination
);
384 [id(0x00002710), propget]
385 HRESULT IsRootFolder
([out, retval] VARIANT_BOOL* pfRootFolder
);
387 [id(0x000003f1), propget]
388 HRESULT Size
([out, retval] VARIANT* pvarSize
);
390 [id(0x00002711), propget]
391 HRESULT SubFolders
([out, retval] IFolderCollection
** ppfolders
);
393 [id(0x00002712), propget]
394 HRESULT Files
([out, retval] IFileCollection
** ppfiles
);
397 HRESULT CreateTextFile
([in] BSTR FileName
, [in, optional, defaultvalue(-1)] VARIANT_BOOL Overwrite
,
398 [in, optional, defaultvalue(0)] VARIANT_BOOL Unicode
, [out, retval] ITextStream
** ppts
);
403 uuid(C7C3F5A3
-88A3
-11D0
-ABCB
-00A0C90FFFC0
),
409 interface IFolderCollection
: IDispatch
412 HRESULT Add
([in] BSTR Name
, [out, retval] IFolder
** ppfolder
);
414 [id(DISPID_VALUE
), propget]
415 HRESULT Item
([in] VARIANT Key
, [out, retval] IFolder
** ppfolder
);
417 [id(DISPID_NEWENUM
), propget, restricted, hidden]
418 HRESULT _NewEnum
([out, retval] IUnknown
** ppenum
);
420 [id(0x00000001), propget]
421 HRESULT Count
([out, retval] long* plCount
);
426 uuid(C7C3F5A5
-88A3
-11D0
-ABCB
-00A0C90FFFC0
),
432 interface IFileCollection
: IDispatch
434 [id(DISPID_VALUE
), propget]
435 HRESULT Item
([in] VARIANT Key
, [out, retval] IFile
** ppfile
);
437 [id(DISPID_NEWENUM
), propget, restricted, hidden]
438 HRESULT _NewEnum
([out, retval] IUnknown
** ppenum
);
440 [id(0x00000001), propget]
441 HRESULT Count
([out, retval] long* plCount
);
446 uuid(C7C3F5A4
-88A3
-11D0
-ABCB
-00A0C90FFFC0
),
452 interface IFile
: IDispatch
454 [id(DISPID_VALUE
), propget]
455 HRESULT Path
([out, retval] BSTR* pbstrPath
);
457 [id(0x000003e8), propget]
458 HRESULT Name
([out, retval] BSTR* pbstrName
);
460 [id(0x000003e8), propput]
461 HRESULT Name
([in] BSTR pbstrName
);
463 [id(0x000003ea), propget]
464 HRESULT ShortPath
([out, retval] BSTR* pbstrPath
);
466 [id(0x000003e9), propget]
467 HRESULT ShortName
([out, retval] BSTR* pbstrName
);
469 [id(0x000003ec), propget]
470 HRESULT Drive
([out, retval] IDrive
** ppdrive
);
472 [id(0x000003ed), propget]
473 HRESULT ParentFolder
([out, retval] IFolder
** ppfolder
);
475 [id(0x000003eb), propget]
476 HRESULT Attributes
([out, retval] FileAttribute
* pfa
);
478 [id(0x000003eb), propput]
479 HRESULT Attributes
([in] FileAttribute pfa
);
481 [id(0x000003ee), propget]
482 HRESULT DateCreated
([out, retval] DATE
* pdate
);
484 [id(0x000003ef), propget]
485 HRESULT DateLastModified
([out, retval] DATE
* pdate
);
487 [id(0x000003f0), propget]
488 HRESULT DateLastAccessed
([out, retval] DATE
* pdate
);
490 [id(0x000003f1), propget]
491 HRESULT Size
([out, retval] VARIANT* pvarSize
);
493 [id(0x000003f2), propget]
494 HRESULT Type
([out, retval] BSTR* pbstrType
);
497 HRESULT Delete
([in, optional, defaultvalue(0)] VARIANT_BOOL Force
);
500 HRESULT Copy
([in] BSTR Destination
, [in, optional, defaultvalue(-1)] VARIANT_BOOL OverWriteFiles
);
503 HRESULT Move
([in] BSTR Destination
);
506 HRESULT OpenAsTextStream
([in, optional, defaultvalue(1)] IOMode IOMode
,
507 [in, optional, defaultvalue(0)] Tristate Format
, [out, retval] ITextStream
** ppts
);
512 uuid(53BAD8C1
-E718
-11CF
-893D
-00A0C9054228
),
518 interface ITextStream
: IDispatch
520 [id(0x00002710), propget]
521 HRESULT Line
([out, retval] long* Line
);
523 [id(0xfffffdef), propget]
524 HRESULT Column
([out, retval] long* Column
);
526 [id(0x00002712), propget]
527 HRESULT AtEndOfStream
([out, retval] VARIANT_BOOL* EOS
);
529 [id(0x00002713), propget]
530 HRESULT AtEndOfLine
([out, retval] VARIANT_BOOL* EOL
);
533 HRESULT Read
([in] long Characters
, [out, retval] BSTR* Text
);
536 HRESULT ReadLine
([out, retval] BSTR* Text
);
539 HRESULT ReadAll
([out, retval] BSTR* Text
);
542 HRESULT Write
([in] BSTR Text
);
545 HRESULT WriteLine
([in, optional, defaultvalue("")] BSTR Text
);
548 HRESULT WriteBlankLines
([in] long Lines
);
551 HRESULT Skip
([in] long Characters
);
562 uuid(2A0B9D10
-4B87
-11D3
-A97A
-00104B365C9F
),
567 interface IFileSystem3
: IFileSystem
570 HRESULT GetStandardStream
([in] StandardStreamTypes StandardStreamType
,
571 [in, optional, defaultvalue(0)] VARIANT_BOOL Unicode
, [out, retval] ITextStream
** ppts
);
574 HRESULT GetFileVersion
([in] BSTR FileName
, [out, retval] BSTR* FileVersion
);
579 uuid(AADC65F6
-CFF1
-11D1
-B747
-00C04FC2B085
),
583 interface IScriptEncoder
: IDispatch
586 HRESULT EncodeScriptFile
([in] BSTR szExt
, [in] BSTR bstrStreamIn
, [in] long cFlags
,
587 [in] BSTR bstrDefaultLang
, [out, retval] BSTR* pbstrStreamOut
);
591 uuid(EE09B103
-97E0
-11CF
-978F
-00A02463E06F
),
593 helpstring("Scripting.Dictionary"),
594 threading
(apartment
),
595 progid
("Scripting.Dictionary")
599 [default] interface IDictionary
;
603 uuid(0D43FE01
-F093
-11CF
-8940-00A0C9054228
),
605 helpstring("FileSystem Object"),
607 progid
("Scripting.FileSystemObject")
609 coclass FileSystemObject
611 [default] interface IFileSystem3
;
615 uuid(C7C3F5B1
-88A3
-11D0
-ABCB
-00A0C90FFFC0
),
621 [default] interface IDrive
;
625 uuid(C7C3F5B2
-88A3
-11D0
-ABCB
-00A0C90FFFC0
),
631 [default] interface IDriveCollection
;
635 uuid(C7C3F5B3
-88A3
-11D0
-ABCB
-00A0C90FFFC0
),
641 [default] interface IFolder
;
645 uuid(C7C3F5B4
-88A3
-11D0
-ABCB
-00A0C90FFFC0
),
651 [default] interface IFolderCollection
;
655 uuid(C7C3F5B5
-88A3
-11D0
-ABCB
-00A0C90FFFC0
),
661 [default] interface IFile
;
665 uuid(C7C3F5B6
-88A3
-11D0
-ABCB
-00A0C90FFFC0
),
671 [default] interface IFileCollection
;
675 uuid(0BB02EC0
-EF49
-11CF
-8940-00A0C9054228
),
681 [default] interface ITextStream
;
685 uuid(32DA2B15
-CFED
-11D1
-B747
-00C04FC2B085
),
687 helpstring("Script Encoder Object"),
688 threading
(apartment
),
689 progid
("Scripting.Encoder")
693 [default] interface IScriptEncoder
;