136 lines
3.4 KiB
C
136 lines
3.4 KiB
C
//----------------------------------------------------------------------------
|
|
//
|
|
// 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__
|