|
|
/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
hctytools.h
Abstract:
Contains the definitions used by hcttools.c
Environment:
User mode
Revision History:
05-Sep-1997 : Jason Allor (jasonall)
--*/ #include "windows.h"
#include "stdlib.h"
#include "stdio.h"
#include "tchar.h"
#ifndef _MYTOOLS_H
#define _MYTOOLS_H
#define MAX_ERROR_LEN 256
#define RETURN_CHAR1 0x0d
#define RETURN_CHAR2 0x0a
#define SPACE 0x20
BOOL __MALLOC(IN OUT void **ppv, IN size_t size, IN PCHAR cszFile, IN UINT iLine);
void __FREE(IN void **pv);
VOID CheckAllocs(); VOID InitializeMemoryManager(); #ifdef DEBUG
typedef struct _BLOCKINFO { struct _BLOCKINFO *pbiNext; BYTE *pb; size_t size; BOOL boolReferenced; UINT iLine; CHAR cszFile[MAX_PATH]; } BLOCKINFO, *PBLOCKINFO;
#define Ptrless(pLeft, pRight) ((pLeft < (pRight))
#define PtrGrtr(pLeft, pRight) ((pLeft) > (pRight))
#define PtrEqual(pLeft, pRight) ((pLeft) == (pRight))
#define PtrLessEq(pLeft, pRight) ((pLeft) <= (pRight))
#define PtrGrtrEq(pLeft, pRight) ((pLeft) >= (pRight))
void MyAssert(PCHAR, unsigned); BOOL CreateBlockInfo(OUT PBYTE pbNew, IN size_t sizeNew, IN PCHAR cszFile, IN UINT iLine); void UpdateBlockInfo(PBYTE pbOld, PBYTE pbNew, size_t sizeNew); size_t SizeOfBlock(PBYTE pb); void ClearMemoryRegs(); void NoteMemoryRef(PVOID pv); void CheckMemoryRefs(); BOOL ValidPointer(PVOID pv, size_t size); #define GARBAGE 0xCC // used for shredding memory during Malloc and Free
#endif
//
// Define __ASSERT macro
//
#ifdef DEBUG
#define __ASSERT(f) \
if (f) \ {} \ else \ MyAssert(__FILE__, __LINE__) #else
#define __ASSERT(f)
#endif
//
// Define __Malloc macro. This gives the MALLOC function
// the file name and line number of the line calling MyMalloc
//
#define __Malloc(one, two) __MALLOC(one, two, __FILE__, __LINE__)
//
// Define the __Free macro. This is only here for consistency with __Malloc
//
#define __Free(one) __FREE(one)
BOOL StrNCmp(IN PTCHAR tszString1, IN PTCHAR tszString2, IN ULONG ulLength);
BOOL StrCmp(IN PTCHAR tszString1, IN PTCHAR tszString2);
PWCHAR AnsiToUnicode(IN PCHAR cszAnsi, OUT PWCHAR wszUnicode, IN ULONG ulSize); PCHAR UnicodeToAnsi(IN PWCHAR wszUnicode, OUT PCHAR cszAnsi, IN ULONG ulSize); PTCHAR ConvertAnsi(IN PCHAR cszAnsi, IN OUT PWCHAR wszUnicode, IN ULONG ulSize); PTCHAR ConvertUnicode(IN PWCHAR wszUnicode, IN OUT PCHAR cszAnsi, IN ULONG ulSize); PTCHAR ErrorMsg(IN ULONG ulError, IN PTCHAR tszBuffer);
#endif // _MYTOOLS_H
|