| /* | 
 |  * Copyright 2008 James Hawkins for CodeWeavers | 
 |  * | 
 |  * This library is free software; you can redistribute it and/or | 
 |  * modify it under the terms of the GNU Lesser General Public | 
 |  * License as published by the Free Software Foundation; either | 
 |  * version 2.1 of the License, or (at your option) any later version. | 
 |  * | 
 |  * This library is distributed in the hope that it will be useful, | 
 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
 |  * Lesser General Public License for more details. | 
 |  * | 
 |  * You should have received a copy of the GNU Lesser General Public | 
 |  * License along with this library; if not, write to the Free Software | 
 |  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
 |  */ | 
 |  | 
 | #ifndef __WINE_PROPVARUTIL_H | 
 | #define __WINE_PROPVARUTIL_H | 
 |  | 
 | #include <shtypes.h> | 
 | #include <shlwapi.h> | 
 |  | 
 | enum tagPROPVAR_CHANGE_FLAGS | 
 | { | 
 |     PVCHF_DEFAULT           = 0x00000000, | 
 |     PVCHF_NOVALUEPROP       = 0x00000001, | 
 |     PVCHF_ALPHABOOL         = 0x00000002, | 
 |     PVCHF_NOUSEROVERRIDE    = 0x00000004, | 
 |     PVCHF_LOCALBOOL         = 0x00000008, | 
 |     PVCHF_NOHEXSTRING       = 0x00000010, | 
 | }; | 
 |  | 
 | typedef int PROPVAR_CHANGE_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); | 
 |  | 
 |  | 
 | #ifdef __cplusplus | 
 |  | 
 | HRESULT InitPropVariantFromBoolean(BOOL fVal, PROPVARIANT *ppropvar); | 
 | HRESULT InitPropVariantFromString(PCWSTR psz, 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; | 
 | } | 
 |  | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif /* __WINE_PROPVARUTIL_H */ |