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@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.