|
Packit |
1fb8d4 |
/**
|
|
Packit |
1fb8d4 |
* WinPR: Windows Portable Runtime
|
|
Packit |
1fb8d4 |
* Windows Data Types
|
|
Packit |
1fb8d4 |
*
|
|
Packit |
1fb8d4 |
* Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
|
Packit |
1fb8d4 |
*
|
|
Packit |
1fb8d4 |
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
Packit |
1fb8d4 |
* you may not use this file except in compliance with the License.
|
|
Packit |
1fb8d4 |
* You may obtain a copy of the License at
|
|
Packit |
1fb8d4 |
*
|
|
Packit |
1fb8d4 |
* http://www.apache.org/licenses/LICENSE-2.0
|
|
Packit |
1fb8d4 |
*
|
|
Packit |
1fb8d4 |
* Unless required by applicable law or agreed to in writing, software
|
|
Packit |
1fb8d4 |
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
Packit |
1fb8d4 |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
Packit |
1fb8d4 |
* See the License for the specific language governing permissions and
|
|
Packit |
1fb8d4 |
* limitations under the License.
|
|
Packit |
1fb8d4 |
*/
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef WINPR_WTYPES_H
|
|
Packit |
1fb8d4 |
#define WINPR_WTYPES_H
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
/* Set by CMake during configuration */
|
|
Packit |
1fb8d4 |
#cmakedefine WINPR_HAVE_STDINT_H
|
|
Packit |
1fb8d4 |
#cmakedefine WINPR_HAVE_STDBOOL_H
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#if !defined(_MSC_VER) || _MSC_VER >= 1900
|
|
Packit |
1fb8d4 |
/* Microsoft's inttypes.h is broken before MSVC 2015 */
|
|
Packit |
1fb8d4 |
#cmakedefine WINPR_HAVE_INTTYPES_H
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
/* MSDN: Windows Data Types - http://msdn.microsoft.com/en-us/library/aa383751/ */
|
|
Packit |
1fb8d4 |
/* [MS-DTYP]: Windows Data Types - http://msdn.microsoft.com/en-us/library/cc230273/ */
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#include <wchar.h>
|
|
Packit |
1fb8d4 |
#include <winpr/windows.h>
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#include <winpr/spec.h>
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef WINPR_HAVE_STDBOOL_H
|
|
Packit |
1fb8d4 |
#include <stdbool.h>
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef WINPR_HAVE_STDINT_H
|
|
Packit |
1fb8d4 |
#include <stdint.h>
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef WINPR_HAVE_INTTYPES_H
|
|
Packit |
1fb8d4 |
#include <inttypes.h>
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#include <limits.h>
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef _WIN32
|
|
Packit |
1fb8d4 |
#include <wtypes.h>
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
/* Handle missing ssize_t on Windows */
|
|
Packit |
1fb8d4 |
#ifdef _WIN64
|
|
Packit |
1fb8d4 |
typedef long long LONG_PTR;
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
typedef long LONG_PTR;
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
typedef LONG_PTR SSIZE_T;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#if defined(__OBJC__) && defined(__APPLE__)
|
|
Packit |
1fb8d4 |
#include <objc/objc.h>
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef CONST
|
|
Packit |
1fb8d4 |
#define CONST const
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef VOID
|
|
Packit |
1fb8d4 |
#define VOID void
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef _WIN32
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#define CALLBACK
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#define WINAPI
|
|
Packit |
1fb8d4 |
#define CDECL
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef FAR
|
|
Packit |
1fb8d4 |
#define FAR
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef NEAR
|
|
Packit |
1fb8d4 |
#define NEAR
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef WINPR_HAVE_STDINT_H
|
|
Packit |
1fb8d4 |
typedef int8_t __int8;
|
|
Packit |
1fb8d4 |
typedef uint8_t __uint8;
|
|
Packit |
1fb8d4 |
typedef int16_t __int16;
|
|
Packit |
1fb8d4 |
typedef uint16_t __uint16;
|
|
Packit |
1fb8d4 |
typedef int32_t __int32;
|
|
Packit |
1fb8d4 |
typedef uint32_t __uint32;
|
|
Packit |
1fb8d4 |
typedef int64_t __int64;
|
|
Packit |
1fb8d4 |
typedef uint64_t __uint64;
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#if UCHAR_MAX == 0xFF
|
|
Packit |
1fb8d4 |
typedef signed char __int8;
|
|
Packit |
1fb8d4 |
typedef unsigned char __uint8;
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#error "8-bit type not configured"
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
#if USHRT_MAX == 0xFFFF
|
|
Packit |
1fb8d4 |
typedef short __int16;
|
|
Packit |
1fb8d4 |
typedef unsigned short __uint16;
|
|
Packit |
1fb8d4 |
#elif UINT_MAX == 0xFFFF
|
|
Packit |
1fb8d4 |
typedef int __int16;
|
|
Packit |
1fb8d4 |
typedef unsigned int __uint16;
|
|
Packit |
1fb8d4 |
#error "16-bit type not configured"
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
#if UINT_MAX == 0xFFFFFFFF
|
|
Packit |
1fb8d4 |
typedef int __int32;
|
|
Packit |
1fb8d4 |
typedef unsigned int __uint32;
|
|
Packit |
1fb8d4 |
#elif ULONG_MAX == 0xFFFFFFFF
|
|
Packit |
1fb8d4 |
typedef long __int32;
|
|
Packit |
1fb8d4 |
typedef unsigned long __uint32;
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#error "32-bit type not configured"
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
#if ULONG_MAX == 0xFFFFFFFFFFFFFFFF
|
|
Packit |
1fb8d4 |
typedef long __int64;
|
|
Packit |
1fb8d4 |
typedef unsigned long __uint64;
|
|
Packit |
1fb8d4 |
#elif ULLONG_MAX == 0xFFFFFFFFFFFFFFFF
|
|
Packit |
1fb8d4 |
typedef long long __int64;
|
|
Packit |
1fb8d4 |
typedef unsigned long long __uint64;
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#error "64-bit type not configured"
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
#endif /* WINPR_HAVE_STDINT_H */
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef WINPR_HAVE_STDINT_H
|
|
Packit |
1fb8d4 |
#if defined(__ILP64__) || defined(__LP64__)
|
|
Packit |
1fb8d4 |
#define __int3264 int64_t
|
|
Packit |
1fb8d4 |
#define __uint3264 uint64_t
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define __int3264 int32_t
|
|
Packit |
1fb8d4 |
#define __uint3264 uint32_t
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#if defined(__ILP64__) || defined(__LP64__)
|
|
Packit |
1fb8d4 |
#define __int3264 __int64
|
|
Packit |
1fb8d4 |
#define __uint3264 __uint64
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define __int3264 __int32
|
|
Packit |
1fb8d4 |
#define __uint3264 __uint32
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
#endif /* WINPR_HAVE_STDINT_H */
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef void* PVOID, *LPVOID, *PVOID64, *LPVOID64;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef XMD_H /* X11/Xmd.h typedef collision with BOOL */
|
|
Packit |
1fb8d4 |
#ifndef __OBJC__ /* objc.h typedef collision with BOOL */
|
|
Packit |
1fb8d4 |
#ifndef __APPLE__
|
|
Packit |
1fb8d4 |
typedef __int32 BOOL;
|
|
Packit |
1fb8d4 |
#else /* __APPLE__ */
|
|
Packit |
1fb8d4 |
/* ensure compatibility with objc libraries */
|
|
Packit |
1fb8d4 |
#if (TARGET_OS_IPHONE && __LP64__) || TARGET_OS_WATCH
|
|
Packit |
1fb8d4 |
typedef bool BOOL;
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
typedef signed char BOOL;
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
#endif /* __APPLE__ */
|
|
Packit |
1fb8d4 |
#endif /* __OBJC__ */
|
|
Packit |
1fb8d4 |
#endif /* XMD_H */
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef BOOL* PBOOL, *LPBOOL;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef FALSE
|
|
Packit |
1fb8d4 |
#define FALSE 0
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef TRUE
|
|
Packit |
1fb8d4 |
#define TRUE 1
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef XMD_H /* X11/Xmd.h typedef collision with BYTE */
|
|
Packit |
1fb8d4 |
typedef __uint8 BYTE;
|
|
Packit |
1fb8d4 |
#endif /* XMD_H */
|
|
Packit |
1fb8d4 |
typedef BYTE byte, *PBYTE, *LPBYTE;
|
|
Packit |
1fb8d4 |
typedef BYTE BOOLEAN, PBOOLEAN;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#if CHAR_BIT == 8
|
|
Packit |
1fb8d4 |
typedef char CHAR;
|
|
Packit |
1fb8d4 |
typedef unsigned char UCHAR;
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
typedef __int8 CHAR;
|
|
Packit |
1fb8d4 |
typedef __uint8 UCHAR;
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
typedef CHAR CCHAR, *PCHAR, *LPCH, *PCH, *PSTR, *LPSTR;
|
|
Packit |
1fb8d4 |
typedef const CHAR* LPCCH, *PCCH, *LPCSTR, *PCSTR;
|
|
Packit |
1fb8d4 |
typedef UCHAR* PUCHAR;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef __uint16 WCHAR;
|
|
Packit |
1fb8d4 |
typedef WCHAR UNICODE, *PWCHAR, *LPWCH, *PWCH, *BSTR, *LMSTR, *LPWSTR, *PWSTR;
|
|
Packit |
1fb8d4 |
typedef const WCHAR* LPCWCH, *PCWCH, *LMCSTR, *LPCWSTR, *PCWSTR;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef __int16 SHORT, *PSHORT;
|
|
Packit |
1fb8d4 |
typedef __int32 INT, *PINT, *LPINT;
|
|
Packit |
1fb8d4 |
typedef __int32 LONG, *PLONG, *LPLONG;
|
|
Packit |
1fb8d4 |
typedef __int64 LONGLONG, *PLONGLONG;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef __uint32 UINT, *PUINT, *LPUINT;
|
|
Packit |
1fb8d4 |
typedef __uint16 USHORT, *PUSHORT;
|
|
Packit |
1fb8d4 |
typedef __uint32 ULONG, *PULONG;
|
|
Packit |
1fb8d4 |
typedef __uint64 ULONGLONG, *PULONGLONG;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef XMD_H /* X11/Xmd.h typedef collisions */
|
|
Packit |
1fb8d4 |
typedef __int8 INT8;
|
|
Packit |
1fb8d4 |
typedef __int16 INT16;
|
|
Packit |
1fb8d4 |
typedef __int32 INT32;
|
|
Packit |
1fb8d4 |
typedef __int64 INT64;
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
typedef INT8* PINT8;
|
|
Packit |
1fb8d4 |
typedef INT16* PINT16;
|
|
Packit |
1fb8d4 |
typedef INT32* PINT32;
|
|
Packit |
1fb8d4 |
typedef INT64* PINT64;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef __int32 LONG32, *PLONG32;
|
|
Packit |
1fb8d4 |
#ifndef LONG64 /* X11/Xmd.h uses/defines LONG64 */
|
|
Packit |
1fb8d4 |
typedef __int64 LONG64, *PLONG64;
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef __uint8 UINT8, *PUINT8;
|
|
Packit |
1fb8d4 |
typedef __uint16 UINT16, *PUINT16;
|
|
Packit |
1fb8d4 |
typedef __uint32 UINT32, *PUINT32;
|
|
Packit |
1fb8d4 |
typedef __uint64 UINT64, *PUINT64;
|
|
Packit |
1fb8d4 |
typedef __uint64 ULONG64, *PULONG64;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef __uint16 WORD, *PWORD, *LPWORD;
|
|
Packit |
1fb8d4 |
typedef __uint32 DWORD, DWORD32, *PDWORD, *LPDWORD, *PDWORD32;
|
|
Packit |
1fb8d4 |
typedef __uint64 DWORD64, DWORDLONG, QWORD, *PDWORD64, *PDWORDLONG, *PQWORD;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef __int3264 INT_PTR, *PINT_PTR;
|
|
Packit |
1fb8d4 |
typedef __uint3264 UINT_PTR, *PUINT_PTR;
|
|
Packit |
1fb8d4 |
typedef __int3264 LONG_PTR, *PLONG_PTR;
|
|
Packit |
1fb8d4 |
typedef __uint3264 ULONG_PTR, *PULONG_PTR;
|
|
Packit |
1fb8d4 |
typedef __uint3264 DWORD_PTR, *PDWORD_PTR;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef ULONG_PTR SIZE_T, *PSIZE_T;
|
|
Packit |
1fb8d4 |
typedef LONG_PTR SSIZE_T, *PSSIZE_T;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef float FLOAT;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef double DOUBLE;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef void* HANDLE, *PHANDLE, *LPHANDLE;
|
|
Packit |
1fb8d4 |
typedef HANDLE HINSTANCE;
|
|
Packit |
1fb8d4 |
typedef HANDLE HMODULE;
|
|
Packit |
1fb8d4 |
typedef HANDLE HWND;
|
|
Packit |
1fb8d4 |
typedef HANDLE HBITMAP;
|
|
Packit |
1fb8d4 |
typedef HANDLE HICON;
|
|
Packit |
1fb8d4 |
typedef HANDLE HCURSOR;
|
|
Packit |
1fb8d4 |
typedef HANDLE HBRUSH;
|
|
Packit |
1fb8d4 |
typedef HANDLE HMENU;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef DWORD HCALL;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef ULONG error_status_t;
|
|
Packit |
1fb8d4 |
typedef LONG HRESULT;
|
|
Packit |
1fb8d4 |
typedef LONG SCODE;
|
|
Packit |
1fb8d4 |
typedef SCODE* PSCODE;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef struct _GUID
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
UINT32 Data1;
|
|
Packit |
1fb8d4 |
UINT16 Data2;
|
|
Packit |
1fb8d4 |
UINT16 Data3;
|
|
Packit |
1fb8d4 |
BYTE Data4[8];
|
|
Packit |
1fb8d4 |
} GUID, UUID, *PGUID, *LPGUID, *LPCGUID;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef struct _LUID
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
DWORD LowPart;
|
|
Packit |
1fb8d4 |
LONG HighPart;
|
|
Packit |
1fb8d4 |
} LUID, *PLUID;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef GUID IID;
|
|
Packit |
1fb8d4 |
typedef IID* REFIID;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
#define _T(x) L ## x
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define _T(x) x
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifdef UNICODE
|
|
Packit |
1fb8d4 |
typedef LPWSTR PTSTR;
|
|
Packit |
1fb8d4 |
typedef LPWSTR LPTCH;
|
|
Packit |
1fb8d4 |
typedef LPWSTR LPTSTR;
|
|
Packit |
1fb8d4 |
typedef LPCWSTR LPCTSTR;
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
typedef LPSTR PTSTR;
|
|
Packit |
1fb8d4 |
typedef LPSTR LPTCH;
|
|
Packit |
1fb8d4 |
typedef LPSTR LPTSTR;
|
|
Packit |
1fb8d4 |
typedef LPCSTR LPCTSTR;
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef union _ULARGE_INTEGER
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
struct
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
DWORD LowPart;
|
|
Packit |
1fb8d4 |
DWORD HighPart;
|
|
Packit Service |
5a9772 |
} DUMMYSTRUCTNAME;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
struct
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
DWORD LowPart;
|
|
Packit |
1fb8d4 |
DWORD HighPart;
|
|
Packit |
1fb8d4 |
} u;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
ULONGLONG QuadPart;
|
|
Packit |
1fb8d4 |
} ULARGE_INTEGER, *PULARGE_INTEGER;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef union _LARGE_INTEGER
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
struct
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
DWORD LowPart;
|
|
Packit |
1fb8d4 |
LONG HighPart;
|
|
Packit Service |
5a9772 |
} DUMMYSTRUCTNAME;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
struct
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
DWORD LowPart;
|
|
Packit |
1fb8d4 |
LONG HighPart;
|
|
Packit |
1fb8d4 |
} u;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
LONGLONG QuadPart;
|
|
Packit |
1fb8d4 |
} LARGE_INTEGER, *PLARGE_INTEGER;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef struct _FILETIME
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
DWORD dwLowDateTime;
|
|
Packit |
1fb8d4 |
DWORD dwHighDateTime;
|
|
Packit |
1fb8d4 |
} FILETIME, *PFILETIME, *LPFILETIME;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef struct _SYSTEMTIME
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
WORD wYear;
|
|
Packit |
1fb8d4 |
WORD wMonth;
|
|
Packit |
1fb8d4 |
WORD wDayOfWeek;
|
|
Packit |
1fb8d4 |
WORD wDay;
|
|
Packit |
1fb8d4 |
WORD wHour;
|
|
Packit |
1fb8d4 |
WORD wMinute;
|
|
Packit |
1fb8d4 |
WORD wSecond;
|
|
Packit |
1fb8d4 |
WORD wMilliseconds;
|
|
Packit |
1fb8d4 |
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef struct _RPC_SID_IDENTIFIER_AUTHORITY
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
BYTE Value[6];
|
|
Packit |
1fb8d4 |
} RPC_SID_IDENTIFIER_AUTHORITY;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef struct _RPC_SID
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
UCHAR Revision;
|
|
Packit |
1fb8d4 |
UCHAR SubAuthorityCount;
|
|
Packit |
1fb8d4 |
RPC_SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
|
|
Packit Service |
5a9772 |
ULONG SubAuthority[1];
|
|
Packit |
1fb8d4 |
} RPC_SID, *PRPC_SID, *PSID;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef struct _ACL
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
UCHAR AclRevision;
|
|
Packit |
1fb8d4 |
UCHAR Sbz1;
|
|
Packit |
1fb8d4 |
USHORT AclSize;
|
|
Packit |
1fb8d4 |
USHORT AceCount;
|
|
Packit |
1fb8d4 |
USHORT Sbz2;
|
|
Packit |
1fb8d4 |
} ACL, *PACL;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef struct _SECURITY_DESCRIPTOR
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
UCHAR Revision;
|
|
Packit |
1fb8d4 |
UCHAR Sbz1;
|
|
Packit |
1fb8d4 |
USHORT Control;
|
|
Packit |
1fb8d4 |
PSID Owner;
|
|
Packit |
1fb8d4 |
PSID Group;
|
|
Packit |
1fb8d4 |
PACL Sacl;
|
|
Packit |
1fb8d4 |
PACL Dacl;
|
|
Packit |
1fb8d4 |
} SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef struct _SECURITY_ATTRIBUTES
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
DWORD nLength;
|
|
Packit |
1fb8d4 |
LPVOID lpSecurityDescriptor;
|
|
Packit |
1fb8d4 |
BOOL bInheritHandle;
|
|
Packit |
1fb8d4 |
} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef struct _PROCESS_INFORMATION
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
HANDLE hProcess;
|
|
Packit |
1fb8d4 |
HANDLE hThread;
|
|
Packit |
1fb8d4 |
DWORD dwProcessId;
|
|
Packit |
1fb8d4 |
DWORD dwThreadId;
|
|
Packit |
1fb8d4 |
} PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef DWORD (*PTHREAD_START_ROUTINE)(LPVOID lpThreadParameter);
|
|
Packit |
1fb8d4 |
typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef void* FARPROC;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef struct tagDEC
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
USHORT wReserved;
|
|
Packit |
1fb8d4 |
union
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
struct
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
BYTE scale;
|
|
Packit |
1fb8d4 |
BYTE sign;
|
|
Packit |
1fb8d4 |
} DUMMYSTRUCTNAME;
|
|
Packit |
1fb8d4 |
USHORT signscale;
|
|
Packit |
1fb8d4 |
} DUMMYUNIONNAME;
|
|
Packit |
1fb8d4 |
ULONG Hi32;
|
|
Packit |
1fb8d4 |
union
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
struct
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
ULONG Lo32;
|
|
Packit |
1fb8d4 |
ULONG Mid32;
|
|
Packit |
1fb8d4 |
} DUMMYSTRUCTNAME2;
|
|
Packit |
1fb8d4 |
ULONGLONG Lo64;
|
|
Packit |
1fb8d4 |
} DUMMYUNIONNAME2;
|
|
Packit |
1fb8d4 |
} DECIMAL;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef DECIMAL* LPDECIMAL;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#define DECIMAL_NEG ((BYTE) 0x80)
|
|
Packit |
1fb8d4 |
#define DECIMAL_SETZERO(dec) { (dec).Lo64 = 0; (dec).Hi32 = 0; (dec).signscale = 0; }
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef DWORD LCID;
|
|
Packit |
1fb8d4 |
typedef PDWORD PLCID;
|
|
Packit |
1fb8d4 |
typedef WORD LANGID;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#endif /* _WIN32 not defined */
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
typedef void* PCONTEXT_HANDLE;
|
|
Packit |
1fb8d4 |
typedef PCONTEXT_HANDLE* PPCONTEXT_HANDLE;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef _NTDEF
|
|
Packit |
1fb8d4 |
typedef LONG NTSTATUS;
|
|
Packit |
1fb8d4 |
typedef NTSTATUS* PNTSTATUS;
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef _LPCVOID_DEFINED
|
|
Packit |
1fb8d4 |
#define _LPCVOID_DEFINED
|
|
Packit |
1fb8d4 |
typedef const VOID* LPCVOID;
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef _LPCBYTE_DEFINED
|
|
Packit |
1fb8d4 |
#define _LPCBYTE_DEFINED
|
|
Packit |
1fb8d4 |
typedef const BYTE* LPCBYTE;
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
/* integer format specifiers */
|
|
Packit |
1fb8d4 |
#ifndef WINPR_HAVE_INTTYPES_H
|
|
Packit |
1fb8d4 |
#define PRId8 "hhd"
|
|
Packit |
1fb8d4 |
#define PRIi8 "hhi"
|
|
Packit |
1fb8d4 |
#define PRIu8 "hhu"
|
|
Packit |
1fb8d4 |
#define PRIo8 "hho"
|
|
Packit |
1fb8d4 |
#define PRIx8 "hhx"
|
|
Packit |
1fb8d4 |
#define PRIX8 "hhX"
|
|
Packit |
1fb8d4 |
#define PRId16 "hd"
|
|
Packit |
1fb8d4 |
#define PRIi16 "hi"
|
|
Packit |
1fb8d4 |
#define PRIu16 "hu"
|
|
Packit |
1fb8d4 |
#define PRIo16 "ho"
|
|
Packit |
1fb8d4 |
#define PRIx16 "hx"
|
|
Packit |
1fb8d4 |
#define PRIX16 "hX"
|
|
Packit |
1fb8d4 |
#if defined(_MSC_VER)
|
|
Packit |
1fb8d4 |
#define PRId32 "I32d"
|
|
Packit |
1fb8d4 |
#define PRIi32 "I32i"
|
|
Packit |
1fb8d4 |
#define PRIu32 "I32u"
|
|
Packit |
1fb8d4 |
#define PRIo32 "I32o"
|
|
Packit |
1fb8d4 |
#define PRIx32 "I32x"
|
|
Packit |
1fb8d4 |
#define PRIX32 "I32X"
|
|
Packit |
1fb8d4 |
#define PRId64 "I64d"
|
|
Packit |
1fb8d4 |
#define PRIi64 "I64i"
|
|
Packit |
1fb8d4 |
#define PRIu64 "I64u"
|
|
Packit |
1fb8d4 |
#define PRIo64 "I64o"
|
|
Packit |
1fb8d4 |
#define PRIx64 "I64x"
|
|
Packit |
1fb8d4 |
#define PRIX64 "I64X"
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define PRId32 "d"
|
|
Packit |
1fb8d4 |
#define PRIi32 "i"
|
|
Packit |
1fb8d4 |
#define PRIu32 "u"
|
|
Packit |
1fb8d4 |
#define PRIo32 "o"
|
|
Packit |
1fb8d4 |
#define PRIx32 "x"
|
|
Packit |
1fb8d4 |
#define PRIX32 "X"
|
|
Packit |
1fb8d4 |
#if ULONG_MAX == 0xFFFFFFFFFFFFFFFF
|
|
Packit |
1fb8d4 |
#define PRId64 "ld"
|
|
Packit |
1fb8d4 |
#define PRIi64 "li"
|
|
Packit |
1fb8d4 |
#define PRIu64 "lu"
|
|
Packit |
1fb8d4 |
#define PRIo64 "lo"
|
|
Packit |
1fb8d4 |
#define PRIx64 "lx"
|
|
Packit |
1fb8d4 |
#define PRIX64 "lX"
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define PRId64 "lld"
|
|
Packit |
1fb8d4 |
#define PRIi64 "lli"
|
|
Packit |
1fb8d4 |
#define PRIu64 "llu"
|
|
Packit |
1fb8d4 |
#define PRIo64 "llo"
|
|
Packit |
1fb8d4 |
#define PRIx64 "llx"
|
|
Packit |
1fb8d4 |
#define PRIX64 "llX"
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
#endif /* _MSC_VER */
|
|
Packit |
1fb8d4 |
#endif /* WINPR_HAVE_INTTYPES_H not defined*/
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
#ifndef SSIZE_MAX
|
|
Packit Service |
5a9772 |
#if defined(_POSIX_SSIZE_MAX)
|
|
Packit Service |
5a9772 |
#define SSIZE_MAX _POSIX_SSIZE_MAX
|
|
Packit Service |
5a9772 |
#elif defined(_WIN64)
|
|
Packit Service |
5a9772 |
#define SSIZE_MAX _I64_MAX
|
|
Packit Service |
5a9772 |
#elif defined(_WIN32)
|
|
Packit Service |
5a9772 |
#define SSIZE_MAX LONG_MAX
|
|
Packit Service |
5a9772 |
#else
|
|
Packit Service |
5a9772 |
#define SSIZE_MAX LONG_MAX
|
|
Packit Service |
5a9772 |
#endif
|
|
Packit Service |
5a9772 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#if defined(_MSC_VER) && _MSC_VER < 1900
|
|
Packit |
1fb8d4 |
/* %z not supported before MSVC 2015 */
|
|
Packit |
1fb8d4 |
#define PRIdz "Id"
|
|
Packit |
1fb8d4 |
#define PRIiz "Ii"
|
|
Packit |
1fb8d4 |
#define PRIuz "Iu"
|
|
Packit |
1fb8d4 |
#define PRIoz "Io"
|
|
Packit |
1fb8d4 |
#define PRIxz "Ix"
|
|
Packit |
1fb8d4 |
#define PRIXz "IX"
|
|
Packit |
1fb8d4 |
#else
|
|
Packit |
1fb8d4 |
#define PRIdz "zd"
|
|
Packit |
1fb8d4 |
#define PRIiz "zi"
|
|
Packit |
1fb8d4 |
#define PRIuz "zu"
|
|
Packit |
1fb8d4 |
#define PRIoz "zo"
|
|
Packit |
1fb8d4 |
#define PRIxz "zx"
|
|
Packit |
1fb8d4 |
#define PRIXz "zX"
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#include <winpr/user.h>
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#ifndef _WIN32
|
|
Packit |
1fb8d4 |
#define _fseeki64(fp, offset, origin) fseeko(fp, offset, origin)
|
|
Packit |
1fb8d4 |
#define _ftelli64(fp) ftello(fp)
|
|
Packit |
1fb8d4 |
#endif
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#endif /* WINPR_WTYPES_H */
|