home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c083 / 14.ddi / GENINC.PAK / BIVBX.H < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-02  |  6.5 KB  |  201 lines

  1. /*  bivbx.h
  2.  
  3.     Defines structs and functions for dealing with VBX controls.
  4.  
  5. */
  6. /*
  7.  *      C/C++ Run Time Library - Version 6.0
  8.  *
  9.  *      Copyright (c) 1993 by Borland International
  10.  *      All Rights Reserved.
  11.  *
  12.  */
  13.  
  14. #ifndef __BIVBX_H
  15. #define __BIVBX_H
  16.  
  17. #ifdef WIN32
  18.   #error 16bit compilations only, do not build 32bit applications using VBX support
  19. #endif
  20.  
  21. #define STRICT
  22. #include <windows.h>
  23.  
  24. #ifdef __cplusplus
  25.   extern "C" {            /* Assume C declarations for C++ */
  26. #endif
  27.  
  28. #ifndef __VBX_H
  29.  
  30.   typedef LPSTR          HSZ;
  31.   typedef unsigned char  ENUM;
  32.   typedef LPVOID         HCTL;
  33.   typedef short          SHORT;
  34.   typedef unsigned short USHORT;
  35.   typedef HANDLE         HFORMFILE;
  36.   typedef USHORT         ERR;
  37.   typedef WORD           HPIC;
  38.   typedef LPVOID         HLSTR;
  39.  
  40.   #ifdef RC_INVOKED
  41.     #define DLGINIT 240
  42.   #else
  43.     #define RT_DLGINIT MAKEINTRESOURCE(240)
  44.   #endif
  45.  
  46. #endif
  47.  
  48. /* VBX Window Messages */
  49. #define WM_VBXFIREEVENT 0x0360
  50.  
  51. /* VBX Event Structure */
  52. typedef struct VBXEVENT {
  53.   HCTL   Control;
  54.   HWND   Window;
  55.   int    ID;
  56.   int    EventIndex;
  57.   LPCSTR EventName;
  58.   int    NumParams;
  59.   LPVOID ParamList;
  60. } VBXEVENT, FAR * LPVBXEVENT, NEAR * NPVBXEVENT;
  61.  
  62. /* macros for accessing event arguments */
  63. #define VBX_EVENTARGNUM(event,type,index) \
  64.   *(((type FAR * FAR *)(event)->ParamList)[(event)->NumParams - (index) - 1])
  65. #define VBX_EVENTARGSTR(event,index) \
  66.   (((HLSTR FAR *)(event)->ParamList)[(event)->NumParams - (index) - 1])
  67.   
  68. /* Initialization */
  69. BOOL FAR _export PASCAL VBXInit(HINSTANCE instance, LPCSTR classPrefix);
  70. void FAR _export PASCAL VBXTerm(void);
  71. BOOL FAR _export PASCAL VBXEnableDLL(HINSTANCE instApp, HINSTANCE instDLL);
  72.  
  73. /* Controls */
  74. HCTL FAR _export PASCAL VBXGetHctl(HWND window);
  75. HWND FAR _export PASCAL VBXGetHwnd(HCTL control);
  76. HCTL FAR _export PASCAL VBXCreate(HWND windowParent, UINT id,
  77.                                   LPCSTR library, LPCSTR cls,
  78.                                   LPCSTR title, DWORD style,
  79.                                   int x, int y, int w, int h,
  80.                                   HFORMFILE file);
  81.  
  82. /* Dialogs */
  83. BOOL FAR _export PASCAL VBXInitDialog(HWND window, HINSTANCE instance, LPSTR id);
  84.  
  85. /* Properties */
  86. #define PTYPE_CSTRING    0x01  /* HSZ */
  87. #define PTYPE_SHORT      0x02  /* short */
  88. #define PTYPE_LONG       0x03  /* LONG */
  89. #define PTYPE_BOOL       0x04  /* BOOL */
  90. #define PTYPE_COLOR      0x05  /* COLORREF or DWORD */
  91. #define PTYPE_ENUM       0x06  /* BYTE */
  92. #define PTYPE_REAL       0x07  /* float */
  93. #define PTYPE_XPOS       0x08  /* LONG (twips) */
  94. #define PTYPE_XSIZE      0x09  /* LONG (twips) */
  95. #define PTYPE_YPOS       0x0A  /* LONG (twips) */
  96. #define PTYPE_YSIZE      0x0B  /* LONG (twips) */
  97. #define PTYPE_PICTURE    0x0C  /* HPIC */
  98. #define PTYPE_BSTRING    0x0D  /* HLSTR */
  99.  
  100. int    FAR _export PASCAL VBXGetNumProps(HCTL control);
  101. BOOL   FAR _export PASCAL VBXGetProp(HCTL control, int index, LPVOID value);
  102. ERR    FAR _export PASCAL VBXGetPropByName(HCTL control, LPSTR name, LPVOID value);
  103. int    FAR _export PASCAL VBXGetPropIndex(HCTL control, LPCSTR name);
  104. LPCSTR FAR _export PASCAL VBXGetPropName(HCTL control, int index);
  105. USHORT FAR _export PASCAL VBXGetPropType(HCTL control, int index);
  106. BOOL   FAR _export PASCAL VBXIsArrayProp(HCTL control, int index);
  107. BOOL   FAR _export PASCAL VBXSetProp(HCTL control, int index, LONG value);
  108. ERR    FAR _export PASCAL VBXSetPropByName(HCTL control, LPSTR name, LONG value);
  109.  
  110. /* Events */
  111. int    FAR _export PASCAL VBXGetEventIndex(HCTL control, LPCSTR name);
  112. LPCSTR FAR _export PASCAL VBXGetEventName(HCTL control, int index);
  113. int    FAR _export PASCAL VBXGetNumEvents(HCTL control);
  114.  
  115. /* methods */
  116. BOOL FAR _export PASCAL VBXMethod(HCTL control, int method, long far * args);
  117. BOOL FAR _export PASCAL VBXMethodAddItem(HCTL control, int index, LPCSTR item);
  118. BOOL FAR _export PASCAL VBXMethodDrag(HCTL control, int action);
  119. BOOL FAR _export PASCAL VBXMethodMove(HCTL control, long x, long y, long w, long h);
  120. BOOL FAR _export PASCAL VBXMethodRefresh(HCTL control);
  121. BOOL FAR _export PASCAL VBXMethodRemoveItem(HCTL control, int item);
  122.  
  123. /* pixel/twips conversions */
  124. SHORT FAR _export PASCAL VBXTwp2PixY(LONG twips);
  125. SHORT FAR _export PASCAL VBXTwp2PixX(LONG twips);
  126. LONG  FAR _export PASCAL VBXPix2TwpY(SHORT pixels);
  127. LONG  FAR _export PASCAL VBXPix2TwpX(SHORT pixels);
  128.  
  129. /* dynamic strings (HSZ) */
  130. HSZ   FAR _export PASCAL VBXCreateCString(HANDLE segment, LPSTR string);
  131. LPSTR FAR _export PASCAL VBXGetCStringPtr(HSZ string);
  132. HSZ   FAR _export PASCAL VBXDestroyCString(HSZ string);
  133. LPSTR FAR _export PASCAL VBXLockCString(HSZ string);
  134. VOID  FAR _export PASCAL VBXUnlockCString(HSZ string);
  135.  
  136. /* color properties */
  137. #define COLOR_SYSCOLOR          0x80000000L
  138. #define MAKESYSCOLOR(iColor)    ((COLORREF)((iColor)|COLOR_SYSCOLOR))
  139.  
  140. /* pictures */
  141. typedef struct PICTURE {
  142.   BYTE Type;
  143.   union {
  144.     struct {
  145.       HBITMAP  Bitmap;
  146.       HPALETTE Palette;
  147.     } Bitmap;
  148.     struct {
  149.       HANDLE Metafile;
  150.       int xExtent;
  151.       int yExtent;
  152.     } Metafile;
  153.     struct {
  154.       HICON Icon;
  155.     } Icon;
  156.   } Data;
  157.   BYTE unused0;
  158.   BYTE unused1;
  159.   BYTE unused2;
  160.   BYTE unused3;
  161. } PICTURE, FAR * LPPICTURE, NEAR * NPPICTURE;
  162.  
  163. #define PICTURE_EMPTY       0
  164. #define PICTURE_BMP         1
  165. #define PICTURE_META        2
  166. #define PICTURE_ICON        3
  167.  
  168. HPIC FAR _export PASCAL VBXCreatePicture(LPPICTURE picture);
  169. VOID FAR _export PASCAL VBXDestroyPicture(HPIC pic);
  170. HPIC FAR _export PASCAL VBXGetPicture(HPIC pic, LPPICTURE picture);
  171. ERR  FAR _export PASCAL VBXGetPictureFromClipboard(HPIC FAR *pic, HANDLE data, WORD format);
  172. HPIC FAR _export PASCAL VBXReferencePicture(HPIC pic);
  173.  
  174. /* Basic language strings (HLSTR) */
  175. HLSTR  FAR _export PASCAL VBXCreateBasicString(LPVOID buffer, USHORT len);
  176. LPSTR  FAR _export PASCAL VBXGetBasicStringPtr(HLSTR string);
  177. VOID   FAR _export PASCAL VBXDestroyBasicString(HLSTR string);
  178. USHORT FAR _export PASCAL VBXGetBasicStringLength(HLSTR string);
  179. ERR    FAR _export PASCAL VBXSetBasicString(HLSTR far *string, LPVOID buffer, USHORT len);
  180.  
  181. /* array property structure */
  182. typedef struct ELEMENTSTRUCT {
  183.   LONG   Value;
  184.   USHORT NumElems;
  185.   struct {
  186.     USHORT Type;
  187.     LONG   Index;
  188.   } Element[1];
  189. } ELEMENTSTRUCT, FAR * LPELEMENTSTRUCT, NEAR * NPELEMENTSTRUCT;
  190.  
  191. /* form files */
  192. HFORMFILE FAR _export PASCAL VBXCreateFormFile(LONG len, LPVOID data);
  193. BOOL      FAR _export PASCAL VBXDeleteFormFile(HFORMFILE file);
  194.  
  195. #ifdef __cplusplus
  196.   }
  197. #endif
  198.  
  199. #endif  /* __BIVBX_H */
  200.  
  201.