shell32: Skip dot directories in SHFileOperation.

In ShFileOperation when generating a file list with * wildcards, for
example for deletion, do not include the dot directories (. and ..) in
the list, because that cause the operation to spiral out of control.
diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c
index e12df61..18d1133 100644
--- a/dlls/shell32/shlfileop.c
+++ b/dlls/shell32/shlfileop.c
@@ -779,7 +779,7 @@
     
     while (res)
     {
-        dwCount++;
+        if (!IsDotDir(wfd.cFileName)) dwCount++;
         res = FindNextFileW(hFile, &wfd);
     }
 
@@ -879,18 +879,16 @@
     WIN32_FIND_DATAW wfd;
     HANDLE hFile = FindFirstFileW(szFile, &wfd);
     LPWSTR szFullPath;
-    BOOL res = TRUE, bDir;
-    
-    while (res)
-    {
-        szFullPath = wildcard_to_file(szFile, wfd.cFileName);
-        bDir = add_file_to_entry(&flList->feFiles[(*pdwListIndex)++],
-                                 szFullPath, TRUE);
-        HeapFree(GetProcessHeap(), 0, szFullPath);
-        res = FindNextFileW(hFile, &wfd);
+    BOOL res;
 
-        if (bDir)
+    for (res = TRUE; res; res = FindNextFileW(hFile, &wfd))
+    {
+        if (IsDotDir(wfd.cFileName)) continue;
+        szFullPath = wildcard_to_file(szFile, wfd.cFileName);
+        if (add_file_to_entry(&flList->feFiles[(*pdwListIndex)++],
+                              szFullPath, TRUE))
             flList->bAnyDirectories = TRUE;
+        HeapFree(GetProcessHeap(), 0, szFullPath);
     }
 
     FindClose(hFile);