PATCH: OLE automation wants to coerce VT_DISPATCH into VT_PTR

Adam Gundy arg at cyberscience.com
Wed Mar 5 08:49:24 CST 2003


Hi. OLE automation calls sometimes want to coerce a VT_DISPATCH into a VT_PTR.

Cyberscience disclaims all copyright and responsibility... ;-)

Changelog:

        * dlls/oleaut32/variant.c: Adam Gundy <arg at cyberscience.com>
        Handle coercing VT_DISPATCH into VT_PTR.

diff -u -r wine-20030219/dlls/oleaut32/variant.c wine-20030219-new/dlls/oleaut32/variant.c
--- wine-20030219/dlls/oleaut32/variant.c       Tue Jan 28 00:23:19 2003
+++ wine-20030219-new/dlls/oleaut32/variant.c   Wed Mar  5 11:09:20 2003
@@ -1758,7 +1758,7 @@
            case VT_BSTR: case VT_ERROR: case VT_BOOL:
            case VT_VARIANT: case VT_DECIMAL: case VT_I1: case VT_UI1:
            case VT_UI2: case VT_UI4: case VT_I8: case VT_UI8: case VT_INT:
-           case VT_UINT: case VT_VOID: case VT_HRESULT: case VT_PTR:
+           case VT_UINT: case VT_VOID: case VT_HRESULT:
            case VT_SAFEARRAY: case VT_CARRAY: case VT_USERDEFINED:
            case VT_LPSTR: case VT_LPWSTR: case VT_RECORD: case VT_FILETIME:
            case VT_BLOB: case VT_STREAM: case VT_STORAGE:
@@ -1766,6 +1766,9 @@
            case VT_CF: case VT_CLSID:
                res = DISP_E_TYPEMISMATCH;
                break;
+           case VT_PTR:
+               V_UNION(pd,pdispVal) = V_UNION(ps,pdispVal);
+               break;
            default:
                FIXME("Coercion from %d to VT_DISPATCH unhandled.\n", vtFrom);
                res = DISP_E_BADVARTYPE;


Seeya,
 Adam
--
Real Programmers don't comment their code. If it was hard to write,
it should be hard to read, and even harder to modify.
These are all my own opinions.




More information about the wine-patches mailing list