Michael Stefaniuc : oleaut32: Define missing but useful VTBIT_* macros.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Jan 16 14:38:07 CST 2006


Module: wine
Branch: refs/heads/master
Commit: e47b813fc6d517ed341ed7b6f75925d1cec5add0
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=e47b813fc6d517ed341ed7b6f75925d1cec5add0

Author: Michael Stefaniuc <mstefani at redhat.de>
Date:   Mon Jan 16 21:32:24 2006 +0100

oleaut32: Define missing but useful VTBIT_* macros.

---

 dlls/oleaut32/varformat.c |    2 +-
 dlls/oleaut32/variant.c   |    6 +++---
 dlls/oleaut32/variant.h   |   14 ++++++++++++++
 3 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/dlls/oleaut32/varformat.c b/dlls/oleaut32/varformat.c
index 13458a2..29bf3a7 100644
--- a/dlls/oleaut32/varformat.c
+++ b/dlls/oleaut32/varformat.c
@@ -1983,7 +1983,7 @@ VARIANT_FormatString_Exit:
 #define NUMBER_VTBITS (VTBIT_I1|VTBIT_UI1|VTBIT_I2|VTBIT_UI2| \
                        VTBIT_I4|VTBIT_UI4|VTBIT_I8|VTBIT_UI8| \
                        VTBIT_R4|VTBIT_R8|VTBIT_CY|VTBIT_DECIMAL| \
-                       (1<<VT_BOOL)|(1<<VT_INT)|(1<<VT_UINT))
+                       VTBIT_BOOL|VTBIT_INT|VTBIT_UINT)
 
 /**********************************************************************
  *              VarFormatFromTokens [OLEAUT32.139]
diff --git a/dlls/oleaut32/variant.c b/dlls/oleaut32/variant.c
index 953595b..55b61fa 100644
--- a/dlls/oleaut32/variant.c
+++ b/dlls/oleaut32/variant.c
@@ -3184,7 +3184,7 @@ HRESULT WINAPI VarDiv(LPVARIANT left, LP
 	found = TRUE;
 	resvt = VT_DECIMAL;
     }
-    if (!found && (((1<<lvt) | (1<<rvt)) & (VTBIT_I1|VTBIT_I2|VTBIT_UI1|VTBIT_UI2|VTBIT_I4|VTBIT_UI4|(1<<VT_INT)|(1<<VT_UINT)))) {
+    if (!found && (((1<<lvt) | (1<<rvt)) & (VTBIT_I1|VTBIT_I2|VTBIT_UI1|VTBIT_UI2|VTBIT_I4|VTBIT_UI4|VTBIT_INT|VTBIT_UINT))) {
 	found = TRUE;
 	resvt = VT_I4;
     }
@@ -3253,7 +3253,7 @@ HRESULT WINAPI VarSub(LPVARIANT left, LP
     lvt = V_VT(left)&VT_TYPEMASK;
     rvt = V_VT(right)&VT_TYPEMASK;
     found = FALSE;resvt = VT_VOID;
-    if (((1<<lvt) | (1<<rvt)) & ((1<<VT_DATE)|(1<<VT_R4)|(1<<VT_R8))) {
+    if (((1<<lvt) | (1<<rvt)) & (VTBIT_DATE|VTBIT_R4|VTBIT_R8)) {
 	found = TRUE;
 	resvt = VT_R8;
     }
@@ -3261,7 +3261,7 @@ HRESULT WINAPI VarSub(LPVARIANT left, LP
 	found = TRUE;
 	resvt = VT_DECIMAL;
     }
-    if (!found && (((1<<lvt) | (1<<rvt)) & (VTBIT_I1|VTBIT_I2|VTBIT_UI1|VTBIT_UI2|VTBIT_I4|VTBIT_UI4|(1<<VT_INT)|(1<<VT_UINT)))) {
+    if (!found && (((1<<lvt) | (1<<rvt)) & (VTBIT_I1|VTBIT_I2|VTBIT_UI1|VTBIT_UI2|VTBIT_I4|VTBIT_UI4|VTBIT_INT|VTBIT_UINT))) {
 	found = TRUE;
 	resvt = VT_I4;
     }
diff --git a/dlls/oleaut32/variant.h b/dlls/oleaut32/variant.h
index 0c2acde..42c5e76 100644
--- a/dlls/oleaut32/variant.h
+++ b/dlls/oleaut32/variant.h
@@ -34,6 +34,20 @@
 /* Get the extra flags from a variant pointer */
 #define V_EXTRA_TYPE(v) (V_VT((v)) & VT_EXTRA_TYPE)
 
+/* Missing in Windows but usefull VTBIT_* defines */
+#define VTBIT_BOOL      (1 << VT_BSTR)
+#define VTBIT_BSTR      (1 << VT_BSTR)
+#define VTBIT_DATE      (1 << VT_DATE)
+#define VTBIT_DISPATCH  (1 << VT_DISPATCH)
+#define VTBIT_EMPTY     (1 << VT_EMPTY)
+#define VTBIT_ERROR     (1 << VT_ERROR)
+#define VTBIT_INT       (1 << VT_INT)
+#define VTBIT_NULL      (1 << VT_NULL)
+#define VTBIT_UINT      (1 << VT_UINT)
+#define VTBIT_UNKNOWN   (1 << VT_UNKNOWN)
+#define VTBIT_VARIANT   (1 << VT_VARIANT)
+#define VTBIT_15        (1 << 15)        /* no variant type with this number */
+
 extern const char* wine_vtypes[];
 #define debugstr_vt(v) (((v)&VT_TYPEMASK) <= VT_CLSID ? wine_vtypes[((v)&VT_TYPEMASK)] : \
   ((v)&VT_TYPEMASK) == VT_BSTR_BLOB ? "VT_BSTR_BLOB": "Invalid")




More information about the wine-cvs mailing list