//============================================================================= // Copyright (c) 2000 Microsoft Corporation // // dxcursor.hpp // // DX Cursor implementation. // // Created 01/17/2000 kanqiu (Kan Qiu) //============================================================================= #ifndef __DXCURSOR_HPP__ #define __DXCURSOR_HPP__ #include "surface.hpp" //----------------------------------------------------------------------------- // CCursor //----------------------------------------------------------------------------- class CCursor { public: CCursor(CBaseDevice *pDevice); ~CCursor(); void Destroy(); HRESULT SetProperties( UINT xHotSpot, UINT yHotSpot, CBaseSurface *pCursorBitmap); void SetPosition(UINT xScreenSpace,UINT yScreenSpace,DWORD Flags); BOOL SetVisibility(BOOL bVisible); HRESULT Hide(HANDLE); HRESULT Show(HANDLE); void Flip(); private: void UpdateRects(); HRESULT CursorInit( UINT xHotSpot, UINT yHotSpot, CBaseSurface *pCursorBitmap); DWORD m_dwCursorFlags;//cursor flags HANDLE m_hCursorDdb; //device dependent Cursor image HANDLE m_hFrontSave; //excluded front buffer HANDLE m_hBackSave; //excluded back buffer UINT m_xCursorHotSpot; UINT m_yCursorHotSpot; UINT m_xCursor; UINT m_yCursor; UINT m_Width; UINT m_Height; RECT m_CursorRect; RECT m_BufferRect; RECT m_CursorRectSave; RECT m_BufferRectSave; CBaseDevice* m_pDevice; HCURSOR m_hOsCursor; HCURSOR m_hHWCursor; POINT m_MonitorOrigin; //(x,y) Monitor Top left UINT m_SavedMouseTrails; }; // class CCursor #define DDRAWI_CURSORISON 0x01 #define DDRAWI_CURSORINIT 0x02 #define DDRAWI_CURSORSAVERECT 0x04 #define DDRAWI_CURSORRECTSAVED 0x08 #endif // __DXCURSOR_HPP__