scrrun: Implement GetDriveName().
This commit is contained in:
parent
500bbb3e9a
commit
d2d62cf578
|
@ -2937,12 +2937,19 @@ static HRESULT WINAPI filesys_BuildPath(IFileSystem3 *iface, BSTR Path,
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI filesys_GetDriveName(IFileSystem3 *iface, BSTR Path,
|
static HRESULT WINAPI filesys_GetDriveName(IFileSystem3 *iface, BSTR path, BSTR *drive)
|
||||||
BSTR *pbstrResult)
|
|
||||||
{
|
{
|
||||||
FIXME("%p %s %p\n", iface, debugstr_w(Path), pbstrResult);
|
TRACE("(%p)->(%s %p)\n", iface, debugstr_w(path), drive);
|
||||||
|
|
||||||
return E_NOTIMPL;
|
if (!drive)
|
||||||
|
return E_POINTER;
|
||||||
|
|
||||||
|
*drive = NULL;
|
||||||
|
|
||||||
|
if (path && strlenW(path) > 1 && path[1] == ':')
|
||||||
|
*drive = SysAllocStringLen(path, 2);
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline DWORD get_parent_folder_name(const WCHAR *path, DWORD len)
|
static inline DWORD get_parent_folder_name(const WCHAR *path, DWORD len)
|
||||||
|
|
|
@ -1745,6 +1745,51 @@ todo_wine
|
||||||
SysFreeString(nameW);
|
SysFreeString(nameW);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct getdrivename_test {
|
||||||
|
const WCHAR path[10];
|
||||||
|
const WCHAR drive[5];
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct getdrivename_test getdrivenametestdata[] = {
|
||||||
|
{ {'C',':','\\','1','.','t','s','t',0}, {'C',':',0} },
|
||||||
|
{ {'O',':','\\','1','.','t','s','t',0}, {'O',':',0} },
|
||||||
|
{ {'O',':',0}, {'O',':',0} },
|
||||||
|
{ {'o',':',0}, {'o',':',0} },
|
||||||
|
{ {'O','O',':',0} },
|
||||||
|
{ {':',0} },
|
||||||
|
{ {'O',0} },
|
||||||
|
{ { 0 } }
|
||||||
|
};
|
||||||
|
|
||||||
|
static void test_GetDriveName(void)
|
||||||
|
{
|
||||||
|
const struct getdrivename_test *ptr = getdrivenametestdata;
|
||||||
|
HRESULT hr;
|
||||||
|
BSTR name;
|
||||||
|
|
||||||
|
hr = IFileSystem3_GetDriveName(fs3, NULL, NULL);
|
||||||
|
ok(hr == E_POINTER, "got 0x%08x\n", hr);
|
||||||
|
|
||||||
|
name = (void*)0xdeadbeef;
|
||||||
|
hr = IFileSystem3_GetDriveName(fs3, NULL, &name);
|
||||||
|
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||||
|
ok(name == NULL, "got %p\n", name);
|
||||||
|
|
||||||
|
while (*ptr->path) {
|
||||||
|
BSTR path = SysAllocString(ptr->path);
|
||||||
|
name = (void*)0xdeadbeef;
|
||||||
|
hr = IFileSystem3_GetDriveName(fs3, path, &name);
|
||||||
|
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||||
|
if (name)
|
||||||
|
ok(!lstrcmpW(ptr->drive, name), "got %s, expected %s\n", wine_dbgstr_w(name), wine_dbgstr_w(ptr->drive));
|
||||||
|
else
|
||||||
|
ok(!*ptr->drive, "got %s, expected %s\n", wine_dbgstr_w(name), wine_dbgstr_w(ptr->drive));
|
||||||
|
SysFreeString(path);
|
||||||
|
SysFreeString(name);
|
||||||
|
ptr++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(filesystem)
|
START_TEST(filesystem)
|
||||||
{
|
{
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
@ -1777,6 +1822,7 @@ START_TEST(filesystem)
|
||||||
test_WriteLine();
|
test_WriteLine();
|
||||||
test_ReadAll();
|
test_ReadAll();
|
||||||
test_Read();
|
test_Read();
|
||||||
|
test_GetDriveName();
|
||||||
|
|
||||||
IFileSystem3_Release(fs3);
|
IFileSystem3_Release(fs3);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue