Merge pull request #3640 from awakecoding/uwp_fix

UWP portability fixes
This commit is contained in:
Marc-André Moreau 2016-12-02 16:54:06 -05:00 committed by GitHub
commit d72ff5d241
3 changed files with 22 additions and 1 deletions

View File

@ -199,6 +199,13 @@ BOOL CancelSynchronousIo(HANDLE hThread)
#ifdef _UWP #ifdef _UWP
#include <winpr/crt.h>
#include <winpr/wlog.h>
#include "../log.h"
#define TAG WINPR_TAG("io")
BOOL GetOverlappedResult(HANDLE hFile, LPOVERLAPPED lpOverlapped, LPDWORD lpNumberOfBytesTransferred, BOOL bWait) BOOL GetOverlappedResult(HANDLE hFile, LPOVERLAPPED lpOverlapped, LPDWORD lpNumberOfBytesTransferred, BOOL bWait)
{ {
return GetOverlappedResultEx(hFile, lpOverlapped, lpNumberOfBytesTransferred, bWait ? INFINITE : 0, TRUE); return GetOverlappedResultEx(hFile, lpOverlapped, lpNumberOfBytesTransferred, bWait ? INFINITE : 0, TRUE);

View File

@ -450,7 +450,9 @@ char* GetCombinedPath(const char* basePath, const char* subPath)
BOOL PathMakePathA(LPCSTR path, LPSECURITY_ATTRIBUTES lpAttributes) BOOL PathMakePathA(LPCSTR path, LPSECURITY_ATTRIBUTES lpAttributes)
{ {
#ifdef _WIN32 #if defined(_UWP)
return FALSE;
#elif defined(_WIN32)
return (SHCreateDirectoryExA(NULL, path, lpAttributes) == ERROR_SUCCESS); return (SHCreateDirectoryExA(NULL, path, lpAttributes) == ERROR_SUCCESS);
#else #else
const char delim = PathGetSeparatorA(PATH_STYLE_NATIVE); const char delim = PathGetSeparatorA(PATH_STYLE_NATIVE);

View File

@ -89,17 +89,29 @@ BOOL WINAPI Win32_WTSVirtualChannelClose(HANDLE hChannel);
static void *_wts_malloc(size_t size) static void *_wts_malloc(size_t size)
{ {
#ifdef _UWP
return malloc(size);
#else
return (PVOID)LocalAlloc(LMEM_FIXED, size); return (PVOID)LocalAlloc(LMEM_FIXED, size);
#endif
} }
static void *_wts_calloc(size_t nmemb, size_t size) static void *_wts_calloc(size_t nmemb, size_t size)
{ {
#ifdef _UWP
return calloc(nmemb, size);
#else
return (PVOID)LocalAlloc(LMEM_FIXED | LMEM_ZEROINIT, nmemb * size); return (PVOID)LocalAlloc(LMEM_FIXED | LMEM_ZEROINIT, nmemb * size);
#endif
} }
static void _wts_free(void* ptr) static void _wts_free(void* ptr)
{ {
#ifdef _UWP
free(ptr);
#else
LocalFree((HLOCAL)ptr); LocalFree((HLOCAL)ptr);
#endif
} }
BOOL Win32_WTSVirtualChannelReadAsync(WTSAPI_CHANNEL* pChannel) BOOL Win32_WTSVirtualChannelReadAsync(WTSAPI_CHANNEL* pChannel)