Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Can't get GetLastError() to return a value?!
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Fonctions Windows API
Versions des environnements
Visual FoxPro:
VFP 8 SP1
OS:
Windows XP SP2
Network:
Windows 2003 Server
Database:
Visual FoxPro
Divers
Thread ID:
01101255
Message ID:
01101356
Vues:
9
No domain available, local user. Though some funny results I have -- you'll probably be laughing :)

Look at this code:
LOCAL nToken, cProcInfo, cStartInfo, nCreationFlags, nLastError
nToken = 0

= LogonUser(cUsr, cDomain, cPwd,;
	LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, @nToken)

nLastError = GetLastError()

IF nToken = 0
* 1326 = ERROR_LOGON_FAILURE
* 1327 = ERROR_NO_SUCH_MEMBER
* 1385 = ERROR_LOGON_TYPE_NOT_GRANTED
	? "Error:", nLastError
	RETURN .F.
ENDIF
When executed as a single piece, the code returns valid error code as expected.

Even if logon error happens, the code returns zero as LastError code when executed (ATTENTION!!!)
- in Command Window
- in Debug mode (step by step)
- with an artificial delay inserted right after the LogonUser call

Looks like the LastErrorCode value does not survive long after the LogonUser call, some process quickly sets it back to zero.

I checked several times just to make sure that I was sane enough :) on Friday afternoon. Let me know if it helps.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform