Nikolay Sivov : scrrun: Implement Clone() for folder collection.

Alexandre Julliard julliard at winehq.org
Wed Jan 8 13:41:31 CST 2014


Module: wine
Branch: master
Commit: 844aa7959e3daf57cfdf5350106b7d3a3c7c761e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=844aa7959e3daf57cfdf5350106b7d3a3c7c761e

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Wed Jan  8 12:37:17 2014 +0400

scrrun: Implement Clone() for folder collection.

---

 dlls/scrrun/filesystem.c       |    7 ++++---
 dlls/scrrun/tests/filesystem.c |    3 ---
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/dlls/scrrun/filesystem.c b/dlls/scrrun/filesystem.c
index 4802614..2ed6469 100644
--- a/dlls/scrrun/filesystem.c
+++ b/dlls/scrrun/filesystem.c
@@ -144,6 +144,7 @@ static inline HRESULT create_error(DWORD err)
 
 static HRESULT create_folder(const WCHAR*, IFolder**);
 static HRESULT create_file(BSTR, IFile**);
+static HRESULT create_foldercoll_enum(struct foldercollection*, IUnknown**);
 
 static inline BOOL is_dir_data(const WIN32_FIND_DATAW *data)
 {
@@ -569,8 +570,8 @@ static HRESULT WINAPI foldercoll_enumvariant_Reset(IEnumVARIANT *iface)
 static HRESULT WINAPI foldercoll_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_foldercoll_enum(This->data.u.foldercoll.coll, (IUnknown**)pclone);
 }
 
 static const IEnumVARIANTVtbl foldercollenumvariantvtbl = {
@@ -583,7 +584,7 @@ static const IEnumVARIANTVtbl foldercollenumvariantvtbl = {
     foldercoll_enumvariant_Clone
 };
 
-static HRESULT create_foldercoll_enum(struct foldercollection *collection, IUnknown **newenum)
+HRESULT create_foldercoll_enum(struct foldercollection *collection, IUnknown **newenum)
 {
     struct enumvariant *This;
 
diff --git a/dlls/scrrun/tests/filesystem.c b/dlls/scrrun/tests/filesystem.c
index 00d7686..6942a3d 100644
--- a/dlls/scrrun/tests/filesystem.c
+++ b/dlls/scrrun/tests/filesystem.c
@@ -863,12 +863,9 @@ static void test_FolderCollection(void)
 
     /* clone enumerator */
     hr = IEnumVARIANT_Clone(enumvar, &clone);
-todo_wine
     ok(hr == S_OK, "got 0x%08x\n", hr);
-if (hr == S_OK) {
     ok(clone != enumvar, "got %p, %p\n", enumvar, clone);
     IEnumVARIANT_Release(clone);
-}
 
     hr = IEnumVARIANT_Reset(enumvar);
     ok(hr == S_OK, "got 0x%08x\n", hr);




More information about the wine-cvs mailing list