Variant: Some more combinations in VarOr/VarAnd

Fabian Cenedese Cenedese at indel.ch
Tue Feb 17 05:19:32 CST 2004


Hi

Trying to improve VB support. Output as tested on Win2K. These changes make
my VB application come up without any automation errors anymore and show
the right things. Please disregard the previous patch for VarOr alone.


Changelog:
    Fabian Cenedese <Cenedese at indel.ch>
    Accept VT_BOOL mixed with another type as valid combination in VarOr/VarAnd.


Index: wine/dlls/oleaut32/variant.c
===================================================================
RCS file: /home/wine/wine/dlls/oleaut32/variant.c,v
retrieving revision 1.86
diff -u -r1.86 variant.c
--- wine/dlls/oleaut32/variant.c	6 Feb 2004 05:23:29 -0000	1.86
+++ wine/dlls/oleaut32/variant.c	17 Feb 2004 11:14:14 -0000
@@ -2484,6 +2484,7 @@
         case VT_UI2  : lVal = V_UNION(left,uiVal); resT=VT_I4; break;
         case VT_UI4  : lVal = V_UNION(left,ulVal); resT=VT_I4; break;
         case VT_UINT : lVal = V_UNION(left,ulVal); resT=VT_I4; break;
+        case VT_BOOL : rVal = V_UNION(left,boolVal); resT=VT_I4; break;
         default: lOk = FALSE;
         }
 
@@ -2497,6 +2498,7 @@
         case VT_UI2  : rVal = V_UNION(right,uiVal); resT=VT_I4; break;
         case VT_UI4  : rVal = V_UNION(right,ulVal); resT=VT_I4; break;
         case VT_UINT : rVal = V_UNION(right,ulVal); resT=VT_I4; break;
+        case VT_BOOL : rVal = V_UNION(right,boolVal); resT=VT_I4; break;
         default: rOk = FALSE;
         }
 
@@ -2931,6 +2933,7 @@
         case VT_UI2  : lVal = V_UNION(left,uiVal); resT=VT_I4; break;
         case VT_UI4  : lVal = V_UNION(left,ulVal); resT=VT_I4; break;
         case VT_UINT : lVal = V_UNION(left,ulVal); resT=VT_I4; break;
+        case VT_BOOL : lVal = V_UNION(left,boolVal); resT=VT_I4; break;
         default: lOk = FALSE;
         }
 
@@ -2944,6 +2947,7 @@
         case VT_UI2  : rVal = V_UNION(right,uiVal); resT=VT_I4; break;
         case VT_UI4  : rVal = V_UNION(right,ulVal); resT=VT_I4; break;
         case VT_UINT : rVal = V_UNION(right,ulVal); resT=VT_I4; break;
+        case VT_BOOL : rVal = V_UNION(right,boolVal); resT=VT_I4; break;
         default: rOk = FALSE;
         }
 





More information about the wine-patches mailing list