scrrun: Implement DriveLetter property for a drive.

oldstable
Nikolay Sivov 2014-03-30 15:59:17 +04:00 committed by Alexandre Julliard
parent 61a3bd3302
commit c824cfa08c
2 changed files with 20 additions and 2 deletions

View File

@ -687,8 +687,17 @@ static HRESULT WINAPI drive_get_Path(IDrive *iface, BSTR *path)
static HRESULT WINAPI drive_get_DriveLetter(IDrive *iface, BSTR *letter)
{
struct drive *This = impl_from_IDrive(iface);
FIXME("(%p)->(%p): stub\n", This, letter);
return E_NOTIMPL;
TRACE("(%p)->(%p)\n", This, letter);
if (!letter)
return E_POINTER;
*letter = SysAllocStringLen(This->root, 1);
if (!*letter)
return E_OUTOFMEMORY;
return S_OK;
}
static HRESULT WINAPI drive_get_ShareName(IDrive *iface, BSTR *share_name)

View File

@ -1240,10 +1240,19 @@ static void test_DriveCollection(void)
while (IEnumVARIANT_Next(enumvar, 1, &var, &fetched) == S_OK) {
IDrive *drive = (IDrive*)V_DISPATCH(&var);
DriveTypeConst type;
BSTR str;
hr = IDrive_get_DriveType(drive, &type);
ok(hr == S_OK, "got 0x%08x\n", hr);
hr = IDrive_get_DriveLetter(drive, NULL);
ok(hr == E_POINTER, "got 0x%08x\n", hr);
hr = IDrive_get_DriveLetter(drive, &str);
ok(hr == S_OK, "got 0x%08x\n", hr);
ok(SysStringLen(str) == 1, "got string %s\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IDrive_get_IsReady(drive, NULL);
ok(hr == E_POINTER, "got 0x%08x\n", hr);