ExtMouseCaptureSink.h
上传用户:sesekoo
上传日期:2020-07-18
资源大小:21543k
文件大小:2k
源码类别:

界面编程

开发平台:

Visual C++

  1. // This is part of the Professional User Interface Suite library.
  2. // Copyright (C) 2001-2009 FOSS Software, Inc.
  3. // All rights reserved.
  4. //
  5. // http://www.prof-uis.com
  6. // mailto:support@prof-uis.com
  7. //
  8. // This source code can be used, modified and redistributed
  9. // under the terms of the license agreement that is included
  10. // in the Professional User Interface Suite package.
  11. //
  12. // Warranties and Disclaimers:
  13. // THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND
  14. // INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY,
  15. // FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
  16. // IN NO EVENT WILL FOSS SOFTWARE INC. BE LIABLE FOR ANY DIRECT,
  17. // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES,
  18. // INCLUDING DAMAGES FOR LOSS OF PROFITS, LOSS OR INACCURACY OF DATA,
  19. // INCURRED BY ANY PERSON FROM SUCH PERSON'S USAGE OF THIS SOFTWARE
  20. // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  21. #if (!defined __EXT_MOUSECAPTURESINK_H)
  22. #define __EXT_MOUSECAPTURESINK_H
  23. #if (!defined __EXT_MFC_DEF_H)
  24. #include <ExtMfcDef.h>
  25. #endif // __EXT_MFC_DEF_H
  26. ///// (debug/preview) #define __EXT_MOUSECAPTURESINK_USES_WIN_HOOKS
  27. #ifdef __EXT_MOUSECAPTURESINK_USES_WIN_HOOKS
  28. #ifndef __AFXMT_H__
  29. #include <AfxMT.h>
  30. #endif
  31. #endif // __EXT_MOUSECAPTURESINK_USES_WIN_HOOKS
  32. #if _MSC_VER >= 1000
  33. #pragma once
  34. #endif // _MSC_VER >= 1000
  35. /////////////////////////////////////////////////////////////////////////////
  36. // CExtMouseCaptureSink
  37. class __PROF_UIS_API CExtMouseCaptureSink
  38. {
  39. #ifdef __EXT_MOUSECAPTURESINK_USES_WIN_HOOKS
  40. static volatile HHOOK g_hMouseHook;
  41. static volatile HWND g_hWndCapture;
  42. static CCriticalSection g_cs;
  43. static LRESULT CALLBACK _HookMouseProc(
  44. int nCode,      // hook code
  45. WPARAM wParam,  // message identifier
  46. LPARAM lParam   // mouse coordinates
  47. );
  48. #endif // __EXT_MOUSECAPTURESINK_USES_WIN_HOOKS
  49. public:
  50. CExtMouseCaptureSink();
  51. virtual ~CExtMouseCaptureSink();
  52. virtual HWND SetCapture( HWND hWnd );
  53. static HWND GetCapture();
  54. static BOOL ReleaseCapture();
  55. }; // class __PROF_UIS_API CExtMouseCaptureSink
  56. #endif // __EXT_MOUSECAPTURESINK_H