00001
00002
00003
00004
00005
00006
00010
00011
00012
00013 import "oaidl.idl";
00014 import "ocidl.idl";
00015
00016
00018
00019 [
00020 object,
00021 uuid(50F21F68-1A94-4c70-A20F-408BB11808D0),
00022 helpstring("IFileEntry Interface"),
00023 pointer_default(unique)
00024 ]
00026 interface IFileEntry : IDispatch
00027 {
00028 [id(DISPID_VALUE), propget, helpstring("Returns the full path of the file entry.")]
00030 HRESULT Path([out, retval] BSTR *pVal);
00031 [id(1), propget, helpstring("Returns the drive of the file entry.")]
00033 HRESULT Drive([out, retval] OLECHAR *pVal);
00034 [id(2), propget, helpstring("Returns the directory of the file entry.")]
00036 HRESULT Directory([out, retval] BSTR *pVal);
00037 [id(3), propget, helpstring("Returns the directory (+ drive) of the file entry.")]
00039 HRESULT DirectoryPath([out, retval] BSTR *pVal);
00040 [id(4), propget, helpstring("Returns the directory parts of the file entry.")]
00044 HRESULT DirectoryParts([out, retval] LPUNKNOWN *pVal);
00045 [id(5), propget, helpstring("Returns the file (filename + extension) of the file entry.")]
00047 HRESULT File([out, retval] BSTR *pVal);
00048 [id(6), propget, helpstring("Returns the short form of the file (filename + extension) of the file entry.")]
00050 HRESULT ShortFile([out, retval] BSTR *pVal);
00051 [id(7), propget, helpstring("Returns the filename of the file entry.")]
00053 HRESULT FileName([out, retval] BSTR *pVal);
00054 [id(8), propget, helpstring("Returns the file extension of the file entry.")]
00056 HRESULT FileExt([out, retval] BSTR *pVal);
00057 [id(9), propget, helpstring("Returns the creation time of the file entry.")]
00059 HRESULT CreationTime([out, retval] DATE *pVal);
00060 [id(10), propget, helpstring("Returns the modification time of the file entry.")]
00062 HRESULT ModificationTime([out, retval] DATE *pVal);
00063 [id(11), propget, helpstring("Returns the last access time of the file entry.")]
00065 HRESULT LastAccessTime([out, retval] DATE *pVal);
00066 [id(12), propget, helpstring("Returns the last statuc change time of the file entry.")]
00067 HRESULT LastStatusChangeTime([out, retval] DATE *pVal);
00068 [id(13), propget, helpstring("Returns the size of the file entry.")]
00070 HRESULT Size([out, retval] long *pVal);
00071 [id(14), propget, helpstring("Indicates whether the file entry is read-only.")]
00073 HRESULT IsReadOnly([out, retval] BOOL *pVal);
00074 [id(15), propget, helpstring("Indicates whether the file entry is a directory.")]
00076 HRESULT IsDirectory([out, retval] BOOL *pVal);
00077 };
00078 typedef IFileEntry *PFILEENTRY;
00079
00080 [
00081 object,
00082 uuid(29F36E3A-C42E-47c0-A9B9-2F70B76722ED),
00083 helpstring("IEnumFileEntry Interface"),
00084 pointer_default(unique)
00085 ]
00089 interface IEnumFileEntry : IUnknown
00090 {
00091 [local]
00097 HRESULT Next( [in] ULONG celt,
00098 [out, size_is(celt), length_is(*pceltFetched)] PFILEENTRY *rgVar,
00099 [out] ULONG *pceltFetched);
00100
00101
00102
00103 [call_as(Next)]
00104 HRESULT RemoteNext( [in] ULONG celt,
00105 [out, size_is(celt), length_is(*pceltFetched)] PFILEENTRY *rgVar,
00106 [out] ULONG *pceltFetched);
00108 HRESULT Skip( [in] ULONG celt);
00110 HRESULT Reset();
00113 HRESULT Clone( [out] IEnumFileEntry **ppenum);
00114 };
00115
00116
00117 [
00118 object,
00119 uuid(2CCEE26C-B94B-4352-A269-A4EE84908367),
00120 dual,
00121 helpstring("ISearchCollection Interface"),
00122 pointer_default(unique)
00123 ]
00125 interface ISearchCollection : IDispatch
00126 {
00127 #ifndef RECLS_DOCUMENTATION_SKIP_SECTION
00128
00129
00130
00131
00132 #endif
00133 [propget, id(DISPID_NEWENUM), restricted, hidden]
00137 HRESULT _NewEnum([out,retval] IUnknown** pVal);
00138 };
00139
00140
00141
00142 [
00143 object,
00144 uuid(7151ACC6-3A28-4BB0-BD48-EFF7FD303F6B),
00145 dual,
00146 helpstring("IDirectoryPartsCollection Interface"),
00147 pointer_default(unique)
00148 ]
00150 interface IDirectoryPartsCollection : IDispatch
00151 {
00153 [propget, id(1), helpstring("Returrns the number of parts in the directory")]
00154 HRESULT Count([out, retval] long *pVal);
00156 [propget, id(DISPID_VALUE), helpstring("The directory part coresponding to the given index")]
00157 HRESULT Item(long index, [out, retval] VARIANT *pVal);
00161 [propget, id(DISPID_NEWENUM), restricted, hidden, helpstring("Returns the enumerator for the collection")]
00162 HRESULT _NewEnum([out, retval] IUnknown **ppenum);
00163 }
00164
00165
00166
00167 [
00168 object,
00169 uuid(10115D3C-84B8-41BE-8F59-46941192DEBA),
00170 dual,
00171 helpstring("IFileSearch Interface"),
00172 pointer_default(unique)
00173 ]
00175 interface IFileSearch : IDispatch
00176 {
00177
00178
00179
00180
00181
00182 [id(1), helpstring("Searches for file-system entries within the given searchRoot, matching the given pattern, according to the given flags")]
00189 HRESULT Search([in] BSTR searchRoot, [in] BSTR pattern, [in] long flags, [out, retval] IUnknown **results);
00190
00194 [id(2), propget, helpstring("Returns the roots for the current system.")]
00195 HRESULT Roots([out, retval] LPUNKNOWN *pVal);
00196 [propget, id(3), helpstring("The symbol used to separate paths in multiple path lists")]
00197 HRESULT PathSeparator([out, retval] BSTR *pVal);
00198 [propget, id(4), helpstring("The symbol that is used to separate the elements in paths")]
00199 HRESULT PathNameSeparator([out, retval] BSTR *pVal);
00200 [propget, id(5), helpstring("The pattern representing all files")]
00201 HRESULT WildcardsAll([out, retval] BSTR *pVal);
00202 };
00203
00204 [
00205 object,
00206 uuid(9D9130EB-DD53-4826-B306-2A7C84D4C0A2),
00207 dual,
00208 helpstring("IFtpSearch Interface"),
00209 pointer_default(unique)
00210 ]
00212 interface IFtpSearch : IDispatch
00213 {
00214
00215
00216
00217
00218
00219 [id(1), helpstring("Searches for FTP system entries on the given host, within the given searchRoot, matching the given pattern, according to the given flags")]
00229 HRESULT Search([in] BSTR host, [in] BSTR username, [in] BSTR password, [in] BSTR searchRoot, [in] BSTR pattern, [in] long flags, [out, retval] IUnknown **results);
00230 };
00231
00233
00234 [
00235 uuid(8E9942B9-6CAF-490C-A554-81542F2BAA47),
00236 version(1.0),
00237 helpstring("recls_com 1.0 Type Library")
00238 ]
00239 library RECLS_COMLib
00240 {
00241 importlib("stdole32.tlb");
00242 importlib("stdole2.tlb");
00243
00244 interface IFileSearch;
00245
00247 enum RECLS_FLAG
00248 {
00249 RECLS_F_FILES = 0x00000001
00250 , RECLS_F_DIRECTORIES = 0x00000002
00251 , RECLS_F_LINKS = 0x00000004
00252 , RECLS_F_DEVICES = 0x00000008
00253 , RECLS_F_TYPEMASK = 0x00000FFF
00254 , RECLS_F_RECURSIVE = 0x00010000
00255 , RECLS_F_NO_FOLLOW_LINKS = 0x00020000
00256 , RECLS_F_DIRECTORY_PARTS = 0x00040000
00257 , RECLS_F_DETAILS_LATER = 0x00080000
00258 };
00259
00260 [
00261 uuid(CB3A4FF2-ECCE-4912-A3E0-5F4467F41DB7),
00262 helpstring("FileSearch Class")
00263 ]
00268 coclass FileSearch
00269 {
00270 [default] interface IFileSearch;
00271 interface IFtpSearch;
00272 };
00273
00274 [
00275 uuid(CD76678C-9B2B-4240-AA28-811CF099C58B),
00276 helpstring("FileEntry Class")
00277 ]
00280 coclass FileEntry
00281 {
00282 [default] interface IFileEntry;
00283 };
00284 };
00285