Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

391 lines
8.3 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
//
//*** Global types.
//
#if defined( UNICODE )
typedef WCHAR* LPTCHAR;
#else // ! UNICODE
typedef char* LPTCHAR;
#endif // UNICODE
//
//*** Debug Information Support.
//
extern
struct
DEBUG_FLAGS
WintoolsGlobalFlags;
#if DBG
VOID
DebugAssertW(
IN LPCWSTR Expression,
IN LPCSTR File,
IN DWORD LineNumber
);
VOID
DebugPrintfW(
IN LPCWSTR Format,
IN ...
);
#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 )
#define DbgPrintf( _x_ ) \
DebugPrintfW _x_
#else // ! DBG
#define DbgAssert( exp )
#define DbgHandleAssert( h )
#define DbgPointerAssert( p )
#define DbgPrintf( _x_ )
#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
//
//*** 3d Controls Support.
//
#if defined( CTL3D )
#include "ctl3d.h"
//
// Handle all of the WM_CTLCOLOR messages for a dlgproc.
//
#define CASE_WM_CTLCOLOR_DIALOG \
case WM_CTLCOLORMSGBOX: \
case WM_CTLCOLOREDIT: \
case WM_CTLCOLORLISTBOX: \
case WM_CTLCOLORBTN: \
case WM_CTLCOLORDLG: \
case WM_CTLCOLORSCROLLBAR: \
case WM_CTLCOLORSTATIC: \
return ( BOOL ) Ctl3dCtlColorEx( message, wParam, lParam )
//
// Handle all of the WM_CTLCOLOR messages for a wndproc.
//
#define CASE_WM_CTLCOLOR_WINDOW \
case WM_CTLCOLORMSGBOX: \
case WM_CTLCOLOREDIT: \
case WM_CTLCOLORLISTBOX: \
case WM_CTLCOLORBTN: \
case WM_CTLCOLORDLG: \
case WM_CTLCOLORSCROLLBAR: \
case WM_CTLCOLORSTATIC: \
{ \
HBRUSH hBrush; \
hBrush = Ctl3dCtlColorEx( message, wParam, lParam ); \
if( hBrush != NULL ) { \
return ( LRESULT ) hBrush; \
} else { \
break; \
} \
}
#else // ! CTL3D
#define CASE_WM_CTLCOLOR_DIALOG \
( VOID ) 0;
#define CASE_WM_CTLCOLOR_WINDOW \
( VOID ) 0;
#endif // CTL3D
//
//*** Miscellaneous Macros.
//
#define ARGUMENT_PRESENT(ArgumentPointer) (\
(CHAR *)(ArgumentPointer) != (CHAR *)(NULL) )
#define IsSwitch( x ) \
((( x ) == TEXT( '-' )) || (( x ) == TEXT( '/' )))
#define NumberOfCharacters( x ) \
( sizeof(( x )) / sizeof( TCHAR ))
#define NumberOfEntries( x ) \
( sizeof(( x )) / sizeof(( x )[ 0 ]))
//
//*** Global constants.
//
//
// Maximum number of charaters 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 ))
//
//*** String table support.
//
typedef
struct
_STRING_TABLE_ENTRY {
ULARGE_INTEGER Key;
UINT Id;
} STRING_TABLE_ENTRY, *LPSTRING_TABLE_ENTRY;
#define MAKE_TABLE_ENTRY( c, v ) { v, c, IDS_##v }
//
//*** Miscellaneous types.
//
typedef
struct
_VALUE_ID_MAP {
int Value;
int Id;
} VALUE_ID_MAP, *LPVALUE_ID_MAP;
//
//*** Function Prototypes.
//
LPCTSTR%
BaseName%(
IN LPCTSTR% Name
);
INT
Stricmp%(
IN LPCTSTR% String1,
IN LPCTSTR% String2
);
int
ConsolePrintf%(
IN UINT Format,
IN ...
);
DWORD
DialogPrintf(
IN HWND hWnd,
IN int ControlId,
IN UINT FormatId,
IN ...
);
VOID
ErrorExit%(
IN UINT ExitCode,
IN UINT Format,
IN ...
);
BOOL
EnableControl(
IN HWND hWnd,
IN int ControlId,
IN BOOL Enable
);
BOOL
GetCharMetrics%(
IN HDC hDC,
IN LPLONG CharWidth,
IN LPLONG CharHeight
);
BOOL
GetClientSize(
IN HWND hWnd,
IN LPLONG ClientWidth,
IN LPLONG ClientHeight
);
LPCTSTR%
GetString%(
IN UINT StringId
);
UINT
GetStringId(
IN LPSTRING_TABLE_ENTRY StringTable,
IN DWORD Count,
IN int Class,
IN DWORD Value
);
BOOL
IsDlgItemUnicode(
IN HWND hWnd,
IN int ControlId
);
BOOL
SetDlgItemBigInt(
IN HWND hWnd,
IN int ControlId,
IN UINT Value,
IN BOOL Signed
);
BOOL
SetDlgItemHex(
IN HWND hWnd,
IN int ControlId,
IN UINT Value
);
BOOL
SetScrollPosEx(
IN HWND hWnd,
IN INT fnBar,
IN INT nPos,
IN BOOL fRedraw,
OUT PINT pnOldPos
);
BOOL
SetFixedPitchFont(
IN HWND hWnd,
IN int ControlId
);
LPTSTR%
FormatLargeInteger%(
IN PLARGE_INTEGER LargeInteger,
IN BOOL Signed
);
LPTSTR%
FormatBigInteger%(
IN DWORD BigInteger,
IN BOOL Signed
);
DWORD
WFormatMessage%(
IN LPTSTR% Buffer,
IN DWORD BufferSize,
IN UINT FormatId,
IN ...
);
#ifdef __cplusplus
} // extern C
#endif
#endif // _WINTOOLS_