139 lines
3.4 KiB
C
139 lines
3.4 KiB
C
/*++
|
|
|
|
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
|
|
|
|
|
|
|
|
|