home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l405 / 1.ddi / PUSH.H_ / PUSH.bin
Encoding:
Text File  |  1993-04-28  |  8.2 KB  |  239 lines

  1. //---------------------------------------------------------------------------
  2. //        Copyright (C) 1991-93, Microsoft Corporation
  3. //
  4. // You have a royalty-free right to use, modify, reproduce and distribute
  5. // the Sample Custom Control Files (and/or any modified version) in any way
  6. // you find useful, provided that you agree that Microsoft has no warranty,
  7. // obligation or liability for any Custom Control File.
  8. //---------------------------------------------------------------------------
  9. // Push.h
  10. //---------------------------------------------------------------------------
  11.  
  12. //---------------------------------------------------------------------------
  13. // Resource Information
  14. //---------------------------------------------------------------------------
  15. // Toolbox bitmap resource IDs.
  16. //---------------------------------------------------------------------------
  17. #define IDBMP_PUSH        8000
  18. #define IDBMP_PUSHDOWN        8001
  19. #define IDBMP_PUSHMONO        8003
  20. #define IDBMP_PUSHEGA        8006
  21.  
  22.  
  23. //---------------------------------------------------------------------------
  24. // Change these for each new VBX file
  25. //---------------------------------------------------------------------------
  26. #define VBX_COMPANYNAME        "Microsoft Corporation\0"
  27. #define VBX_FILEDESCRIPTION       "Visual Basic Picture Push Custom Control Example\0"
  28. #define VBX_INTERNALNAME       "PUSH\0"
  29. #define VBX_LEGALCOPYRIGHT       "Copyright \251 Microsoft Corp. 1991-93\0"
  30. #define VBX_LEGALTRADEMARKS       "Microsoft\256 is a registered trademark of Microsoft Corporation. Visual Basic\231 is a trademark of Microsoft Corporation. Windows\231 is a trademark of Microsoft Corporation.\0"
  31. #define VBX_ORIGINALFILENAME       "PUSH.VBX\0"
  32. #define VBX_PRODUCTNAME        "Microsoft\256 Visual Basic\231 for Windows\231\0"
  33.  
  34.  
  35. //---------------------------------------------------------------------------
  36. // Update these fields for each build.
  37. //---------------------------------------------------------------------------
  38. #define VBX_VERSION            3,00,0,00
  39. #define VBX_VERSION_STR        "3.00.000\0"
  40.  
  41.  
  42. #ifndef RC_INVOKED
  43. //---------------------------------------------------------------------------
  44. // Macro for referencing member of structure
  45. //---------------------------------------------------------------------------
  46. #define OFFSETIN(struc, field)      ((USHORT)&(((struc *)0)->field))
  47.  
  48.  
  49. //---------------------------------------------------------------------------
  50. // PUSH control data and structs
  51. //---------------------------------------------------------------------------
  52. typedef struct tagPUSH
  53.     {
  54.     HPIC hpicUp;
  55.     HPIC hpicDown;
  56.     } PUSH;
  57.  
  58. typedef PUSH FAR * LPPUSH;
  59.  
  60. #define LppushDEREF(hctl)     ((LPPUSH)VBDerefControl(hctl))
  61.  
  62.  
  63. //---------------------------------------------------------------------------
  64. // Control Procedure
  65. //---------------------------------------------------------------------------
  66. LONG FAR PASCAL _export PushCtlProc(HCTL, HWND, USHORT, USHORT, LONG);
  67.  
  68.  
  69. //---------------------------------------------------------------------------
  70. // Property info
  71. //---------------------------------------------------------------------------
  72. PROPINFO propinfoPictureUp =
  73.     {
  74.     "PictureUp",
  75.     DT_PICTURE | PF_fGetData | PF_fSetCheck | PF_fSetData | PF_fSaveData,
  76.     OFFSETIN(PUSH,hpicUp),
  77.     0, 0, NULL, 0
  78.     };
  79.  
  80. PROPINFO propinfoPictureDown =
  81.     {
  82.     "PictureDown",
  83.     DT_PICTURE | PF_fGetData | PF_fSetCheck | PF_fSetData | PF_fSaveData,
  84.     OFFSETIN(PUSH,hpicDown),
  85.     0, 0, NULL, 0
  86.     };
  87.  
  88.  
  89. //---------------------------------------------------------------------------
  90. // Property list
  91. //---------------------------------------------------------------------------
  92. // Define the consecutive indicies for the properties
  93. //---------------------------------------------------------------------------
  94. #define IPROP_PUSH_NAME       0x0000
  95. #define IPROP_PUSH_INDEX      0x0001
  96. #define IPROP_PUSH_PARENT      0x0002
  97. #define IPROP_PUSH_BACKCOLOR      0x0003
  98. #define IPROP_PUSH_LEFT       0x0004
  99. #define IPROP_PUSH_TOP          0x0005
  100. #define IPROP_PUSH_WIDTH      0x0006
  101. #define IPROP_PUSH_HEIGHT      0x0007
  102. #define IPROP_PUSH_ENABLED      0x0008
  103. #define IPROP_PUSH_VISIBLE      0x0009
  104. #define IPROP_PUSH_MOUSEPOINTER   0x000A
  105. #define IPROP_PUSH_CAPTION      0x000B
  106. #define IPROP_PUSH_FONTNAME      0x000C
  107. #define IPROP_PUSH_FONTSIZE      0x000D
  108. #define IPROP_PUSH_FONTBOLD      0x000E
  109. #define IPROP_PUSH_FONTITALIC      0x000F
  110. #define IPROP_PUSH_FONTSTRIKE      0x0010
  111. #define IPROP_PUSH_FONTUNDER      0x0011
  112. #define IPROP_PUSH_DRAG       0x0012
  113. #define IPROP_PUSH_DRAGICON      0x0013
  114. #define IPROP_PUSH_TABINDEX      0x0014
  115. #define IPROP_PUSH_TABSTOP      0x0015
  116. #define IPROP_PUSH_TAG          0x0016
  117. #define IPROP_PUSH_PICTUREUP      0x0017
  118. #define IPROP_PUSH_PICTUREDOWN      0x0018
  119. #define IPROP_PUSH_HWND       0x0019
  120. #define IPROP_PUSH_HELPCONTEXTID  0x001A
  121.  
  122. PPROPINFO proplistPush[] =
  123.     {
  124.     PPROPINFO_STD_CTLNAME,
  125.     PPROPINFO_STD_INDEX,
  126.     PPROPINFO_STD_PARENT,
  127.     PPROPINFO_STD_BACKCOLOR,
  128.     PPROPINFO_STD_LEFT,
  129.     PPROPINFO_STD_TOP,
  130.     PPROPINFO_STD_WIDTH,
  131.     PPROPINFO_STD_HEIGHT,
  132.     PPROPINFO_STD_ENABLED,
  133.     PPROPINFO_STD_VISIBLE,
  134.     PPROPINFO_STD_MOUSEPOINTER,
  135.     PPROPINFO_STD_CAPTION,
  136.     PPROPINFO_STD_FONTNAME,
  137.     PPROPINFO_STD_FONTSIZE,
  138.     PPROPINFO_STD_FONTBOLD,
  139.     PPROPINFO_STD_FONTITALIC,
  140.     PPROPINFO_STD_FONTSTRIKE,
  141.     PPROPINFO_STD_FONTUNDER,
  142.     PPROPINFO_STD_DRAGMODE,
  143.     PPROPINFO_STD_DRAGICON,
  144.     PPROPINFO_STD_TABINDEX,
  145.     PPROPINFO_STD_TABSTOP,
  146.     PPROPINFO_STD_TAG,
  147.     &propinfoPictureUp,
  148.     &propinfoPictureDown,
  149.     PPROPINFO_STD_HWND,
  150.     PPROPINFO_STD_HELPCONTEXTID,
  151.     NULL
  152.     };
  153.  
  154.  
  155. //---------------------------------------------------------------------------
  156. // Event procedure parameter prototypes
  157. //---------------------------------------------------------------------------
  158. WORD Parms_I2[]   = {ET_I2};            // 1 x I2 parm
  159. WORD Parms_2xI2[] = {ET_I2, ET_I2};        // 2 x I2 parm
  160. WORD Parms_SD[]   = {ET_SD};            // 1 x SD parm
  161.  
  162. EVENTINFO Event_Click =
  163.     {
  164.     "Click",
  165.     1,
  166.     2,
  167.     Parms_SD,
  168.     "ButtonCaption as String"
  169.     };
  170.  
  171.  
  172. //---------------------------------------------------------------------------
  173. // Event list
  174. //---------------------------------------------------------------------------
  175. // Define the consecutive indicies for the events
  176. //---------------------------------------------------------------------------
  177. #define EVENT_PUSH_CLICK    0
  178. #define EVENT_PUSH_DRAGDROP    1
  179. #define EVENT_PUSH_DRAGOVER    2
  180. #define EVENT_PUSH_GOTFOCUS    3
  181. #define EVENT_PUSH_KEYDOWN    4
  182. #define EVENT_PUSH_KEYPRESS    5
  183. #define EVENT_PUSH_KEYUP    6
  184. #define EVENT_PUSH_LOSTFOCUS    7
  185.  
  186. PEVENTINFO eventlistPush[] =
  187.     {
  188.     &Event_Click,
  189.     PEVENTINFO_STD_DRAGDROP,
  190.     PEVENTINFO_STD_DRAGOVER,
  191.     PEVENTINFO_STD_GOTFOCUS,
  192.     PEVENTINFO_STD_KEYDOWN,
  193.     PEVENTINFO_STD_KEYPRESS,
  194.     PEVENTINFO_STD_KEYUP,
  195.     PEVENTINFO_STD_LOSTFOCUS,
  196.     NULL
  197.     };
  198.  
  199.  
  200. //---------------------------------------------------------------------------
  201. // Model struct
  202. //---------------------------------------------------------------------------
  203. // Define the control model (using the event and property structures).
  204. //---------------------------------------------------------------------------
  205. MODEL modelPush =
  206.     {
  207.     VB_VERSION,             // VB version being used
  208.     MODEL_fFocusOk | MODEL_fMnemonic,    // MODEL flags
  209.     (PCTLPROC)PushCtlProc,        // Control procedure
  210.     CS_VREDRAW | CS_HREDRAW,        // Class style
  211.     BS_PUSHBUTTON | BS_OWNERDRAW,    // Default Window style
  212.     sizeof(PUSH),            // cbCtlExtra for PUSH structure
  213.     IDBMP_PUSH,             // Palette bitmap ID
  214.     "Push",                // Default control name
  215.     "PushButton",            // Visual Basic class name
  216.     "Button",                // Parent class name
  217.     proplistPush,            // Properties list
  218.     eventlistPush,            // Events list
  219.     IPROP_PUSH_CAPTION,         // Default property
  220.     EVENT_PUSH_CLICK,            // Default event
  221.     IPROP_PUSH_CAPTION            // Property representing value of ctl
  222.     };
  223.  
  224. LPMODEL modellistPush[] =
  225.     {
  226.     &modelPush,
  227.     NULL
  228.     };
  229.  
  230. MODELINFO modelinfoPush =
  231.     {
  232.     VB_VERSION,             // VB version being used
  233.     modellistPush            // MODEL list
  234.     };
  235.  
  236. #endif // RC_INVOKED
  237.  
  238. //---------------------------------------------------------------------------
  239.