128 lines
2.3 KiB
C
128 lines
2.3 KiB
C
|
/*
|
||
|
* propstg.h - Property storage ADT
|
||
|
*/
|
||
|
|
||
|
#ifndef _PROPSTG_H_
|
||
|
#define _PROPSTG_H_
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
DECLARE_HANDLE(HPROPSTG);
|
||
|
|
||
|
HRESULT
|
||
|
WINAPI
|
||
|
PropStg_Create(
|
||
|
OUT HPROPSTG * phstg,
|
||
|
IN DWORD dwFlags); // PSTGF_*
|
||
|
|
||
|
// Flags for PropStg_Create
|
||
|
#define PSTGF_DEFAULT 0x00000000
|
||
|
|
||
|
HRESULT
|
||
|
WINAPI
|
||
|
PropStg_Destroy(
|
||
|
IN HPROPSTG hstg);
|
||
|
|
||
|
HRESULT
|
||
|
WINAPI
|
||
|
PropStg_ReadMultiple(
|
||
|
IN HPROPSTG hstg,
|
||
|
IN ULONG cpspec,
|
||
|
IN const PROPSPEC * rgpropspec,
|
||
|
IN PROPVARIANT * rgpropvar);
|
||
|
|
||
|
HRESULT
|
||
|
WINAPI
|
||
|
PropStg_WriteMultiple(
|
||
|
IN HPROPSTG hstg,
|
||
|
IN ULONG cpspec,
|
||
|
IN const PROPSPEC * rgpropspec,
|
||
|
IN const PROPVARIANT * rgpropvar,
|
||
|
IN PROPID propidFirst); OPTIONAL
|
||
|
|
||
|
|
||
|
typedef HRESULT (CALLBACK *PFNPROPVARMASSAGE)(PROPID propid, const PROPVARIANT * ppropvar, LPARAM lParam);
|
||
|
|
||
|
HRESULT
|
||
|
WINAPI
|
||
|
PropStg_WriteMultipleEx(
|
||
|
IN HPROPSTG hstg,
|
||
|
IN ULONG cpspec,
|
||
|
IN const PROPSPEC * rgpropspec,
|
||
|
IN const PROPVARIANT * rgpropvar,
|
||
|
IN PROPID propidFirst, OPTIONAL
|
||
|
IN PFNPROPVARMASSAGE pfn, OPTIONAL
|
||
|
IN LPARAM lParam); OPTIONAL
|
||
|
|
||
|
HRESULT
|
||
|
WINAPI
|
||
|
PropStg_DeleteMultiple(
|
||
|
IN HPROPSTG hstg,
|
||
|
IN ULONG cpspec,
|
||
|
IN const PROPSPEC * rgpropspec);
|
||
|
|
||
|
|
||
|
HRESULT
|
||
|
WINAPI
|
||
|
PropStg_DirtyMultiple(
|
||
|
IN HPROPSTG hstg,
|
||
|
IN ULONG cpspec,
|
||
|
IN const PROPSPEC * rgpropspec,
|
||
|
IN BOOL bDirty);
|
||
|
|
||
|
HRESULT
|
||
|
WINAPI
|
||
|
PropStg_DirtyAll(
|
||
|
IN HPROPSTG hstg,
|
||
|
IN BOOL bDirty);
|
||
|
|
||
|
HRESULT
|
||
|
WINAPI
|
||
|
PropStg_IsDirty(
|
||
|
IN HPROPSTG hstg);
|
||
|
|
||
|
|
||
|
typedef HRESULT (CALLBACK *PFNPROPSTGENUM)(PROPID propid, PROPVARIANT * ppropvar, LPARAM lParam);
|
||
|
|
||
|
HRESULT
|
||
|
WINAPI
|
||
|
PropStg_Enum(
|
||
|
IN HPROPSTG hstg,
|
||
|
IN DWORD dwFlags, // One of PSTGEF_
|
||
|
IN PFNPROPSTGENUM pfnEnum,
|
||
|
IN LPARAM lParam); OPTIONAL
|
||
|
|
||
|
// Filter flags for PropStg_Enum
|
||
|
#define PSTGEF_DEFAULT 0x00000000
|
||
|
#define PSTGEF_DIRTY 0x00000001
|
||
|
|
||
|
#ifdef DEBUG
|
||
|
HRESULT
|
||
|
WINAPI
|
||
|
PropStg_Dump(
|
||
|
IN HPROPSTG hstg,
|
||
|
IN DWORD dwFlags); // One of PSTGDF_
|
||
|
#endif
|
||
|
|
||
|
|
||
|
#ifdef DEBUG
|
||
|
|
||
|
BOOL
|
||
|
IsValidPPROPSPEC(
|
||
|
PROPSPEC * ppropspec);
|
||
|
|
||
|
BOOL
|
||
|
IsValidHPROPSTG(
|
||
|
HPROPSTG hstg);
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
};
|
||
|
#endif
|
||
|
|
||
|
#endif // _PROPSTG_H_
|