From f8565b8b7503aedbf75468ec5fb9c4c3a91d3366 Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Thu, 17 Dec 2015 12:01:52 +0100 Subject: [PATCH] Generating wtypes.h now with used defines. --- winpr/include/CMakeLists.txt | 1 + winpr/include/winpr/wtypes.h | 7 +- winpr/include/winpr/wtypes.h.in | 489 ++++++++++++++++++++++++++++++++ 3 files changed, 493 insertions(+), 4 deletions(-) create mode 100644 winpr/include/winpr/wtypes.h.in diff --git a/winpr/include/CMakeLists.txt b/winpr/include/CMakeLists.txt index 3ce562e29..1121008ad 100644 --- a/winpr/include/CMakeLists.txt +++ b/winpr/include/CMakeLists.txt @@ -16,6 +16,7 @@ # limitations under the License. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/winpr/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/winpr/version.h) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/winpr/wtypes.h.in ${CMAKE_CURRENT_BINARY_DIR}/winpr/wtypes.h) file(GLOB WINPR_HEADERS "winpr/*.h") install(FILES ${WINPR_HEADERS} DESTINATION include/winpr COMPONENT headers) diff --git a/winpr/include/winpr/wtypes.h b/winpr/include/winpr/wtypes.h index 66b545b5a..7bbd695b2 100644 --- a/winpr/include/winpr/wtypes.h +++ b/winpr/include/winpr/wtypes.h @@ -20,13 +20,12 @@ #ifndef WINPR_WTYPES_H #define WINPR_WTYPES_H +#define HAVE_STDINT_H +#define HAVE_STDBOOL_H + /* MSDN: Windows Data Types - http://msdn.microsoft.com/en-us/library/aa383751/ */ /* [MS-DTYP]: Windows Data Types - http://msdn.microsoft.com/en-us/library/cc230273/ */ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - #include #include diff --git a/winpr/include/winpr/wtypes.h.in b/winpr/include/winpr/wtypes.h.in new file mode 100644 index 000000000..af23bce2a --- /dev/null +++ b/winpr/include/winpr/wtypes.h.in @@ -0,0 +1,489 @@ +/** + * WinPR: Windows Portable Runtime + * Windows Data Types + * + * Copyright 2012 Marc-Andre Moreau + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef WINPR_WTYPES_H +#define WINPR_WTYPES_H + +#cmakedefine HAVE_STDINT_H +#cmakedefine HAVE_STDBOOL_H + +/* MSDN: Windows Data Types - http://msdn.microsoft.com/en-us/library/aa383751/ */ +/* [MS-DTYP]: Windows Data Types - http://msdn.microsoft.com/en-us/library/cc230273/ */ + +#include +#include + +#include + +#if defined(HAVE_STDBOOL_H) +#include +#endif + +#if defined(HAVE_STDINT_H) +#include +#endif + +#ifdef _WIN32 +#include +#endif + +#if defined(__OBJC__) && defined(__APPLE__) +#include +#endif + +#ifndef _WIN32 + +#define WINAPI +#define CDECL + +#ifndef FAR +#define FAR +#endif + +#ifndef NEAR +#define NEAR +#endif + +#if defined(HAVE_STDINT_H) +#define __int8 int8_t +#define __uint8 uint8_t +#define __int16 int16_t +#define __uint16 uint16_t +#define __int32 int32_t +#define __uint32 uint32_t +#define __int64 int64_t +#define __uint64 uint64_t +#else +#define __int8 char +#define __uint8 unsigned char +#define __int16 short +#define __uint16 unsigned short +#define __int32 int +#define __uint32 unsigned int +#define __int64 long long +#define __uint64 unsigned long long +#endif + +#if defined(HAVE_STDINT_H) +#if defined(__x86_64__) || defined(__arm64__) +#define __int3264 int64_t +#define __uint3264 uint64_t +#else +#define __int3264 int32_t +#define __uint3264 uint32_t +#endif +#else +#if defined(__x86_64__) || defined(__arm64__) +#define __int3264 __int64 +#define __uint3264 __uint64 +#else +#define __int3264 __int32 +#define __uint3264 __uint32 +#endif +#endif + +#if defined(HAVE_STDBOOL_H) && !defined(__OBJC__) +typedef bool BOOL; +#else +#ifndef __OBJC__ +#if defined(__APPLE__) +typedef signed char BOOL; +#else +#ifndef XMD_H +typedef int BOOL; +#endif +#endif +#endif +#endif + +typedef BOOL *PBOOL, *LPBOOL; + +#if defined(HAVE_STDINT_H) +typedef int32_t LONG; +typedef uint32_t DWORD; +typedef uint32_t ULONG; +#elif defined(__LP64__) || defined(__APPLE__) +typedef int LONG; +typedef unsigned int DWORD; +typedef unsigned int ULONG; +#else +typedef long LONG; +typedef unsigned long DWORD; +typedef unsigned long ULONG; +#endif + +#if defined(HAVE_STDINT_H) +typedef uint8_t BYTE, *PBYTE, *LPBYTE; +#else +typedef unsigned char BYTE, *PBYTE, *LPBYTE; +#endif + +typedef BYTE BOOLEAN, *PBOOLEAN; +#if defined(wchar_t) +typedef wchar_t WCHAR, *PWCHAR; +#else +typedef unsigned short WCHAR, *PWCHAR; +#endif +typedef WCHAR* BSTR; +typedef char CHAR, *PCHAR; +typedef DWORD *PDWORD, *LPDWORD; +#if defined(HAVE_STDINT_H) +typedef uint32_t DWORD32; +typedef uint64_t DWORD64; +typedef uint64_t ULONGLONG; +#else +typedef unsigned int DWORD32; +typedef unsigned __int64 DWORD64; +typedef unsigned __int64 ULONGLONG; +#endif +typedef ULONGLONG DWORDLONG, *PDWORDLONG; +typedef float FLOAT; +typedef unsigned char UCHAR, *PUCHAR; +typedef short SHORT; + +#ifndef FALSE +#if defined(HAVE_STDBOOL_H) && !defined(__OBJC__) +#define FALSE false +#else +#define FALSE 0 +#endif +#endif + +#ifndef TRUE +#if defined(HAVE_STDBOOL_H) && !defined(__OBJC__) +#define TRUE true +#else +#define TRUE 1 +#endif +#endif + +#define CONST const +#define CALLBACK + +typedef void* HANDLE, *PHANDLE, *LPHANDLE; +typedef HANDLE HINSTANCE; +typedef HANDLE HMODULE; +typedef HANDLE HWND; +typedef HANDLE HBITMAP; +typedef HANDLE HICON; +typedef HANDLE HCURSOR; +typedef HANDLE HBRUSH; +typedef HANDLE HMENU; + +typedef DWORD HCALL; +typedef int INT, *LPINT; +#if defined(HAVE_STDINT_H) +typedef int8_t INT8; +typedef int16_t INT16; +typedef int32_t INT32; +typedef int64_t INT64; +#else +typedef signed char INT8; +typedef signed short INT16; +#ifndef XMD_H +typedef signed int INT32; +typedef signed __int64 INT64; +#endif +#endif +typedef const WCHAR* LMCSTR; +typedef WCHAR* LMSTR; +typedef LONG *PLONG, *LPLONG; +#if defined(HAVE_STDINT_H) +typedef int64_t LONGLONG; +#else +typedef signed __int64 LONGLONG; +#endif + +typedef __int3264 LONG_PTR, *PLONG_PTR; +typedef __uint3264 ULONG_PTR, *PULONG_PTR; + +#if defined(HAVE_STDINT_H) +typedef int32_t LONG32; +typedef int64_t LONG64; +#else +typedef signed int LONG32; +#ifndef XMD_H +typedef signed __int64 LONG64; +#endif +#endif + +typedef CHAR *PSTR, *LPSTR, *LPCH; +typedef const CHAR *LPCSTR,*PCSTR; + +typedef WCHAR *LPWSTR, *PWSTR, *LPWCH; +typedef const WCHAR *LPCWSTR,*PCWSTR; + +typedef unsigned int UINT; +#if defined(HAVE_STDINT_H) +typedef uint64_t QWORD; + +typedef uint8_t UINT8; +typedef uint16_t UINT16; +typedef uint32_t UINT32; +typedef uint64_t UINT64; +#else +typedef unsigned __int64 QWORD; + +typedef unsigned char UINT8; +typedef unsigned short UINT16; +typedef unsigned int UINT32; +typedef unsigned __int64 UINT64; +#endif + +typedef ULONG *PULONG; + +typedef LONG HRESULT; +typedef LONG SCODE; +typedef SCODE *PSCODE; + +typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR; +typedef ULONG_PTR SIZE_T; +#if defined(HAVE_STDINT_H) +typedef uint32_t ULONG32; +typedef uint64_t ULONG64; +typedef uint16_t USHORT; +typedef uint16_t WORD, *PWORD, *LPWORD; +#else +typedef unsigned int ULONG32; +typedef unsigned __int64 ULONG64; +typedef unsigned short USHORT; +typedef unsigned short WORD, *PWORD, *LPWORD; +#endif +typedef wchar_t UNICODE; +#define VOID void +typedef void *PVOID, *LPVOID; +typedef void *PVOID64, *LPVOID64; + +#if defined(HAVE_STDINT_H) +typedef intptr_t INT_PTR; +typedef uintptr_t UINT_PTR; +#elif __x86_64__ +typedef __int64 INT_PTR; +typedef unsigned __int64 UINT_PTR; +#else +typedef int INT_PTR; +typedef unsigned int UINT_PTR; +#endif + +typedef struct _GUID +{ + UINT32 Data1; + UINT16 Data2; + UINT16 Data3; + BYTE Data4[8]; +} GUID, UUID, *PGUID, *LPGUID, *LPCGUID; + +typedef struct _LUID +{ + DWORD LowPart; + LONG HighPart; +} LUID, *PLUID; + +typedef GUID IID; +typedef IID* REFIID; + +#ifdef UNICODE +#define _T(x) L ## x +#else +#define _T(x) x +#endif + +#ifdef UNICODE +typedef LPWSTR PTSTR; +typedef LPWSTR LPTCH; +typedef LPWSTR LPTSTR; +typedef LPCWSTR LPCTSTR; +#else +typedef LPSTR PTSTR; +typedef LPSTR LPTCH; +typedef LPSTR LPTSTR; +typedef LPCSTR LPCTSTR; +#endif + +typedef union _ULARGE_INTEGER +{ + struct + { + DWORD LowPart; + DWORD HighPart; + }; + + struct + { + DWORD LowPart; + DWORD HighPart; + } u; + + ULONGLONG QuadPart; +} ULARGE_INTEGER, *PULARGE_INTEGER; + +typedef union _LARGE_INTEGER +{ + struct + { + DWORD LowPart; + LONG HighPart; + }; + + struct + { + DWORD LowPart; + LONG HighPart; + } u; + + LONGLONG QuadPart; +} LARGE_INTEGER, *PLARGE_INTEGER; + +typedef struct _FILETIME +{ + DWORD dwLowDateTime; + DWORD dwHighDateTime; +} FILETIME, *PFILETIME, *LPFILETIME; + +typedef struct _SYSTEMTIME +{ + WORD wYear; + WORD wMonth; + WORD wDayOfWeek; + WORD wDay; + WORD wHour; + WORD wMinute; + WORD wSecond; + WORD wMilliseconds; +} SYSTEMTIME,*PSYSTEMTIME,*LPSYSTEMTIME; + +typedef struct _RPC_SID_IDENTIFIER_AUTHORITY +{ + BYTE Value[6]; +} RPC_SID_IDENTIFIER_AUTHORITY; + +typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION; + +typedef struct _RPC_SID +{ + UCHAR Revision; + UCHAR SubAuthorityCount; + RPC_SID_IDENTIFIER_AUTHORITY IdentifierAuthority; + ULONG SubAuthority[]; +} RPC_SID, *PRPC_SID, *PSID; + +typedef struct _ACL +{ + UCHAR AclRevision; + UCHAR Sbz1; + USHORT AclSize; + USHORT AceCount; + USHORT Sbz2; +} ACL, *PACL; + +typedef struct _SECURITY_DESCRIPTOR +{ + UCHAR Revision; + UCHAR Sbz1; + USHORT Control; + PSID Owner; + PSID Group; + PACL Sacl; + PACL Dacl; +} SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR; + +typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL; + +typedef struct _SECURITY_ATTRIBUTES +{ + DWORD nLength; + LPVOID lpSecurityDescriptor; + BOOL bInheritHandle; +} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; + +typedef struct _PROCESS_INFORMATION +{ + HANDLE hProcess; + HANDLE hThread; + DWORD dwProcessId; + DWORD dwThreadId; +} PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION; + +typedef DWORD (*PTHREAD_START_ROUTINE)(LPVOID lpThreadParameter); +typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE; + +typedef void* FARPROC; + +#endif + +typedef BYTE byte; +typedef double DOUBLE; + +typedef void* PCONTEXT_HANDLE; +typedef PCONTEXT_HANDLE* PPCONTEXT_HANDLE; + +typedef ULONG error_status_t; + +#ifndef _NTDEF_ +typedef LONG NTSTATUS; +typedef NTSTATUS *PNTSTATUS; +#endif + +#ifndef _LPCBYTE_DEFINED +#define _LPCBYTE_DEFINED +typedef const BYTE *LPCBYTE; +#endif + +#ifndef _LPCVOID_DEFINED +#define _LPCVOID_DEFINED +typedef const VOID *LPCVOID; +#endif + +#ifndef _WIN32 + +typedef struct tagDEC +{ + USHORT wReserved; + union { + struct { + BYTE scale; + BYTE sign; + } DUMMYSTRUCTNAME; + USHORT signscale; + } DUMMYUNIONNAME; + ULONG Hi32; + union { + struct { + ULONG Lo32; + ULONG Mid32; + } DUMMYSTRUCTNAME2; + ULONGLONG Lo64; + } DUMMYUNIONNAME2; +} DECIMAL; + +typedef DECIMAL *LPDECIMAL; + +#define DECIMAL_NEG ((BYTE) 0x80) +#define DECIMAL_SETZERO(dec) { (dec).Lo64 = 0; (dec).Hi32 = 0; (dec).signscale = 0; } + +typedef char CCHAR; +typedef DWORD LCID; +typedef PDWORD PLCID; +typedef WORD LANGID; + +#endif + +#include + +#endif /* WINPR_WTYPES_H */