Implement DelayedMove and FileExists. Modified: trunk/reactos/include/wine/setupapi.h Modified: trunk/reactos/lib/setupapi/misc.c Modified: trunk/reactos/lib/setupapi/setupapi.spec _____
Modified: trunk/reactos/include/wine/setupapi.h --- trunk/reactos/include/wine/setupapi.h 2005-02-04 03:21:46 UTC (rev 13402) +++ trunk/reactos/include/wine/setupapi.h 2005-02-04 12:27:34 UTC (rev 13403) @@ -666,9 +666,11 @@
LONG WINAPI AddTagToGroupOrderList(PCWSTR lpGroupName, DWORD dwUnknown2, DWORD dwUnknown3); +BOOL WINAPI DelayedMove(PCWSTR lpExistingFileName, PCWSTR lpNewFileName); BOOL WINAPI DoesUserHavePrivilege(PCWSTR lpPrivilegeName); PWSTR WINAPI DuplicateString(PCWSTR lpSrc); BOOL WINAPI EnablePrivilege(PCWSTR lpPrivilegeName, BOOL bEnable); +BOOL WINAPI FileExists(PCWSTR lpFileName, PWIN32_FIND_DATAW lpFileFindData); void WINAPI InstallHinfSectionA( HWND hwnd, HINSTANCE handle, PCSTR cmdline, INT show ); void WINAPI InstallHinfSectionW( HWND hwnd, HINSTANCE handle, PCWSTR cmdline, INT show ); #define InstallHinfSection WINELIB_NAME_AW(InstallHinfSection) _____
Modified: trunk/reactos/lib/setupapi/misc.c --- trunk/reactos/lib/setupapi/misc.c 2005-02-04 03:21:46 UTC (rev 13402) +++ trunk/reactos/lib/setupapi/misc.c 2005-02-04 12:27:34 UTC (rev 13403) @@ -30,6 +30,9 @@
#include "wine/unicode.h" #include "wine/debug.h"
+#include "setupapi_private.h" + + WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
@@ -458,3 +461,43 @@
return bResult; } + + +BOOL WINAPI DelayedMove(LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName) +{ + if (OsVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_NT) + { + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return FALSE; + } + + return MoveFileExW(lpExistingFileName, lpNewFileName, + MOVEFILE_REPLACE_EXISTING | MOVEFILE_DELAY_UNTIL_REBOOT); +} + + +BOOL WINAPI FileExists(LPCWSTR lpFileName, LPWIN32_FIND_DATAW lpFileFindData) +{ + WIN32_FIND_DATAW FindData; + HANDLE hFind; + UINT uErrorMode; + DWORD dwError; + + uErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS); + + hFind = FindFirstFileW(lpFileName, &FindData); + if (hFind == INVALID_HANDLE_VALUE) + { + dwError = GetLastError(); + SetErrorMode(uErrorMode); + SetLastError(dwError); + return FALSE; + } + + FindClose(hFind); + + if (lpFileFindData) + memcpy(lpFileFindData, &FindData, sizeof(WIN32_FIND_DATAW)); + + return TRUE; +} _____
Modified: trunk/reactos/lib/setupapi/setupapi.spec --- trunk/reactos/lib/setupapi/setupapi.spec 2005-02-04 03:21:46 UTC (rev 13402) +++ trunk/reactos/lib/setupapi/setupapi.spec 2005-02-04 12:27:34 UTC (rev 13403) @@ -194,14 +194,14 @@
@ stub CaptureStringArg @ stub CenterWindowRelativeToParent @ stub ConcatenatePaths -@ stub DelayedMove +@ stdcall DelayedMove(wstr wstr) @ stub DelimStringToMultiSz @ stub DestroyTextFileReadBuffer @ stdcall DoesUserHavePrivilege(wstr) @ stdcall DuplicateString(wstr) @ stdcall EnablePrivilege(wstr long) @ stub ExtensionPropSheetPageProc -@ stub FileExists +@ stdcall FileExists(wstr ptr) @ stub FreeStringArray @ stub GetCurrentDriverSigningPolicy @ stub GetNewInfName