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 UNIXSTL - Template Software for the UNIX Operating System WinSTL - where the Standard Template Library meets the Win32 API

Main Page   Modules   Alphabetical List   Compound List   File List   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: 24th March 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 
00205 // Library
00206 [
00207         uuid(8E9942B9-6CAF-490C-A554-81542F2BAA47),
00208         version(1.0),
00209         helpstring("recls_com 1.0 Type Library")
00210 ]
00211 library RECLS_COMLib
00212 {
00213         importlib("stdole32.tlb");
00214         importlib("stdole2.tlb");
00215 
00216         interface IFileSearch;
00217 
00219         enum RECLS_FLAG
00220         {
00221                         RECLS_F_FILES               =   0x00000001 
00222                 ,   RECLS_F_DIRECTORIES         =   0x00000002 
00223                 ,   RECLS_F_LINKS               =   0x00000004 
00224                 ,   RECLS_F_DEVICES             =   0x00000008 
00225                 ,   RECLS_F_TYPEMASK            =   0x00000FFF
00226                 ,   RECLS_F_RECURSIVE           =   0x00010000 
00227                 ,   RECLS_F_NO_FOLLOW_LINKS     =   0x00020000 
00228                 ,   RECLS_F_DIRECTORY_PARTS     =   0x00040000 
00229                 ,   RECLS_F_DETAILS_LATER       =   0x00080000 
00230         };
00231 
00232         [
00233                 uuid(CB3A4FF2-ECCE-4912-A3E0-5F4467F41DB7),
00234                 helpstring("FileSearch Class")
00235         ]
00240         coclass FileSearch
00241         {
00242                 [default] interface IFileSearch;
00243         };
00244 
00245         [
00246                 uuid(CD76678C-9B2B-4240-AA28-811CF099C58B),
00247                 helpstring("FileEntry Class")
00248         ]
00251         coclass FileEntry
00252         {
00253                 [default] interface IFileEntry;
00254         };
00255 };
00256 

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