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) ...@@ -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) static HRESULT WINAPI drive_get_IsReady(IDrive *iface, VARIANT_BOOL *ready)
{ {
struct drive *This = impl_from_IDrive(iface); struct drive *This = impl_from_IDrive(iface);
FIXME("(%p)->(%p): stub\n", This, ready); ULARGE_INTEGER freespace;
return E_NOTIMPL; 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 = { static const IDriveVtbl drivevtbl = {
......
...@@ -1233,6 +1233,30 @@ static void test_DriveCollection(void) ...@@ -1233,6 +1233,30 @@ static void test_DriveCollection(void)
hr = IEnumVARIANT_Skip(enumvar, 1); hr = IEnumVARIANT_Skip(enumvar, 1);
ok(hr == S_FALSE, "got 0x%08x\n", hr); 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); IEnumVARIANT_Release(enumvar);
IDriveCollection_Release(drives); 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