Implemented FindFirstFileEx, cleaned old implementation up.

diff --git a/include/winbase.h b/include/winbase.h
index b61749d..9f8f21a 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -201,6 +201,20 @@
 DECL_WINELIB_TYPE_AW(WIN32_FIND_DATA)
 DECL_WINELIB_TYPE_AW(LPWIN32_FIND_DATA)
 
+typedef enum _FINDEX_INFO_LEVELS
+{
+	FindExInfoStandard,
+	FindExInfoMaxInfoLevel
+} FINDEX_INFO_LEVELS;
+
+typedef enum _FINDEX_SEARCH_OPS
+{
+	FindExSearchNameMatch,
+	FindExSearchLimitToDirectories,
+	FindExSearchLimitToDevices,
+	FindExSearchMaxSearchOp
+} FINDEX_SEARCH_OPS;
+
 typedef struct
 {
     LPVOID lpData;
@@ -1492,6 +1506,9 @@
 HANDLE    WINAPI FindFirstFileA(LPCSTR,LPWIN32_FIND_DATAA);
 HANDLE    WINAPI FindFirstFileW(LPCWSTR,LPWIN32_FIND_DATAW);
 #define     FindFirstFile WINELIB_NAME_AW(FindFirstFile)
+HANDLE      WINAPI FindFirstFileExA(LPCSTR,FINDEX_INFO_LEVELS,LPVOID,FINDEX_SEARCH_OPS,LPVOID,DWORD);
+HANDLE      WINAPI FindFirstFileExW(LPCWSTR,FINDEX_INFO_LEVELS,LPVOID,FINDEX_SEARCH_OPS,LPVOID,DWORD);
+#define     FindFirstFileEx WINELIB_NAME_AW(FindFirstFileEx)
 BOOL16      WINAPI FindNextFile16(HANDLE16,LPWIN32_FIND_DATAA);
 BOOL      WINAPI FindNextFileA(HANDLE,LPWIN32_FIND_DATAA);
 BOOL      WINAPI FindNextFileW(HANDLE,LPWIN32_FIND_DATAW);