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("test_user","domain.org",INPUTBOX("Password:"),3,0,@nToken) = 0 lnResult = GetLastError() = MESSAGEBOX(lnResult) ELSE = CloseHandle(nToken) ENDIF RELEASE ALL CLEAR DLLSHow are you running your code ot get it to work?
>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.