Complete disaster-recovery snapshot: engine/game source, game data assets, VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive. Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false, no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
55 lines
1.8 KiB
C++
55 lines
1.8 KiB
C++
// This is a part of the Microsoft Foundation Classes C++ library.
|
|
// Copyright (C) 1992-1998 Microsoft Corporation
|
|
// All rights reserved.
|
|
//
|
|
// This source code is only intended as a supplement to the
|
|
// Microsoft Foundation Classes Reference and related
|
|
// electronic documentation provided with the library.
|
|
// See these sources for detailed information regarding the
|
|
// Microsoft Foundation Classes product.
|
|
|
|
#include "stdafx.h"
|
|
|
|
#ifdef AFX_AUX_SEG
|
|
#pragma code_seg(AFX_AUX_SEG)
|
|
#endif
|
|
|
|
|
|
// AfxIsValidString() returns TRUE if the passed pointer
|
|
// references a string of at least the given length in characters.
|
|
// A length of -1 (the default parameter) means that the string
|
|
// buffer's minimum length isn't known, and the function will
|
|
// return TRUE no matter how long the string is. The memory
|
|
// used by the string can be read-only.
|
|
|
|
BOOL AFXAPI AfxIsValidString(LPCWSTR lpsz, int nLength /* = -1 */)
|
|
{
|
|
if (lpsz == NULL)
|
|
return FALSE;
|
|
return afxData.bWin95 || ::IsBadStringPtrW(lpsz, nLength) == 0;
|
|
}
|
|
|
|
// As above, but for ANSI strings.
|
|
|
|
BOOL AFXAPI AfxIsValidString(LPCSTR lpsz, int nLength /* = -1 */)
|
|
{
|
|
if (lpsz == NULL)
|
|
return FALSE;
|
|
return ::IsBadStringPtrA(lpsz, nLength) == 0;
|
|
}
|
|
|
|
// AfxIsValidAddress() returns TRUE if the passed parameter points
|
|
// to at least nBytes of accessible memory. If bReadWrite is TRUE,
|
|
// the memory must be writeable; if bReadWrite is FALSE, the memory
|
|
// may be const.
|
|
|
|
BOOL AFXAPI AfxIsValidAddress(const void* lp, UINT nBytes,
|
|
BOOL bReadWrite /* = TRUE */)
|
|
{
|
|
// simple version using Win-32 APIs for pointer validation.
|
|
return (lp != NULL && !IsBadReadPtr(lp, nBytes) &&
|
|
(!bReadWrite || !IsBadWritePtr((LPVOID)lp, nBytes)));
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|