|  | /* | 
|  | ** 2013 November 25 | 
|  | ** | 
|  | ** The author disclaims copyright to this source code.  In place of | 
|  | ** a legal notice, here is a blessing: | 
|  | ** | 
|  | **    May you do good and not evil. | 
|  | **    May you find forgiveness for yourself and forgive others. | 
|  | **    May you share freely, never taking more than you give. | 
|  | ** | 
|  | ****************************************************************************** | 
|  | ** | 
|  | ** This file contains code that is specific to Windows. | 
|  | */ | 
|  | #ifndef SQLITE_OS_WIN_H | 
|  | #define SQLITE_OS_WIN_H | 
|  |  | 
|  | /* | 
|  | ** Include the primary Windows SDK header file. | 
|  | */ | 
|  | #include "windows.h" | 
|  |  | 
|  | #ifdef __CYGWIN__ | 
|  | # include <sys/cygwin.h> | 
|  | # include <errno.h> /* amalgamator: dontcache */ | 
|  | #endif | 
|  |  | 
|  | /* | 
|  | ** Determine if we are dealing with Windows NT. | 
|  | ** | 
|  | ** We ought to be able to determine if we are compiling for Windows 9x or | 
|  | ** Windows NT using the _WIN32_WINNT macro as follows: | 
|  | ** | 
|  | ** #if defined(_WIN32_WINNT) | 
|  | ** # define SQLITE_OS_WINNT 1 | 
|  | ** #else | 
|  | ** # define SQLITE_OS_WINNT 0 | 
|  | ** #endif | 
|  | ** | 
|  | ** However, Visual Studio 2005 does not set _WIN32_WINNT by default, as | 
|  | ** it ought to, so the above test does not work.  We'll just assume that | 
|  | ** everything is Windows NT unless the programmer explicitly says otherwise | 
|  | ** by setting SQLITE_OS_WINNT to 0. | 
|  | */ | 
|  | #if SQLITE_OS_WIN && !defined(SQLITE_OS_WINNT) | 
|  | # define SQLITE_OS_WINNT 1 | 
|  | #endif | 
|  |  | 
|  | /* | 
|  | ** Determine if we are dealing with Windows CE - which has a much reduced | 
|  | ** API. | 
|  | */ | 
|  | #if defined(_WIN32_WCE) | 
|  | # define SQLITE_OS_WINCE 1 | 
|  | #else | 
|  | # define SQLITE_OS_WINCE 0 | 
|  | #endif | 
|  |  | 
|  | /* | 
|  | ** Determine if we are dealing with WinRT, which provides only a subset of | 
|  | ** the full Win32 API. | 
|  | */ | 
|  | #if !defined(SQLITE_OS_WINRT) | 
|  | # define SQLITE_OS_WINRT 0 | 
|  | #endif | 
|  |  | 
|  | /* | 
|  | ** For WinCE, some API function parameters do not appear to be declared as | 
|  | ** volatile. | 
|  | */ | 
|  | #if SQLITE_OS_WINCE | 
|  | # define SQLITE_WIN32_VOLATILE | 
|  | #else | 
|  | # define SQLITE_WIN32_VOLATILE volatile | 
|  | #endif | 
|  |  | 
|  | /* | 
|  | ** For some Windows sub-platforms, the _beginthreadex() / _endthreadex() | 
|  | ** functions are not available (e.g. those not using MSVC, Cygwin, etc). | 
|  | */ | 
|  | #if SQLITE_OS_WIN && !SQLITE_OS_WINCE && !SQLITE_OS_WINRT && \ | 
|  | SQLITE_THREADSAFE>0 && !defined(__CYGWIN__) | 
|  | # define SQLITE_OS_WIN_THREADS 1 | 
|  | #else | 
|  | # define SQLITE_OS_WIN_THREADS 0 | 
|  | #endif | 
|  |  | 
|  | #endif /* SQLITE_OS_WIN_H */ |