On Sonntag, 31. März 2019 08:36:17 CEST Nikolay Sivov wrote:
On 3/30/19 10:40 PM, Fabian Maurer wrote:
+/************************************************************************ ** + * FindFirstStreamW (KERNEL32.@)
- */
+HANDLE WINAPI FindFirstStreamW(LPCWSTR lpFileName, STREAM_INFO_LEVELS infoLevel, + LPVOID lpFindStreamData, DWORD dwFlags) +{
- FIXME("(%s, %d, %p, %x): stub!\n", debugstr_w(lpFileName), infoLevel,
lpFindStreamData, dwFlags); +
- SetLastError(ERROR_HANDLE_EOF);
- return INVALID_HANDLE_VALUE;
+}
+/************************************************************************ ** + * FindNextStreamW (KERNEL32.@)
- */
+BOOL WINAPI FindNextStreamW(HANDLE hFindStream, LPVOID lpFindStreamData) +{
- FIXME("(%p, %p): stub!\n", hFindStream, lpFindStreamData);
- SetLastError(ERROR_HANDLE_EOF);
- return FALSE;
+}
Please use better argument and type names.
I just used the official names from the header. Wine's code style is not consistent on that, what is preferred - windows naming convention or wine naming convention?
Regarding error code, will it work if you set it to NOT_IMPLEMENTED?
@@ -488,7 +488,7 @@
# @ stub FindFirstFileTransactedW @ stdcall FindFirstFileW(wstr ptr) # @ stub FindFirstStreamTransactedW
-# @ stub FindFirstStreamW +@ stub FindFirstStreamW(str long ptr long)
@ stdcall FindFirstVolumeA(ptr long) @ stdcall FindFirstVolumeMountPointA(str ptr long)
Why 'stub'? Is it enough to have 'stub' entry for application to work? Also first argument type is wrong.
I implemented it with ERROR_HANDLE_EOF because that should be the return value when the function succeeds, but there is no stream. Interesting enough, it works when it's a stub only. The function is never actually called.
So is just a spec-stub preferred, or should I add a method stub setting NOT_IMPLEMENTED, or my implementation that just assumes there are no streams?
On a side note, why was there a commented out stub?
Regards, Fabian Maurer