Функция IsBadStringPtr

Declare Function IsBadStringPtrLong Lib "kernel32" Alias "IsBadStringPtrA" ( _
    ByVal lpsz As Long, _
    ByVal ucchMax As Long) As Long
или 
Declare Function IsBadStringPtrBy Lib "kernel32" Alias "IsBadStringPtrA" ( _
    ByVal lpsz As String, _
    ByVal ucchMax As Long) As Long

IsBadStringPtr проверяет, имеет ли вызывающий процесс права чтения памяти, на которую указывает строковый указатель

Возвращаемое значение

Если вызывающий процесс имеет права чтения всех символов строки, на которую указывает параметр lpsz, до заканчивающего строку нулевого символа включительно, либо имеет права чтения всего всего диапазона памяти, заданного параметрами lpsz и ucchMax, то функция возвращает False. Если длина строки превышает ucchMax и вызвающий процесс не имеет прав чтения всех первых ucchMax символов строки, то возвращенным значением будет False. Если длина строки меньше значения ucchMax и вызвающий процесс не имеет прав чтения некоторых символов строки, то возвращенным значением будет False. Если эта функция скомпилирована в отладочной версии приложения, и вызывающий процесс не имеет прав чтения строки по указанному адресу, то эта функция может выполниться аналогично проедуре Assert и послужить точкой останова в отладчике. По выходу из отладчика функция, как и положено, вернет True. Такое поведение при проектировании приложения служит для облегчения процесса отладки приложения.

Параметры

lpsz
Указатель на строку, заканчивающуюся символом с нулевым кодом, либо Unicode, либо ANSI
ucchMax
Указыает максимальный размер строки. Функция будет проверять доступ по указанному указателю байт за байтом либо до тех пор, пока не дойдет до нулевого символа, либо пока количество проверенных байт не достигнет значения ucchMax. Если этот параметр равен 0, то функция вернет False.

Пример

' смотри пример функции OpenPrinter

Смотри также

IsBadCodePtr, IsBadReadPtr, IsBadWritePtr

Категория

Память