2008/6/10 Paul Vriens <paul.vriens.wine(a)gmail.com>:
> This 'fixes' the crash on win9x and NT4.
>
> @@ -1130,11 +1130,15 @@ static void test_data_cache(void)
> hr = IOleCache_Uncache(pOleCache, 0xdeadbeef);
> ok(hr == OLE_E_NOCONNECTION, "IOleCache_Uncache with invalid value should return OLE_E_NOCONNECTION instead of 0x%x\n", hr);
>
> - hr = IOleCache_Cache(pOleCache, NULL, 0, &dwConnection);
> - ok(hr == E_INVALIDARG, "IOleCache_Cache with NULL fmtetc should have returned E_INVALIDARG instead of 0x%08x\n", hr);
> + /* Both tests crash on NT4 and below */
> + if (0)
> + {
> + hr = IOleCache_Cache(pOleCache, NULL, 0, &dwConnection);
> + ok(hr == E_INVALIDARG, "IOleCache_Cache with NULL fmtetc should have returned E_INVALIDARG instead of 0x%08x\n", hr);
>
> - hr = IOleCache_Cache(pOleCache, NULL, 0, NULL);
> - ok(hr == E_INVALIDARG, "IOleCache_Cache with NULL pdwConnection should have returned E_INVALIDARG instead of 0x%08x\n", hr);
> + hr = IOleCache_Cache(pOleCache, NULL, 0, NULL);
> + ok(hr == E_INVALIDARG, "IOleCache_Cache with NULL pdwConnection should have returned E_INVALIDARG instead of 0x%08x\n", hr);
> + }
>
> for (fmtetc.cfFormat = CF_TEXT; fmtetc.cfFormat < CF_MAX; fmtetc.cfFormat++)
> {
This test was added in response to a real application doing exactly
this, so I think the test does have value when run on Win 2000+.
Therefore, I think a version check would be better than "if (0)".
--
Rob Shearman