38#define GUID_STR_LEN 38
69 if (!ppropvarDest->pszVal)
72 sprintf( ppropvarDest->pszVal,
"%04d/%02d/%02d:%02d:%02d:%02d.%03d",
80 FIXME(
"Unhandled target type: %d\n",
vt);
119 *
res = pv->hVal.QuadPart;
123 *
res = pv->uhVal.QuadPart;
137 if (pv->pszVal ==
end)
139 src_signed = *
res < 0;
147 if (pv->pwszVal ==
end)
149 src_signed = *
res < 0;
159 FIXME(
"unhandled vt %d\n", pv->vt);
163 if (*
res < 0 && src_signed != dest_signed)
189 TRACE(
"(%p, %p)\n", propvarIn,
ret);
261 TRACE(
"%p,%lu\n", propvarIn, ulDefault);
291 switch (propvarIn->vt)
294 *
ret = propvarIn->boolVal == VARIANT_TRUE;
299 if (!propvarIn->pwszVal)
316 if (!propvarIn->pszVal)
319 if (!
lstrcmpiA(propvarIn->pszVal,
"true") || !
lstrcmpA(propvarIn->pszVal,
"#TRUE#"))
325 if (!
lstrcmpiA(propvarIn->pszVal,
"false") || !
lstrcmpA(propvarIn->pszVal,
"#FALSE#"))
343 TRACE(
"propvar %p, propvar->vt %#x, bstr %p.\n",
344 propvar, propvar ? propvar->vt : 0, bstr);
364 switch(propvarIn->vt)
367 if(
cb > propvarIn->caub.cElems)
372 FIXME(
"Unsupported type: VT_ARRAY|VT_UI1\n");
376 WARN(
"Unexpected type: %x\n", propvarIn->vt);
412 TRACE(
"%p,%p semi-stub\n", propvarIn,
ret);
414 switch(propvarIn->vt)
423 if(propvarIn->pszVal)
438 if (propvarIn->pwszVal)
448 if (propvarIn->puuid)
457 FIXME(
"Unsupported conversion (%d)\n", propvarIn->vt);
471 if (propvarIn->bstrVal ==
NULL)
474 return propvarIn->bstrVal;
477 if (propvarIn->vt ==
VT_LPWSTR && propvarIn->pwszVal !=
NULL)
478 return propvarIn->pwszVal;
497 return default_value;
560 ppropvarDest->vt =
VT_I1;
561 ppropvarDest->cVal = (
char)
res;
573 ppropvarDest->vt =
VT_UI1;
585 ppropvarDest->vt =
VT_I2;
586 ppropvarDest->iVal =
res;
596 ppropvarDest->vt =
VT_UI2;
597 ppropvarDest->uiVal =
res;
607 ppropvarDest->vt =
VT_I4;
608 ppropvarDest->lVal =
res;
618 ppropvarDest->vt =
VT_UI4;
619 ppropvarDest->ulVal =
res;
629 ppropvarDest->vt =
VT_I8;
630 ppropvarDest->hVal.QuadPart =
res;
640 ppropvarDest->vt =
VT_UI8;
641 ppropvarDest->uhVal.QuadPart =
res;
654 ppropvarDest->pwszVal =
res;
674 ppropvarDest->pszVal =
res;
685 FIXME(
"Unhandled dest type: %d\n",
vt);
698 if(!ppropvar->pwszVal)
710 FIXME(
"guid == NULL\n");
725 TRACE(
"(%p %u %p)\n", pv,
cb, ppropvar);
728 if(!ppropvar->caub.pElems)
732 ppropvar->caub.cElems =
cb;
733 memcpy(ppropvar->caub.pElems, pv,
cb);
746 memcpy(ppropvar->puuid,
clsid,
sizeof(*ppropvar->puuid));
754 TRACE(
"(%p %lu %p)\n", strs,
count, ppropvar);
757 if(!ppropvar->calpwstr.pElems)
761 ppropvar->calpwstr.cElems = 0;
763 memset(ppropvar->calpwstr.pElems, 0,
count *
sizeof(*ppropvar->calpwstr.pElems));
775 wcscpy(ppropvar->calpwstr.pElems[
i], strs[
i]);
776 ppropvar->calpwstr.cElems++;
788 TRACE(
"(%p %u %p)\n", pv,
cb, pvar);
832 if(
hex[0]>=
'0' &&
hex[0]<=
'9')
834 else if(
hex[0]>=
'a' &&
hex[0]<=
'f')
836 else if(
hex[0]>=
'A' &&
hex[0]<=
'F')
842 if(
hex[1]>=
'0' &&
hex[1]<=
'9')
844 else if(
hex[1]>=
'a' &&
hex[1]<=
'f')
845 return ret +
hex[1]-
'a'+10;
846 else if(
hex[1]>=
'A' &&
hex[1]<=
'F')
847 return ret +
hex[1]-
'A'+10;
859 if(
len!=38 ||
str[0]!=
'{' ||
str[9]!=
'-' ||
str[14]!=
'-'
860 ||
str[19]!=
'-' ||
str[24]!=
'-' ||
str[37]!=
'}') {
866 for(
i=0;
i<4 &&
val!=-1;
i++) {
872 for(
i=0;
i<2 &&
val!=-1;
i++) {
878 for(
i=0;
i<2 &&
val!=-1;
i++) {
884 for(
i=0;
i<8 &&
val!=-1;
i++) {
904 switch(ppropvar->vt) {
910 memcpy(
guid, ppropvar->puuid,
sizeof(*ppropvar->puuid));
914 FIXME(
"unsupported vt: %d\n", ppropvar->vt);
932 FIXME(
"unsupported vt: %d\n",
V_VT(pvar));
944 for (
i=0;
i<propvar->parray->cDims;
i++)
946 if (propvar->parray->rgsabound[
i].cElements != 0)
949 return i == propvar->parray->cDims;
952 return !propvar->puuid;
955 return !propvar->caub.cElems;
964 const PROPVARIANT *propvar2_converted;
965 PROPVARIANT propvar2_static;
989 propvar2_converted = &propvar2_static;
994#define CMP_NUM_VALUE(var) do { \
995 if (propvar1->var > propvar2_converted->var) \
997 else if (propvar1->var < propvar2_converted->var) \
1003 switch (propvar1->vt)
1039 res =
lstrcmpiW(propvar1->bstrVal, propvar2_converted->bstrVal);
1041 res =
lstrcmpW(propvar1->bstrVal, propvar2_converted->bstrVal);
1046 res =
lstrcmpiA(propvar1->pszVal, propvar2_converted->pszVal);
1048 res =
lstrcmpA(propvar1->pszVal, propvar2_converted->pszVal);
1058 if (!
res && propvar1->caub.cElems !=
propvar2->caub.cElems)
1059 res = propvar1->caub.cElems >
propvar2->caub.cElems ? 1 : -1;
1062 FIXME(
"vartype %#x not handled\n", propvar1->vt);
1067 if (propvar2_converted == &propvar2_static)
1077 TRACE(
"propvar %p, var %p, propvar->vt %#x.\n", propvar,
var, propvar ? propvar->vt : 0);
1079 if (!
var || !propvar)
1086 var->vt = propvar->vt;
1089 switch (propvar->vt)
1104 V_I8(
var) = propvar->hVal.QuadPart;
1116 V_UI8(
var) = propvar->uhVal.QuadPart;
1139 FIXME(
"Unsupported type %d.\n", propvar->vt);
1152 if (!
var || !propvar)
1162 PropVariantInit(propvar);
1168 propvar->vt =
var->vt;
1190 propvar->hVal.QuadPart =
V_I8(
var);
1202 propvar->uhVal.QuadPart =
V_UI8(
var);
1220 FIXME(
"Unsupported type %d.\n",
var->vt);
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define WideCharToMultiByte
#define MultiByteToWideChar
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
int WINAPI lstrcmpiA(LPCSTR str1, LPCSTR str2)
static REFPROPVARIANT propvarSrc
static REFPROPVARIANT PROPVAR_CHANGE_FLAGS VARTYPE vt
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
HRESULT WINAPI PropVariantClear(PROPVARIANT *pvar)
HRESULT WINAPI PropVariantCopy(PROPVARIANT *pvarDest, const PROPVARIANT *pvarSrc)
HRESULT WINAPI SafeArrayAccessData(SAFEARRAY *psa, void **ppvData)
HRESULT WINAPI SafeArrayUnaccessData(SAFEARRAY *psa)
SAFEARRAY *WINAPI SafeArrayCreateVector(VARTYPE vt, LONG lLbound, ULONG cElements)
HRESULT WINAPI SafeArrayDestroy(SAFEARRAY *psa)
HRESULT WINAPI PropVariantToInt32(REFPROPVARIANT propvarIn, LONG *ret)
HRESULT WINAPI InitVariantFromGUIDAsString(REFGUID guid, VARIANT *pvar)
HRESULT WINAPI InitVariantFromFileTime(const FILETIME *ft, VARIANT *var)
PCWSTR WINAPI PropVariantToStringWithDefault(REFPROPVARIANT propvarIn, LPCWSTR pszDefault)
static HRESULT PROPVAR_ConvertFILETIME(const FILETIME *ft, PROPVARIANT *ppropvarDest, VARTYPE vt)
static HRESULT VARIANT_ValidateType(VARTYPE vt)
INT WINAPI PropVariantCompareEx(REFPROPVARIANT propvar1, REFPROPVARIANT propvar2, PROPVAR_COMPARE_UNIT unit, PROPVAR_COMPARE_FLAGS flags)
ULONG WINAPI PropVariantToUInt32WithDefault(REFPROPVARIANT propvarIn, ULONG ulDefault)
HRESULT WINAPI VariantToGUID(const VARIANT *pvar, GUID *guid)
HRESULT WINAPI PropVariantToBuffer(REFPROPVARIANT propvarIn, void *ret, UINT cb)
HRESULT WINAPI PropVariantToUInt16(REFPROPVARIANT propvarIn, USHORT *ret)
static HRESULT PROPVAR_WCHARToGUID(const WCHAR *str, int len, GUID *guid)
#define CMP_NUM_VALUE(var)
static BOOL isemptyornull(const PROPVARIANT *propvar)
HRESULT WINAPI InitPropVariantFromCLSID(REFCLSID clsid, PROPVARIANT *ppropvar)
HRESULT WINAPI VariantToString(REFVARIANT var, PWSTR ret, UINT cch)
HRESULT WINAPI PropVariantToStringAlloc(REFPROPVARIANT propvarIn, WCHAR **ret)
HRESULT WINAPI PropVariantChangeType(PROPVARIANT *ppropvarDest, REFPROPVARIANT propvarSrc, PROPVAR_CHANGE_FLAGS flags, VARTYPE vt)
HRESULT WINAPI InitPropVariantFromBuffer(const VOID *pv, UINT cb, PROPVARIANT *ppropvar)
static HRESULT PROPVAR_ConvertNumber(REFPROPVARIANT pv, int dest_bits, BOOL dest_signed, LONGLONG *res)
HRESULT WINAPI InitPropVariantFromStringVector(PCWSTR *strs, ULONG count, PROPVARIANT *ppropvar)
HRESULT WINAPI PropVariantToBoolean(REFPROPVARIANT propvarIn, BOOL *ret)
HRESULT WINAPI PropVariantToBSTR(REFPROPVARIANT propvar, BSTR *bstr)
PCWSTR WINAPI VariantToStringWithDefault(const VARIANT *pvar, const WCHAR *default_value)
HRESULT WINAPI PropVariantToInt64(REFPROPVARIANT propvarIn, LONGLONG *ret)
static DWORD PROPVAR_HexToNum(const WCHAR *hex)
HRESULT WINAPI PropVariantToDouble(REFPROPVARIANT propvarIn, double *ret)
HRESULT WINAPI PropVariantToString(REFPROPVARIANT propvarIn, PWSTR ret, UINT cch)
HRESULT WINAPI PropVariantToUInt64(REFPROPVARIANT propvarIn, ULONGLONG *ret)
HRESULT WINAPI PropVariantToUInt32(REFPROPVARIANT propvarIn, ULONG *ret)
HRESULT WINAPI PropVariantToGUID(const PROPVARIANT *ppropvar, GUID *guid)
HRESULT WINAPI VariantToPropVariant(const VARIANT *var, PROPVARIANT *propvar)
HRESULT WINAPI PropVariantToInt16(REFPROPVARIANT propvarIn, SHORT *ret)
HRESULT WINAPI InitVariantFromBuffer(const VOID *pv, UINT cb, VARIANT *pvar)
HRESULT WINAPI InitPropVariantFromGUIDAsString(REFGUID guid, PROPVARIANT *ppropvar)
HRESULT WINAPI PropVariantToVariant(const PROPVARIANT *propvar, VARIANT *var)
static const WCHAR stringW[]
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
_Check_return_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
__MINGW_EXTENSION long long __cdecl strtoll(const char *__restrict__, char **__restrict, int)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
_Check_return_ _ACRTIMP __int64 __cdecl _strtoi64(_In_z_ char const *_String, _Out_opt_ _Deref_post_z_ char **_EndPtr, _In_ int _Radix)
#define memcpy(s1, s2, n)
#define sprintf(buf, format,...)
static DWORD DWORD void LPSTR DWORD cch
static const char * debugstr_variant(const VARIANT *var)
static HMODULE MODULEINFO DWORD cb
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
BSTR WINAPI SysAllocString(LPCOLESTR str)
UINT WINAPI SysStringLen(BSTR str)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
png_const_structrp png_const_inforp int * unit
static IPropertySystem propsys
@ PVCF_TREATEMPTYASGREATERTHAN
int PROPVAR_COMPARE_FLAGS
#define STRSAFE_E_INSUFFICIENT_BUFFER
void WINAPI VariantInit(VARIANTARG *pVarg)
INT WINAPI SystemTimeToVariantTime(LPSYSTEMTIME lpSt, double *pDateOut)
#define DISP_E_BADVARTYPE
#define HRESULT_FROM_WIN32(x)
#define ERROR_ARITHMETIC_OVERFLOW
#define DISP_E_TYPEMISMATCH