$PBExportHeader$n_usernames.sru forward global type n_usernames from n_cst_indirect end type end forward global type n_usernames from n_cst_indirect end type type prototypes Function long WNetGetUser ( & string lpname, & Ref string lpusername, & Ref long buflen & ) Library "mpr.dll" Alias For "WNetGetUserW" end prototypes type variables Private: String is_username String is_username_hist[] Public: Indirect String Username {of_SetUsername(*value),of_GetUsername()} Indirect String NetUsername {of_SetReadOnly(*value),of_WNetGetUser()} Indirect String History[] { & of_SetArray(*name, *value), & of_SetItem(*name, *args, *value), & of_GetArray(*name), & of_GetItem(*name, *args), & of_UpperBound(), & of_LowerBound()} end variables forward prototypes private function string of_getusername () private subroutine of_setusername (string as_username) private function string of_wnetgetuser () public function long of_lowerbound () public function long of_upperbound () protected function any of_getarray (string as_name) protected subroutine of_setarray (string as_name, string as_values[]) protected subroutine of_setitem (string as_name, long al_dimensions[], string as_value) protected function string of_getitem (string as_name, long al_dimensions[]) end prototypes private function string of_getusername ();// get private username instance var If is_username = "" Then Return "[empty]" Else Return is_username End If end function private subroutine of_setusername (string as_username);// set private username instance var Long ll_next If IsNull(as_Username) Then SignalError(999, "Null value not allowed!") Else // save value to instance variable is_Username = as_Username // save value to history array ll_next = UpperBound(is_username_hist) + 1 is_username_hist[ll_next] = as_Username End If end subroutine private function string of_wnetgetuser ();// This function retrieves the userid used to establish the current network connection. String ls_userid, ls_errmsg Long ll_result, ll_buflen ll_buflen = 32 ls_userid = Space(ll_buflen) ll_result = WNetGetUser("", ls_userid, ll_buflen) If ll_result <> 0 Then SignalError(ll_result, "Network Error in of_WNetGetUser") End If Return ls_userid end function public function long of_lowerbound ();Return LowerBound(is_username_hist) end function public function long of_upperbound ();Return UpperBound(is_username_hist) end function protected function any of_getarray (string as_name);String ls_empty[] choose case Lower(as_name) case "history" Return is_username_hist end choose Return ls_empty end function protected subroutine of_setarray (string as_name, string as_values[]);choose case Lower(as_name) case "history" is_username_hist = as_values end choose end subroutine protected subroutine of_setitem (string as_name, long al_dimensions[], string as_value);choose case Lower(as_name) case "history" is_username_hist[al_dimensions[1]] = as_value end choose end subroutine protected function string of_getitem (string as_name, long al_dimensions[]);String ls_value choose case Lower(as_name) case "history" ls_value = is_username_hist[al_dimensions[1]] end choose Return ls_value end function on n_usernames.create call super::create end on on n_usernames.destroy call super::destroy end on
File: n_usernames.sru
Size: 3507
Date: Fri, 22 Feb 2019 22:19:22 +0100
Size: 3507
Date: Fri, 22 Feb 2019 22:19:22 +0100
- n_cst_indirect n_usernames(sru)
- of_getarray (string as_name) returns any
- of_getitem (string as_name, long al_dimensions[]) returns string
- of_getusername () returns string
- of_lowerbound () returns long
- of_setarray (string as_name, string as_values[])
- of_setitem (string as_name, long al_dimensions[], string as_value)
- of_setusername (string as_username)
- of_upperbound () returns long
- of_wnetgetuser () returns string