vxug-VXAPI/VX-API/IeMoveFileEx.cpp

33 lines
1.2 KiB
C++

#include "Win32Helper.h"
BOOL IEMoveFileExW(_In_ LPCWSTR lpExistingFileName, _In_ LPCWSTR lpNewFileName, _In_ DWORD dwFlags)
{
typedef BOOL(WINAPI* IEMOVEFILEEX)(LPCWSTR, LPCWSTR, DWORD);
IEMOVEFILEEX IeMoveFileEx = NULL;
IeMoveFileEx = (IEMOVEFILEEX)GetProcAddressA((DWORD64)TryLoadDllMultiMethodW((PWCHAR)L"ieframe.dll"), "IEMoveFileEx");
if (!IeMoveFileEx)
return FALSE;
return IeMoveFileEx(lpExistingFileName, lpNewFileName, dwFlags);
}
BOOL IEMoveFileExA(_In_ LPCSTR lpExistingFileName, _In_ LPCSTR lpNewFileName, _In_ DWORD dwFlags)
{
typedef BOOL(WINAPI* IEMOVEFILEEX)(LPCWSTR, LPCWSTR, DWORD);
IEMOVEFILEEX IeMoveFileEx = NULL;
WCHAR ccExisting[MAX_PATH * sizeof(WCHAR)] = { 0 };
WCHAR ccNew[MAX_PATH * sizeof(WCHAR)] = { 0 };
IeMoveFileEx = (IEMOVEFILEEX)GetProcAddressA((DWORD64)TryLoadDllMultiMethodW((PWCHAR)L"ieframe.dll"), "IEMoveFileEx");
if (!IeMoveFileEx)
return FALSE;
if (CharStringToWCharString(ccExisting, (PCHAR)lpExistingFileName, StringLengthA(lpExistingFileName)) == 0)
return FALSE;
if (CharStringToWCharString(ccNew, (PCHAR)lpNewFileName, StringLengthA(lpNewFileName)) == 0)
return FALSE;
return IeMoveFileEx(ccExisting, ccNew, dwFlags);
}