Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/**********************************************************************/ /** Microsoft Windows/NT **/ /** Copyright(c) Microsoft Corp., 1991 **/ /**********************************************************************/
/*
lmomisc.cxx Misc. objects
LOGON_USER - wrapper class which handles NetWkstaSetUID2() net api call TIME_DAY_SERVER - wrapper class which handles NetRemoteTOD() net api LM_MESSAGE - wrapper class which handles NetMessageBuffSend() net api
FILE HISTORY: terryk 04-Sep-91 Created terryk 11-Sep-91 Code review changed. Attend: terryk jimh yi-hsins jonn terryk 19-Sep-91 Move LOGON_USER from lmouser.hxx to here. terryk 07-Oct-91 type changes for NT terryk 17-Oct-91 Change TIME_OF_DAY's variable to pointer terryk 21-Oct-91 Remove LOGON_USER from NT */
#ifndef _LMOMISC_HXX_
#define _LMOMISC_HXX_
#include "lmobj.hxx"
#ifndef WIN32
enum LOGON_USER_STATE { INVALID_STATE, LOGGED_ON, LOGGED_OFF };
/*************************************************************************
NAME: LOGON_USER
SYNOPSIS: user object for logon and logoff the network
INTERFACE: LOGON_USER() - constructor Logon() - logon the user to the network Logoff() - logoff the user from the network
Query functions which calls after Logon call: TCHAR * QueryLogonComputer() - logon computer name const TCHAR * QueryLogonDomain() - logon domain name QueryPriv() - privilege level. It will return: USER_PRIV_GUESST - guest privilege USER_PRIV_USER - user privilege USER_PRIV_ADMIN - admin privilege LONG QueryPasswdAge() - password age. Specifies the time (in seconds) since the user password was changed ULONG QueryPasswdCanChange() - specifies the time when the user is allowed to change the password. This value is stored as the number of seconds elapsed since 00:00:00, January 1, 1970. A value of -1 means the user can never change the password. ULONG QueryPasswdMustChange() - specifies the time when the user must change the passwd. The value is stored as the number of seconds elapsed since 00:00:00, January 1, 1970.
// QueryLogoffXXX()
ULONG QueryLogoffDuration() - specifies the number of seconds elapsed since the user logged on. ULONG QueryLogoffNumLogons() - specifies the number of times this user is logged on. A value of -1 means the number of logons is unknown.
PARENT: BASE
USES: NLS_STR
CAVEATS:
NOTES: CODEWORK: if we need more logon information, we will need to implement more QueryLogonXXX() functions.
HISTORY: terryk 6-Sep-91 Created terryk 20-Sep-91 Change from USER to BASE
**************************************************************************/
DLL_CLASS LOGON_USER : public BASE { private: enum LOGON_USER_STATE _state; TCHAR *_pszPasswd; BOOL _fValid; NLS_STR _nlsUsername; NLS_STR _nlsDomain; BUFFER _buffer;
protected: struct user_logon_info_1 * QueryLogonInfo() const; struct user_logoff_info_1 * QueryLogoffInfo() const;
public: LOGON_USER( const TCHAR * pszUsername, const TCHAR * pszDomain );
APIERR Logon( const TCHAR * pszPasswd, APIERR *pLogonRetCode ); APIERR Logoff( UINT uslogoff_level, APIERR *pLogoffRetCode );
const TCHAR * QueryUsername() const { return _nlsUsername.QueryPch(); }
// QueryLogonXXX()
const TCHAR * QueryLogonComputer() const; const TCHAR * QueryLogonDomain() const; UINT QueryPriv() const; LONG QueryPasswdAge() const; ULONG QueryPasswdCanChange() const; ULONG QueryPasswdMustChange() const;
// QueryLogoffXXX()
ULONG QueryLogoffDuration() const; ULONG QueryLogoffNumLogons() const; }; #endif
/*************************************************************************
NAME: LM_MESSAGE
SYNOPSIS: class for message sending
INTERFACE: LM_MESSAGE() - constructor SendBuffer() - send out the message to the recipient
PARENT: LOC_LM_OBJ
CAVEATS:
NOTES:
HISTORY: terryk 6-Sep-91 Created
**************************************************************************/
DLL_CLASS LM_MESSAGE: public LOC_LM_OBJ { public: LM_MESSAGE( const TCHAR * pszLocation = NULL ); LM_MESSAGE( enum LOCATION_TYPE loctype ); LM_MESSAGE( LOCATION & loc );
APIERR SendBuffer( const TCHAR * pszRecipient, const BUFFER & buffer ); APIERR SendBuffer( const TCHAR * pszRecipient, const TCHAR * pbBuffer, UINT cbBuffer ); };
/*************************************************************************
NAME: TIME_OF_DAY
SYNOPSIS: This object will get the remote server time/date information after the GetInfo functionc call.
INTERFACE: TIME_OF_DAY() - constructor QueryElapsedt() - return the elapsed time QueryMsecs() - return the msecs QueryHours() - return the hours QueryMins() - return the mins QuerySecs() - return the secs QueryHunds() - return the hunds QueryTimezone() - return the time zone QueryTInterval() - return the time interval QueryDay() - return the day QueryMonth() - return the Month QueryYear() - return the Year QueyWeekday() - return the Weekday
PARENT: LOC_LM_OBJ
HISTORY: terryk 5-Sep-91 Created
**************************************************************************/
DLL_CLASS TIME_OF_DAY: public LOC_LM_OBJ { private: struct time_of_day_info *_ptodi;
protected: virtual APIERR I_GetInfo();
public: TIME_OF_DAY( const TCHAR *pszLocation ); TIME_OF_DAY( enum LOCATION_TYPE loctype ); TIME_OF_DAY( LOCATION & loc ); ~TIME_OF_DAY();
ULONG QueryElapsedt() const { CHECK_OK( 0 ); return _ptodi->tod_elapsedt; } ULONG QueryMsecs() const { CHECK_OK( 0 ); return _ptodi->tod_msecs; } ULONG QueryHours() const { CHECK_OK( 0 ); return _ptodi->tod_hours; } ULONG QueryMins() const { CHECK_OK( 0 ); return _ptodi->tod_mins; } ULONG QuerySecs() const { CHECK_OK( 0 ); return _ptodi->tod_secs; } ULONG QueryHunds() const { CHECK_OK( 0 ); return _ptodi->tod_hunds; } ULONG QueryTimezone() const { CHECK_OK( 0 ); return _ptodi->tod_timezone; } ULONG QueryTInterval() const { CHECK_OK( 0 ); return _ptodi->tod_tinterval; } ULONG QueryDay() const { CHECK_OK( 0 ); return _ptodi->tod_day; } ULONG QueryMonth() const { CHECK_OK( 0 ); return _ptodi->tod_month; } ULONG QueryYear() const { CHECK_OK( 0 ); return _ptodi->tod_year; } ULONG QueryWeekday() const { CHECK_OK( 0 ); return _ptodi->tod_weekday; } };
#endif // _LMOMISC_HXX_
|