Leaked source code of windows server 2003
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.
|
|
//
// GRPTR.HPP
// Graphic Pointer Class
//
// Copyright Microsoft 1998-
//
#ifndef __GRPTR_HPP_
#define __GRPTR_HPP_
typedef struct COLOREDICON { HICON hIcon; COLORREF color; } COLORED_ICON;
//
//
// Class: DCWbGraphicPointer
//
// Purpose: Class representing a remote pointer.
//
// This is an internal object only - it is never passed to the
// Whiteboard Core DLL.
//
//
class DCWbGraphicPointer : public DCWbGraphic { friend class WbUser;
public: //
// Constructors
//
DCWbGraphicPointer(WbUser* _pUser);
//
// Destructor
//
~DCWbGraphicPointer(void);
UINT IsGraphicTool(void) { return enumGraphicPointer;}
//
// Return the rectangle in which the pointer was last drawn. The
// rectangle will be empty if the pointer is not currently drawn. Use
// BoundsRect to get the rectangle which will be occupied by the pointer
// when it is next drawn.
//
void GetDrawnRect(LPRECT lprc);
//
// Activate and deactivate the pointer
//
BOOL IsActive(void) const { return m_bActive; } void SetActive(WB_PAGE_HANDLE hPage, POINT point); void SetInactive(void);
//
// Set the color of the pointer
//
void SetColor(COLORREF newColor);
//
// Get and set the current page of the pointer
//
WB_PAGE_HANDLE GetPage(void) const; void SetPage(WB_PAGE_HANDLE hNewPage); WbUser * GetUser(void) const { return(m_pUser); }
//
// Return TRUE if this is the local user's pointer
//
BOOL IsLocalPointer(void) const;
//
// Draw the pointer
//
void Draw(HDC hDC) { Draw(hDC, (WbDrawingArea *)NULL); } void Draw(HDC hDC, WbDrawingArea * pDrawingArea);
//
// Draw the pointer after saving the bits under it to memory
//
void DrawSave(HDC hDC, WbDrawingArea * pDrawingArea);
//
// Erase the pointer from its old position and redraw it in its current
// position.
//
void Redraw(HDC hDC, WbDrawingArea * pDrawingArea);
//
// Undraw the pointer
//
void Undraw(HDC hDC, WbDrawingArea * pDrawingArea);
//
// Update the user information with the pointer position
//
virtual void Update(void);
//
// Operators
//
virtual BOOL operator!=(const DCWbGraphicPointer& pointer) const; virtual BOOL operator==(const DCWbGraphicPointer& pointer) const;
protected: //
// Zoom factor set from WBDRAW
//
int m_iZoomSaved;
//
// Create the icon of the correct color for this user
//
HICON CreateColoredIcon(COLORREF color);
//
// Create the bitmap for saving the screen data under the pointer
//
void CreateSaveBitmap(WbDrawingArea * pDrawingArea);
//
// Draw or undraw the pointer (screen and memory versions)
//
BOOL SaveScreen(HDC hDC, WbDrawingArea * pDrawingArea); BOOL UndrawScreen(HDC hDC, WbDrawingArea * pDrawingArea); BOOL CopyFromScreen(HDC hDC, WbDrawingArea * pDrawingArea); BOOL CopyToScreen(HDC hDC, WbDrawingArea * pDrawingArea);
BOOL DrawMemory(void); BOOL UndrawMemory(void); BOOL SaveMemory(void);
//
// Manipulate the display DC for pointer operations
//
void PointerDC(HDC hDC, WbDrawingArea * pDrawingArea, LPRECT lprc, int zoom = 0); void SurfaceDC(HDC hDC, WbDrawingArea * pDrawingArea);
//
// The user associated with this pointer
//
WbUser* m_pUser;
//
// Flag indicating whether the pointer is active
//
BOOL m_bActive;
//
// Pointer to the bitmap used to save the data under the pointer
//
HBITMAP m_hSaveBitmap;
//
// Handle of bitmap originally supplied with memDC
//
HBITMAP m_hOldBitmap;
//
// Device context used for drawing and undrawing the pointer
//
HDC m_hMemDC;
//
// Handle of icon to be used for drawing
//
HICON m_hIcon;
//
// Width and height of the pointer
//
UINT m_uiIconWidth; UINT m_uiIconHeight;
//
// Flag indicating whether the pointer is drawn
//
BOOL m_bDrawn;
//
// Rectangle in which the pointer was last drawn
//
RECT m_rectLastDrawn; };
#endif // __GRPTR_HPP_
|