Handle coercing VT_DISPATCH into VT_PTR.

diff --git a/dlls/oleaut32/variant.c b/dlls/oleaut32/variant.c
index 3e634f7..035351c 100644
--- a/dlls/oleaut32/variant.c
+++ b/dlls/oleaut32/variant.c
@@ -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;