mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
196 lines
4.4 KiB
196 lines
4.4 KiB
/*
|
|
| Macros
|
|
*/
|
|
#define SORGB(r,g,b) ((SOCOLORREF)(((BYTE)(r)|((WORD)(g)<<8))|(((DWORD)(BYTE)(b))<<16)))
|
|
#define SOPALETTERGB(r,g,b) (0x02000000L | SORGB(r,g,b))
|
|
#define SOPALETTEINDEX(i) ((SOCOLORREF)(0x01000000L | (DWORD)(WORD)(i)))
|
|
|
|
/*
|
|
| Typedefs and Defines
|
|
*/
|
|
|
|
typedef DWORD SOCOLORREF;
|
|
|
|
typedef struct SORECTtag
|
|
{
|
|
INT left;
|
|
INT top;
|
|
INT right;
|
|
INT bottom;
|
|
} SORECT, VWPTR *PSORECT;
|
|
|
|
typedef struct SOPOINTtag
|
|
{
|
|
INT x;
|
|
INT y;
|
|
} SOPOINT, VWPTR *PSOPOINT;
|
|
|
|
typedef struct SOVECTORHEADERtag
|
|
{
|
|
WORD wStructSize;
|
|
SORECT BoundingRect;
|
|
WORD wHDpi;
|
|
WORD wVDpi;
|
|
WORD wImageFlags;
|
|
} SOVECTORHEADER, VWPTR *PSOVECTORHEADER;
|
|
|
|
#define SOLF_FACESIZE 32
|
|
typedef struct SOLOGFONTtag
|
|
{
|
|
INT lfHeight;
|
|
INT lfWidth;
|
|
INT lfEscapement;
|
|
INT lfOrientation;
|
|
INT lfWeight;
|
|
BYTE lfItalic;
|
|
BYTE lfUnderline;
|
|
BYTE lfStrikeOut;
|
|
BYTE lfCharSet;
|
|
BYTE lfOutPrecision;
|
|
BYTE lfClipPrecision;
|
|
BYTE lfQuality;
|
|
BYTE lfPitchAndFamily;
|
|
char lfFaceName[LF_FACESIZE];
|
|
} SOLOGFONT, VWPTR *PSOLOGFONT;
|
|
|
|
typedef struct SOLOGPENtag
|
|
{
|
|
INT loPenStyle;
|
|
SOPOINT loWidth;
|
|
SOCOLORREF loColor;
|
|
} SOLOGPEN, VWPTR *PSOLOGPEN;
|
|
|
|
/* Pen Styles */
|
|
#define SOPS_SOLID 0
|
|
#define SOPS_DASH 1
|
|
#define SOPS_DOT 2
|
|
#define SOPS_DASHDOT 3
|
|
#define SOPS_DASHDOTDOT 4
|
|
#define SOPS_NULL 5
|
|
#define SOPS_INSIDEFRAME 6
|
|
|
|
typedef struct SOLOGBRUSHtag
|
|
{
|
|
WORD lbStyle;
|
|
SOCOLORREF lbColor;
|
|
INT lbHatch;
|
|
} SOLOGBRUSH, VWPTR *PSOLOGBRUSH;
|
|
|
|
/* Brush Styles */
|
|
#define SOBS_SOLID 0
|
|
#define SOBS_NULL 1
|
|
#define SOBS_HOLLOW BS_NULL
|
|
#define SOBS_HATCHED 2
|
|
#define SOBS_PATTERN 3
|
|
#define SOBS_INDEXED 4
|
|
#define SOBS_DIBPATTERN 5
|
|
|
|
/* Hatch Styles */
|
|
#define SOHS_HORIZONTAL 0
|
|
#define SOHS_VERTICAL 1
|
|
#define SOHS_FDIAGONAL 2
|
|
#define SOHS_BDIAGONAL 3
|
|
#define SOHS_CROSS 4
|
|
#define SOHS_DIAGCROSS 5
|
|
|
|
typedef struct SOVECTORHEADERtag
|
|
{
|
|
WORD wStructSize;
|
|
SORECT BoundingRect;
|
|
WORD wHDPI;
|
|
WORD wVDPI;
|
|
WORD wImageFlags;
|
|
} SOVECTORHEADER, VWPTR *PSOVECTORHEADER;
|
|
|
|
/* wImageFlags values */
|
|
#define SO_VECTORRGBCOLOR BIT0
|
|
#define SO_VECTORCOLORPALETTE BIT1
|
|
|
|
typedef struct SOTEXTINRECTtag
|
|
{
|
|
SORECT Rect;
|
|
WORD wFormat;
|
|
INT nTextLength;
|
|
} SOTEXTINRECT, VWPTR *PSOTEXTINRECT;
|
|
|
|
/* wFormat values */
|
|
#define SODT_TOP 0x0000
|
|
#define SODT_LEFT 0x0000
|
|
#define SODT_CENTER 0x0001
|
|
#define SODT_RIGHT 0x0002
|
|
#define SODT_VCENTER 0x0004
|
|
#define SODT_BOTTOM 0x0008
|
|
#define SODT_WORDBREAK 0x0010
|
|
#define SODT_SINGLELINE 0x0020
|
|
#define SODT_EXPANDTABS 0x0040
|
|
#define SODT_TABSTOP 0x0080
|
|
#define SODT_NOCLIP 0x0100
|
|
#define SODT_EXTERNALLEADING 0x0200
|
|
#define SODT_CALCRECT 0x0400
|
|
#define SODT_NOPREFIX 0x0800
|
|
#define SODT_INTERNAL 0x1000
|
|
|
|
/* PolyFillMode values */
|
|
#define SOPF_ALTERNATE 1
|
|
#define SOPF_WINDING 2
|
|
|
|
/* DrawMode values */
|
|
#define SOR2_BLACK 1
|
|
#define SOR2_NOTMERGEPEN 2
|
|
#define SOR2_MASKNOTPEN 3
|
|
#define SOR2_NOTCOPYPEN 4
|
|
#define SOR2_MASKPENNOT 5
|
|
#define SOR2_NOT 6
|
|
#define SOR2_XORPEN 7
|
|
#define SOR2_NOTMASKPEN 8
|
|
#define SOR2_MASKPEN 9
|
|
#define SOR2_NOTXORPEN 10
|
|
#define SOR2_NOP 11
|
|
#define SOR2_MERGENOTPEN 12
|
|
#define SOR2_COPYPEN 13
|
|
#define SOR2_MERGEPENNOT 14
|
|
#define SOR2_MERGEPEN 15
|
|
#define SOR2_WHITE 16
|
|
|
|
typedef struct SOTEXTATPOINTtag
|
|
{
|
|
SOPOINT Point;
|
|
WORD wFormat;
|
|
INT nTextLength;
|
|
} SOTEXTATPOINT, VWPTR *PSOTEXTATPOINT;
|
|
|
|
/* Text Alignment Options */
|
|
#define SOTA_NOUPDATECP 0x0000
|
|
#define SOTA_UPDATECP 0x0001
|
|
#define SOTA_LEFT 0x0000
|
|
#define SOTA_RIGHT 0x0002
|
|
#define SOTA_CENTER 0x0006
|
|
#define SOTA_TOP 0x0000
|
|
#define SOTA_BOTTOM 0x0008
|
|
#define SOTA_BASELINE 0x0018
|
|
|
|
|
|
/* SOVectorAttr Id's */
|
|
#define SO_SELECTFONT 0x100
|
|
#define SO_SELECTPEN 0x101
|
|
#define SO_SELECTBRUSH 0x102
|
|
#define SO_POLYFILLMODE 0x103
|
|
#define SO_TEXTCHAREXTRA 0x104
|
|
#define SO_DRAWMODE 0x105
|
|
#define SO_TEXTCOLOR 0x106
|
|
|
|
|
|
/* SOVectorObject Id's */
|
|
#define SO_ARC 0x300
|
|
#define SO_CHORD 0x301
|
|
#define SO_TEXTINRECT 0x302
|
|
#define SO_ELLIPSE 0x303
|
|
#define SO_FLOODFILL 0x304
|
|
#define SO_LINE 0x305
|
|
#define SO_PIE 0x306
|
|
#define SO_POLYGON 0x307
|
|
#define SO_POLYLINE 0x308
|
|
#define SO_RECTANGLE 0x309
|
|
#define SO_ROUNDRECT 0x310
|
|
#define SO_SETPIXEL 0x311
|
|
#define SO_TEXTATPOINT 0x312
|