campo-sirio/al/cpp_dbg.pp/debugpp.cpp

107 lines
2.0 KiB
C++
Raw Normal View History

//
// DEBUGPP.CPP
//
// Source file for ArchiveLib 2.0
//
// Copyright (c) Greenleaf Software, Inc. 1994-1996
// All Rights Reserved
//
// CONTENTS
//
// IsBadWritePtr()
//
// REVISION HISTORY
//
// February 14, 1996 2.0A : New release
#include "arclib.h"
#if !defined( AL_IBM )
#pragma hdrstop
#endif
#include <windows.h>
//
// NAME
//
// IsBadWritePtr()
//
// PLATFORMS/ENVIRONMENTS
//
// Windows
// C++ C
//
// SHORT DESCRIPTION
//
// Test the validity of a pointer.
//
// C++ SYNOPSIS
//
// #include "arclib.h"
//
// BOOL WINAPI AL_CLASS_TYPE IsBadWritePtr( void FAR *lp, UINT cb );
//
// C SYNOPSIS
//
// #include "arclib.h"
//
// BOOL WINAPI AL_CLASS_TYPE IsBadWritePtr( void FAR *lp, UINT cb );
//
// VB SYNOPSIS
//
// None.
//
// DELPHI SYNOPSIS
//
// None.
//
// ARGUMENTS
//
// lp : A pointer to an object allocated from the Window heap, or in
// the program's stack or static data space.
//
// cb : The size of the object.
//
// DESCRIPTION
//
// IsBadWritePtr() is a Windows API function that we use in the debug
// versions of the library. It simply performas a check of segment
// access data to verify that the calling program has write access to
// a given block of memory.
//
// The problem is that Borland Power Pack doesn't provide a version of
// this function. This is bad, because the library sort of assumes that
// PP libraries are basically Windows Apps. So... I include this dummy
// function in PowerPack libraries.
//
// RETURNS
//
// 0, always, which means that pointer is good.
//
// EXAMPLE
//
// SEE ALSO
//
// REVISION HISTORY
//
// November 13, 1995 2.00A : First release.
//
#if defined( AL_FLAT_MODEL ) && (AL_BORLAND > 0x452 )
extern "C"
WINBASEAPI
BOOL
WINAPI
AL_PROTO
IsBadWritePtr( /* Tag debug function */
LPVOID,
UINT
)
#else
extern "C" BOOL WINAPI AL_CLASS_TYPE IsBadWritePtr(void FAR*, UINT)
#endif
{ return 0; }