This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/**************************************************************************** | |
* * | |
* minwindef.h -- Basic Windows Type Definitions for minwin partition * | |
* * | |
* Copyright (c) Microsoft Corporation. All rights reserved. * | |
* * | |
****************************************************************************/ | |
#ifndef _MINWINDEF_ | |
#define _MINWINDEF_ | |
#pragma once | |
#include <specstrings.h> | |
#include <winapifamily.h> | |
#pragma region Application Family or OneCore Family | |
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) | |
#ifndef NO_STRICT | |
#ifndef STRICT | |
#define STRICT 1 | |
#endif | |
#endif /* NO_STRICT */ | |
// Win32 defines _WIN32 automatically, | |
// but Macintosh doesn't, so if we are using | |
// Win32 Functions, we must do it here | |
#ifdef _MAC | |
#ifndef _WIN32 | |
#define _WIN32 | |
#endif | |
#endif //_MAC | |
#ifndef WIN32 | |
#define WIN32 | |
#endif | |
#ifdef __cplusplus | |
extern "C" { | |
#endif | |
/* | |
* BASETYPES is defined in ntdef.h if these types are already defined | |
*/ | |
#ifndef BASETYPES | |
#define BASETYPES | |
typedef unsigned long ULONG; | |
typedef ULONG *PULONG; | |
typedef unsigned short USHORT; | |
typedef USHORT *PUSHORT; | |
typedef unsigned char UCHAR; | |
typedef UCHAR *PUCHAR; | |
typedef _Null_terminated_ char *PSZ; | |
#endif /* !BASETYPES */ | |
#define MAX_PATH 260 | |
#ifndef NULL | |
#ifdef __cplusplus | |
#define NULL 0 | |
#else | |
#define NULL ((void *)0) | |
#endif | |
#endif | |
#ifndef FALSE | |
#define FALSE 0 | |
#endif | |
#ifndef TRUE | |
#define TRUE 1 | |
#endif | |
#ifndef IN | |
#define IN | |
#endif | |
#ifndef OUT | |
#define OUT | |
#endif | |
#ifndef OPTIONAL | |
#define OPTIONAL | |
#endif | |
#undef far | |
#undef near | |
#undef pascal | |
#define far | |
#define near | |
#if (!defined(_MAC)) && ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)) | |
#define pascal __stdcall | |
#else | |
#define pascal | |
#endif | |
#if defined(DOSWIN32) || defined(_MAC) | |
#define cdecl _cdecl | |
#ifndef CDECL | |
#define CDECL _cdecl | |
#endif | |
#else | |
#define cdecl | |
#ifndef CDECL | |
#define CDECL | |
#endif | |
#endif | |
#ifdef _MAC | |
#define CALLBACK PASCAL | |
#define WINAPI CDECL | |
#define WINAPIV CDECL | |
#define APIENTRY WINAPI | |
#define APIPRIVATE CDECL | |
#ifdef _68K_ | |
#define PASCAL __pascal | |
#else | |
#define PASCAL | |
#endif | |
#elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) | |
#define CALLBACK __stdcall | |
#define WINAPI __stdcall | |
#define WINAPIV __cdecl | |
#define APIENTRY WINAPI | |
#define APIPRIVATE __stdcall | |
#define PASCAL __stdcall | |
#else | |
#define CALLBACK | |
#define WINAPI | |
#define WINAPIV | |
#define APIENTRY WINAPI | |
#define APIPRIVATE | |
#define PASCAL pascal | |
#endif | |
#ifndef _M_CEE_PURE | |
#ifndef WINAPI_INLINE | |
#define WINAPI_INLINE WINAPI | |
#endif | |
#endif | |
#undef FAR | |
#undef NEAR | |
#define FAR far | |
#define NEAR near | |
#ifndef CONST | |
#define CONST const | |
#endif | |
typedef unsigned long DWORD; | |
typedef int BOOL; | |
typedef unsigned char BYTE; | |
typedef unsigned short WORD; | |
typedef float FLOAT; | |
typedef FLOAT *PFLOAT; | |
typedef BOOL near *PBOOL; | |
typedef BOOL far *LPBOOL; | |
typedef BYTE near *PBYTE; | |
typedef BYTE far *LPBYTE; | |
typedef int near *PINT; | |
typedef int far *LPINT; | |
typedef WORD near *PWORD; | |
typedef WORD far *LPWORD; | |
typedef long far *LPLONG; | |
typedef DWORD near *PDWORD; | |
typedef DWORD far *LPDWORD; | |
typedef void far *LPVOID; | |
typedef CONST void far *LPCVOID; | |
typedef int INT; | |
typedef unsigned int UINT; | |
typedef unsigned int *PUINT; | |
#ifndef NT_INCLUDED | |
#include <winnt.h> | |
#endif /* NT_INCLUDED */ | |
/* Types use for passing & returning polymorphic values */ | |
typedef UINT_PTR WPARAM; | |
typedef LONG_PTR LPARAM; | |
typedef LONG_PTR LRESULT; | |
#ifndef NOMINMAX | |
#ifndef max | |
#define max(a,b) (((a) > (b)) ? (a) : (b)) | |
#endif | |
#ifndef min | |
#define min(a,b) (((a) < (b)) ? (a) : (b)) | |
#endif | |
#endif /* NOMINMAX */ | |
#define MAKEWORD(a, b) ((WORD)(((BYTE)(((DWORD_PTR)(a)) & 0xff)) | ((WORD)((BYTE)(((DWORD_PTR)(b)) & 0xff))) << 8)) | |
#define MAKELONG(a, b) ((LONG)(((WORD)(((DWORD_PTR)(a)) & 0xffff)) | ((DWORD)((WORD)(((DWORD_PTR)(b)) & 0xffff))) << 16)) | |
#define LOWORD(l) ((WORD)(((DWORD_PTR)(l)) & 0xffff)) | |
#define HIWORD(l) ((WORD)((((DWORD_PTR)(l)) >> 16) & 0xffff)) | |
#define LOBYTE(w) ((BYTE)(((DWORD_PTR)(w)) & 0xff)) | |
#define HIBYTE(w) ((BYTE)((((DWORD_PTR)(w)) >> 8) & 0xff)) | |
typedef HANDLE NEAR *SPHANDLE; | |
typedef HANDLE FAR *LPHANDLE; | |
typedef HANDLE HGLOBAL; | |
typedef HANDLE HLOCAL; | |
typedef HANDLE GLOBALHANDLE; | |
typedef HANDLE LOCALHANDLE; | |
#ifndef _MANAGED | |
#if _MSC_VER >= 1200 | |
#pragma warning(push) | |
#pragma warning(disable:4255) // () treated as (void) | |
#endif | |
#ifndef _MAC | |
#ifdef _WIN64 | |
typedef INT_PTR (FAR WINAPI *FARPROC)(); | |
typedef INT_PTR (NEAR WINAPI *NEARPROC)(); | |
typedef INT_PTR (WINAPI *PROC)(); | |
#else | |
typedef int (FAR WINAPI *FARPROC)(); | |
typedef int (NEAR WINAPI *NEARPROC)(); | |
typedef int (WINAPI *PROC)(); | |
#endif // _WIN64 | |
#else | |
typedef int (CALLBACK *FARPROC)(); | |
typedef int (CALLBACK *NEARPROC)(); | |
typedef int (CALLBACK *PROC)(); | |
#endif | |
#if _MSC_VER >= 1200 | |
#pragma warning(pop) | |
#endif | |
#else | |
typedef INT_PTR (WINAPI *FARPROC)(void); | |
typedef INT_PTR (WINAPI *NEARPROC)(void); | |
typedef INT_PTR (WINAPI *PROC)(void); | |
#endif | |
typedef WORD ATOM; //BUGBUG - might want to remove this from minwin | |
DECLARE_HANDLE(HKEY); | |
typedef HKEY *PHKEY; | |
DECLARE_HANDLE(HMETAFILE); | |
DECLARE_HANDLE(HINSTANCE); | |
typedef HINSTANCE HMODULE; /* HMODULEs can be used in place of HINSTANCEs */ | |
DECLARE_HANDLE(HRGN); | |
DECLARE_HANDLE(HRSRC); | |
DECLARE_HANDLE(HSPRITE); | |
DECLARE_HANDLE(HLSURF); | |
DECLARE_HANDLE(HSTR); | |
DECLARE_HANDLE(HTASK); | |
DECLARE_HANDLE(HWINSTA); | |
DECLARE_HANDLE(HKL); | |
#ifndef _MAC | |
typedef int HFILE; | |
#else | |
typedef short HFILE; | |
#endif | |
// | |
// File System time stamps are represented with the following structure: | |
// | |
typedef struct _FILETIME { | |
DWORD dwLowDateTime; | |
DWORD dwHighDateTime; | |
} FILETIME, *PFILETIME, *LPFILETIME; | |
#define _FILETIME_ | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ | |
#pragma endregion | |
#endif // _MINWINDEF_ | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment