len * sizeof(WCHAR));
if (EnvironmentBufferW == NULL)
{
+ SetLastError(ERROR_OUTOFMEMORY);
return 0;
}
lpPath = EnvironmentBufferW;
}
- retCode = RtlDosSearchPath_U ((PWCHAR)lpPath, (PWCHAR)lpFileName, (PWCHAR)lpExtension, nBufferLength, lpBuffer, lpFilePart);
+ retCode = RtlDosSearchPath_U ((PWCHAR)lpPath, (PWCHAR)lpFileName, (PWCHAR)lpExtension,
+ nBufferLength * sizeof(WCHAR), lpBuffer, lpFilePart);
if (EnvironmentBufferW != NULL)
{
RtlFreeHeap(GetProcessHeap(), 0, EnvironmentBufferW);
}
- return retCode;
+ if (retCode == 0)
+ {
+ SetLastError(ERROR_FILE_NOT_FOUND);
+ }
+ return retCode / sizeof(WCHAR);
}
/* EOF */