/* The Win32 headers for GCC currently do not know about the functions */
/* of msimg32.dll - so let's define them here */

//
// image blt
//

typedef USHORT COLOR16;

typedef struct _TRIVERTEX
{
    LONG    x;
    LONG    y;
    COLOR16 Red;
    COLOR16 Green;
    COLOR16 Blue;
    COLOR16 Alpha;
}TRIVERTEX,*PTRIVERTEX,*LPTRIVERTEX;

typedef struct _GRADIENT_TRIANGLE
{
    ULONG Vertex1;
    ULONG Vertex2;
    ULONG Vertex3;
} GRADIENT_TRIANGLE,*PGRADIENT_TRIANGLE,*LPGRADIENT_TRIANGLE;

typedef struct _GRADIENT_RECT
{
    ULONG UpperLeft;
    ULONG LowerRight;
}GRADIENT_RECT,*PGRADIENT_RECT,*LPGRADIENT_RECT;

typedef struct _BLENDFUNCTION
{
    BYTE   BlendOp;
    BYTE   BlendFlags;
    BYTE   SourceConstantAlpha;
    BYTE   AlphaFormat;
}BLENDFUNCTION,*PBLENDFUNCTION;


//
// currentlly defined blend function
//

#define AC_SRC_OVER                 0x00


//
// alpha format flags
//

#define AC_SRC_NO_PREMULT_ALPHA     0x01

#define AC_SRC_NO_ALPHA             0x02

#define AC_DST_NO_PREMULT_ALPHA     0x10

#define AC_DST_NO_ALPHA             0x20


WINGDIAPI BOOL  WINAPI AlphaBlend(HDC,int,int,int,int,HDC,int,int,int,int,BLENDFUNCTION);

WINGDIAPI BOOL  WINAPI AlphaDIBBlend(HDC,int,int,int,int,CONST VOID *,
        CONST BITMAPINFO *,UINT,int,int,int,int,BLENDFUNCTION);

WINGDIAPI BOOL  WINAPI TransparentBlt(HDC,int,int,int,int,HDC,int,int,int,int,UINT);

WINGDIAPI BOOL  WINAPI TransparentDIBits(HDC,int,int,int,int,CONST VOID *,
        CONST BITMAPINFO *,UINT,int,int,int,int,UINT);

//
// gradient drawing modes
//

#define GRADIENT_FILL_RECT_H    0x00000000

#define GRADIENT_FILL_RECT_V    0x00000001

#define GRADIENT_FILL_TRIANGLE  0x00000002

#define GRADIENT_FILL_OP_FLAG   0x000000ff


WINGDIAPI BOOL  WINAPI GradientFill(HDC,PTRIVERTEX,ULONG,PVOID,ULONG,ULONG);



syntax highlighted by Code2HTML, v. 0.9.1