On 9/13/20 11:34 PM, Myah Caron wrote:
+ GetTempPathW(MAX_PATH, path); + GetCurrentDirectoryW(MAX_PATH, orig_dir); + SetCurrentDirectoryW(path); + V_VT(&v) = VT_BSTR; + V_BSTR(&v) = SysAllocString(path); + hr = IShellDispatch_NameSpace(sd, v, &folder); + ok(hr == S_OK, "got 0x%08x\n", hr); + VariantClear(&v); Do you really need to change the cwd? Does it work if you pass full path as 'v'? + dispatch = (IDispatch*)0xdeadbeef; + hr = FolderItem_get_GetLink(item, &dispatch); + todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); + todo_wine ok(dispatch && dispatch != (IDispatch*)0xdeadbeef, "got %p\n", dispatch); This one should really check that returned is pointer is not NULL.
+ str = SysAllocString(L"winetest_filled.lnk"); + Folder2_ParseName(folder2, str, &item); + ok(hr == S_OK, "got 0x%08x\n", hr); + SysFreeString(str); Missing assignment. + str = (BSTR)0xdeadbeef; + hr = IShellLinkDual2_get_Path(sld, &str); + todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); + if (hr == S_OK) { + GetFullPathNameW(L"winetest_empty_file.txt", MAX_PATH, tempW, NULL); + ok(!wcscmp(str, tempW), "got %s\n", wine_dbgstr_w(str)); + SysFreeString(str); + } Same as above, just set it to NULL.