Commit f6efe226 authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

scrrun: Added IsReady property for a drive.

parent 2aad5d7c
......@@ -788,8 +788,17 @@ static HRESULT WINAPI drive_get_SerialNumber(IDrive *iface, LONG *serial)
static HRESULT WINAPI drive_get_IsReady(IDrive *iface, VARIANT_BOOL *ready)
{
struct drive *This = impl_from_IDrive(iface);
FIXME("(%p)->(%p): stub\n", This, ready);
return E_NOTIMPL;
ULARGE_INTEGER freespace;
BOOL ret;
TRACE("(%p)->(%p)\n", This, ready);
if (!ready)
return E_POINTER;
ret = GetDiskFreeSpaceExW(This->root, &freespace, NULL, NULL);
*ready = ret ? VARIANT_TRUE : VARIANT_FALSE;
return S_OK;
}
static const IDriveVtbl drivevtbl = {
......
......@@ -1233,6 +1233,30 @@ static void test_DriveCollection(void)
hr = IEnumVARIANT_Skip(enumvar, 1);
ok(hr == S_FALSE, "got 0x%08x\n", hr);
/* reset and iterate again */
hr = IEnumVARIANT_Reset(enumvar);
ok(hr == S_OK, "got 0x%08x\n", hr);
while (IEnumVARIANT_Next(enumvar, 1, &var, &fetched) == S_OK) {
IDrive *drive = (IDrive*)V_DISPATCH(&var);
DriveTypeConst type;
hr = IDrive_get_DriveType(drive, &type);
ok(hr == S_OK, "got 0x%08x\n", hr);
hr = IDrive_get_IsReady(drive, NULL);
ok(hr == E_POINTER, "got 0x%08x\n", hr);
if (type == Fixed) {
VARIANT_BOOL ready = VARIANT_FALSE;
hr = IDrive_get_IsReady(drive, &ready);
ok(hr == S_OK, "got 0x%08x\n", hr);
ok(ready == VARIANT_TRUE, "got %x\n", ready);
}
VariantClear(&var);
}
IEnumVARIANT_Release(enumvar);
IDriveCollection_Release(drives);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment