Gijs Vermeulen : scrrun: Implement Clone() for drive collection.

Alexandre Julliard julliard at winehq.org
Fri Mar 29 16:27:44 CDT 2019


Module: wine
Branch: master
Commit: b7afaec818c64ec9a398e93503ae9a7770ca7a67
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=b7afaec818c64ec9a398e93503ae9a7770ca7a67

Author: Gijs Vermeulen <gijsvrm at gmail.com>
Date:   Thu Mar 28 18:52:34 2019 +0100

scrrun: Implement Clone() for drive collection.

Signed-off-by: Gijs Vermeulen <gijsvrm at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/scrrun/filesystem.c       | 5 +++--
 dlls/scrrun/tests/filesystem.c | 9 ++-------
 2 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/dlls/scrrun/filesystem.c b/dlls/scrrun/filesystem.c
index aa16600..c736eb4 100644
--- a/dlls/scrrun/filesystem.c
+++ b/dlls/scrrun/filesystem.c
@@ -197,6 +197,7 @@ static HRESULT create_folder(const WCHAR*, IFolder**);
 static HRESULT create_file(BSTR, IFile**);
 static HRESULT create_foldercoll_enum(struct foldercollection*, IUnknown**);
 static HRESULT create_filecoll_enum(struct filecollection*, IUnknown**);
+static HRESULT create_drivecoll_enum(struct drivecollection*, IUnknown**);
 
 static inline BOOL is_dir_data(const WIN32_FIND_DATAW *data)
 {
@@ -1555,8 +1556,8 @@ static HRESULT WINAPI drivecoll_enumvariant_Reset(IEnumVARIANT *iface)
 static HRESULT WINAPI drivecoll_enumvariant_Clone(IEnumVARIANT *iface, IEnumVARIANT **pclone)
 {
     struct enumvariant *This = impl_from_IEnumVARIANT(iface);
-    FIXME("(%p)->(%p): stub\n", This, pclone);
-    return E_NOTIMPL;
+    TRACE("(%p)->(%p)\n", This, pclone);
+    return create_drivecoll_enum(This->data.u.drivecoll.coll, (IUnknown**)pclone);
 }
 
 static const IEnumVARIANTVtbl drivecollenumvariantvtbl = {
diff --git a/dlls/scrrun/tests/filesystem.c b/dlls/scrrun/tests/filesystem.c
index 54363f0..566f6f9 100644
--- a/dlls/scrrun/tests/filesystem.c
+++ b/dlls/scrrun/tests/filesystem.c
@@ -1361,7 +1361,7 @@ static void test_FileCollection(void)
 static void test_DriveCollection(void)
 {
     IDriveCollection *drives;
-    IEnumVARIANT *enumvar, *clone;
+    IEnumVARIANT *enumvar;
     ULONG fetched;
     VARIANT var;
     HRESULT hr;
@@ -1398,12 +1398,7 @@ static void test_DriveCollection(void)
     hr = IEnumVARIANT_Skip(enumvar, 1);
     ok(hr == S_FALSE, "got 0x%08x\n", hr);
 
-    hr = IEnumVARIANT_Reset(enumvar);
-    ok(hr == S_OK, "got 0x%08x\n", hr);
-
-    hr = IEnumVARIANT_Clone(enumvar, &clone);
-    if(hr == S_OK)
-        test_clone(enumvar, TRUE);
+    test_clone(enumvar, TRUE);
 
     while (IEnumVARIANT_Next(enumvar, 1, &var, &fetched) == S_OK) {
         IDrive *drive = (IDrive*)V_DISPATCH(&var);




More information about the wine-cvs mailing list