| 667 | // Enumerating files in listfile |
| 668 | |
| 669 | HANDLE WINAPI SListFileFindFirstFile(HANDLE hMpq, const TCHAR * szListFile, const char * szMask, SFILE_FIND_DATA * lpFindFileData) |
| 670 | { |
| 671 | TListFileCache * pCache = NULL; |
| 672 | |
| 673 | // Initialize the structure with zeros |
| 674 | memset(lpFindFileData, 0, sizeof(SFILE_FIND_DATA)); |
| 675 | |
| 676 | // Open the local/internal listfile |
| 677 | pCache = CreateListFileCache(hMpq, szListFile, szMask, 0, 0); |
| 678 | if(pCache != NULL) |
| 679 | { |
| 680 | if(!DoListFileSearch(pCache, lpFindFileData)) |
| 681 | { |
| 682 | memset(lpFindFileData, 0, sizeof(SFILE_FIND_DATA)); |
| 683 | SetLastError(ERROR_NO_MORE_FILES); |
| 684 | FreeListFileCache(pCache); |
| 685 | pCache = NULL; |
| 686 | } |
| 687 | } |
| 688 | |
| 689 | // Return the listfile cache as handle |
| 690 | return (HANDLE)pCache; |
| 691 | } |
| 692 | |
| 693 | bool WINAPI SListFileFindNextFile(HANDLE hFind, SFILE_FIND_DATA * lpFindFileData) |
| 694 | { |