From 539c2e45ec105c640ad23e904d02614080b3b8ce Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Fri, 22 Mar 2013 12:02:09 +0000 Subject: [PATCH] [PSDK] * Update propvarutil.h. svn path=/trunk/; revision=58566 --- reactos/include/psdk/propvarutil.h | 79 +++++++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) diff --git a/reactos/include/psdk/propvarutil.h b/reactos/include/psdk/propvarutil.h index 2573d38d1a1..4791543b01e 100644 --- a/reactos/include/psdk/propvarutil.h +++ b/reactos/include/psdk/propvarutil.h @@ -19,7 +19,6 @@ #ifndef __WINE_PROPVARUTIL_H #define __WINE_PROPVARUTIL_H -#include #include #include @@ -35,7 +34,85 @@ enum tagPROPVAR_CHANGE_FLAGS typedef int PROPVAR_CHANGE_FLAGS; +enum tagPROPVAR_COMPARE_UNIT +{ + PVCU_DEFAULT = 0x00000000, + PVCU_SECOND = 0x00000001, + PVCU_MINUTE = 0x00000002, + PVCU_HOUR = 0x00000003, + PVCU_DAY = 0x00000004, + PVCU_MONTH = 0x00000005, + PVCU_YEAR = 0x00000006, +}; + +typedef int PROPVAR_COMPARE_UNIT; + +enum tagPROPVAR_COMPARE_FLAGS +{ + PVCF_DEFAULT = 0x00000000, + PVCF_TREATEMPTYASGREATERTHAN = 0x00000001, + PVCF_USESTRCMP = 0x00000002, + PVCF_USESTRCMPC = 0x00000004, + PVCF_USESTRCMPI = 0x00000008, + PVCF_USESTRCMPIC = 0x00000010, +}; + +typedef int PROPVAR_COMPARE_FLAGS; + HRESULT WINAPI PropVariantChangeType(PROPVARIANT *ppropvarDest, REFPROPVARIANT propvarSrc, PROPVAR_CHANGE_FLAGS flags, VARTYPE vt); +HRESULT WINAPI InitPropVariantFromGUIDAsString(REFGUID guid, PROPVARIANT *ppropvar); +HRESULT WINAPI InitVariantFromGUIDAsString(REFGUID guid, VARIANT *pvar); +HRESULT WINAPI InitPropVariantFromBuffer(const VOID *pv, UINT cb, PROPVARIANT *ppropvar); +HRESULT WINAPI InitVariantFromBuffer(const VOID *pv, UINT cb, VARIANT *pvar); +HRESULT WINAPI PropVariantToGUID(const PROPVARIANT *ppropvar, GUID *guid); +HRESULT WINAPI VariantToGUID(const VARIANT *pvar, GUID *guid); +INT WINAPI PropVariantCompareEx(REFPROPVARIANT propvar1, REFPROPVARIANT propvar2, + PROPVAR_COMPARE_UNIT uint, PROPVAR_COMPARE_FLAGS flags); + +HRESULT WINAPI PropVariantToInt16(REFPROPVARIANT propvarIn, SHORT *ret); +HRESULT WINAPI PropVariantToInt32(REFPROPVARIANT propvarIn, LONG *ret); +HRESULT WINAPI PropVariantToInt64(REFPROPVARIANT propvarIn, LONGLONG *ret); +HRESULT WINAPI PropVariantToUInt16(REFPROPVARIANT propvarIn, USHORT *ret); +HRESULT WINAPI PropVariantToUInt32(REFPROPVARIANT propvarIn, ULONG *ret); +HRESULT WINAPI PropVariantToUInt64(REFPROPVARIANT propvarIn, ULONGLONG *ret); + +#ifdef __cplusplus + +HRESULT InitPropVariantFromBoolean(BOOL fVal, PROPVARIANT *ppropvar); +HRESULT InitPropVariantFromString(PCWSTR psz, PROPVARIANT *ppropvar); +HRESULT InitPropVariantFromInt64(LONGLONG llVal, PROPVARIANT *ppropvar); + +#ifndef NO_PROPVAR_INLINES + +inline HRESULT InitPropVariantFromBoolean(BOOL fVal, PROPVARIANT *ppropvar) +{ + ppropvar->vt = VT_BOOL; + ppropvar->boolVal = fVal ? VARIANT_TRUE : VARIANT_FALSE; + return S_OK; +} + +inline HRESULT InitPropVariantFromString(PCWSTR psz, PROPVARIANT *ppropvar) +{ + HRESULT hres; + + hres = SHStrDupW(psz, &ppropvar->pwszVal); + if(SUCCEEDED(hres)) + ppropvar->vt = VT_LPWSTR; + else + PropVariantInit(ppropvar); + + return hres; +} + +inline HRESULT InitPropVariantFromInt64(LONGLONG llVal, PROPVARIANT *ppropvar) +{ + ppropvar->vt = VT_I8; + ppropvar->hVal.QuadPart = llVal; + return S_OK; +} + +#endif +#endif #endif /* __WINE_PROPVARUTIL_H */