You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
4.6 KiB
169 lines
4.6 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// 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);
|
|
}
|