Listing 4: IFileEntry interface.

interface IFileEntry : IDispatch
{
  HRESULT Path([out, retval] BSTR *pVal);
  HRESULT Drive([out, retval] OLECHAR *pVal);
  HRESULT Directory([out, retval] BSTR *pVal);
  HRESULT DirectoryPath([out, retval] BSTR *pVal);
  HRESULT DirectoryParts([out, retval] LPUNKNOWN *pVal);
  HRESULT File([out, retval] BSTR *pVal);
  HRESULT ShortFile([out, retval] BSTR *pVal);
  HRESULT FileName([out, retval] BSTR *pVal);
  HRESULT FileExt([out, retval] BSTR *pVal);
  HRESULT CreationTime([out, retval] DATE *pVal);
  HRESULT ModificationTime([out, retval] DATE *pVal);
  HRESULT LastAccessTime([out, retval] DATE *pVal);
  HRESULT LastStatusChangeTime([out, retval] DATE *pVal);
  HRESULT Size([out, retval] long *pVal);
  HRESULT IsReadOnly([out, retval] BOOL *pVal);
  HRESULT IsDirectory([out, retval] BOOL *pVal);
};