CPI_Interface.h
上传用户:hxb_1234
上传日期:2010-03-30
资源大小:8328k
文件大小:4k
源码类别:

VC书籍

开发平台:

Visual C++

  1. ////////////////////////////////////////////////////////////////////////////////
  2. ////////////////////////////////////////////////////////////////////////////////
  3. //
  4. // Interface
  5. //
  6. // This will abstract the OS user interface.  This will improve modularity and open
  7. // the door for non Windows ports
  8. //
  9. //
  10. ////////////////////////////////////////////////////////////////////////////////
  11. #define CPC_INTERFACE_STYLE_RESIZING 0x1
  12. ////////////////////////////////////////////////////////////////////////////////
  13. //
  14. // One time calls (to initialise process wide structs)
  15. void IF_ProcessInit();
  16. void IF_ProcessDeInit();
  17. //
  18. // Interface basics
  19. CP_HINTERFACE IF_Create();
  20. void IF_OpenWindow(CP_HINTERFACE hInterface, const char* pcTitle, const RECT* pInitialSize, const DWORD dwStyle);
  21. void IF_CloseWindow(CP_HINTERFACE hInterface);
  22. void IF_SetVisible(CP_HINTERFACE hInterface, const BOOL bVisible);
  23. void IF_RebuildRegion(CP_HINTERFACE hInterface);
  24. HWND IF_GetHWnd(CP_HINTERFACE hInterface);
  25. void IF_SetMinSize(CP_HINTERFACE hInterface, const SIZE* pMinSize);
  26. void IF_PostAppMessage(CP_HINTERFACE hInterface, const UINT uiMessage, const WPARAM wParam, const LPARAM lParam);
  27. // Subparts
  28. void IF_RemoveAllSubparts(CP_HINTERFACE hInterface);
  29. void IF_UpdateSubPartLayout(CP_HINTERFACE hInterface);
  30. void IF_AddSubPart_CommandButton( CP_HINTERFACE hInterface,
  31.                                   const DWORD dwAlign,
  32.                                   const POINT* pptOffset,
  33.                                   CPs_Image_WithState* pStateImage,
  34.                                   wp_Verb pfnVerb);
  35. void IF_AddSubPart_Indicator( CP_HINTERFACE hInterface,
  36.                               const char* pcName,
  37.                               const DWORD dwAlign,
  38.                               const RECT* prPosition);
  39. //
  40. //
  41. // Callback Handlers
  42. // - window basics
  43. typedef void (*wp_IF_onDestroy)(CP_HINTERFACE hInterface);
  44. void IF_sethandler_onDestroy(CP_HINTERFACE hInterface, wp_IF_onDestroy pfnHandler);
  45. typedef void (*wp_IF_onCreate)(CP_HINTERFACE hInterface, const RECT* pInitialPosition);
  46. void IF_sethandler_onCreate(CP_HINTERFACE hInterface, wp_IF_onCreate pfnHandler);
  47. typedef void (*wp_IF_onPosChange)(CP_HINTERFACE hInterface, const RECT* pNewPosition, const BOOL bSizeChanged);
  48. void IF_sethandler_onPosChange(CP_HINTERFACE hInterface, wp_IF_onPosChange pfnHandler);
  49. typedef void (*wp_IF_onDraw)(CP_HINTERFACE hInterface, CPs_DrawContext* pContext);
  50. void IF_sethandler_onDraw(CP_HINTERFACE hInterface, wp_IF_onDraw pfnHandler);
  51. typedef void (*wp_IF_onDropFiles)(CP_HINTERFACE hInterface, HDROP hDrop);
  52. void IF_sethandler_onDropFiles(CP_HINTERFACE hInterface, wp_IF_onDropFiles pfnHandler);
  53. typedef void (*wp_IF_onFocus)(CP_HINTERFACE hInterface, const BOOL bHasFocus);
  54. void IF_sethandler_onFocus(CP_HINTERFACE hInterface, wp_IF_onFocus pfnHandler);
  55. // - keyboard
  56. typedef void (*wp_IF_onKeyDown)(CP_HINTERFACE hInterface, const unsigned int iVKeyCode, const BOOL bAlt, const BOOL bCtrl, const BOOL bShift);
  57. void IF_sethandler_onKeyDown(CP_HINTERFACE hInterface, wp_IF_onKeyDown pfnHandler);
  58. // - mouse
  59. typedef void (*wp_IF_onMouseMessage)(CP_HINTERFACE hInterface, const POINTS ptMouse, const unsigned short iFlags);
  60. void IF_SetMouseCapture(CP_HINTERFACE hInterface, wp_IF_onMouseMessage pfn_onMouseMove, wp_IF_onMouseMessage pfn_onMouseButton_LUp);
  61. void IF_ReleaseMouseCapture(CP_HINTERFACE hInterface);
  62. // - custom messages
  63. typedef LRESULT (*wp_IF_onAppMessage)(CP_HINTERFACE hInterface, const UINT uiMessage, const WPARAM wParam, const LPARAM lParam);
  64. void IF_sethandler_onAppMessage(CP_HINTERFACE hInterface, wp_IF_onAppMessage pfnHandler);
  65. typedef void (*wp_IF_onCommandMessage)(CP_HINTERFACE hInterface, const WPARAM wParam, const LPARAM lParam);
  66. void IF_sethandler_onCommandMessage(CP_HINTERFACE hInterface, wp_IF_onCommandMessage pfnHandler);
  67. typedef void (*wp_IF_onClose)(CP_HINTERFACE hInterface);
  68. void IF_sethandler_onClose(CP_HINTERFACE hInterface, wp_IF_onClose pfnHandler);
  69. //
  70. ////////////////////////////////////////////////////////////////////////////////