>I'm trying to use GetLastError API call to figure out why a call to LogonUser may have failed. However, no matter what I do, GetLastError always returns 0. LogonUser will return 1 when I enter a valid username/password. If I enter the same username with a bogus password, LogonUser returns a 0 indicating there was a problem but GetLastError() still returns a 0.
>
>I've included my code below. Does anyone know what I might be doing wrong?
>
>
>DECLARE integer GetLastError IN kernel32
>DECLARE integer CloseHandle IN kernel32 integer hObject
>DECLARE integer LogonUser IN advapi32 string lpzUser, string lpzDomain,;
> string lpzPass, integer dwLogonType, integer dwLogonProvider,;
> integer @phToken
>
>
>nToken = 0
>
>IF LogonUser("user_name","domain.com",INPUTBOX("Password:"),3,0,@nToken) = 0
> = MESSAGEBOX("Error: " + TRANSFORM(GetLastError(),"99999999"))
>ELSE
> = CloseHandle(nToken)
>ENDIF
>
>RELEASE ALL
>
>
>Thanks for your input!
Rodd,
GetLastError would not help you here, I believe. It is used to determine failure in the function, but I don't think it could be used in this context.
If it's not broken, fix it until it is.
My Blog