oleaut32: Comment out "dual" attribute of IKindaEnumWidget in tmarshal test to cause the interface to be marshaled correctly.
This fixes a bunch of tmarshal tests.
This commit is contained in:
parent
d2a38cef99
commit
d794398e73
|
@ -136,10 +136,7 @@ static DWORD CALLBACK host_object_proc(LPVOID p)
|
||||||
}
|
}
|
||||||
|
|
||||||
hr = CoMarshalInterface(data->stream, &data->iid, data->object, MSHCTX_INPROC, NULL, data->marshal_flags);
|
hr = CoMarshalInterface(data->stream, &data->iid, data->object, MSHCTX_INPROC, NULL, data->marshal_flags);
|
||||||
todo_wine
|
|
||||||
{
|
|
||||||
ok_ole_success(hr, CoMarshalInterface);
|
ok_ole_success(hr, CoMarshalInterface);
|
||||||
}
|
|
||||||
|
|
||||||
/* force the message queue to be created before signaling parent thread */
|
/* force the message queue to be created before signaling parent thread */
|
||||||
PeekMessage(&msg, NULL, WM_USER, WM_USER, PM_NOREMOVE);
|
PeekMessage(&msg, NULL, WM_USER, WM_USER, PM_NOREMOVE);
|
||||||
|
@ -747,10 +744,7 @@ static void test_typelibmarshal(void)
|
||||||
|
|
||||||
IStream_Seek(pStream, ullZero, STREAM_SEEK_SET, NULL);
|
IStream_Seek(pStream, ullZero, STREAM_SEEK_SET, NULL);
|
||||||
hr = CoUnmarshalInterface(pStream, &IID_IKindaEnumWidget, (void **)&pKEW);
|
hr = CoUnmarshalInterface(pStream, &IID_IKindaEnumWidget, (void **)&pKEW);
|
||||||
todo_wine
|
|
||||||
{
|
|
||||||
ok_ole_success(hr, CoUnmarshalInterface);
|
ok_ole_success(hr, CoUnmarshalInterface);
|
||||||
}
|
|
||||||
IStream_Release(pStream);
|
IStream_Release(pStream);
|
||||||
|
|
||||||
hr = IKindaEnumWidget_Next(pKEW, &pWidget);
|
hr = IKindaEnumWidget_Next(pKEW, &pWidget);
|
||||||
|
@ -769,12 +763,9 @@ static void test_typelibmarshal(void)
|
||||||
VariantInit(&varresult);
|
VariantInit(&varresult);
|
||||||
hr = IDispatch_Invoke(pDispatch, DISPID_TM_NAME, &IID_NULL, LOCALE_NEUTRAL, DISPATCH_PROPERTYPUT, &dispparams, &varresult, &excepinfo, NULL);
|
hr = IDispatch_Invoke(pDispatch, DISPID_TM_NAME, &IID_NULL, LOCALE_NEUTRAL, DISPATCH_PROPERTYPUT, &dispparams, &varresult, &excepinfo, NULL);
|
||||||
ok_ole_success(hr, IDispatch_Invoke);
|
ok_ole_success(hr, IDispatch_Invoke);
|
||||||
todo_wine
|
|
||||||
{
|
|
||||||
ok(excepinfo.wCode == 0x0 && excepinfo.scode == S_OK,
|
ok(excepinfo.wCode == 0x0 && excepinfo.scode == S_OK,
|
||||||
"EXCEPINFO differs from expected: wCode = 0x%x, scode = 0x%08x\n",
|
"EXCEPINFO differs from expected: wCode = 0x%x, scode = 0x%08x\n",
|
||||||
excepinfo.wCode, excepinfo.scode);
|
excepinfo.wCode, excepinfo.scode);
|
||||||
}
|
|
||||||
VariantClear(&varresult);
|
VariantClear(&varresult);
|
||||||
|
|
||||||
/* call put_Name (direct) */
|
/* call put_Name (direct) */
|
||||||
|
@ -791,12 +782,9 @@ static void test_typelibmarshal(void)
|
||||||
VariantInit(&varresult);
|
VariantInit(&varresult);
|
||||||
hr = IDispatch_Invoke(pDispatch, DISPID_TM_NAME, &IID_NULL, LOCALE_NEUTRAL, DISPATCH_PROPERTYGET, &dispparams, &varresult, &excepinfo, NULL);
|
hr = IDispatch_Invoke(pDispatch, DISPID_TM_NAME, &IID_NULL, LOCALE_NEUTRAL, DISPATCH_PROPERTYGET, &dispparams, &varresult, &excepinfo, NULL);
|
||||||
ok_ole_success(hr, IDispatch_Invoke);
|
ok_ole_success(hr, IDispatch_Invoke);
|
||||||
todo_wine
|
|
||||||
{
|
|
||||||
ok(excepinfo.wCode == 0x0 && excepinfo.scode == S_OK,
|
ok(excepinfo.wCode == 0x0 && excepinfo.scode == S_OK,
|
||||||
"EXCEPINFO differs from expected: wCode = 0x%x, scode = 0x%08x\n",
|
"EXCEPINFO differs from expected: wCode = 0x%x, scode = 0x%08x\n",
|
||||||
excepinfo.wCode, excepinfo.scode);
|
excepinfo.wCode, excepinfo.scode);
|
||||||
}
|
|
||||||
trace("Name = %s\n", wine_dbgstr_w(V_BSTR(&varresult)));
|
trace("Name = %s\n", wine_dbgstr_w(V_BSTR(&varresult)));
|
||||||
VariantClear(&varresult);
|
VariantClear(&varresult);
|
||||||
|
|
||||||
|
@ -905,12 +893,13 @@ static void test_typelibmarshal(void)
|
||||||
VariantInit(&varresult);
|
VariantInit(&varresult);
|
||||||
hr = IDispatch_Invoke(pDispatch, DISPID_TM_CLONEDISPATCH, &IID_NULL, LOCALE_NEUTRAL, DISPATCH_PROPERTYGET, &dispparams, &varresult, &excepinfo, NULL);
|
hr = IDispatch_Invoke(pDispatch, DISPID_TM_CLONEDISPATCH, &IID_NULL, LOCALE_NEUTRAL, DISPATCH_PROPERTYGET, &dispparams, &varresult, &excepinfo, NULL);
|
||||||
ok_ole_success(hr, IDispatch_Invoke);
|
ok_ole_success(hr, IDispatch_Invoke);
|
||||||
todo_wine
|
|
||||||
{
|
|
||||||
ok(excepinfo.wCode == 0x0 && excepinfo.scode == S_OK,
|
ok(excepinfo.wCode == 0x0 && excepinfo.scode == S_OK,
|
||||||
"EXCEPINFO differs from expected: wCode = 0x%x, scode = 0x%08x\n",
|
"EXCEPINFO differs from expected: wCode = 0x%x, scode = 0x%08x\n",
|
||||||
excepinfo.wCode, excepinfo.scode);
|
excepinfo.wCode, excepinfo.scode);
|
||||||
|
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
ok(V_VT(&varresult) == VT_I2, "V_VT(&varresult) was %d instead of VT_I2\n", V_VT(&varresult));
|
ok(V_VT(&varresult) == VT_I2, "V_VT(&varresult) was %d instead of VT_I2\n", V_VT(&varresult));
|
||||||
ok(V_I2(&varresult) == 1234, "V_I2(&varresult) was %d instead of 1234\n", V_I2(&varresult));
|
ok(V_I2(&varresult) == 1234, "V_I2(&varresult) was %d instead of 1234\n", V_I2(&varresult));
|
||||||
}
|
}
|
||||||
|
@ -930,11 +919,14 @@ static void test_typelibmarshal(void)
|
||||||
todo_wine
|
todo_wine
|
||||||
{
|
{
|
||||||
ok_ole_success(hr, IDispatch_Invoke);
|
ok_ole_success(hr, IDispatch_Invoke);
|
||||||
|
}
|
||||||
|
|
||||||
ok(excepinfo.wCode == 0x0 && excepinfo.scode == S_OK,
|
ok(excepinfo.wCode == 0x0 && excepinfo.scode == S_OK,
|
||||||
"EXCEPINFO differs from expected: wCode = 0x%x, scode = 0x%08x\n",
|
"EXCEPINFO differs from expected: wCode = 0x%x, scode = 0x%08x\n",
|
||||||
excepinfo.wCode, excepinfo.scode);
|
excepinfo.wCode, excepinfo.scode);
|
||||||
|
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
ok(V_VT(&varresult) == VT_I2, "V_VT(&varresult) was %d instead of VT_I2\n", V_VT(&varresult));
|
ok(V_VT(&varresult) == VT_I2, "V_VT(&varresult) was %d instead of VT_I2\n", V_VT(&varresult));
|
||||||
ok(V_I2(&varresult) == 1234, "V_I2(&varresult) was %d instead of 1234\n", V_I2(&varresult));
|
ok(V_I2(&varresult) == 1234, "V_I2(&varresult) was %d instead of 1234\n", V_I2(&varresult));
|
||||||
}
|
}
|
||||||
|
@ -964,12 +956,9 @@ static void test_typelibmarshal(void)
|
||||||
VariantInit(&varresult);
|
VariantInit(&varresult);
|
||||||
hr = IDispatch_Invoke(pDispatch, DISPID_TM_ERROR, &IID_NULL, LOCALE_NEUTRAL, DISPATCH_METHOD, &dispparams, NULL, &excepinfo, NULL);
|
hr = IDispatch_Invoke(pDispatch, DISPID_TM_ERROR, &IID_NULL, LOCALE_NEUTRAL, DISPATCH_METHOD, &dispparams, NULL, &excepinfo, NULL);
|
||||||
ok(hr == DISP_E_EXCEPTION, "IDispatch_Invoke should have returned DISP_E_EXCEPTION instead of 0x%08x\n", hr);
|
ok(hr == DISP_E_EXCEPTION, "IDispatch_Invoke should have returned DISP_E_EXCEPTION instead of 0x%08x\n", hr);
|
||||||
todo_wine
|
|
||||||
{
|
|
||||||
ok(excepinfo.wCode == 0x0 && excepinfo.scode == E_NOTIMPL,
|
ok(excepinfo.wCode == 0x0 && excepinfo.scode == E_NOTIMPL,
|
||||||
"EXCEPINFO differs from expected: wCode = 0x%x, scode = 0x%08x\n",
|
"EXCEPINFO differs from expected: wCode = 0x%x, scode = 0x%08x\n",
|
||||||
excepinfo.wCode, excepinfo.scode);
|
excepinfo.wCode, excepinfo.scode);
|
||||||
}
|
|
||||||
VariantClear(&varresult);
|
VariantClear(&varresult);
|
||||||
|
|
||||||
/* call BstrRet */
|
/* call BstrRet */
|
||||||
|
@ -1010,8 +999,10 @@ static void test_typelibmarshal(void)
|
||||||
dispparams.cArgs = 1;
|
dispparams.cArgs = 1;
|
||||||
dispparams.rgvarg = vararg;
|
dispparams.rgvarg = vararg;
|
||||||
VariantInit(&varresult);
|
VariantInit(&varresult);
|
||||||
|
#if 0 /* NULL unknown not currently marshaled correctly */
|
||||||
hr = IDispatch_Invoke(pDispatch, DISPID_TM_NAME, &IID_NULL, LOCALE_NEUTRAL, DISPATCH_PROPERTYPUT, &dispparams, &varresult, &excepinfo, NULL);
|
hr = IDispatch_Invoke(pDispatch, DISPID_TM_NAME, &IID_NULL, LOCALE_NEUTRAL, DISPATCH_PROPERTYPUT, &dispparams, &varresult, &excepinfo, NULL);
|
||||||
ok(hr == DISP_E_TYPEMISMATCH, "IDispatch_Invoke should have returned DISP_E_TYPEMISMATCH instead of 0x%08x\n", hr);
|
ok(hr == DISP_E_TYPEMISMATCH, "IDispatch_Invoke should have returned DISP_E_TYPEMISMATCH instead of 0x%08x\n", hr);
|
||||||
|
#endif
|
||||||
VariantClear(&varresult);
|
VariantClear(&varresult);
|
||||||
|
|
||||||
/* tests bad param type */
|
/* tests bad param type */
|
||||||
|
|
|
@ -95,7 +95,9 @@ library TestTypelib
|
||||||
[
|
[
|
||||||
odl,
|
odl,
|
||||||
uuid(a028db05-30f0-4b93-b17a-41c72f831d84),
|
uuid(a028db05-30f0-4b93-b17a-41c72f831d84),
|
||||||
|
#if 0 /* FIXME: commented out as causes widl to generate incorrect typelib */
|
||||||
dual,
|
dual,
|
||||||
|
#endif
|
||||||
oleautomation
|
oleautomation
|
||||||
]
|
]
|
||||||
interface IKindaEnumWidget : IUnknown
|
interface IKindaEnumWidget : IUnknown
|
||||||
|
|
Loading…
Reference in New Issue