_EdLastError( ), API-Bibliotheksroutine
_EdLastError( ) gibt die Fehlernummer des zuletzt aufgetretenen Editorfehlers für das angegebene Bearbeitungsfenster zurück.
int _EdLastError(WHANDLE wh)
WHANDLE wh; /* Handle of editing window. */
Beispiel
Im folgenden Beispiel wird der von _EdLastError nach einer Reihe von Editoroperationen zurückgegebene Fehlercode angezeigt. Editorfehler treten nur in Ausnahmesituationen auf, z. B. bei fehlendem Speicherplatz. Aus diesem Grund wird im folgenden Beispiel im Normalfall der Fehlercode 0 angezeigt.
Visual FoxPro-Code
SET LIBRARY TO EDLASTER
= EDLASTERR("x") && displays _EdLastError() after operations on file "x"
C-Code
#include <pro_ext.h>
void putLong(long n)
{
Value val;
val.ev_type = 'I';
val.ev_long = n;
val.ev_width = 10;
_PutValue(&val);
}
FAR Example(ParamBlk FAR *parm)
{
char FAR *pFileName;
WHANDLE wh;
EDENV EdEnv;
if (!_SetHandSize(parm->p[0].val.ev_handle,
parm->p[0].val.ev_length+1))
{
_Error(182); // "Insufficient memory"
}
_HLock(parm->p[0].val.ev_handle);
pFileName = (char FAR *) _HandToPtr(parm->p[0].val.ev_handle);
pFileName[parm->p[0].val.ev_length] = '\0';
wh = _EdOpenFile(pFileName, FO_READONLY);
_HUnLock(parm->p[0].val.ev_handle);
// Position past end of file
_EdGetEnv(wh, &EdEnv);
_EdSetPos(wh, EdEnv.length + 128);
_PutStr("\n_EdLastError() ="); putLong(_EdLastError(wh));
// _EdCopy() with no selection
_EdSetPos(wh, 1);
_EdCopy(wh);
_PutStr("\n_EdLastError() ="); putLong(_EdLastError(wh));
// _EdScrollToSel() with no selection
_EdScrollToSel(wh, TRUE);
_PutStr("\n_EdLastError() ="); putLong(_EdLastError(wh));
}
FoxInfo myFoxInfo[] = {
{"EDLASTERR", (FPFI) Example, 1, "C"},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Siehe auch
_EdGetEnv( ), API-Bibliotheksroutine | _EdSetEnv( ), API-Bibliotheksroutine | Zugreifen auf die Visual FoxPro-API