|
|
/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
valid.cpp
Abstract:
Author:
Vlad Sadovsky (vlads) 26-Jun-1997
Revision History:
26-Jun-1997 VladS created
--*/
#include "cplusinc.h"
#include "sticomm.h"
//
// Validation code
//
BOOL IsValidHWND( HWND hwnd) { /* Ask User if this is a valid window. */
return(IsWindow(hwnd)); }
BOOL IsValidHMENU( HMENU hmenu) { return IsMenu(hmenu); }
BOOL IsValidHANDLE( HANDLE hnd) { return(NULL != hnd && INVALID_HANDLE_VALUE != hnd); }
BOOL IsValidHANDLE2( HANDLE hnd) { return(hnd != INVALID_HANDLE_VALUE); }
BOOL IsValidShowCmd( int nShow) { BOOL bResult;
switch (nShow) { case SW_HIDE: case SW_SHOWNORMAL: case SW_SHOWMINIMIZED: case SW_SHOWMAXIMIZED: case SW_SHOWNOACTIVATE: case SW_SHOW: case SW_MINIMIZE: case SW_SHOWMINNOACTIVE: case SW_SHOWNA: case SW_RESTORE: case SW_SHOWDEFAULT: bResult = TRUE; break;
default: bResult = FALSE; //TraceMsg(TF_ERROR, "IsValidShowCmd(): Invalid show command %d.",nShow);
break; }
return(bResult); }
BOOL IsValidPathA( LPCSTR pcszPath) { return(IS_VALID_STRING_PTRA(pcszPath, MAX_PATH) && ((UINT)lstrlenA(pcszPath) < MAX_PATH)); }
BOOL IsValidPathW( LPCWSTR pcszPath) { return(IS_VALID_STRING_PTRW(pcszPath, MAX_PATH) && ((UINT)lstrlenW(pcszPath) < MAX_PATH)); }
BOOL IsValidPathResultA( HRESULT hr, LPCSTR pcszPath, UINT cchPathBufLen) { return((hr == S_OK && (IsValidPathA(pcszPath)) && ((UINT)lstrlenA(pcszPath) < cchPathBufLen)) || (hr != S_OK && (! cchPathBufLen || ! pcszPath || ! *pcszPath))); }
BOOL IsValidPathResultW( HRESULT hr, LPCWSTR pcszPath, UINT cchPathBufLen) { return((hr == S_OK && (IsValidPathW(pcszPath)) && ((UINT)lstrlenW(pcszPath) < cchPathBufLen)) || (hr != S_OK && (! cchPathBufLen || ! pcszPath || ! *pcszPath))); }
BOOL IsValidExtensionA( LPCSTR pcszExt) { return(IS_VALID_STRING_PTRA(pcszExt, MAX_PATH) && (lstrlenA(pcszExt) < MAX_PATH) && (*pcszExt == '.')); }
BOOL IsValidExtensionW( LPCWSTR pcszExt) { return(IS_VALID_STRING_PTRW(pcszExt, MAX_PATH) && (lstrlenW(pcszExt) < MAX_PATH) && (*pcszExt == L'.')); }
BOOL IsValidIconIndexA( HRESULT hr, LPCSTR pcszIconFile, UINT cchIconFileBufLen, int niIcon) { return((IsValidPathResultA(hr, pcszIconFile, cchIconFileBufLen)) && (hr == S_OK || ! niIcon)); }
BOOL IsValidIconIndexW( HRESULT hr, LPCWSTR pcszIconFile, UINT cchIconFileBufLen, int niIcon) { return((IsValidPathResultW(hr, pcszIconFile, cchIconFileBufLen)) && (hr == S_OK || ! niIcon)); }
BOOL IsStringContainedA(LPCSTR pcszBigger, LPCSTR pcszSuffix) { ASSERT(IS_VALID_STRING_PTRA(pcszBigger, -1)); ASSERT(IS_VALID_STRING_PTRA(pcszSuffix, -1));
return (pcszSuffix >= pcszBigger && pcszSuffix <= pcszBigger + lstrlenA(pcszBigger)); }
BOOL IsStringContainedW(LPCWSTR pcszBigger, LPCWSTR pcszSuffix) { ASSERT(IS_VALID_STRING_PTRW(pcszBigger, -1)); ASSERT(IS_VALID_STRING_PTRW(pcszSuffix, -1));
return (pcszSuffix >= pcszBigger && pcszSuffix <= pcszBigger + lstrlenW(pcszBigger)); }
BOOL AfxIsValidString( LPCWSTR lpsz, int nLength ) { if (lpsz == NULL) return FALSE;
return ::IsBadStringPtrW(lpsz, nLength) == 0; }
BOOL AfxIsValidString( LPCSTR lpsz, int nLength ) { if (lpsz == NULL) return FALSE;
return ::IsBadStringPtrA(lpsz, nLength) == 0; }
BOOL AfxIsValidAddress( const void* lp, UINT nBytes, BOOL bReadWrite ) { // simple version using Win-32 APIs for pointer validation.
return (lp != NULL && !IsBadReadPtr(lp, nBytes) && (!bReadWrite || !IsBadWritePtr((LPVOID)lp, nBytes))); }
|