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.
 
 
 
 
 
 

230 lines
4.2 KiB

//
// USER.HPP
// User Class
//
// Copyright Microsoft 1998-
//
#ifndef __USER_HPP_
#define __USER_HPP_
//
//
// Class: WbUser
//
// Purpose: User object recorder
//
//
class DCWbGraphicPointer;
class WbUser
{
public:
//
// Constructor
//
WbUser(POM_OBJECT hUser = NULL);
//
// Destructor
//
~WbUser(void);
//
// Return the user handle
//
POM_OBJECT Handle(void) const { return(m_hUser);}
//
// Refresh the user details
//
void Refresh(void);
//
// Update the external copy of the user information
//
void Update(void);
//
// Return the user name
//
LPCSTR Name(void) const { return(m_strName); }
//
// Synchronize the users page with other synced users
//
void Sync(void);
void Unsync(void);
//
// Update the user's position from the sync position. This does not
// change the sync position.
//
void GetSyncPosition(void);
//
// Update the sync position from the user's current position
//
void PutSyncPosition(void);
//
// Return a remote pointer object for this user
//
DCWbGraphicPointer* GetPointer(void) { return(m_pRemotePointer); }
//
// Put the user's remote pointer at the position specified
//
void PutPointer(WB_PAGE_HANDLE hPage, POINT point);
//
// Remove the user's remote pointer
//
void RemovePointer(void);
//
// Return TRUE if the user is synced
//
BOOL IsSynced(void) const { return m_bSynced; }
//
// Return TRUE if the user has the contents lock
//
BOOL HasContentsLock(void) const;
//
// Return TRUE if the user has their remote pointer active
//
BOOL IsUsingPointer(void) const;
//
// Return the current page of the user
//
WB_PAGE_HANDLE Page(void) const {return m_hPageCurrent; }
void SetPage(WB_PAGE_HANDLE hPage);
//
// Return the current position within the page of the user
//
void GetVisibleRect(LPRECT lprc) { *lprc = m_rectVisible; }
void SetVisibleRect(LPCRECT lprc);
//
// Return the page of the user's pointer
//
WB_PAGE_HANDLE PointerPage(void) const;
//
// Return the position of the user's pointer
//
void GetPointerPosition(LPPOINT lpptPos);
//
// Return the user's color
//
COLORREF Color(void) const { return(m_color); }
//
// Return TRUE if this is the local user
//
BOOL IsLocalUser(void) const { return(m_bLocalUser); }
//
// Operators
//
virtual WbUser& operator=(const WbUser& user);
virtual BOOL operator!=(const WbUser& user) const;
virtual BOOL operator==(const WbUser& user) const;
//
// Set zoom/unzoom state
//
void Zoom(void) { m_zoomed = TRUE; }
void Unzoom(void) { m_zoomed = FALSE; }
BOOL GetZoom(void) const { return(m_zoomed); }
protected:
//
// Core access handle
//
POM_OBJECT m_hUser;
//
// Flag indicating Whether this is the local user
//
BOOL m_bLocalUser;
BOOL m_zoomed;
//
// Local copies of the user information
//
char m_strName[TSHR_MAX_PERSON_NAME_LEN];
BOOL m_bSynced;
WB_PAGE_HANDLE m_hPageCurrent;
RECT m_rectVisible;
COLORREF m_color;
//
// Graphic pointer associated with this user
//
DCWbGraphicPointer* m_pRemotePointer;
};
//
//
// Class: WbUserList
//
// Purpose: Map from user handles to user object pointers
//
//
class WbUserList : public COBLIST
{
public:
//
// Destructor
//
~WbUserList(void);
//
// Clear all entries from the map, deleting the associated object
//
void Clear(void);
};
//
// Return lock status
//
BOOL WB_Locked(void);
BOOL WB_ContentsLocked(void);
BOOL WB_GotLock(void);
BOOL WB_GotContentsLock(void);
BOOL WB_PresentationMode(void);
//
// Return an object representing the local user
//
WbUser* WB_LocalUser(void);
//
// Retrieving users
//
WbUser* WB_GetUser(POM_OBJECT hUser);
WbUser* WB_GetFirstUser(void);
WbUser* WB_GetNextUser(const WbUser* pUser);
//
// Return an object representing the user who has the lock
//
WbUser* WB_LockUser(void);
#endif // __USER_HPP_