//---------------------------------------------------------------------------- // // Windows CE/Win32 compatibility definitions. // // Copyright (C) Microsoft Corporation, 2001. // //---------------------------------------------------------------------------- #ifndef __WCECOMPAT_H__ #define __WCECOMPAT_H__ #ifdef _WIN32_WCE #ifndef DBG_COMMAND_EXCEPTION #define DBG_COMMAND_EXCEPTION ((LONG)0x40010009L) #endif #ifndef STDMETHODV #define STDMETHODV(Method) STDMETHOD(Method) #endif #ifndef INLINE #define INLINE __inline #endif #ifndef FORCEINLINE #define FORCEINLINE INLINE #endif #ifndef TH32CS_SNAPMODULE32 #define TH32CS_SNAPMODULE32 0 #endif #ifndef INVALID_SET_FILE_POINTER #define INVALID_SET_FILE_POINTER 0xffffffff #endif #define CREATE_UNICODE_ENVIRONMENT 0x00000400 #define STACK_SIZE_PARAM_IS_A_RESERVATION 0x00010000 typedef struct _EXCEPTION_RECORD32 { DWORD ExceptionCode; DWORD ExceptionFlags; DWORD ExceptionRecord; DWORD ExceptionAddress; DWORD NumberParameters; DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; } EXCEPTION_RECORD32, *PEXCEPTION_RECORD32; typedef struct _EXCEPTION_RECORD64 { DWORD ExceptionCode; DWORD ExceptionFlags; DWORD64 ExceptionRecord; DWORD64 ExceptionAddress; DWORD NumberParameters; DWORD __unusedAlignment; DWORD64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; } EXCEPTION_RECORD64, *PEXCEPTION_RECORD64; typedef LONG NTSTATUS; #define NT_SUCCESS(Status) ((Status) >= 0) typedef struct _STRING { USHORT Length; USHORT MaximumLength; PCHAR Buffer; } STRING, ANSI_STRING, *PSTRING, *PANSI_STRING; typedef struct _UNICODE_STRING { USHORT Length; USHORT MaximumLength; PWSTR Buffer; } UNICODE_STRING, *PUNICODE_STRING; typedef const UNICODE_STRING* PCUNICODE_STRING; typedef const ANSI_STRING* PCANSI_STRING; typedef struct _OBJECT_ATTRIBUTES { ULONG Length; HANDLE RootDirectory; PUNICODE_STRING ObjectName; ULONG Attributes; PVOID SecurityDescriptor; // Points to type SECURITY_DESCRIPTOR PVOID SecurityQualityOfService; // Points to type SECURITY_QUALITY_OF_SERVICE } OBJECT_ATTRIBUTES; typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES; typedef struct _CLIENT_ID { HANDLE UniqueProcess; HANDLE UniqueThread; } CLIENT_ID; typedef CLIENT_ID *PCLIENT_ID; #define WSA_FLAG_OVERLAPPED 0 #define WSA_IO_PENDING 0 typedef OVERLAPPED WSAOVERLAPPED; typedef WSAOVERLAPPED *LPWSAOVERLAPPED; #define OpenThread(dwDesiredAccess, bInheritHandle, dwThreadId) \ ((HANDLE)(dwThreadId)) #define IsProcessorFeaturePresent(ProcessorFeature) FALSE #define VirtualQueryEx(hProcess, lpAddress, lpBuffer, dwLength) \ (SetLastError(ERROR_CALL_NOT_IMPLEMENTED), 0) #define CancelIo(Handle) \ (SetLastError(ERROR_CALL_NOT_IMPLEMENTED), FALSE) #define GetOverlappedResult(hFile, lpOverlapped, lpNumberOfBytesTransferred, bWait) \ (SetLastError(ERROR_CALL_NOT_IMPLEMENTED), FALSE) #define WSASocket(af, type, protocol, lpProtocolInfo, g, dwFlags) \ socket(af, type, protocol) #define WSAGetOverlappedResult(hFile, lpOverlapped, lpNumberOfBytesTransferred, bWait, Flags) \ (SetLastError(ERROR_CALL_NOT_IMPLEMENTED), FALSE) INLINE void * ULongToHandle( const unsigned long h ) { return((void *) (UINT_PTR) h ); } #define UlongToHandle(ul) ULongToHandle(ul) #else #ifndef VER_PLATFORM_WIN32_CE #define VER_PLATFORM_WIN32_CE 3 #endif #endif // #ifdef _WIN32_WCE #endif // #ifndef __WCECOMPAT_H__