⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 global.h

📁 IBM Lotus C++ API 7.0a for IBM Lotus Notes/Domino Directory Release --------- ------------------
💻 H
📖 第 1 页 / 共 3 页
字号:
		#endif
	#elif defined(__GNUC__)			/* gcc compiler on Mac OS X */
		#ifndef MAC_POWERPC
		#define MAC_POWERPC
		#endif
	#elif !defined(THINK_C)
		#error Unknown Mac development environment
	#endif
	#define	PLATFORM_NAME "Macintosh"
	#define BIG_ENDIAN_ORDER
	#define THREADS
	#define SEMAPHORES
	#define	SEMSPIN
	#define ODS_NEEDED TRUE
	#define	COMPILER_INT_SIZE 4
	#if defined(MAC_POWERPC) && defined(XLC_C) /* All other compilers use "-align mac68k" (2 byte alignment) */
		#define REQUIRED_ALIGNMENT 1		/* PowerPC supports odd-byte addressing if truly required */
		#define COMPILER_DWORD_ALIGNMENT 4	/* Compiler will pad DWORDs to DWORD boundary if possible */
		#define COMPILER_NUMBER_ALIGNMENT 4
	#else
		#define REQUIRED_ALIGNMENT 1		/* 68020 or later CPUs only (not 68000) */
		#define COMPILER_DWORD_ALIGNMENT 2	/* Compiler will pad DWORDs to WORD boundary, because any further alignment is unnecessary */
		#define COMPILER_NUMBER_ALIGNMENT 2
	#endif
	#define VIM_USE_MAC
	/* Tdanalzye is a rudimentary parser, that is failing to correctly parse this long #if #elif statements.
	 * It is re-processing the UNIX section after it has already processed the OS400 section and incorrectly
	 * using a COMPILER_NUMBER_ALIGNMENT of 4.  So for now, add a redundant !OS400, until tdanalzye is fixed.
	 */
#elif defined(UNIX)  && !defined(OS400)
	#ifndef W32
		#define	W32				/* Compile for Windows 32 API - its emulated */
	#endif
	#ifndef W
		#define	W				/* Compile for Windows 16 API - its emulated */
	#endif
	#if !defined(MIRAGE) && !defined(INTERNOTES)
		#define MIRAGE
	#endif
	#define	PLATFORM_NAME "UNIX"
	#if defined(AIX)
		#define XLC_C
	#elif defined(SUN) || defined(SOLARIS)
		#define SUN_C
	#elif defined(HPUX)
		#define HP_C
	#elif defined(OS390)
		#define OS390_C
	#elif defined(UNIXWARE)
		#define UW_C
	#elif defined(__osf__)
		#if !defined(OSF)
			#define OSF
		#endif
		#define DEC_C
	#elif defined(LINUX)
		#define GCC
	#endif
	#if (defined(ODT) || defined(SOLX86) || defined(UNIXWARE) || defined(OSF) || defined(LINUX)) && !defined(ZLINUX)
		#define LITTLE_ENDIAN_ORDER
	#else
		#define BIG_ENDIAN_ORDER
	#endif
	#define PREEMPTIVE
	#define	SEMAPHORES
	#define	SEMALLOC
	/* All UNIX type platforms except Solaris,HPUX, and AIX are 32 bit handle platforms */
	/* This needs to be here so that it is also included in the SDK */
	#if !(defined(SOLARIS) || defined(HPUX) || defined(SOLX86) || defined(AIX))
	#ifndef HANDLE_IS_32BITS
		#define HANDLE_IS_32BITS
	#endif
	#endif
	#if (defined(SOLARIS) || defined(AIX) || defined (HPUX) || defined(OS390) || defined(LINUX)) && !defined(DISABLE_THREADS)
		#define THREADS
	#endif
	/*	ODS needed, even for ODT (on x86 machines), because X includes
		don't support having the compiler set for tight packing (-Zp1),
		that is, they assume padding.  With padding enabled, we must use
		ODS even when theoretically unncessary.  Perhaps the X headers
		can be kludged to explicitly pad so that this is unnecessary. */
	#if defined(ODT_LATER)
		#define	COMPILER_INT_SIZE 4
		#define REQUIRED_ALIGNMENT 1
		#define COMPILER_DWORD_ALIGNMENT 2
		#define COMPILER_NUMBER_ALIGNMENT 2
	#else
		#define ODS_NEEDED TRUE
		#define	COMPILER_INT_SIZE 4
		#if defined(OSF)
			#define REQUIRED_ALIGNMENT 8
		#else
			#define REQUIRED_ALIGNMENT 4
		#endif
		#define COMPILER_DWORD_ALIGNMENT 4
		#if defined(SOLARIS) || defined(HPUX) || defined(OS390) || defined(ZLINUX)
			#define COMPILER_NUMBER_ALIGNMENT 8
		#else
			#define COMPILER_NUMBER_ALIGNMENT 4
		#endif
	#endif
	#define VIM_USE_UNIX

#elif defined(NLM)
	#ifdef __WATCOMC__
		#define WATCOM_C
	#endif
	#ifdef _MSC_VER
		#define MSC
	#endif
	#define	PLATFORM_NAME "NetWare"
	#define LITTLE_ENDIAN_ORDER
	#define	SEMAPHORES
	#define	SEMALLOC
	#define	THREADS
	#define SINGLE_INSTANCE_DLL_DS
	#define ODS_NEEDED FALSE
	#define	COMPILER_INT_SIZE 4
	#define REQUIRED_ALIGNMENT 1
	#define COMPILER_DWORD_ALIGNMENT 1
	#define COMPILER_NUMBER_ALIGNMENT 1
	#define NOGUI
	#define	ENABLE_TRANSACTIONS
	#define VIM_USE_NLM
#else
	#error Must specify type of OS ("DOS", "OS2", etc) on C command line!
#endif
#if (defined(SOLARIS) || defined(AIX)) && defined(Enable_New_SpinLocks)
	#define USE_COND_SLEEP_ON_SPINLOCK 1
#endif


/*	Nullify the certain compiler keywords if not supported by compiler */

#if !defined(MSC) || defined(NT) || defined(MAC)

	#if !defined(MAC)	/* On Mac, "pascal" (lowercase) is a reserved word */
		#ifdef pascal
			#undef pascal
		#endif

		#if defined(_MSC_VER) && _MSC_VER >= 800
			#define pascal __stdcall
		#else
			#define pascal
		#endif
	#endif	/* !defined(MAC) */

	#if defined(MAC)
		#define PASCAL
	#endif

	#ifndef PASCAL
		#define PASCAL
	#endif

	#ifdef cdecl
		#undef cdecl
	#endif

	#define cdecl

	#if !defined(MWERKS_C)	/* In MWERKS_C, "far" is a reserved word, and cannot appear in an #ifdef expression */
		#ifdef far
			#undef far
		#endif
	#endif

	#define far

	#ifndef FAR
		#define FAR
	#endif

	#ifdef near
		#undef near
	#endif

	#define near

	#ifndef NEAR
		#define NEAR
	#endif

	#ifdef huge
		#undef huge
	#endif

	#define huge

#endif	/* !defined(MSC) || defined(NT) || defined(MAC) */

/*	Nullify C keywords that are not supported by some compilers */

#if defined(GCC)
#if !defined(LINUX)  /* These two are already handled with latest GCC headers on LINUX */
	#define volatile
	#define signed
	#define const
#endif
#elif defined(HP_C) && defined(__cplusplus)
	#define signed
#elif defined(SUN_C) && defined(__cplusplus)
	#define signed
#endif

/*	Remove certain definitions if the Netware header files have defined
	them previously, potentially in conflict with OUR definitions */

#ifdef NLM
	#undef BYTE
	#undef WORD
	#undef LONG
#endif




/*	Handle loading of os2def.h up-front, since everyone needs it. */

#ifdef OS2
	#ifndef APIENTRY
		#include "os2def.h"
		#include "bsedos.h"
	#endif
#endif

/*	Same goes for NT include files */

#ifdef NT
	#ifndef _WINDEF_
		#ifndef RC_INVOKED
		/*	Save packing around inclusion of Microsoft headers, just to
			protect ourselves against their failure to restore packing
			if they change it.  This may not be needed anymore... */
		#pragma pack(push, WinIncludes)
		/*	Set packing to be 4, to temporarily workaround a bug in wincon.h
			where Microsoft incorrectly assumes natural packing instead of
			setting it explicitly. */
		#pragma pack()
		#endif

		#undef PASCAL
		#undef FAR
		#undef NEAR

		/*	Windows.h defines WINVER, but we seldom include windows.h
			when using other windows headers.
		*/
		#ifndef WINVER
		#define WINVER 0x0500
		#endif

		/*	Determine the processor type as required by the following Windows
			includes */

		#if !defined(_PPC_) && !defined(_ALPHA_) && !defined(_MIPS_) && !defined(_X86_) && defined(_M_IX86)
		#define _X86_
		#endif

		#if !defined(_PPC_) && !defined(_ALPHA_) && !defined(_X86_) && !defined(_MIPS_) && defined(_M_MRX000)
		#define _MIPS_
		#endif

		#if !defined(_PPC_) && !defined(_ALPHA_) && !defined(_X86_) && !defined(_MIPS_) && defined(_M_ALPHA)
		#define _ALPHA_
		#endif

		#if !defined(_PPC_) && !defined(_ALPHA_) && !defined(_X86_) && !defined(_MIPS_) && defined(_M_PPC)
		#define _PPC_
		#endif

		#include <stdarg.h>
		#define NOMINMAX
		#include <windef.h>
		#undef NOMINMAX
		#include <winbase.h>
		#include <WinVer.h>

		#ifndef RC_INVOKED
		#pragma pack(pop, WinIncludes)
		#endif
	#endif
#endif


#if defined(MAC)
#if defined(MAC_OSX)
        #include <Carbon/Carbon.h>
#else
	#include <MacTypes.h>	/* Needed for basic "Handle", "Point", "Rect" typedefs */
	#include <MacMemory.h>	/* Needed for BlockMove() define */
#endif
#endif


/*	Determine what has been included BEFORE this module */

#if defined(_INC_WINDOWS) /* WIN16 */ || defined(_WINDEF_) /* WIN32 */
	#define WINDOWS_INCLUDED
#endif

#ifdef SEVERITY_NOERROR
	#define OS2DEF_INCLUDED
#endif



/*	Define datatypes which are also defined by other include files */

#ifndef FAR
	#define FAR far
#endif
#ifndef NEAR
	#define NEAR near
#endif
#ifndef PASCAL
	#define PASCAL pascal
#endif

#if !defined(OS2DEF_INCLUDED) && !defined(WINDOWS_INCLUDED)
	#define VOID void
	typedef unsigned char BYTE;
	#if defined(LONGIS64BIT)
		typedef int LONG;
	#else
		typedef long LONG;
	#endif

	#if defined(UNIX)
	typedef int BOOL;
	#elif defined(OS2_2x)
	typedef unsigned long BOOL;
	#elif defined(OS2_1x)
	typedef unsigned short BOOL;
	#elif defined(DOSW16)
	typedef int BOOL;
	#else
	typedef short BOOL;
	#endif
	#define LOBYTE(w)       ((BYTE)w)
	#define HIBYTE(w)       (((WORD)w >> 8) & 0xff)
#endif

#ifndef OS2DEF_INCLUDED
	#ifndef _WINDEF_   /* USHORT, ULONG and UCHAR are already defined in windef.h */
	typedef unsigned short int USHORT;
	#if defined(LONGIS64BIT)
		typedef unsigned int ULONG;
	#else
		typedef unsigned long ULONG;
	#endif
	typedef unsigned char UCHAR;
	#endif  /* _WINDEF_ */
	#ifndef WINDOWS_INCLUDED	/* This is also defined in windows.h */
		typedef unsigned int UINT;
	#endif
#endif


/*	Define datatype which is used to represent a "resource file" */

#ifndef HMODULE
#if !defined(OS2)	/* OS2 already defines this */
	#define HMODULE		HANDLE
#endif
#endif

#if !defined(WINDOWS_INCLUDED)

/*	These symbols/typedefs ARE COPIED from WINDOWS.H, and are the
	ONLY symbols that should be defined in this section!  (This
	is a help for modules that can't afford to include windows.h
	and want to use a few of these helpful definitions. */

	typedef unsigned short WORD;			/* WORD = unsigned 16 bit integer */
	#if defined(LONGIS64BIT)
		typedef unsigned int DWORD;			/* DWORD = unsigned 32 bit integer */
	#else
		typedef unsigned long DWORD;
	#endif
/*	Windows defines a HANDLE as unsigned int, but the Mac needs it to be
	unsigned short. In C, both are equivalent, but C++ is pickier */

#if defined(DOSW16)
	typedef unsigned int HANDLE;	/* really a short, but compiler is picky */
#elif defined(HANDLE_IS_32BITS)
	typedef unsigned int HANDLE;	/* 32-bit HANDLEs */
#else
	typedef unsigned short HANDLE;
#endif


	#define LOWORD(l)       ((WORD)(DWORD)(l))
	#define HIWORD(l)       ((WORD)(((DWORD)(l) >> 16) & 0xffff))

#else	/* if WINDOWS_INCLUDED */

	/*	TEMPORARY: Fix a bug in the standard Windows LOWORD macro (see
		also a copy of it above), which produces a C compiler warning
		regarding loss of segment portion of a pointer. */

	#undef LOWORD
	#define LOWORD(l)       ((WORD)(DWORD)(l))

#endif




/*	Define our Notes-specific global data types */

#define FLAG unsigned					/* FLAG = 1-bit boolean value */
										/* (Unsized, use ONLY in bitfields!) */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -