From: Quinn Rafferty ramleejo@yahoo.com
The implementation calls GetVolumePathNameW with drive->root. It then returns the result of that call in the path argument.
https://bugs.winehq.org/show_bug.cgi?id=57539 --- dlls/scrrun/filesystem.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/dlls/scrrun/filesystem.c b/dlls/scrrun/filesystem.c index e53355267db..90fd74caf14 100644 --- a/dlls/scrrun/filesystem.c +++ b/dlls/scrrun/filesystem.c @@ -1088,8 +1088,20 @@ static HRESULT WINAPI drive_Invoke(IDrive *iface, DISPID dispIdMember, static HRESULT WINAPI drive_get_Path(IDrive *iface, BSTR *path) { struct drive *This = impl_from_IDrive(iface); - FIXME("(%p)->(%p): stub\n", This, path); - return E_NOTIMPL; + WCHAR pathW[MAX_PATH]; + BOOL ret; + + TRACE("(%p)->(%p)\n", This, path); + + if (!path){ + return E_POINTER; + } + + ret = GetVolumePathNameW(This->root, pathW, MAX_PATH); + if(ret) + *path = SysAllocString(pathW); + + return ret ? S_OK : E_FAIL; }
static HRESULT WINAPI drive_get_DriveLetter(IDrive *iface, BSTR *letter)