|
|
//+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // // File: IDirectory.idl // // Contents: IDirectory interface definition // // History: 14-Jun-1995 HenryLee initial version // //--------------------------------------------------------------------------
import "unknwn.idl"; import "transact.idl"; interface IEnumSTATDIR;
typedef enum tagSTGFMT { STGFMT_DOCUMENT = 0, STGFMT_DIRECTORY = 1, STGFMT_CATALOG = 2, STGFMT_FILE = 3, STGFMT_ANY = 4, STGFMT_DOCFILE = 5, STGFMT_STORAGE = 6, STGFMT_JUNCTION = 7 } STGFMT;
cpp_quote("#define STGFMT_FLATFILE STGFMT_FILE")
typedef struct tagSTGTEMPLATE { IUnknown * pUnkTemplate; DWORD ciidTemplate; IID * riidTemplate; } STGTEMPLATE;
typedef struct tagOBJECT_SECURITY_INIT { TRUSTEE_W * pTrusteeOwner; TRUSTEE_W * pTrusteeGroup; DWORD cAccessRightsLength; EXPLICIT_ACCESS_W *pAccessRightsList; DWORD cAuditEntriesLength; EXPLICIT_ACCESS_W *pAuditEntriesList; } OBJECT_SECURITY_INIT;
typedef struct tagSTGCREATE { DWORD grfAttrs; STGTEMPLATE *pTemplate; OBJECT_SECURITY_INIT *pSecurity; } STGCREATE;
typedef struct tagSTGOPEN { STGFMT stgfmt; DWORD grfMode; DWORD grfFlags; ITransaction * pTransaction; } STGOPEN;
typedef struct tagSTATDIR { WCHAR * pwcsName; STGFMT stgfmt; DWORD grfAttrs; ULARGE_INTEGER cbSize; FILETIME mtime; FILETIME atime; FILETIME ctime; DWORD grfMode; CLSID clsid; DWORD grfStateBits; } STATDIR;
[ object, uuid(5c036ea0-b556-11ce-b33a-00aa00680937), pointer_default(unique) ] interface IDirectory : IUnknown { [local] HRESULT __stdcall CreateElement ([in] const WCHAR * pwcsName, [in] STGCREATE * pStgCreate, [in] STGOPEN * pStgOpen, [in] REFIID riid, [out] void ** ppObjectOpen);
[call_as(CreateElement)] HRESULT __stdcall RemoteCreateElement ([in] const WCHAR * pwcsName, [in] STGCREATE * pStgCreate, [in] STGOPEN * pStgOpen, [in] REFIID riid, [out, iid_is(riid)] IUnknown ** ppObjectOpen);
[local] HRESULT __stdcall OpenElement ([in] const WCHAR *pwcsName, [in] STGOPEN * pStgOpen, [in] REFIID riid, [out] STGFMT * pStgfmt, [out] void ** ppObjectOpen);
[call_as(OpenElement)] HRESULT __stdcall RemoteOpenElement ([in] const WCHAR *pwcsName, [in] STGOPEN * pStgOpen, [in] REFIID riid, [out] STGFMT * pStgfmt, [out, iid_is(riid)] IUnknown ** ppObjectOpen);
HRESULT MoveElement ([in] const WCHAR *pwcsName, [in, unique] IDirectory * pdirDest, [in, unique] const WCHAR * pwcsNewName, [in] DWORD grfFlags);
HRESULT CommitDirectory ([in] DWORD grfCommitFlags); HRESULT RevertDirectory ();
HRESULT DeleteElement ([in] const WCHAR *pwcsName);
HRESULT SetTimes ([in, unique] const WCHAR *pwcsName, [in, unique] const FILETIME * pctime, [in, unique] const FILETIME * patime, [in, unique] const FILETIME * pmtime);
HRESULT SetDirectoryClass ([in] REFCLSID clsid); // redudant ?
HRESULT SetAttributes ([in, unique] const WCHAR * pwcsName, [in] DWORD grfAttrs);
HRESULT StatElement ([in, unique] const WCHAR *pwcsName, [out] STATDIR *pstatdir, [in] DWORD grfStatFlag);
HRESULT EnumDirectoryElements ([out] IEnumSTATDIR ** ppenum);
}
[ object, uuid(74c76b90-b556-11ce-b33a-00aa00680937), pointer_default(unique) ] interface IEnumSTATDIR : IUnknown { [local] HRESULT __stdcall Next( [in] ULONG celt, [in] STATDIR * rgelt, [out] ULONG * pceltFetched );
[call_as(Next)] HRESULT __stdcall RemoteNext( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] STATDIR * rgelt, [out] ULONG * pceltFetched );
HRESULT Skip([in] ULONG celt);
HRESULT Reset();
HRESULT Clone([out] IEnumSTATDIR ** ppenum); }
|