Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

169 lines
3.9 KiB

/*++ BUILD Version: 0002 // Increment this if a change has global effects
Copyright (c) 1992 Microsoft Corporation
Module Name:
Wintools.h
Abstract:
This is the master headerfile for the Wintools library.
Author:
David J. Gilman (davegi) 28-Oct-1992
Gregg R. Acheson (GreggA) 28-Feb-1994
Environment:
User Mode
--*/
#if ! defined( _WINTOOLS_ )
#define _WINTOOLS_
#include <windows.h>
#ifdef __cplusplus
extern "C" {
#endif
//
//*** Debug Information Support.
//
extern
struct
DEBUG_FLAGS
WintoolsGlobalFlags;
#if DBG
VOID
DebugAssertW(
IN LPCWSTR Expression,
IN LPCSTR File,
IN DWORD LineNumber
);
#define DbgAssert( exp ) \
(( exp ) \
? ( VOID ) 0 \
: ( VOID ) DebugAssertW( \
TEXT( #exp ), \
__FILE__, \
__LINE__ \
));
#define DbgHandleAssert( h ) \
DbgAssert((( h ) != NULL ) && (( h ) != INVALID_HANDLE_VALUE ))
#define DbgPointerAssert( p ) \
DbgAssert(( p ) != NULL )
#else // ! DBG
#define DbgAssert( exp )
#define DbgHandleAssert( h )
#define DbgPointerAssert( p )
#endif // DBG
//
//*** Object Signature Support.
//
#if SIGNATURE
#define DECLARE_SIGNATURE \
DWORD_PTR Signature;
#define SetSignature( p ) \
(( p )->Signature = ( DWORD_PTR ) &(( p )->Signature ))
#define CheckSignature( p ) \
(( p )->Signature == ( DWORD_PTR ) &(( p )->Signature ))
#else // ! SIGNATURE
#define DECLARE_SIGNATURE
#define SetSignature( p )
#define CheckSignature( p )
#endif // SIGNATURE
//
//*** Miscellaneous Macros.
//
#ifndef ARGUMENT_PRESENT
#define ARGUMENT_PRESENT(ArgumentPointer) (\
(CHAR *)(ArgumentPointer) != (CHAR *)(NULL) )
#endif
#define NumberOfEntries( x ) \
( sizeof(( x )) / sizeof(( x )[ 0 ]))
#ifndef ARRAYSIZE
#define ARRAYSIZE(x) (sizeof(x)/sizeof(x[0]))
#endif
//
//*** Global constants.
//
//
// Maximum number of characters in a string.
//
#define MAX_CHARS ( 2048 )
//
//*** Memory Management Support
//
#define AllocateMemory( t, s ) \
(( LP##t ) LocalAlloc( LPTR, ( s )))
#define AllocateObject( t, c ) \
( AllocateMemory( t, sizeof( t ) * ( c )))
#define ReallocateMemory( t, p, s ) \
(( LP##t ) LocalReAlloc(( HLOCAL )( p ), ( s ), LMEM_MOVEABLE ))
#define ReallocateObject( t, p, c ) \
( ReallocateMemory( t, ( p ), sizeof( t ) * ( c )))
#define FreeMemory( p ) \
((( p ) == NULL ) \
? TRUE \
: (((p)=( LPVOID ) LocalFree(( HLOCAL )( p ))) == NULL ))
#define FreeObject( p ) \
FreeMemory(( p ))
//
//*** Function Prototypes.
//
BOOL
GetCharMetrics(
IN HDC hDC,
IN LPLONG CharWidth,
IN LPLONG CharHeight
);
#ifdef __cplusplus
} // extern C
#endif
#endif // _WINTOOLS_