diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/os_win.c | 17 | ||||
-rw-r--r-- | src/test1.c | 5 | ||||
-rw-r--r-- | src/test_quota.c | 4 |
3 files changed, 26 insertions, 0 deletions
diff --git a/src/os_win.c b/src/os_win.c index 82ec15f3b..a02b0c535 100644 --- a/src/os_win.c +++ b/src/os_win.c @@ -4093,6 +4093,22 @@ static int winOpenFile( /* TODO: platforms. ** TODO: retry-on-ioerr. */ +#if SQLITE_OS_WINRT + { + CREATEFILE2_EXTENDED_PARAMETERS extendedParameters; + memset(&extendedParameters, 0, sizeof(extendedParameters)); + extendedParameters.dwSize = sizeof(extendedParameters); + extendedParameters.dwFileAttributes = FILE_ATTRIBUTE_NORMAL; + extendedParameters.dwFileFlags = FILE_FLAG_OVERLAPPED; + extendedParameters.dwSecurityQosFlags = SECURITY_ANONYMOUS; + h = osCreateFile2((LPCWSTR)zConverted, + (GENERIC_READ | (bReadonly ? 0 : GENERIC_WRITE)),/* dwDesiredAccess */ + FILE_SHARE_READ | FILE_SHARE_WRITE, /* dwShareMode */ + OPEN_ALWAYS, /* dwCreationDisposition */ + &extendedParameters + ); + } +#else h = osCreateFileW((LPCWSTR)zConverted, /* lpFileName */ (GENERIC_READ | (bReadonly ? 0 : GENERIC_WRITE)), /* dwDesiredAccess */ FILE_SHARE_READ | FILE_SHARE_WRITE, /* dwShareMode */ @@ -4101,6 +4117,7 @@ static int winOpenFile( FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED, NULL ); +#endif if( h==INVALID_HANDLE_VALUE ){ if( bReadonly==0 ){ bReadonly = 1; diff --git a/src/test1.c b/src/test1.c index cf5d484e9..613e8ca13 100644 --- a/src/test1.c +++ b/src/test1.c @@ -7979,6 +7979,10 @@ static int SQLITE_TCLAPI win32_file_lock( int objc, Tcl_Obj *CONST objv[] ){ +#ifdef SQLITE_OS_WINRT + Tcl_AppendResult(interp, "unsupported test command", (char*)0); + return TCL_ERROR; +#else static struct win32FileLocker x = { "win32_file_lock", 0, 0, 0, 0, 0 }; const char *zFilename; char zBuf[200]; @@ -8029,6 +8033,7 @@ static int SQLITE_TCLAPI win32_file_lock( } CloseHandle(ev); return TCL_OK; +#endif /* !SQLITE_OS_WINRT */ } #endif diff --git a/src/test_quota.c b/src/test_quota.c index 1bfc5ce11..62d808a22 100644 --- a/src/test_quota.c +++ b/src/test_quota.c @@ -389,7 +389,11 @@ static char *quota_utf8_to_mbcs(const char *zUtf8){ zTmpWide = (LPWSTR)sqlite3_malloc( (nWide+1)*sizeof(zTmpWide[0]) ); if( zTmpWide==0 ) return 0; MultiByteToWideChar(CP_UTF8, 0, zUtf8, -1, zTmpWide, nWide); +#ifdef SQLITE_OS_WINRT + codepage = CP_ACP; +#else codepage = AreFileApisANSI() ? CP_ACP : CP_OEMCP; +#endif nMbcs = WideCharToMultiByte(codepage, 0, zTmpWide, nWide, 0, 0, 0, 0); zMbcs = nMbcs ? (char*)sqlite3_malloc( nMbcs+1 ) : 0; if( zMbcs ){ |