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. Такое поведение при проектировании приложения служит для облегчения процесса отладки приложения.
' смотри пример функции OpenPrinter
IsBadCodePtr, IsBadReadPtr, IsBadWritePtr