C/C++ User's Journal Synesis Software STLSoft - ... Robust, Lightweight, Cross-platform, Template Software ... ATLSTL - where the Standard Template Library meets the Active Template Library COMSTL - where the Standard Template Library meets the Component Object Model InetSTL - where the Standard Template Library meets the Internet UNIXSTL - Template Software for the UNIX Operating System WinSTL - where the Standard Template Library meets the Win32 API

Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

/Mappings/COM/recls_com.idl

Go to the documentation of this file.
00001 
00002 // recls_com.idl : IDL source for recls_com.dll
00003 //
00004 // Created: 3rd September 2003
00005 // Updated: 31st May 2004
00006 
00010 // This file will be processed by the MIDL tool to
00011 // produce the type library (recls_com.tlb) and marshalling code.
00012 
00013 import "oaidl.idl";
00014 import "ocidl.idl";
00015 
00016 
00018 // Interfaces
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         // Note that the marshalling is left undone in the current version, primarily because the client code
00102         // is expected to be in the same apartment as the enumerator.
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 //      [id(1), propget]
00129 //      HRESULT Count([out, retval] long *);
00130 //      [id(DISPID_VALUE), propget]
00131 //      HRESULT Item([in] VARIANT sItem, [out, retval] IDispatch** ppICheckout);
00132 #endif /* !RECLS_DOCUMENTATION_SKIP_SECTION */
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         // Must use BSTR
00178         // Must use long
00179         // Can't return IEnumFileEntry
00180         // Can return ISearchCollection, or IDispatch, or IUnknown. The important thing is that ISearchCollection *must* be listed in the library, so that the automation typelib stuff can use it
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         // Must use BSTR
00215         // Must use long
00216         // Can't return IEnumFileEntry
00217         // Can return ISearchCollection, or IDispatch, or IUnknown. The important thing is that ISearchCollection *must* be listed in the library, so that the automation typelib stuff can use it
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 // Library
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 

recls Library documentation © Synesis Software Pty Ltd, 2001-2004