Commit Graph

190 Commits

Author SHA1 Message Date
Benjamin Arai 9634ffa7dc oleaut32: VarSub: Fixes several data types and corrects error codes. 2006-07-28 12:56:45 +02:00
Benjamin Arai 4026a4c0a8 oleaut32: Fix temp variant initialization issues in VarCat. 2006-07-21 13:40:32 +02:00
Benjamin Arai 911af4dce9 oleaut32: Update error codes for VarMod. 2006-07-19 09:38:50 +02:00
Benjamin Arai d42002b72c oleaut32: VarCmp - Corrected function description. 2006-07-18 11:10:15 +02:00
Benjamin Arai 700adac9ac oleaut32: Conformance test and patch for VarCat. 2006-07-11 17:14:58 +02:00
qingdoa daoo 5e09c29867 oleaut32: Copying a NULL BSTR should result in an empty BSTR in VariantCopy. 2006-07-10 11:52:45 +02:00
Robert Shearman 123592f0c3 oleaut32: Fix parsing of hex numbers with 'e' in the string by moving
the exponent parsing to after the hex digit parsing.
2006-07-03 11:33:23 +02:00
Robert Shearman b5bff92a0c oleaut32: Uncomment a line to implement conversion from VT_DISPATCH to VT_BSTR. 2006-06-08 11:11:01 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Huw Davies 2898b5d9ad oleaut32: Remove weird attempt to clear VT_VARIANT.
Add some tests.
2006-05-07 10:10:56 +02:00
Ulrich Czekalla 37f1d4cb54 oleaut32: Prevent freeing of random memory.
Don't assign type to variant until we're sure we are assigning a
value.
2006-02-02 13:18:43 +01:00
Michael Stefaniuc f73b68b016 oleaut32: Reimplement VarCmp().
- Supports now all WinXP allowed combinations of input variants.
- VT_RESERVED on input variants is handled now.
- Removed complicated VT_DATE comparision; that's not how Windows does it.
- Improved documentation.
2006-01-16 21:34:50 +01:00
Michael Stefaniuc e47b813fc6 oleaut32: Define missing but useful VTBIT_* macros. 2006-01-16 21:32:24 +01:00
Uwe Bonnes 87df07452a Extend VarCmp() and add test cases. 2005-11-03 13:21:11 +00:00
Robert Shearman 4381c62560 Fix a crash during +variant logging caused by a typo causing an array
to be one element less than expected.
2005-11-02 20:03:01 +00:00
Michael Stefaniuc 8ecefe9e93 Handle VT_DECIMAL in VarCmp(). 2005-10-28 10:08:31 +00:00
Michael Stefaniuc c64abfa374 Handle VT_CY in VarDiv(). 2005-10-26 12:05:39 +00:00
Alex Villacís Lasso 253f3bf5be Modify VarDiv() and VarSub() to use the existing VarDecSub() and
VarDecDiv() for DECIMAL.
2005-09-22 10:35:16 +00:00
Michael Stefaniuc 4d36546c07 - VarAdd, VarMul: I4 overflows to R8 and not I8 even if the result
would fit in I8. Fix tests.
- Document a brokeness in the handling of I8 numbers in
  VarNumFromParseNum. Fix tests.
2005-08-23 09:33:37 +00:00
Robert Shearman 27407fad35 Document active object and variant functions. 2005-07-05 11:02:19 +00:00
Robert Shearman cbc3af8ca5 - Conversions between variants types of the same size should ignore
overflows.
- Tests for this behaviour.
2005-06-29 20:15:32 +00:00
Michael Stefaniuc 8e81d45732 - VarCmp: handle comparision of VT_EMPTY with an integer
- small comment fix
2005-06-28 10:54:07 +00:00
Francois Gouget 6394a15314 Assorted spelling fixes. 2005-06-17 20:59:49 +00:00
Michael Stefaniuc 948dd66603 - Reimplement VarAdd, had missing functionality and wrong behaviour.
- Fix a typo in VarMul.
2005-05-29 20:00:31 +00:00
Michael Stefaniuc 0f64aaa807 Reimplement VarMul(). It can multiply now all variants that the native
(WinXP) function supports too.
2005-05-23 11:46:17 +00:00
Richard Cohen 97bc8f6dc7 - Remove unused macro.
- Check for VT_I8 before testing it.
- VarMod returns DISP_E_OVERFLOW not E_INVALIDARG.
2005-05-23 10:26:32 +00:00
Michael Stefaniuc 28faa92c7f Fix VariantChangeType: calls to VarDecFromCy and VarDecFromDisp had
source and destination swapped.
2005-05-23 09:50:50 +00:00
Daniel Remenak 4d7e99df93 Implemented VarIdiv. 2005-04-13 10:59:25 +00:00
Daniel Remenak 292b61f550 Return DISP_E_DIVBYZERO instead of crashing when asked to divide a
variant by zero.
2005-04-12 10:15:56 +00:00
Jon Griffiths 743fb99a9f Use variant macros instead of accessing the union directly. 2005-02-22 14:54:01 +00:00
Alex Villacís Lasso d0bdb3888b Initialize temporary variants before calling VariantChangeTypeEx. 2005-01-25 18:57:43 +00:00
Alex Villacís Lasso ed9a359402 When parsing an hex/oct integer value, copy value verbatim in VARIANT,
rather than a negated value. Add test case for this behavior.
2005-01-17 19:34:58 +00:00
Eric Pouech cf1d00bb08 Removed excessive statement (break after return or goto, not useful
break, not needed vars...)
2005-01-09 16:42:53 +00:00
Francois Gouget 6fb1a20020 Assorted spelling fixes. 2004-12-20 19:27:06 +00:00
Robert Shearman cd0970eb24 Make the DECIMAL_SETZERO macro take a DECIMAL instead of a DECIMAL* as
in the Microsoft headers and fix up the only caller.
2004-12-08 13:59:52 +00:00
Walt Ogburn f61786d444 VarParseNumFromStr: Keep zeros after decimal point, correctly keep
track of trailing zeros in a decimal number.
VarNumFromParseNum: Don't error on decimal expressions for zero.
2004-10-21 19:55:37 +00:00
Walt Ogburn 84c1f667ae Keep "trailing" zeros on whole number part of a decimal.
Add an example of this to tests.
2004-10-19 21:08:40 +00:00
Walt Ogburn d5cf83317e Allow exponents of zero (like "1.000E0") to parse
correctly. Previously, they caused DISP_E_TYPEMISMATCH.
2004-10-11 20:53:29 +00:00
Huw Davies 76c5590bfb Don't trash the dst variant if we can't do the type conversion.
Add a test for this.
2004-09-22 19:12:18 +00:00
Jacek Caban 3a2574e3cc Fix handling of VARIANT with VT_BYREF and null pointer in
VariantChangeTypeEx.
2004-08-25 00:38:59 +00:00
Alexandre Julliard 25e2a320a7 Don't define BEGIN_INTERFACE in unknwn.h. 2004-08-22 21:38:46 +00:00
Francois Gouget bf72af30d0 Modify widl to put the C COM macros inside an #ifdef COBJMACROS block
as is done in the Windows headers.
Add #define COBJMACROS where needed in Wine.
Fixes the compilation of the oleaut32/tests/olefont.c and
urlmon/tests/url.c conformance tests with the Windows headers.
2004-08-11 19:43:45 +00:00
Mike Hearn f349cbb72b Move variant code to its own debug channel. 2004-07-04 00:09:11 +00:00
Jon Griffiths 89450e7cbd Implement VarDateFromUdateEx. 2004-04-30 18:32:58 +00:00
Jon Griffiths befb3a9980 Implement VarOr.
Fixes for untested VarXor,VarAbs,VarNot input types.
2004-04-27 23:29:37 +00:00
Jon Griffiths 9b609135e1 Conversion from VT_UINT to VT_I4 ignores overflow. 2004-04-23 21:29:49 +00:00
Francois Gouget 0217bfdfed Assorted spelling fixes. 2004-04-12 22:08:23 +00:00
Jon Griffiths 743b75ab44 Implement VarXor and simplify VarEqv to use it. 2004-03-22 20:39:27 +00:00
Jon Griffiths 071e950344 Implement VarEqv. 2004-03-17 20:49:22 +00:00
Fabian Cenedese 5feedfdc73 Let VarParseNumFromStr and VarNumFromParseNum cope with hex and oct
strings. Needed from VB conversions such as CLng, CInt, CByte...
2004-03-16 19:15:04 +00:00
Patrik Stridvall 8f9b09e947 Fixed some issues found by winapi_check. 2004-02-27 21:32:54 +00:00
Fabian Cenedese 3d7034e79e VarRound implementation (without type DECIMAL yet) with test function. 2004-02-26 05:27:11 +00:00
Alexandre Julliard b65d13605c Fixed callers of GetLocaleInfoW to use the correct buffer size. 2004-02-25 01:35:01 +00:00
Fabian Cenedese 393ae7d204 Accept VT_BOOL mixed with another type as valid combination in
VarOr/VarAnd.
2004-02-17 20:25:41 +00:00
Chris Morgan 2d1bccd0c4 Implement VarMod().
Add a few trace outputs.
Fix VarNot() with VT_CY.
Fix VarParseNumFromStr() to work correctly with NUMPRS_HEX_OCT flag.
2004-02-06 05:23:29 +00:00
Jon Griffiths f4e7227541 Implemented VarInt, VarFix, VarNeg. 2004-01-13 23:16:04 +00:00
Marcus Meissner 2ac287e875 Copy BSTRs byte wise.
Added a testcase for byte wise copy of VT_BSTR variant with
VariantCopy().
2004-01-09 00:58:01 +00:00
Francois Gouget 640cc3f3e1 Assorted spelling fixes. 2004-01-06 22:08:33 +00:00
Jon Griffiths d95ee19dfd Use the SafeArray conversion functions when coercing arrays.
Simplify VariantChangeTypeEx.
Replace calls to dump_Variant() with TRACE's.
2003-12-15 21:10:53 +00:00
Marcus Meissner cf50f9a04e Implemented VarInt, VarPow.
Added R4 (float) support to VarAdd.
Added DATE support to VarSub.
2003-12-15 20:14:32 +00:00
Jon Griffiths 97fc6c3a06 Oops - VT_EMPTY->VT_RECORD is not allowed. 2003-12-11 05:25:59 +00:00
Jon Griffiths 7e40baadc1 Reimplement/document every low level variant function.
Implement DECIMAL, I8, UI8 types and other missing conversions.
VariantChangeType: Use LOCALE_USER_DEFAULT as per MSDN.
VariantChangeTypeEx: Support new types, pass proper flags.
VarNumFromParseNum: Support VT_DECIMAL as output.
2003-12-11 04:28:20 +00:00
Jon Griffiths 7e7ca4ac95 Implement conversions between dates and strings.
Remove the final cruft associated with the old date code
BPB's: Roll milliseconds correctly; LOCALE_NOUSEROVERRIDE for num
parsing.
Implement VarAbs and VarNot.
2003-12-09 00:05:31 +00:00
Jon Griffiths d537c955bc Implemented the variant formatting functions.
Bool->bstr makes a number str unless [ALPHA|LOCAL]BOOL is passed.
2003-11-25 01:49:31 +00:00
Jon Griffiths 136fa03fbf Implement the non-variant date conversions correctly, without going
through 'struct tm' first. Handle negative & 'rolling' dates too.
2003-11-14 21:01:36 +00:00
Gerald Pfeifer 5cc4b3ba16 Removed dead code in VarDateFromUI2(). 2003-11-09 01:21:04 +00:00
Francois Gouget f405629e8e Weekly spelling fixes. 2003-10-28 21:45:30 +00:00
Daniel Marmier 0348649853 Fixed warnings with gcc option "-Wwrite-strings". 2003-10-06 21:03:32 +00:00
Jon Griffiths 166e96d11f Add VarParseNumFromStr()/VarNumFromParseNum(), use them for
conversions.
VariantInit(): Only touch V_VT field.
VariantClear(): Support IRecordInfo, don't free null bstrs.
Add support for upcoming vtypes, remove dead code, docs.
2003-10-03 03:36:46 +00:00
ccfca3cbc4 Use SysAllocStringByteLen/SysStringByteLen to copy BSTR variants. 2003-09-16 01:03:34 +00:00
Mike McCormack 8d61c96d64 Create a propper stub for oleaut32.VarMod. 2003-09-08 18:37:22 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Jon Griffiths 58422dc83c Add a bunch of missing stuff.
Use proper types for SafeArray/variant prototypes.
Change I1 functions to take signed chars
2003-07-18 22:52:58 +00:00
Francois Gouget 56aaea2f43 Spelling fixes. 2003-07-09 02:52:57 +00:00
Marcus Meissner 1ae1797505 VarAdd: Added VT_R8, VT_EMPTY, VT_NULL handling. 2003-06-24 19:36:58 +00:00
Marcus Meissner 615615b0c9 OleCreateFontIndirect(NULL,...) uses the OLE StdFont.
Added testcase for OleCreateFontIndirect(NULL).
Added VT_NULL -> VT_BOOL variant converter.
2003-06-24 19:21:20 +00:00
Francois Gouget c5f775a9c7 Typos/spelling fixes. 2003-06-18 03:30:39 +00:00
Stefan Leichter a42b0d1368 Partial implementaion of VarBstrFromDec. 2003-05-17 18:30:03 +00:00
Stefan Leichter 053b839179 Fixed DECIMAL_SETZERO
Removed a workaround for the former problem.
2003-05-16 20:13:50 +00:00
Stefan Leichter 9daabbc8d1 Added stub for VarBstrFromDec. 2003-05-15 22:58:48 +00:00
Stefan Leichter 39aab38006 Partial implementation of VarDecFromStr. 2003-05-15 04:15:25 +00:00
Adam Gundy 962b81d607 Handle coercing VT_DISPATCH into VT_PTR. 2003-03-06 22:42:28 +00:00
Marcus Meissner 7ba0c5f3aa VarAdd: set 'rc' correctly from BSTR addition. 2003-03-04 02:14:32 +00:00
Marcus Meissner b3be773afe Added R4 and R8 comparison to VarCmp.
Added I2 to VarFormat.
Added VarSub, VarDiv, VarMul for integer and float types.
2003-01-28 00:23:19 +00:00
Matthew Davison 60009b9a56 Removed calls to HEAP_strdupAtoW. 2003-01-23 23:07:38 +00:00
Francois Gouget 18e6bb81e3 Fix the case of floats in VarBstrFromR4, VarBstrFromR8 and
VarBstrFromCy.
We cannot check for equality of floats or doubles because of rounding
errors. Check equality to 14 digits for doubles.
Add more precision to the expected results so that they match actual
results.
Print floating values with more precision so we know what went wrong.
Specify the locale for all variant functions that depend on it.
Added return codes for Win95. Win95 returns dates with only two digits
for the year.
Uncommented more VariantCopyInd and VariantChangeTypeEx tests.
2003-01-13 18:30:18 +00:00
Marcus Meissner fe483aae1d Coerce VT_UNKNOWN <-> VT_DISPATCH, NULL is valid in these cases.
Drop VT_x -> VT_x coercions, they are handled before the switch()
already.
2003-01-11 20:58:58 +00:00
Dimitrie O. Paun 297f3d898d Define NONAMELESS{STRUCT,UNION} explicitly in the files that need them. 2003-01-07 20:36:20 +00:00
Ove Kaaven 40b94e5347 Avoid direct ICOM_CALL usage. 2003-01-05 01:06:04 +00:00
Marcus Meissner 48e583db52 Handle VT_ERROR->VT_I4/VT_R4 coercion.
VariantCopy does not need to check the return of VariantClear.
VariantCopyInd now copies VT_UNKNOWN and VT_DISPATCH too.
VarCmp handles VT_BOOL.
VarFormat handles VT_BSTR.
coerce_array fixed for VT_ARRAY|VT_UI1 -> VT_BSTR and VT_ARRAY|x ->
VT_SAFEARRAY cases.
VarCat tries to coerce types into VT_BSTR to do cat.
2003-01-02 23:11:56 +00:00
Marcus Meissner ef2f1b6ec5 VariantChangeTypeEx for VT_ARRAY | type style variants. 2002-12-23 02:03:10 +00:00
Andreas Mohr dc85dc0a1b Implemented VarOr(). 2002-12-16 22:08:48 +00:00
Jason Edmeades d197d40295 VarAdd support for integers. 2002-12-10 19:06:28 +00:00
Ove Kaaven 729dd8bf28 Added more types to wtypes.idl. 2002-12-03 21:42:17 +00:00
Jason Edmeades 0ba86d81fe Add support for VarAnd between integers. 2002-11-25 02:42:33 +00:00
Patrik Stridvall a3868218d0 Fixed some issues found by winapi_check. 2002-07-19 00:30:16 +00:00
Jason Edmeades 86d5a32de4 - VarFormat now supports VT_R8 and BYREF variant types.
- Add VarCyMulI4 support.
2002-07-08 19:36:24 +00:00
Jason Edmeades daec720709 Ensure VarBstrCat handles null parms as per windows and actually does
the concatenation even for null args.
2002-07-05 01:22:03 +00:00
Vincent Béron e35580f4c9 Fixed some various comparisons wrt signedness. 2002-06-21 22:25:17 +00:00
John K. Hohm 2b78ac039f Implemented SizeOfVariantData cases for VT_DISPATCH, VT_UNKNOWN, VT_CY. 2002-06-21 20:13:18 +00:00