Nikolay Sivov : scrrun: Implement Skip() for file and folder collections.

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


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

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

scrrun: Implement Skip() for file and folder collections.

---

 dlls/scrrun/filesystem.c |   24 ++++++++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

diff --git a/dlls/scrrun/filesystem.c b/dlls/scrrun/filesystem.c
index 1c0c6c3..eb9073a 100644
--- a/dlls/scrrun/filesystem.c
+++ b/dlls/scrrun/filesystem.c
@@ -545,8 +545,16 @@ static HRESULT WINAPI foldercoll_enumvariant_Next(IEnumVARIANT *iface, ULONG cel
 static HRESULT WINAPI foldercoll_enumvariant_Skip(IEnumVARIANT *iface, ULONG celt)
 {
     struct enumvariant *This = impl_from_IEnumVARIANT(iface);
-    FIXME("(%p)->(%d): stub\n", This, celt);
-    return E_NOTIMPL;
+    HANDLE handle = This->data.u.foldercoll.find;
+    WIN32_FIND_DATAW data;
+
+    TRACE("(%p)->(%d)\n", This, celt);
+
+    while (FindNextFileW(handle, &data) && celt)
+        if (is_dir_data(&data))
+            --celt;
+
+    return celt ? S_FALSE : S_OK;
 }
 
 static HRESULT WINAPI foldercoll_enumvariant_Reset(IEnumVARIANT *iface)
@@ -698,8 +706,16 @@ static HRESULT WINAPI filecoll_enumvariant_Next(IEnumVARIANT *iface, ULONG celt,
 static HRESULT WINAPI filecoll_enumvariant_Skip(IEnumVARIANT *iface, ULONG celt)
 {
     struct enumvariant *This = impl_from_IEnumVARIANT(iface);
-    FIXME("(%p)->(%d): stub\n", This, celt);
-    return E_NOTIMPL;
+    HANDLE handle = This->data.u.filecoll.find;
+    WIN32_FIND_DATAW data;
+
+    TRACE("(%p)->(%d)\n", This, celt);
+
+    while (FindNextFileW(handle, &data) && celt)
+        if (is_file_data(&data))
+            --celt;
+
+    return celt ? S_FALSE : S_OK;
 }
 
 static HRESULT WINAPI filecoll_enumvariant_Reset(IEnumVARIANT *iface)




More information about the wine-cvs mailing list