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