On 10/20/2013 21:01, Thomas Faber wrote:
- if (0)
- {
// crash on win7
pSHCreateShellFolderViewEx(NULL, NULL);
pSHCreateShellFolderViewEx(NULL, &psv);
pSHCreateShellFolderViewEx(&csfv, NULL);
- }
Please no cpp comments.
- MAKEFUNC_ORD(SHCreateShellFolderViewEx, 174);
- MAKEFUNC_ORD(SHCreateShellFolderView, 256);
These call are exported by name at least on XP, probably 2000 too, so it makes no sense to use ordinals here.
- if (!pSHCreateShellFolderView || !pSHCreateShellFolderViewEx)
- {
win_skip("SHCreateShellFolderView or SHCreateShellFolderViewEx missing.\n");
return;
- }
I don't think it's really possible to have *Ex version without non-Ex one.
- hr = SHGetDesktopFolder(&desktop);
- ok(hr == S_OK, "got (0x%08x)\n", hr);
- if (FAILED(hr))
- {
skip("No desktop folder\n");
return;
- }
It's not going to fail, so a ok() test is enough.
- memset(&sfvc, 0, sizeof(sfvc));
- sfvc.cbSize = sizeof(sfvc);
- sfvc.pshf = desktop;
- psv = (void *)0xdeadbeef;
- hr = pSHCreateShellFolderView(&sfvc, &psv);
- ok(hr == S_OK, "Got 0x%08x\n", hr);
- ok(psv != NULL, "psv = %p\n", psv);
- if (psv && psv != (void *)0xdeadbeef)
- {
refCount = IShellView_Release(psv);
ok(refCount == 0, "refCount = %u\n", refCount);
- }
It's simpler than that. Set 'psv' to NULL and test for it being set after a call.
- test_SHCreateShellFolderView();
You're testing two calls here, so they probably deserve two separate test functions.