'=====================================================================' '= PENAPI.TXT Windows for Pens - Visual Basic Declarations =' '= =' '= Copyright (c) 1992-94, Microsoft Corp. =' '= All rights reserved. =' '= =' '=====================================================================' '=====================================================================' '= Register Pen Applications =' '=====================================================================' Declare Function RegisterPenApps Lib "penwin.dll" (ByVal wFlags As Integer, ByVal fRegister As Integer) As Integer Declare Function IsPenAware Lib "penwin.dll" () As Integer Declare Function GetVersionPenWin Lib "penwin.dll" () As Integer '=====================================================================' '= ALC CODES =' '=====================================================================' ' These constants are used when defining the ' CharSet property of HEdits and BEdits Global Const ALC_ALL = &H43FF Global Const ALC_DEFAULT = &H0 Global Const ALC_LCALPHA = &H1 Global Const ALC_UCALPHA = &H2 Global Const ALC_ALPHA = &H3 Global Const ALC_NUMERIC = &H4 Global Const ALC_ALPHANUMERIC = &H7 Global Const ALC_PUNC = &H8 Global Const ALC_MATH = &H10 Global Const ALC_MONETARY = &H20 Global Const ALC_OTHER = &H40 Global Const ALC_WHITE = &H100 Global Const ALC_NONPRINT = &H200 Global Const ALC_GESTURE = &H4000 Global Const ALC_USEBITMAP = &H8000 Global Const ALC_DBCS = &H400 Global Const ALC_HIRAGANA = &H100000 Global Const ALC_KATAKANA = &H200000 Global Const ALC_KANJI = &H40000 Global Const ALC_OEM = &HFF80000 Global Const ALC_RESERVED = &H43FF Global Const ALC_NONPRIORITY = &H0 Global Const ALC_SYSMINIMUM = (ALC_ALPHANUMERIC Or ALC_WHITE Or ALC_GESTURE) '=====================================================================' '= Point and Rectangle Structures =' '=====================================================================' Type POINTSHORT x As Integer y As Integer End Type Type RECTSHORT left As Integer top As Integer right As Integer bottom As Integer End Type '=====================================================================' '= Maniplating Pen Data =' '=====================================================================' Type PENDATAHEADER wVersion As Integer ' Pen Data format Version cbSizeUsed As Integer ' Size of Pen data memory block cStrokes As Integer ' Number of strokes cPnt As Integer ' Total number of points cPntStrokeMax As Integer ' Length of longest stroke in points rectBound As RECTSHORT ' Coordinates of bounding rectangle wPndts As Integer ' State of various PDTS_??? bits nInkWidth As Integer ' Ink Width rgbInk As Long ' Ink Color End Type Global Const PDTS_LOMETRIC = &H0 ' Each logical unit is mapped to 0.01mm. Positive X to right; Positive Y down. Global Const PDTS_HIMETRIC = &H1 ' Logical mapped to 0.001mm. X+ to right; Y+ down Global Const PDTS_HIENGLISH = &H2 ' Logical mapped to 0.001 inch. X+ to right; y+ is down Global Const PDTS_SCALEMAX = &H3 ' Maximum scaling allowed Global Const PDTS_DISPLAY = &H4 ' Logical mapped to display pixel. X+ to right; Y+ is down Global Const PDTS_ARBITRARY = &H5 ' Arbitrary scale, application dependent Global Const PDTS_SCALEMASK = &HF ' Mask for bits of scale Global Const PDTS_STANDARDSCALE = PDTS_HIENGLISH Global Const PDTS_NOPENINFO = &H100 ' No PENINFO structure Global Const PDTS_NOUPPOINTS = &H200 ' The data points on pen up have been removed Global Const PDTS_NOOEMDATA = &H400 ' No OEM data present Global Const PDTS_NOCOLINEAR = &H800 Global Const PDTS_COMPRESSED = &H8000 ' The data is compressed Global Const PDTS_COMPRESSMETHOD = &HF0 ' Bits have been saved to encode which compression scheme was used Global Const PDTS_COMPRESS2NDDERIV = &H10 ' The second derivative betwen points is stored Global Const PDTT_DEFAULT = &H0 ' reallocates memory block to fit data. Should be run before GlobalSize(hpendata) is taken Global Const PDTT_PENINFO = PDTS_NOPENINFO ' removes PenInfo from the header Global Const PDTT_UPPOINTS = PDTS_NOUPPOINTS ' Throws away all data from points collected when pen is not in contact with the tablet. Global Const PDTT_OEMDATA = PDTS_NOOEMDATA ' Removes All OEM Data that is not x,y (such as presure and angle) Global Const PDTT_COLINEAR = PDTS_NOCOLINEAR ' Removes successive idetical points and colinear points from pendata Global Const PDTT_COMPRESS = PDTS_COMPRESSED ' Compresses data without loss of any information. Global Const PDTT_DECOMPRESS = &H4000 ' Decompresses Data. Cannot be used in conjunction with other timing options. Global Const PDTT_ALL = (PDTT_PENINFO Or PDTT_UPPOINTS Or PDTT_OEMDATA Or PDTT_COLINEAR) Global Const MAXOEMDATAWORDS = 6 Type STROKEINFO cPnts As Integer ' Count of points in stroke cbPnts As Integer ' Count of bytes used for stroke wPdk As Integer ' State of stroke dwTick As Long ' Time of stroke End Type Type OEMPENINFO wPdts As Integer wValMax As Integer wDistinct As Integer End Type Type PENINFO cxRawWidth As Integer ' Max x & width of tablet in 0.01 of inch cyRawHeight As Integer ' Max y & height of tablet " " " " wDistinctWidth As Integer ' Num of distinct X values returned by tablet wDistinctHieght As Integer ' Num of distinct Y values returned by tablet nSamplingRate As Integer ' Samples/second nSamplingDist As Integer ' Minimum distance moved in either direction lPdc As Long ' Pen Device capabilities cbOemData As Integer ' Width of OEM Packet rgoempeninfo(1 To MAXOEMDATAWORDS) As OEMPENINFO rgwReserved(1 To 8) As Integer End Type Global Const PDT_NULL = 0 Global Const PDT_PRESSURE = 1 Global Const PDT_HEIGHT = 2 Global Const PDT_ANGLEXY = 3 Global Const PDT_ANGLEZ = 4 Global Const PDT_BARRELROTATION = 5 Global Const PDT_OEMSPECIFIC = 16 Global Const PDC_INTEGRATED = &H1 Global Const PDC_PROXIMITY = &H2 Global Const PDC_RANGE = &H4 Global Const PDC_INVERT = &H8 Global Const PDC_RELATIVE = &H10 Global Const PDC_BARREL1 = &H20 Global Const PDC_BARREL2 = &H40 Global Const PDC_BARREL3 = &H80 Declare Function DuplicatePenData Lib "penwin.dll" (ByVal hPenData As Integer, ByVal gMemFlags As Integer) As Integer Declare Function CompactPenData Lib "penwin.dll" (ByVal hPenData As Integer, ByVal wTrimOptions As Integer) As Integer Declare Function BeginEnumStrokes Lib "penwin.dll" (ByVal hPenData As Integer) As Long Declare Function GetPenDataInfo Lib "penwin.dll" (ByVal hPenData As Integer, lppendataheader As PENDATAHEADER, lppeninfo As Any, ByVal dwReserve As Long) As Integer Declare Function GetPenDataStroke Lib "penwin.dll" (ByVal lppendata As Long, ByVal wStroke As Integer, lplpPoint As Any, lplpvOem As Any, lpsi As STROKEINFO) As Integer Declare Function GetPointsFromPenData Lib "penwin.dll" (ByVal hPenData As Integer, ByVal wStroke As Integer, ByVal wPnts As Integer, ByVal cPnts As Integer, lppoint As Any) As Integer Declare Function AddPointsPenData Lib "penwin.dll" (ByVal hPenData As Integer, lpPnt As Any, lpvOemData As Any, lpsiNew As Any) As Integer '=====================================================================' '= Symbol Graph Structures =' '=====================================================================' Global Const MAXHOTSPOT = 8 '=== Symbol Character array ==========================================' Type SYC wStrokeFirst As Integer wPntFirst As Integer wStrokeLast As Integer wPntLast As Integer fLastSyc As Integer End Type '=== Symbol Graph element ============================================' Type SYG rgpntHotSpotsArray(1 To MAXHOTSPOT) As POINTSHORT cHotSpot As Integer nFirstBox As Integer lRecogVal As Long lpSye As Long cSye As Integer lpSyc As Long cSyc As Integer End Type '=== Symbol Element ==================================================' Type SYE Syv As Long lRecogVal As Long cl As Integer iSyc As Integer End Type '=== SYV values with special meanings to Windows For Pens Global Const SYV_NULL = &H0 Global Const SYV_UNKNOWN = &H1 Global Const SYV_EMPTY = &H3 Global Const SYV_BEGINOR = &H10 Global Const SYV_ENDOR = &H11 Global Const SYV_OR = &H12 Global Const SYV_SOFTNEWLINE = &H20 Global Const SYV_SPACENULL = &H10000 '=== SYV values for gestures Global Const SYV_CLEAR = &H2FFD5 Global Const SYV_EXTENDSELECT = &H2FFD8 Global Const SYV_UNDO = &H2FFD9 Global Const SYV_COPY = &H2FFDA Global Const SYV_CUT = &H2FFDB Global Const SYV_PASTE = &H2FFDC Global Const SYV_CLEARWORD = &H2FFDD Global Const SYV_USER = &H2FFDE Global Const SYV_CORRECT = &H2FFDF Global Const SYV_BACKSPACE = &H20008 Global Const SYV_TAB = &H20009 Global Const SYV_RETURN = &H2000D Global Const SYV_SPACE = &H20020 '=== Application Specific gestures circle a-z and circle A-Z Global Const SYV_APPGESTUREMASK = &H20000 Global Const SYV_CIRCLEUPA = &H224B6 Global Const SYV_CIRCLEUPZ = &H224CF Global Const SYV_CIRCLELOA = &H224D0 Global Const SYV_CIRCLELOZ = &H224E9 '=== SYV for Shapes (if recognizer installed) Global Const SYV_SHAPELINE = &H40001 Global Const SYV_SHAPEELLIPSE = &H40002 Global Const SYV_SHAPERECT = &H40003 Global Const SYV_SHAPEMIN = SYV_SHAPELINE Global Const SYV_SHAPEMAX = SYV_SHAPERECT '=== To detect if SYV is a particular type, let SyvHi=(syv\&H10000) '=== Compare SyvHi with below Global Const SYVHI_SPECIAL = 0 Global Const SYVHI_ANSI = 1 Global Const SYVHI_GESTURE = 2 Global Const SYVHI_KANJI = 3 Global Const SYVHI_SHAPE = 4 Global Const SYVHI_UNICODE = 5 Global Const SYVHI_VKEY = 6 '=====================================================================' '= RcResult Structures =' '=====================================================================' Type RCRESULT SYGraph As SYG wResultsType As Integer cSyv As Integer lpsyv As Long hSyv As Integer nBaseLine As Integer nMidLine As Integer hPenData As Integer rectboundink As RECTSHORT pntEnd As POINTSHORT lprc As Long End Type Global Const RCRT_DEFAULT = &H0 Global Const RCRT_UNIDENTIFIED = &H1 Global Const RCRT_GESTURE = &H2 Global Const RCRT_NOSYMBOLMATCH = &H3 Global Const RCRT_PRIVATE = &H4000 Global Const RCRT_NORECOG = &H8000 Global Const RCRT_ALREADYPROCESSED = &H8 Global Const RCRT_GESTURETRANSLATED = &H10 Global Const RCRT_GESTURETOKEYS = &H20 Declare Function GetSymbolMaxLength Lib "penwin.dll" (lpsyg As Any) As Integer Declare Function GetSymbolCount Lib "penwin.dll" (lpsyg As Any) As Integer Declare Function SymbolToCharacter Lib "penwin.dll" (lpsyv As Any, ByVal cSyv As Any, ByVal lpstr As String, lpnCnvt As Any) '=====================================================================' '= RC (Recognition Context) Definitions =' '=====================================================================' Global Const CL_NULL = 0 Global Const CL_MINIMUM = 1 Global Const CL_MAXIMUM = 100 Global Const INKWIDTH_MINIMUM = 0 Global Const INKWIDTH_MAXIMUM = 15 Global Const ENUM_MINIMUM = 1 Global Const ENUM_MAXIMUM = 4096 Global Const MAXDICTIONARIES = 16 Type GUIDE xOrigin As Integer yOrigin As Integer cxBox As Integer cyBox As Integer cxBase As Integer cyBase As Integer cHorzBox As Integer cVertBox As Integer cyMid As Integer End Type Global Const cbRcLanguageMax = 44 Global Const cbRcUserMax = 32 Global Const cbRcrgbfAlcMax = 32 Global Const cwRcReservedMax = 8 Type RC ' Provided for Backward Compatibility Only hRec As Integer hWnd As Integer wEventRef As Integer wRcPreferences As Integer lRcOptions As Long lpfnYield As Long lpUser As String * cbRcUserMax wCountry As Integer wIntlPreferences As Integer lpLanguage As String * cbRcLanguageMax rglpdf(1 To MAXDICTIONARIES) As Long wTryDictinary As Integer clErrorLevel As Integer alc As Long alcPriority As Long rgbfAlc As String * cbRcrgbfAlcMax wResultMode As Integer wTimeOut As Integer lPcm As Long rectBound As RECTSHORT rectExclude As RECTSHORT guid As GUIDE wRcOrient As Integer wRcDirect As Integer nInkWidth As Integer rgbInk As Long dwAppParam As Long dwDictParam As Long dwRecognizer As Long rgwReserved(1 To cwRcReservedMax) As Integer End Type Declare Function InitRc Lib "penwin.dll" (ByVal hWnd As Integer, lpSrc As RC) As Integer Declare Function InstallRecognizer Lib "penwin.dll" (ByVal lpszRecogName As String) As Integer Declare Function UnInstallRecognizer Lib "penwin.dll" (ByVal hRec As Integer) As Integer Declare Function GetGlobalRC Lib "penwin.dll" (lprc As Any, ByVal lpDefRecog As String, ByVal lpDefRecog As String, ByVal cbDefDictMax As Integer) As Integer Declare Function SetGlobalRC Lib "penwin.dll" (lprc As Any, ByVal lpDefRecog As String, ByVal lpDefDict As String) As Integer Global Const GGRC_OK = 0 Global Const GGRC_DICTBUFTOOSMALL = 1 Global Const GGRC_PARAMERROR = 2 Global Const SGRC_OK = &H0 Global Const SGRC_USER = &H1 Global Const SGRC_PARAMERROR = &H2 Global Const SGRC_RC = &H4 Global Const SGRC_RECOGNIZER = &H8 Global Const SGRC_DICTIONARY = &H10 Global Const SGRC_INIFILE = &H20 '=====================================================================' '= Training And Correcting =' '=====================================================================' Declare Function TrainInk Lib "penwin.dll" (lprc As RC, ByVal hPenData As Integer, lpsyv As Any) As Integer Declare Function TrainContext Lib "penwin.dll" (lprcResult As RC, lpSye As Any, ByVal cSye As Integer, lpSyc As Any, ByVal cSyc As Integer) As Integer Declare Function CorrectWriting Lib "penwin.dll" (ByVal hWnd As Integer, ByVal lpstr As String, ByVal cBuf As Integer, lprc As RC, ByVal dwCwrFlags As Any, ByVal dwReserved As Any) As Integer Global Const CWR_STRIPCR = &H1 Global Const CWR_STRIPLF = &H2 Global Const CWR_STRIPTAB = &H4 Global Const CWR_SINGLELINEEDIT = &H7 Global Const CWR_TITLE = &H10 '=====================================================================' '= Other Windows For Pens API's =' '=====================================================================' Declare Function BoundingRectFromPoints Lib "penwin.dll" (lpPnt As Any, ByVal cPnt, lprectBound As RECTSHORT) As Integer Declare Function TPtoDP Lib "penwin.dll" (lpPnts As Any, ByVal cPnts As Integer) As Integer Declare Function DPtoTP Lib "penwin.dll" (lpPnts As Any, ByVal cPnts As Integer) As Integer Declare Function DrawPenData Lib "penwin.dll" (ByVal hDC As Integer, lpRect As RECTSHORT, ByVal hPenData As Integer) As Integer Declare Function MetricScalePenData Lib "penwin.dll" (ByVal hPenData As Integer, ByVal wPdts) As Integer Declare Function OffsetPenData Lib "penwin.dll" (ByVal hPenData As Integer, ByVal dx As Integer, ByVal dy As Integer) As Integer Declare Function RecognizePenData Lib "penwin.dll" (lprc As RC, ByVal hPenData As Integer) As Integer Declare Function CreatePenData Lib "penwin.dll" (lppenifo As PENINFO, ByVal cbOemData As Integer, ByVal wPdtScal As Integer, ByVal gMemFlags As Integer) As Integer Declare Function ExecuteGesture Lib "penwin.dll" (ByVal hWnd As Integer, ByVal Syv As Long, lprcResult As RC) '=== Message Routines Constants ======================================' Global Const WM_PENWINFIRST = &H380 'Main Offset for Pen messages Global Const WM_RCRESULT = WM_PENWINFIRST + 1 Global Const WM_HOOKRCRESULT = WM_PENWINFIRST + 2 Global Const WM_GLOBALRCCHANGE = WM_PENWINFIRST + 3 Global Const WM_SKB = WM_PENWINFIRST + 4 Global Const WM_HEDITCTL = WM_PENWINFIRST + 5 'Configures HEdits and BEdits '== The constants below are used as wParam with WM_HEDITCTL message Global Const HE_GETRC = 3 Global Const HE_SETRC = 4 Global Const HE_GETINFLATE = 5 Global Const HE_SETINFLATE = 6 Global Const HE_GETUNDERLINE = 7 Global Const HE_SETUNDERLINE = 8 Global Const HE_GETINKHANDLE = 9 Global Const HE_SETINKMODE = 10 Global Const HE_STOPINKMODE = 11 Global Const HE_GETRCRESULTCODE = 12 Global Const HE_DEFAULTFONT = 13 Global Const HE_CHARPOSITION = 14 Global Const HE_CHAROFFSET = 15 Global Const HE_GETRCRESULT = 22 '=====================================================================' '= END WINDOWS FOR PENS API =' '=====================================================================' '=====================================================================' '= PENCNTRL.VBX Constants and Function Declarations =' '=====================================================================' '== Property Settings ==============================================' ' AutoSize Property: IEdit control Global Const PEN_AUTOSIZE_NONE = 0 ' No AutoSizing occurs Global Const PEN_AUTOSIZE_STRETCHBITMAP = 1 ' Stretch Bitmap to fit Window Global Const PEN_AUTOSIZE_SIZEWINDOW = 2 ' Size Window to fit Bitmap Global Const PEN_AUTOSIZE_TILE = 3 ' Tile Bitmap Global Const PEN_AUTOSIZE_CENTER = 4 ' Center Bitmap ' BorderStyle Property: BEdit, HEdit, and IEdit controls Global Const PEN_BORDERSTYLE_NONE = 0 ' No Border Global Const PEN_BORDERSTYLE_SINGLE = 1 ' Single Line Border Global Const PEN_BORDERSTYLE_UNDERLINE = 2 ' Underline: Valid for HEdit only ' BoxCross Property: BEdit control only Global Const PEN_BOXCROSS_OFF = 0 ' BoxCross not displayed Global Const PEN_BOXCROSS_ON = 1 ' BoxCross displayed ' CombStyle Property: BEdit control only Global Const PEN_COMBSTYLE_COMB = 0 ' Comb Style Global Const PEN_COMBSTYLE_BOX = 1 ' Box Style ' FormatAttrb Property: IEdit control only Global Const PEN_FORMATATTRB_COLOR = 0 ' Set Stroke Color Global Const PEN_FORMATATTRB_WIDTH = 1 ' Set Stroke Width Global Const PEN_FORMATATTRB_BOTH = 2 ' Set both Stroke Color & Width ' FormatItem Property: IEdit control only Global Const PEN_FORMATITEM_ALL = 0 ' Set Attributes for All Strokes Global Const PEN_FORMATITEM_SELECTION = 1 ' Set Attributes for Selected Strokes Global Const PEN_FORMATITEM_INDEX = 2 ' Set Attributes for Stroke specified by StrokeIndex ' GestureSet Property: BEdit and HEdit controls Global Const PEN_GESTURESET_SELECTION = &H1 ' Selection and Lasso Global Const PEN_GESTURESET_CLIPBOARD = &H2 ' Cut, Copy, Paste Global Const PEN_GESTURESET_WHITECHARS = &H4 ' Space, Tab, Return Global Const PEN_GESTURESET_EDIT = &H10 ' Insert, Correct, Undo Global Const PEN_GESTURESET_CIRCLELOWER = &H100 ' Lowercase Circle Gestures Global Const PEN_GESTURESET_CIRCLEUPPER = &H200 ' Uppercase Circle Gestures ' hInkGet/hInkSet Properties: IEdit control only Global Const PEN_HINKGET_ALL = 0 ' Get all the Ink in the IEdit Global Const PEN_HINKGET_SELECTION = 1 ' Get only the selected Ink ' InkDataMode Property: BEdit, HEdit, and IEdit controls Global Const PEN_INKDATAMODE_REPLACE = 0 ' Existing Ink is replaced when new Ink is assigned to InkDataString Global Const PEN_INKDATAMODE_APPEND = 1 ' New ink is appended to existing Ink ' InkingMode Property: IEdit control only Global Const PEN_INKINGMODE_READY = 0 ' Ready Mode Global Const PEN_INKINGMODE_ERASE = 1 ' Erasing Mode for erasing Ink Global Const PEN_INKINGMODE_LASSO = 2 ' Lasso Selection Mode ' InkInput Property: IEdit control only Global Const PEN_INKINPUT_MOVE = 1 ' Ink will be Moved into IEdit Global Const PEN_INKINPUT_RESIZE = 2 ' Ink will be Resized to fit in IEdit Global Const PEN_INKINPUT_CROP = 4 ' Ink drawn outside IEdit will be cropped Global Const PEN_INKINPUT_DISCARD = 8 ' Ink will be discarded if any part of stroke is outside of IEdit ' InkWidth Property: BEdit, HEdit, and IEdit controls Global Const PEN_INKWIDTH_DEFAULT = -1 ' Use system default Ink Width Global Const PEN_INKWIDTH_MIN = 0 ' Minimum Valid size; no Ink is displayed Global Const PEN_INKWIDTH_MAX = 15 ' Maximum Valid Ink Width (in Pixels) ' Recog Property: IEdit control only Global Const PEN_RECOG_NONE = 0 ' No Recognition Global Const PEN_RECOG_GESTURES = 1 ' Recognize Gestures Only Global Const PEN_RECOG_ALL = 2 ' Recognize All ' ScrollBars Property: BEdit and HEdit controls Global Const PEN_SCROLLBARS_NONE = 0 ' No ScrollBars Global Const PEN_SCROLLBARS_HORIZONTAL = 1 ' Horizontal ScrollBar: Not Valid for BEdit Global Const PEN_SCROLLBARS_VERTICAL = 2 ' Vertical ScrollBar Global Const PEN_SCROLLBARS_BOTH = 3 ' Both ScrollBars: Valid for HEdit only ' Security Property: IEdit control only Global Const PEN_SECURITY_NOCOPY = &H1 ' Disable Copying Ink Global Const PEN_SECURITY_NOCUT = &H2 ' Disable Cutting Ink Global Const PEN_SECURITY_NOPASTE = &H4 ' Disable Pasting Ink Global Const PEN_SECURITY_NOUNDO = &H8 ' Disable Undo action Global Const PEN_SECURITY_NOINK = &H10 ' Disable Inking Global Const PEN_SECURITY_NOERASE = &H20 ' Disable Erasing Ink Global Const PEN_SECURITY_NOGET = &H40 ' Disable reading hInk property Global Const PEN_SECURITY_NOSET = &H80 ' Disable writing hInk property '== Trappable Error Strings ========================================' Global Const PENERR_INKWIDTH = 32001 ' InkWidth must be in range 0-15 or -1 for default Global Const PENERR_NEGCELLWIDTH = 32002 ' CellWidth must be greater than 0 Global Const PENERR_CELLWIDTH = 32003 ' CellWidth must be greater than or equal to CombSpacing*2 Global Const PENERR_NEGCELLHEIGHT = 32004 ' CellHeight must be greater than 0 Global Const PENERR_CELLHEIGHT = 32005 ' CellHeight must be greater than or equal to CombBaseLine Global Const PENERR_COMBSPACING = 32006 ' CombSpacing out of range (0 - CellWidth/2) Global Const PENERR_COMBBASELINE = 32007 ' CombBaseLine out of range (0 - CellHeight) Global Const PENERR_BIGCOMBBASELINE = 32008 ' CombBaseLine must be greater than or equal to CombHeight and CombEndHeight Global Const PENERR_COMBHEIGHT = 32009 ' CombHeight out of range (0 - CombBaseLine) Global Const PENERR_COMBENDHEIGHT = 32010 ' CombEndHeight our of range (0 - CombBaseLine) Global Const PENERR_INFLATE = 32011 ' Inflate value must be greater than or equal to 0 Global Const PENERR_INVALIDPICTURE = 32012 ' Picture format not supported Global Const PENERR_DISPLAYFAILED = 32013 ' Unable to display bitmap Global Const PENERR_AUTOSIZEHW = 32014 ' Cannot change Height or Width while AutoSize equals 2 Global Const PENERR_MERGEFAILED = 32015 ' Unable to merge ink data Global Const PENERR_INVALIDINKDATA = 32016 ' Invalid InkDataString format '== Functions Declarations =========================================' Declare Sub VBTypeToCPointer Lib "pencntrl.vbx" (lpSrc As Any, ByVal lpDest As Long, ByVal cb As Integer) Declare Sub CPointerToVBType Lib "pencntrl.vbx" (ByVal lpSrc As Long, lpDest As Any, ByVal cb As Integer) '====================================================================='