[oleaut32 1/3] define missing but useful VTBIT_* macros

Michael Stefaniuc mstefani at redhat.de
Sun Jan 15 07:43:39 CST 2006


Hello,

since ReWind seems to be quite dead there isn't much point for me to
keep dual licensing my patches. Starting with this patch all my patches
will be LGPL licensed only.

bye
	michael
-- 
Michael Stefaniuc               Tel.: +49-711-96437-199
Sr. Network Engineer            Fax.: +49-711-96437-111
Red Hat GmbH                    Email: mstefani at redhat.com
Hauptstaetterstr. 58            http://www.redhat.de/
D-70178 Stuttgart
-------------- next part --------------
oleaut32: define missing (from Windows) but useful VTBIT_* macros. Use them.

---

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

52e20b7f40c58814680d740767e6cf811fc8fa11
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")
-- 
1.1.1


More information about the wine-patches mailing list