GDImage 7.00 (UNICODE version).
Both 32-bit and 64-bit are attached to this post.
Note: these versions have been compiled with VS2010 (for smaller size purpose)
You will find in this section several WinLIFT/GDImage projects,
written specifically to ensure that the C++ version works like the original 32-bit ANSI version (PowerBASIC).
However this is still a work in progress...
GDImage.h header:#include <windows.h>
using namespace std;
#ifndef _GDIMAGE_H
#define _GDIMAGE_H
const wchar_t *GDImageClassName = L"ZIMAGECTRL";
const wchar_t *GLImageClassName = L"ZOPENGLCTRL";
const int METADATA_SIZE = 2048;
struct ZOBJECT {
long id;
long clone;
long x1;
long y1;
long x2;
long y2;
long order;
long objtype;
long argb;
long style;
long xcapture;
long ycapture;
long xp;
long yp;
long left;
long top;
long right;
long bottom;
long centerx;
long centery;
long linked;
long usesize;
long strformat;
long metacount;
HWND hwnd;
HBITMAP bitmap;
HRGN region;
LONG_PTR fontfam;
LONG_PTR curfont;
BYTE metadata[METADATA_SIZE];
WCHAR usefont[64];
WCHAR objlabel[64];
float scale;
WORD angle;
short use3d;
BYTE visible;
BYTE locked;
BYTE quality;
BYTE flipmode;
BYTE userotate;
BYTE selected;
BYTE hidden;
BYTE brightness;
BYTE contrast;
BYTE red;
BYTE green;
BYTE blue;
BYTE hue;
BYTE framecount;
BYTE frametouse;
BYTE anchor;
BYTE privateFont;
char alignment[3]; // to perform 8-bit alignment
char reserved[24];
}; // 2472 on 32-bit, 2480 on 64-bit
struct ZSLIDESHOW {
WCHAR fullname[MAX_PATH];
long delay;
short effect;
short grain;
WCHAR legend[128];
WCHAR fontname[64];
short fontsize;
long fontcolor;
BYTE shadow;
BYTE location;
long backcolor;
};
struct ZCHART_PARAM {
long nType; // Type of graph (CHART_Bar, CHART_Cylinder, CHART_Sphere, etc)
float rValue;
long nColor;
long nTexSpec; // %TRUE or %FALSE to Enable/Disable specular texture mode.
long nList;
long nTexture;
};
const int CHART_MIN = 1;
const int CHART_BAR = CHART_MIN;
const int CHART_CYLINDER = 2;
const int CHART_PYRAMIDE = 3;
const int CHART_SPHERE = 4;
const int CHART_CONE = 5;
const int CHART_POINT = 6;
const int CHART_MAX = CHART_POINT;
const int NM_LASTSLIDE = -23;
// Transition effects
const int ZE_EFFECT_MIN = 0; //
const int ZE_TRANSLUCENT_SPIRAL = 0; // Translucent spiral (uGrain to adjust speed).
const int ZE_SMOOTH_FADING = 1; // Smooth fading (uGrain to adjust speed).
const int ZE_MOVE_BOTTOM_TO_TOP = 2; // Moving from bottom to top (uGrain to adjust speed).
const int ZE_VERTICAL_LINE = 3; // Vertical line (use uGrain to change space between lines).
const int ZE_VERTICAL_LINE_FILLED_RIGHT = 4; // Vertical line (use uGrain to change space between lines).
const int ZE_CHECKER_BOARD = 5; // Checker board (use uGrain for larger square).
const int ZE_RANDOM_DOT = 6; // Random dots (use uGrain for larger dots).
const int ZE_WIPE_TO_CENTER = 7; // Wipe to center (uGrain to adjust speed).
const int ZE_STRETCH_FROM_CENTER = 8; // Stretch from center (uGrain to adjust speed).
const int ZE_PUSH_LEFT_TO_RIGHT = 9; // Push from left to right (uGrain to adjust speed).
const int ZE_PUSH_TOP_TO_BOTTOM = 10; // Push from top to bottom (uGrain to adjust speed).
const int ZE_NO_EFFECT = 11; // Cut mode (no transition effect).
const int ZE_EFFECT_MAX = 11;
// Legend location
const int ZE_TXT_TOP_LEFT = 1; // Text on the top, left justified.
const int ZE_TXT_TOP_CENTER = 2; // Text on the top, centered.
const int ZE_TXT_TOP_RIGHT = 3; // Text on the top, right justified.
const int ZE_TXT_MIDDLE_CENTER = 4; // Text on the middle, centered.
const int ZE_TXT_BOTTOM_LEFT = 5; // Text on the bottom, left justified.
const int ZE_TXT_BOTTOM_CENTER = 0; // Text on the bottom, centered.
const int ZE_TXT_BOTTOM_RIGHT = 6; // Text on the bottom, right justified.
struct ZPOLYGON {
LPPOINTS pXY; // 32-bit unsigned POINTS PTR
short ArraySize; // 16-bit signed SHORT integer
long ObjID; // 32-bit signed LONG integer
long ColorARGB; // 32-bit signed LONG integer
short PenSize; // 16-bit signed SHORT integer
long ZS_Style ; // 32-bit signed LONG integer
long ZD_Style; // 32-bit signed LONG integer
};
struct ZGLTEXTUREX {
long ID;
WCHAR FullName[MAX_PATH];
long Texture;
long Square; // boolean TRUE or FALSE value
};
struct ZGLFONT {
WCHAR fontName[64];
long fontBase;
long charStart;
long charNum;
long fontHeight;
long fontWeight;
HFONT fontHandle;
};
struct MyPropertyItem {
PROPID id; // ID of this property
ULONG length; // Length of the property value, in bytes
WORD type; // Type of Image property
VOID* value; // property value
WORD dummy; // add an extra WORD to be DWORD aligned (for a total of 16 bytes)
};
// See below the list of GDImage properties:
// Note: Constants prefixed with %ZI_ are for IMAGE control
const int ZI_DC = 1; // Internal DC
const int ZI_Bitmap = 2; // Memory Bitmap
const int ZI_Horizontal = 3; // Horizontal scrolling position
const int ZI_Vertical = 4; // Vertical scrolling position
const int ZI_GradientTop = 5; // Top gradiant color backgroud
const int ZI_GradientBottom = 6; // Bottom gradiant color backgroud
const int ZI_FitToWindow = 7; // Resize the image to fit the view port
const int ZI_QualityDefault = -1; // And use any of this constant as Parameter
const int ZI_QualityGood = 1; // Best performance
const int ZI_QualityHigh = 2; // Best rendering quality
// DO NOT use or alter these properties!
const int ZI_PaintDC = 8; // Internal DC
const int ZI_PaintBitmap = 9; // Memory Bitmap
const int ZI_Reserved = 10; // Animated frame parameters : LOWRD = FrameWidth, HIWRD = FrameCount
const int ZI_ZoomWindow = 11; // Version 1.41
const int ZI_ZoomFactor = 12; // Version 1.41
const int ZI_Orientation = 13; // Version 1.41
const int ZI_FlagByte = 14; // Version 2.00 4 bytes reserved for flag
const int TOOL_CROP = 1; // Stored in the first byte
const int TOOL_CUTTER = 2; // Stored in the first byte
const int TOOL_PENCIL = 4; // Stored in the first byte
const int TOOL_FLOOD = 8; // Stored in the first byte
const int TOOL_AIRBRUSH = 16; // Stored in the first byte
const int TOOL_PIPE = 32; // Stored in the first byte
const int TOOL_MOUSE = 64; // Stored in the first byte
const int TOOL_UNKNOWN = 128; // Stored in the first byte
const int Extend_cbWndExtra = ZI_FlagByte;
const int ZI_GDIPLUSHANDLE = 1; // Load GDIPLUS Image handle
const int ZI_GLDC = 8; // OpenGL Device Context
const int ZI_GLRC = 9; // OpenGL Rendering Context
const int ZD_TOPLEFTCOLOR = -1;
const int ZD_TRANSCOLOR = 0XFF00FF;
const int ZD_ARGBTRANSCOLOR = 0XFFFF00FF;
const int ZD_MAPCOLORFROM = 0x807F80; // Maping color for 32-bit alphablending
const int ZI_MAPCOLORFROM = 0xFF807F80; // Maping color for 32-bit alphablending
const int ZI_MAPCOLORTO = 0xFF808080; // Maping color for 32-bit alphablending
const int ZI_MAPCOLORNULL = 0x00807F80; // Maping color for 32-bit alphablending
const int ZI_MAPTRANSCOLOR = 0x807F80; // Transparent maped color for 32-bit alphablending
const int ZM_Size = 2025; // WM_USER + 1001
const int ZM_Crop = 2026; // WM_USER + 1002
const int ZM_CENTER_DIALOG = 2027; // WM_USER + 1003
const int ZM_CropRedEye = 2028; // WM_USER + 1004
// ZD_DrawText constants
const int ZD_TextHorzUp = 0; // Horizontal text orientation
const int ZD_TextVertUp = 4; // Vertical text orientation from bottom to top
const int ZD_TextVertDn = 8; // Vertical text orientation from top to bottom
const int ZD_HIDE = 0; // FALSE
const int ZD_SHOW = 1; // TRUE
const int ZS_HIDDEN = ZD_HIDE;
const int ZS_VISIBLE = ZD_SHOW; // VISIBLE, same as WS_VISIBLE
const int ZS_SCROLL = 2; // MOVE with scroll bars, default is FIX (do not scroll)
const int ZS_DRAFT = 4;
const int ZD_ORDER_TOP = 0xFFFFFF;
const int ZD_ORDER_BOTTOM = 0xFFFF;
const int ZD_Normal = 0; // Orientation unchanged (default)
const int ZD_Flip = 1; // Swap top / bottom
const int ZD_Reverse = 2; // Swap left / right
const int DRAW_OUTLINE = 1;
const int DRAW_FILLED = 2;
const int DRAW_3DIN = 3;
const int DRAW_3DOUT = 4;
const int DRAW_OPEN = 5;
const int ZD_DRAW_OUTLINE = DRAW_OUTLINE;
const int ZD_DRAW_FILLED = DRAW_FILLED;
const int ZD_DRAW_3DIN = DRAW_3DIN;
const int ZD_DRAW_3DOUT = DRAW_3DOUT;
const int ZD_DRAW_OPEN = DRAW_OPEN;
const int ZD_DRAW_REDRAW = -1; // Forces immediate redraw of parent object
const int ZD_DRAW_DEFERRED = 0;
const int OBJECT_TEXT = 1;
const int OBJECT_ELLIPSE = 2;
const int OBJECT_RECT = 3;
const int OBJECT_CURVE = 4;
const int OBJECT_ARROW = 5;
const int OBJECT_POLYLINE = 6;
const int OBJECT_BITMAP = 7;
const int OBJECT_BEZIER = 8;
const int OBJECT_POLYPOLYGON = 9;
const int OBJECT_TEXTBITMAP = 10;
const int Frame_DimensionTime = 0;
const int Frame_DimensionResolution = 1;
const int Frame_DimensionPage = 2;
const int ColorAdjustTypeDefault = 0;
const int ColorMatrixFlagsDefault = 0;
const int ColorAdjustTypeBitmap = 1;
const int StringAlignmentNear = 0;
const int StringAlignmentCenter = 1;
const int StringAlignmentFar = 2;
const int ANCHOR_NONE = 0;
const int ANCHOR_LEFT = ANCHOR_NONE;
const int ANCHOR_WIDTH = 1;
const int ANCHOR_RIGHT = 2;
const int ANCHOR_CENTER_HORZ = 3;
const int ANCHOR_HEIGHT = 4;
const int ANCHOR_HEIGHT_WIDTH = 5;
const int ANCHOR_HEIGHT_RIGHT = 6;
const int ANCHOR_BOTTOM = 7;
const int ANCHOR_BOTTOM_WIDTH = 8;
const int ANCHOR_BOTTOM_RIGHT = 9;
const int ANCHOR_CENTER_HORZ_BOTTOM = 10;
const int ANCHOR_CENTER_VERT = 11;
const int ANCHOR_CENTER_VERT_RIGHT = 12;
const int ANCHOR_CENTER = 13;
const double PI = 3.141592653589793238462;
const double HalfPI = 1.5707963267948965;
const double PiDiv4 = 0.785398163397448;
const float Tension = 0.33f;
#define C_IMPORT EXTERN_C __declspec(dllimport)
C_IMPORT WCHAR* zGetTempPath();
C_IMPORT WCHAR* zExeName ();
C_IMPORT WCHAR* ZD_GetObjectImageLabel (IN long ObjID);
C_IMPORT WCHAR* ZI_SetSaveExtension (IN WCHAR* sExtension, IN long RW);
C_IMPORT WCHAR* ZI_ChooseSaveFileName (IN HWND hDlg, IN WCHAR* sPicFile);
C_IMPORT WCHAR* ZI_GetExifDTOrig (IN WCHAR* ImgName);
C_IMPORT WCHAR* ZI_GetImageInfoString (IN LONG_PTR img, IN long nProperty);
C_IMPORT WCHAR* ZI_SetLoadExtension (IN WCHAR* sExtension, IN long RW);
C_IMPORT WCHAR* ZI_LoadSavePath (IN WCHAR* sPath, IN long RW);
C_IMPORT WCHAR* ZI_LoadDialog (IN HWND hDlg);
C_IMPORT WCHAR* ZI_Version();
C_IMPORT WCHAR* zGetReg (IN HKEY hLocation, IN WCHAR* sSubKeys, IN WCHAR* sValueName);
C_IMPORT long zSetReg (IN HKEY hLocation, IN WCHAR* SubKeys, IN WCHAR* sRegName, IN WCHAR* RegVal);
C_IMPORT long RegisterGLImageClass();
C_IMPORT long RegisterGDImageClass();
C_IMPORT HINSTANCE zInstance();
C_IMPORT LONG_PTR zGdipStart ();
C_IMPORT void zGdipEnd (IN LONG_PTR hGDIplus);
C_IMPORT void zSplitColorARGB (IN long ARGB, OUT BYTE &A, OUT BYTE &R, OUT BYTE &G, OUT BYTE &B);
C_IMPORT long zStretchBlt (IN HDC hDCdst, IN long xDst, IN long yDst, IN long wDst, IN long hDst, IN HDC hDCsrc, IN long xSrc, IN long ySrc, IN long wSrc, IN long hSrc, IN long dwRop);
C_IMPORT HBITMAP zCreateDIBSection (IN HDC hDC, IN long nWidth, IN long nHeight, IN long nBitCount);
C_IMPORT LONG_PTR zLoadImageFromFile (IN WCHAR* sImgName, OUT long &imgW, OUT long &imgH, IN long nOrientation);
C_IMPORT void zKeyBd_Event (IN BYTE K1, IN BYTE K2);
C_IMPORT void zFocusBeep ();
C_IMPORT void zDrawImage (IN HDC hDC, IN LONG_PTR Img, IN long x, IN long y, IN long xW, IN long yH);
C_IMPORT void zAlphaBlend (IN HDC hDCdest, IN long xD, IN long yD, IN long wD, IN long hD, IN HDC hDCsrce, IN long xS, IN long yS, IN long wS, IN long hS);
C_IMPORT LONG_PTR zBitmapToImage (IN HDC hDC);
C_IMPORT long zFOpen (IN WCHAR* sFilName, IN long AccessMode, IN long ShareMode, OUT HANDLE &hFile);
C_IMPORT DWORD zFlof (IN HANDLE hFile);
C_IMPORT long zFGet (IN HANDLE hFile, OUT string &sBuffer);
C_IMPORT void zFClose (OUT HANDLE &hFile);
C_IMPORT void DrawGLSphere (IN float rRadius, IN long nFirst, IN long nLast);
C_IMPORT void zSplitN (IN WCHAR* sFullName, OUT WCHAR* sPathName, OUT WCHAR* sFilName);
C_IMPORT long zKillFile (IN WCHAR* sFullName);
C_IMPORT long zSaveImageToFile (IN WCHAR* sPicFile, IN LONG_PTR Img, IN long nQuality);
C_IMPORT long zGetCPUspeed ();
C_IMPORT BYTE Rgb2Alpha (IN DWORD colrRGB);
C_IMPORT void zCheckName(OUT WCHAR* sImgName);
C_IMPORT HWND zClockCtrl (IN HWND hOwner, IN WCHAR* zFullpathImageName, IN long x, IN long y, IN long w, IN long h, IN long nID, IN long ARGB1, IN long ARGB2, IN long GMT);
C_IMPORT LONG_PTR zCloneImage (IN LONG_PTR img);
C_IMPORT HWND WGL_CreateWindow (IN DWORD dwExStyle, IN DWORD dwStyle, IN long x, IN long y, IN long nWidth, IN long nHeight, IN HWND hWndParent, IN HMENU CtrlID);
C_IMPORT void GL_BindTexture (IN long nTextureMode, IN long nTextureToUse);
C_IMPORT void GL_DrawCubeBackFace (IN long nTexture);
C_IMPORT void GL_DrawCubeTopFace (IN long nTexture);
C_IMPORT void GL_DrawCubeBottomFace (IN long nTexture);
C_IMPORT void GL_DrawCubeRightFace (IN long nTexture);
C_IMPORT void GL_DrawCubeLeftFace (IN long nTexture);
C_IMPORT void GL_DrawCube (IN long nTexture);
C_IMPORT void GL_DrawCylinder (IN float radius, IN float rValue, IN float R1, IN float R2, IN long nTexture);
C_IMPORT void GL_DrawDisk (IN float radius, IN long nTexture);
C_IMPORT void GL_DrawSphere (IN float radius, IN long nTexture);
C_IMPORT void GL_DrawCubeFrontFace (IN long nTexture);
C_IMPORT void GL_CreateContext (IN long nWidth, IN long nHeight);
C_IMPORT void GL_DeleteContext (OUT HDC &hGLDC, OUT HGLRC &hGLRC);
C_IMPORT void GL_AlphaBlend (IN HDC hDCdest, IN HDC hDCsrce);
C_IMPORT HDC GL_GLDC ();
C_IMPORT HGLRC GL_GLRC ();
C_IMPORT HDC GL_CreateDrawingDC (IN long nWidth, IN long nHeight);
C_IMPORT void GL_DrawText (IN HWND glWnd, IN ZGLFONT UseFont, IN float x, IN float y, IN float z, IN WCHAR* sTxt, IN long ARGB);
C_IMPORT long GL_CreateFontTexture (IN HWND glWnd, IN WCHAR* sUseFont, IN long nFontSize, IN long ColrARGB);
C_IMPORT void GL_ChartLabel (IN HWND glWnd, IN long UseFont, IN float rX, IN float rY, IN float rZ, IN WCHAR* sTxt);
C_IMPORT void GL_ChartSymbol (IN HWND glWnd, IN long UseFont, IN float rX, IN float rY, IN float rZ, IN WCHAR* sTxt);
C_IMPORT float GL_ChartGetTextLength (IN long UseFont, IN WCHAR* sTxt);
C_IMPORT void GL_DrawCup (IN float rRadius, IN long nTexture);
C_IMPORT void GL_DrawDome (IN float rRadius, IN long nTexture);
C_IMPORT long GL_GetActiveTexture ();
C_IMPORT void GL_TexSpec (IN long nMode);
C_IMPORT void GL_Specular (IN long nMode);
C_IMPORT long GL_GetSpecularMode ();
C_IMPORT void GL_ChartAxisPanel (IN float rX, IN float rY, IN float rZ);
C_IMPORT void GL_ChartRing (IN float RING_MINOR, IN float RING_MAJOR, IN float RING_MINOR_RES, IN float RING_MAJOR_RES);
C_IMPORT WCHAR* GL_ChartGetFontName (IN long UseFont);
C_IMPORT void GL_UseMouseManager (IN HWND hWnd);
C_IMPORT void GL_ChartBar (IN float rX, IN float rY, IN float rZ);
C_IMPORT void GL_ChartPyramide (IN float rX, IN float rZ);
C_IMPORT void GL_Cylinder (IN float radiusBottom, IN float radiusTop, IN float height, IN long slices, IN long stacks, IN long UseOperculum);
C_IMPORT void GL_ChartCylinder (IN float radius, IN float height, IN long slices, IN long stacks);
C_IMPORT void GL_ChartCone (IN float radius, IN float height, IN long slices, IN long stacks);
C_IMPORT void GL_DrawQuad (IN float x, IN float y, IN float z);
C_IMPORT void GL_ChartAxis (IN float rX, IN float rY, IN float rZ);
C_IMPORT void GL_ChartGetMousing (OUT float &rChartXoff, OUT float &rChartYoff, OUT float &rChartZoff, OUT float &rChartZoom, OUT float &rChartXrot, OUT float &rChartYrot);
C_IMPORT void GL_ChartSetMousing (IN float rChartXoff, IN float rChartYoff, IN float rChartZoff, IN float rChartZoom, IN float rChartXrot, IN float rChartYrot);
C_IMPORT void GL_ChartSphere (IN float rRadius, IN float rValue, IN long nCompile);
C_IMPORT void GL_DeleteTextureFont (IN HWND hWnd);
C_IMPORT void GL_BillBoard ();
C_IMPORT void GL_ChartPoint (IN float Radius, IN float rValue);
C_IMPORT float GL_ChartXoff (IN float rValue, IN long RW);
C_IMPORT float GL_ChartYoff (IN float rValue, IN long RW);
C_IMPORT float GL_ChartZoff (IN float rValue, IN long RW);
C_IMPORT float GL_ChartXrot (IN float rValue, IN long RW);
C_IMPORT float GL_ChartYrot (IN float rValue, IN long RW);
C_IMPORT float GL_ChartZoom (IN float rValue, IN long RW);
C_IMPORT long GL_MultiSampleARB ();
C_IMPORT BYTE ZD_GetObjectFrameCount (IN long ObjID);
C_IMPORT void ZD_SetObjectFrameCount (IN long ObjID, IN BYTE nCount);
C_IMPORT BYTE ZD_GetObjectFrameToUse (IN long ObjID);
C_IMPORT void ZD_SetObjectFrameToUse (IN long ObjID, IN long nFrameToUse, IN long RedrawParent);
C_IMPORT long ZD_ComputeObjectAngleFromPoint (IN long nObjectID, IN long mX, IN long mY);
C_IMPORT long ZD_GetObjectLinked (IN long ObjID);
C_IMPORT void ZD_SetObjectLinked (IN long ObjID, IN long LinkedID);
C_IMPORT void ZD_MoveLinkedObject (IN long ObjID, IN long x, IN long y, IN long RedrawParent);
C_IMPORT void ZD_RemoveRedEyeFromBitmapObject (IN long nObjectID, IN long xEye, IN long yEye, IN long EyeWidth, IN long EyeHeight);
C_IMPORT void ZD_ShowObjectList (IN long* IDlist, IN long ArraySize, IN BYTE ShowOrHide);
C_IMPORT BYTE ZD_GetObjectBrightness (IN long ObjID);
C_IMPORT void ZD_SetObjectBrightness (IN long ObjID, IN BYTE Brightness, IN long RedrawParent);
C_IMPORT BYTE ZD_GetObjectContrast (IN long ObjID);
C_IMPORT void ZD_SetObjectContrast (IN long ObjID, IN BYTE Contrast, IN long RedrawParent);
C_IMPORT BYTE ZD_GetObjectRed (IN long ObjID);
C_IMPORT void ZD_SetObjectRed (IN long ObjID, IN BYTE nRed, IN long RedrawParent);
C_IMPORT BYTE ZD_GetObjectGreen (IN long ObjID);
C_IMPORT void ZD_SetObjectGreen (IN long ObjID, IN BYTE nGreen, IN long RedrawParent);
C_IMPORT BYTE ZD_GetObjectBlue (IN long ObjID);
C_IMPORT void ZD_SetObjectBlue (IN long ObjID, IN BYTE nBlue, IN long RedrawParent);
C_IMPORT BYTE ZD_GetObjectHue (IN long ObjID);
C_IMPORT void ZD_SetObjectHue (IN long ObjID, IN BYTE nHue, IN long RedrawParent);
C_IMPORT HBITMAP ZD_RenderEffectToBitmapObject (IN long nObjectID, IN long nRedrawParent);
C_IMPORT long ZD_TwinObject (IN long IDtoTwin, IN long TwinID, IN long x, IN long y);
C_IMPORT long ZD_CloneObject (IN long IDtoClone, IN long CloneID, IN long x, IN long y);
C_IMPORT void ZD_SetObjectScale (IN long ObjID, IN float ScaleValue);
C_IMPORT void ZD_GetObjectScale (IN long ObjID, OUT float &ScaleValue)
C_IMPORT void ZD_SetStringFormat (IN long ObjID, IN long StrFormat, IN long RedrawParent);
C_IMPORT long ZD_GetStringFormat (IN long ObjID);
C_IMPORT BYTE ZD_GetObjectAlpha (IN long ObjID);
C_IMPORT void ZD_FlipObjectX (IN long nID);
C_IMPORT void ZD_FlipObjectY (IN long nID);
C_IMPORT void ZD_SetObjectFlipMode (IN long ObjID, IN long nOrientation);
C_IMPORT void ZD_ReplaceObjectBitmap (IN HBITMAP hBitmap, IN long ObjID, IN long RedrawParent);
C_IMPORT long ZD_GetObjectRotation (IN long ObjID);
C_IMPORT void ZD_RotateObjectCounterclock90 (IN long ObjID);
C_IMPORT void ZD_RotateObjectClockWise90 (IN long ObjID);
C_IMPORT long ZD_GetObjectType (IN long ObjID);
C_IMPORT void ZD_SetObjectType (IN long ObjID, IN long ObjectType);
C_IMPORT long ZD_GetObjectAngle (IN long ObjID);
C_IMPORT void ZD_SetObjectAngle (IN long ObjID, IN long AngleDegree, IN long RedrawParent);
C_IMPORT long ZD_GetObjectQuality (IN long ObjID);
C_IMPORT void ZD_SetObjectQuality (IN long ObjID, IN long nQuality, IN long RedrawParent);
C_IMPORT void ZD_SetObjectClone (IN long ObjID, IN long CloneID);
C_IMPORT long ZD_GetObjectClone (IN long ObjID);
C_IMPORT HBITMAP ZD_SetObjectBitmapFromFile (IN WCHAR* sImgName, IN long ObjID, IN long RedrawParent);
C_IMPORT void ZD_SetObjectBitmapFromBitmap (IN HBITMAP hBitmap, IN long ObjID, IN long RedrawParent);
C_IMPORT HBITMAP ZD_CreateBitmapFromText (IN WCHAR* sUseText, IN WCHAR* sUseFont, IN long UseSize, IN long ColrARGB, IN short Use3D, IN long UseStrFormat);
C_IMPORT void ZD_SetObjectUse3Dshadow (IN long ObjID, IN short Use3D);
C_IMPORT short ZD_GetObjectUse3Dshadow (IN long ObjID);
C_IMPORT HBITMAP ZD_GetObjectBitmap (IN long ObjID);
C_IMPORT void ZD_GetObjectProperties (IN long nID, OUT ZOBJECT &zDetail);
C_IMPORT void ZD_SetObjectProperties (IN long nID, IN ZOBJECT zDetail);
C_IMPORT void ZD_GetObjectXYcapture (IN long ObjID, OUT long &x, OUT long &y);
C_IMPORT void ZD_CopyToBackground (IN HWND hWnd, IN long ID, IN long BoolClear, IN long RGBColor);
C_IMPORT long ZD_IsObjectHidden (IN long ObjID);
C_IMPORT void ZD_SetObjectHidden (IN long ObjID, IN BYTE OnOff);
C_IMPORT long ZD_ObjectMouseCaptured ();
C_IMPORT void ZD_SetObjectImageLabel (IN long ObjID, IN WCHAR* sUseText);
C_IMPORT void ZD_SetObjectScroll (IN long ObjID, IN long TrueFalse);
C_IMPORT long ZD_GetObjectScroll (IN long ObjID);
C_IMPORT void ZD_SetObjectLocked (IN long ObjID, IN long TrueFalse);
C_IMPORT long ZD_GetTextBound (IN WCHAR* sUseText, IN WCHAR* sUseFont, IN long UseSize, OUT long &TextWidth, OUT long TextHeight, IN long UseStrFormat);
C_IMPORT long ZD_DrawTextToDC (IN HDC hDC, IN WCHAR* sUseText, IN long x, IN long y, IN long ColrARGB,
IN WCHAR* sUseFont, IN long UseSize, IN short Use3D, IN long UseStrFormat);
C_IMPORT long ZD_SetObjectText (IN long ObjID, IN WCHAR* sUseText);
C_IMPORT long ZD_SetObjectTextEx (IN long ObjID, IN WCHAR* sUseText, IN long RedrawParent);
C_IMPORT long ZD_DrawTextToCtrl (IN HWND hCtrl, IN WCHAR* sUseText, IN long x, IN long y, IN long ColrARGB,
IN WCHAR* sUseFont, IN long UseSize, IN long ObjID, IN long ZS_STYLE, IN short Use3D, IN long UseStrFormat);
C_IMPORT long ZD_DrawTextToCtrlEx (IN HWND hCtrl, IN WCHAR* sUseText, IN long x, IN long y, IN long w, IN long h, IN long ColrARGB,
IN WCHAR* sUseFont, IN long UseSize, IN long ObjID, IN long ZS_STYLE, IN short Use3D, IN long UseStrFormat);
C_IMPORT long ZD_DrawRectangleToCtrl (IN HWND hCtrl, IN long ox1, IN long oy1, IN long ox2, IN long oy2, IN long ColrARGB,
IN long BorderSize, IN long ObjID, IN long ZS_STYLE, IN long ZD_STYLE, IN short Use3D);
C_IMPORT long ZD_DrawArrowToCtrl (IN HWND hCtrl, IN long ox1, IN long oy1, IN long ox2, IN long oy2, IN long ColrARGB,
IN long BorderSize, IN long ObjID, IN long ZS_STYLE, IN long ZD_STYLE, IN short Use3D);
C_IMPORT long ZD_DrawEllipseToCtrl (IN HWND hCtrl, IN long ox1, IN long oy1, IN long ox2, IN long oy2, IN long ColrARGB,
IN long BorderSize, IN long ObjID, IN long ZS_STYLE, IN long ZD_STYLE, IN short Use3D);
C_IMPORT long ZD_DrawBitmapToCtrl (IN HWND hCtrl, IN long ox1, IN long oy1, IN HBITMAP hBitmap, IN long ColrARGB, IN long ObjID, IN long ZS_STYLE);
C_IMPORT long ZD_DrawTextBitmapToCtrl (IN HWND hCtrl, IN long ox1, IN long oy1, IN HBITMAP hBitmap, IN long ColrARGB, IN long ObjID, IN long ZS_STYLE);
C_IMPORT long ZD_DrawCurveToCtrl (IN HWND hCtrl, IN POINTS* pXY, IN long ArraySize,
IN long ColrARGB, IN long BorderSize, IN long ObjID, IN long ZS_STYLE, IN long ZD_STYLE, IN short Use3D);
C_IMPORT long ZD_DrawPolyLineToCtrl (IN HWND hCtrl, IN POINTS* pXY, IN long ArraySize,
IN long ColrARGB, IN long BorderSize, IN long ObjID, IN long ZS_STYLE, IN long ZD_STYLE, IN short Use3D);
C_IMPORT HWND ZD_GetObjectParent (IN long ObjID);
C_IMPORT void ZD_GetObjectXY (IN long ObjID, OUT long &x, OUT long &y);
C_IMPORT void ZD_SetObjectXY (IN long ObjID, IN long x, IN long y, IN long RedrawParent);
C_IMPORT void ZD_GetObjectBound (IN long ObjID, OUT long &BoundWidth, OUT long &BoundHeight);
C_IMPORT void ZD_GetObjectARGB (IN long ObjID, OUT BYTE &A, OUT BYTE &R, OUT BYTE &G, OUT BYTE &B);
C_IMPORT long ZD_GetObjectARGBcolor (IN long ObjID);
C_IMPORT void ZD_GetObjectARGB (IN long ObjID, OUT BYTE &A, OUT BYTE &R, OUT BYTE &G, OUT BYTE &B);
C_IMPORT void ZD_SetObjectARGBcolor (IN long ObjID, IN long UseARGB);
C_IMPORT void ZD_SetObjectARGB (IN long ObjID, IN BYTE A, IN BYTE R, IN BYTE G, IN BYTE B);
C_IMPORT void ZD_SetObjectAlpha (IN long ObjID, IN BYTE Alpha, IN long RedrawParent);
C_IMPORT void ZD_ShowObject (IN long ObjID, IN long ShowOrHide);
C_IMPORT void ZD_SetObjectVisibility (IN long ObjID, IN long ShowOrHide);
C_IMPORT long ZD_IsObjectVisible (IN long ObjID);
C_IMPORT long ZD_GetObjectStyle (IN long ObjID);
C_IMPORT void ZD_SetObjectStyle (IN long ObjID, IN long UseStyle);
C_IMPORT long ZD_GetObjectZorder (IN long ObjID);
C_IMPORT long ZD_GetItemObjectAndColorAtXY (IN HWND hGDImageCtrl, IN long lpx, IN long lpy, OUT long &RGBcolor);
C_IMPORT long ZD_GetBitmapObjectBits (IN long ObjID, LPVOID lpArray);
C_IMPORT long ZD_SetBitmapObjectBits (IN long ObjID, LPVOID lpArray);
C_IMPORT long ZD_GetObjectFlipMode (IN long ObjID);
C_IMPORT long ZD_SetObjectZorder (IN long ObjID, IN long SetOrder);
C_IMPORT long ZD_PolyPolygon (IN HWND hCtrl, IN ZPOLYGON* zp, IN long PolygonCount);
C_IMPORT long ZD_StretchBlt (IN HDC hDCdst, IN long xDst, IN long yDst, IN long wDst, IN long hDst, IN HDC hDCsrc, IN long xSrc, IN long ySrc, IN long wSrc, IN long hSrc);
C_IMPORT void ZD_DeleteObject (IN long ID);
C_IMPORT long ZD_SetObjectAnchorMode (IN long nObjID, IN long AnchorMode);
C_IMPORT long ZD_GetObjectLocked (IN long ObjID);
C_IMPORT long ZD_GetObjectSelected (IN long ObjID);
C_IMPORT void ZD_SetObjectSelected (IN long ObjID, IN long OnOff, IN long RedrawParent);
C_IMPORT void ZD_ChangeTextFontSize (IN HWND hCtrl, IN long ObjID, IN long UseSize);
C_IMPORT void ZD_FillRect (IN HDC hDC, IN long x, IN long y, IN long xW, IN long yH, IN long RGBcolor);
C_IMPORT long ZD_ColorARGB (IN BYTE Alpha, IN DWORD ColrRGB);
C_IMPORT long ZD_ARGB (IN BYTE A, IN BYTE R, IN BYTE G, IN BYTE B);
C_IMPORT DWORD ZD_DoEvents ();
C_IMPORT long ZD_UpdatePoints (IN long ObjectType, IN HWND hCtrl, IN long nID, IN POINTS* pXY, IN long ArraySize);
C_IMPORT long ZI_LoadDLL (IN WCHAR* sUserName);
C_IMPORT long ZI_CreateSkinBackgroundEx (IN WCHAR* sImageDest, IN long rwX, IN long rwY, IN WCHAR* sUseBackground, IN WCHAR* sSkinFolder,
IN long UseStretchMode, IN long IsResizable, IN long nOverlayColor);
C_IMPORT long ZI_CreateSkinBackground (IN WCHAR* sImageDest, IN long rwX, IN long rwY, IN WCHAR* sUseBackground, IN WCHAR* sSkinFolder);
C_IMPORT long ZI_SetImageFileOrientation (IN WCHAR* sImageSrce, IN long nOrientation);
C_IMPORT LONG_PTR ZI_SetImageAttributesHue (IN BYTE Hue);
C_IMPORT HBITMAP ZI_CreateDIBSection (IN HDC hDC, IN long nWidth, IN long nHeight, IN long BitCount);
C_IMPORT void ZI_RemoveRedEye (IN HDC hDC, IN long x, IN long y, IN long UseWidth, IN long UseHeight);
C_IMPORT void ZI_CreateTextObject (OUT ZOBJECT &zObj, IN WCHAR* sUseText, IN long x, IN long y, IN long xW, IN long yH, IN long ColrARGB,
IN WCHAR* sUseFont, IN long UseSize, IN long ZS_STYLE, IN short Use3D, IN long UseStrFormat);
C_IMPORT void ZI_CreateCurveObject (OUT ZOBJECT &zObj, IN POINTS* pXY, IN long ArraySize, IN long ColrARGB, IN long BorderSize, IN long ZS_STYLE, IN long ZD_STYLE, IN short Use3D);
C_IMPORT void ZI_CreatePolyLineObject (OUT ZOBJECT &zObj, IN POINTS* pXY, IN long ArraySize, IN long ColrARGB, IN long BorderSize, IN long ZS_STYLE, IN long ZD_STYLE, IN short Use3D);
C_IMPORT HBITMAP ZI_CreateImageComposited (IN WCHAR* sImageDest, IN long rwX, IN long rwY, IN ZOBJECT* pSprite, IN long N);;
C_IMPORT long ZI_GetImageInfoCount (IN LONG_PTR img);
C_IMPORT long ZI_RemoveImageInfoProperty (IN LONG_PTR img, IN long nID);
C_IMPORT long ZI_UpdateNamedGLTextureFromFileEx (IN WCHAR* sFullName, IN long NamedTexture, IN long nSquareMode);
C_IMPORT void ZI_ReplaceARGBColorBitmap (IN HBITMAP hBmp, IN long WasARGB, IN long NewARGB);
C_IMPORT void ZI_GetDefaultPrinter (OUT WCHAR* &sDriver, OUT WCHAR* &sDevice, OUT WCHAR* &sPort);
C_IMPORT long ZI_PrintImage (IN HWND hGDImageCtrl);
C_IMPORT long ZI_PrintFull (IN HWND hGDImageCtrl);
C_IMPORT void ZI_SlidePlayIncrOrder ();
C_IMPORT void ZI_SlidePlayDecrOrder ();
C_IMPORT void ZI_SlidePlay ();
C_IMPORT void ZI_SlidePause ();
C_IMPORT void ZI_SlideStop ();
C_IMPORT void ZI_SlideAnimate (IN HWND hCtrl, IN ZSLIDESHOW* ipt, IN long ImageCount, IN BYTE LoopMode);
C_IMPORT long ZI_FontBox (IN HWND hParent, IN WCHAR* sCaption, OUT WCHAR* &sUseText, OUT WCHAR* &sUseFont, OUT long &UseSize, OUT long &UseARGB, OUT long &Use3D);
C_IMPORT HBITMAP ZI_CreateBitmapFromImage (IN LONG_PTR hImage);
C_IMPORT long ZI_ApplyEffectToFile (IN WCHAR* sImageSrce, IN ZOBJECT zObj, IN WCHAR* sImageDest);
C_IMPORT HWND ZI_CreateDW (IN HWND hParent);
C_IMPORT void ZI_DestroyDW (IN HWND hDW);
C_IMPORT void ZI_ImageTilePaint (IN LONG_PTR graphics, IN LONG_PTR img, IN long xOffset, IN long yOffset, IN long nPaintWidth, IN long nPaintHeight);
C_IMPORT void ZI_ComputeAspect (IN long xPic, IN long yPic, IN long xCell, IN long yCell, OUT long &xP, OUT long &yP, OUT long &xS, OUT long &yS);
C_IMPORT long ZI_SIZEL (IN long nSize, IN long RW);
C_IMPORT long ZI_SIZET (IN long nSize, IN long RW);
C_IMPORT long ZI_SIZER (IN long nSize, IN long RW);
C_IMPORT long ZI_SIZEB (IN long nSize, IN long RW);
C_IMPORT long ZI_CenterDialog (IN long nFlag, IN long RW);
C_IMPORT long ZI_SaveLayersDialog (IN HWND hDlg, IN HWND hCtrl, IN long nQuality, IN long Rotation, IN long UseWidth, IN long UseHeight);
C_IMPORT long ZI_GetCtrlObjectCount (IN HWND hParent);
C_IMPORT void ZI_SetToolTipText (IN HWND hObj, IN WCHAR* sText);
C_IMPORT HWND ZI_CreateToolTip (IN HWND hObj, IN WCHAR* sText);
C_IMPORT long ZI_CreateSpriteFileFromBitmap (IN WCHAR* sPicFile, IN HBITMAP BmpSrce, IN long UseSize, IN long JpegQuality);
C_IMPORT void ZI_EventMessageEx (IN HWND hWnd, IN LONG_PTR pCodePtr, IN long nMsg, IN long SetReset);
C_IMPORT long ZI_FitImageToPaper (IN WCHAR* sImageSrce, IN long nPaperW, IN long nPaperH, IN WCHAR* sCropedImageDest);
C_IMPORT void ZI_SetObjectFocusID (IN long CursorOverObject);
C_IMPORT void ZI_SetCtrlEmptyBitmap (IN HWND hWnd, IN long RGBcolor);
C_IMPORT void ZI_DestroyTexture (IN ZGLTEXTUREX* mt, IN long mtCount);
C_IMPORT HBITMAP ZI_FitImageFromFile (IN WCHAR* sFilName, IN long Xin, IN long Yin);
C_IMPORT long ZI_CreateGLTextureFromFile (IN WCHAR* sFullPath, OUT long &xSize, OUT long &ySize, OUT BYTE* &lpArray);
C_IMPORT long ZI_SetGLTextureFromFile (IN WCHAR* sFullName);
C_IMPORT void ZI_InitGLControl (IN long ARGB);
C_IMPORT void ZI_BuildGLfont (IN HDC hDC, OUT ZGLFONT &UseFont);
C_IMPORT void ZI_DeleteGLFont (IN ZGLFONT UseFont);
C_IMPORT void ZI_DrawGLText (IN HWND glWnd, IN ZGLFONT UseFont, IN long x, IN long y, IN WCHAR* sTxt, IN long ARGB);
C_IMPORT void ZI_UseGLPolarView (IN float radius, IN float twist, IN float latitude, IN float longitude);
C_IMPORT void ZI_UseGLPanoramaView (IN float latitude, IN float longitude);
C_IMPORT long ZI_GetGLzoom (IN HWND hWnd);
C_IMPORT void ZI_SetGLzoom (IN HWND hWnd, IN long nFovy);
C_IMPORT long ZI_MoveToTray (IN WCHAR* sFileName);
C_IMPORT void ZI_ResizeGLWindow (IN HWND hWnd);
C_IMPORT void ZI_UpdateGLWindow (IN HWND hWnd);
C_IMPORT void ZI_GetGLTextExtentFromDC (IN HDC hDC, ZGLFONT UseFont, IN WCHAR* sText, OUT long &stWidth, OUT long &stHeight);
C_IMPORT void ZI_GetGLTextExtent (IN HWND glWnd, ZGLFONT UseFont, IN WCHAR* sText, OUT long &stWidth, OUT long &stHeight);
C_IMPORT void ZI_glColor4ub (IN long ARGB);
C_IMPORT long ZI_UpdateNamedGLTextureFromFile (IN WCHAR* sFullName, IN long NamedTexture);
C_IMPORT void ZI_ReplaceRGBColor (IN HDC hDC, IN long WasColor, IN long NewColor);
C_IMPORT void ZI_ReplaceRGBColorBitmap (IN HBITMAP hBmp, IN long WasColor, IN long NewColor);
C_IMPORT HBITMAP ZI_CropBitmap (IN HBITMAP hBmp, IN long x, IN long y, IN long w, IN long h, IN long FlipReverse);
C_IMPORT long ZI_RenderLayersToFile (IN HWND hWnd, IN WCHAR* sPicFile, IN long nQuality, IN long Rotation, IN long UseWidth, IN long UseHeight);
C_IMPORT void ZI_SetFontBoxParameters (IN long SquareSize, IN long MaxFontSize, IN long TextCharLength);
C_IMPORT long ZI_MouseHoverBoundID ();
C_IMPORT long ZI_GetObjectFocusID ();
C_IMPORT long ZI_GetMovingSpriteItem ();
C_IMPORT long ZI_GetMovingSpriteID ();
C_IMPORT HBITMAP ZI_FitImageFrom32Bit (IN WCHAR* sImgName, IN long UseW, IN long UseH);
C_IMPORT HBITMAP ZI_FitBitmapFromFile (IN WCHAR* sFullPath, IN long Xin, IN long Yin);
C_IMPORT void ZI_DoNotSquareTexture ();
C_IMPORT long ZI_CreateGLTextureFrom32Bit (IN WCHAR* sFullPath, OUT long &xSize, OUT long &ySize, OUT BYTE* &lpArray);
C_IMPORT HDC ZI_GetGLDC (IN HWND hWnd);
C_IMPORT HGLRC ZI_GetGLRC (IN HWND hWnd);
C_IMPORT long ZI_CreateGLTextureFromFileEX (IN WCHAR* sImgName, OUT long &Xin, OUT long &Yin, OUT BYTE* &lpArray, IN long SquareTexture);
C_IMPORT void ZI_MakeMultipleTexture (IN ZGLTEXTUREX* mt, IN long mtCount);
C_IMPORT HBITMAP ZI_ResizeBitmapFromBitmap (IN HBITMAP BmpSrce, IN long xDest, IN long yDest);
C_IMPORT long ZI_GetToolCropStatus (IN HWND hWnd);
C_IMPORT void ZI_EnableCropRectangle (IN HWND hWnd);
C_IMPORT void ZI_EnableCropRedEye (IN HWND hWnd);
C_IMPORT void ZI_DisableAllTools (IN HWND hWnd);
C_IMPORT void ZI_GetCropCoordinates (OUT long &x, OUT long &y, OUT long &UseWidth, OUT long &UseHeight);
C_IMPORT void ZI_SetCropPopupText (IN WCHAR* sMenu);
C_IMPORT HBITMAP ZI_RenderLayersToBitmap (IN HWND hWnd);
C_IMPORT HBITMAP ZI_CropWindowToBitmap (IN HWND hWnd, IN long x, IN long y, IN long w, IN long h);
C_IMPORT long ZI_ObjectSelected (IN HWND hGDImageCtrl);
C_IMPORT long ZI_SelectedCount (IN HWND hGDImageCtrl);
C_IMPORT HDC ZI_Create32bitDC (IN long nWidth, IN long nHeight, IN long ARGBcolor);
C_IMPORT LONG_PTR ZI_RemapImageColor (IN long nColorFrom, IN long nColorTo);
C_IMPORT LONG_PTR ZI_RemapAlphaColor (IN long nColorFrom, IN long nColorTo);
C_IMPORT void ZI_DrawAlphaBlend (IN HDC hDCdest, IN long xDest, IN long yDest, IN WCHAR* sImage, IN WCHAR* sMask);
C_IMPORT long ZI_CreateVariableOpacityPNG (IN WCHAR* sInputName, IN WCHAR* sOutputName);
C_IMPORT HBITMAP ZI_CreateVariableOpacityBitmap (IN WCHAR* sInputName, OUT long &imgW, OUT long &imgH);
C_IMPORT void ZI_RotateImage (IN HDC hDC, IN LONG_PTR Img, IN long x, IN long y, IN long AngleDegree, IN BYTE Alpha);
C_IMPORT void ZI_RenderImageRotationToWindow (IN HWND hWnd, IN LONG_PTR Img, IN long x, IN long y, IN long AngleDegree, IN BYTE UseAlpha);
C_IMPORT HBITMAP ZI_RenderRotationFromImageToBitmap (IN HBITMAP BmpSrce, IN LONG_PTR Img, IN long AngleDegree, IN BYTE UseAlpha);
C_IMPORT long ZI_SaveToFile (IN WCHAR* sPicFile, IN HWND hCtrl, IN long nQuality);
C_IMPORT void ZI_SetZoomScrollInfo (IN HWND hWnd, IN float OldZoomValue, IN float ZoomValue);
C_IMPORT void ZI_EventMessage (IN LONG_PTR pCodePtr, IN long nMsg, IN long SetReset);
C_IMPORT long ZI_ColorCount (IN HWND hWnd);
C_IMPORT HBITMAP ZI_LoadFromResource (IN HWND hWnd, IN WCHAR* sName);
C_IMPORT long ZI_LoadImageFromStream (IN HWND hWnd, IN BYTE* pBufferData, IN long BufferSize);
C_IMPORT LONG_PTR ZI_ImageFromResource (IN HMODULE nInstance, IN WCHAR* sName);
C_IMPORT HBITMAP ZI_LoadBitmap (IN WCHAR* sName);
C_IMPORT LONG_PTR ZI_SetImageAlpha (IN BYTE Alpha);
C_IMPORT long ZI_GetDIBits (IN HDC hDC, LPVOID lpArray);
C_IMPORT long ZI_SetDIBits (IN HDC hDC, LPVOID lpArray);
C_IMPORT HBITMAP ZI_CreateBitmapFromFile (IN WCHAR* sImgName, OUT long &imgW, OUT long &imgH);
C_IMPORT HBITMAP ZI_ResizeBitmapFromFile (IN WCHAR* sImgName, IN long UseW, IN long UseH);
C_IMPORT long ZI_SetFromFileEx (IN HWND hCtrl, IN WCHAR* sFileName, IN long nUseW, IN long nUseH);
C_IMPORT void ZI_DisableAlphaCoef ();
C_IMPORT void ZI_EnableAlphaCoef ();
C_IMPORT HBITMAP ZI_CreateMirrorBitmapFromFile (IN WCHAR* sImgName, OUT long &imgW, OUT long &imgH);
C_IMPORT HDC ZI_CreateImageBackgroundEx (IN HWND hWnd, IN long imgW, IN long imgH, IN long UseColor, IN long BitPerPixel);
C_IMPORT HDC ZI_CreateImageBackground (IN HWND hWnd, IN long imgW, IN long imgH);
C_IMPORT LONG_PTR ZI_CreateImageFromFile (IN WCHAR* sImgName, OUT long &imgW, OUT long imgH, IN long RemoveARGBColor, IN long ARGBColorToRemove);
C_IMPORT void ZI_DeleteImageObject (OUT LONG_PTR &img);
C_IMPORT long ZI_SetTiledBackground (IN HWND hWnd, IN HBITMAP UseBitmap);
C_IMPORT HBITMAP ZI_GetTiledBackground (IN HWND hWnd);
C_IMPORT void ZI_UseWinLIFTbackground (IN HWND hWnd, IN long nUseBack, IN long RedrawParent);
C_IMPORT long ZI_SetCtrlBitmapBackground (IN HWND hWnd, IN HBITMAP hBmp);
C_IMPORT long ZI_ClipboardCopy (IN HWND hWnd);
C_IMPORT long ZI_PutBitmapToClipboard (IN HBITMAP ThisBitmap);
C_IMPORT long ZI_SaveBitmapToFile (IN WCHAR* sPicFile, IN HBITMAP hBitmap, IN long nQuality);
C_IMPORT long ZI_ClipboardPaste (IN HWND hWnd);
C_IMPORT void ZI_CreateBitmapObject (OUT ZOBJECT &zObjItem, IN long ox1, IN long oy1, IN HBITMAP hBitmap, IN long ColrARGB, IN long ZS_STYLE);
C_IMPORT void ZI_CreateRectangleObject (OUT ZOBJECT &zObjItem, IN long ox1, IN long oy1, IN long ox2, IN long oy2,
IN long ColrARGB, IN long BorderSize, IN long ZS_STYLE, IN long ZD_STYLE, IN short Use3D);
C_IMPORT void ZI_CreateArrowObject (OUT ZOBJECT &zObjItem, IN long ox1, IN long oy1, IN long ox2, IN long oy2,
IN long ColrARGB, IN long BorderSize, IN long ZS_STYLE, IN long ZD_STYLE, IN short Use3D);
C_IMPORT void ZI_CreateEllipseObject (OUT ZOBJECT &zObjItem, IN long ox1, IN long oy1, IN long ox2, IN long oy2,
IN long ColrARGB, IN long BorderSize, IN long ZS_STYLE, IN long ZD_STYLE, IN short Use3D);
C_IMPORT void ZI_SetSaveDialogMsg (IN WCHAR* sCaptionLoad, IN WCHAR* sCaptionSave, IN WCHAR* sDefaultName);
C_IMPORT long ZI_SetAnchorMode (IN HWND hWnd, IN long AnchorMode);
C_IMPORT long ZI_ConvertToGray (IN HDC hDC);
C_IMPORT void ZI_ClearObjectSelected (IN HWND hGDImageCtrl);
C_IMPORT long ZI_GetManualSelection ();
C_IMPORT void ZI_SetManualSelection (IN long nMode);
C_IMPORT HWND ZI_CreateWindowFromImage (IN long nStyle, IN WCHAR* sImgName, IN long x, IN long y, IN HWND hParent, IN HMENU UseID, IN long nStyleEx, IN long UseTransColor);
C_IMPORT void ZI_GetImageSizeFromFile (IN WCHAR* sImgName, OUT long &imgW, OUT long &imgH);
C_IMPORT long ZI_SetLayeredAlpha (IN HWND hWnd, IN BYTE TransLevel);
C_IMPORT void ZI_DrawObject (IN HDC hDC, IN ZOBJECT zObjItem, IN long InPrintMode);
C_IMPORT long ZI_GetXscroll (IN HWND hWnd);
C_IMPORT long ZI_GetYscroll (IN HWND hWnd);
C_IMPORT void ZI_DrawObject (IN HDC hDC, IN ZOBJECT zObjItem, IN long InPrintMode);
C_IMPORT long ZI_BoostSprite (IN long nFlag, IN long RW);
C_IMPORT long ZI_TransparentColor (IN long nFlag, IN long RW);
C_IMPORT void ZI_RenderAttributes (IN HDC hDCdest, IN long xD, IN long yD, IN long wD, IN long hD,
IN HDC hDCsrce, IN long xS, IN long yS, IN long wS, IN long hS,
IN BYTE nAlpha, IN ZOBJECT zObjItem);
C_IMPORT void ZI_AlphaBlend (IN HDC hDCdest, IN long xDest, IN long yDest, IN long nWidth, IN long nHeight,
IN HDC hDCsrce, IN long xCurrentScroll, IN long yCurrentScroll);
C_IMPORT void ZI_ReleaseCapture ();
C_IMPORT void ZI_DeleteCtrlObject (IN HWND hWnd);
C_IMPORT long ZI_MouseOverObjectID ();
C_IMPORT HBITMAP ZI_GetBitmapFromDC(IN HDC hDC);
C_IMPORT long ZI_DeleteControlBitmap (IN HWND hWnd);
C_IMPORT void ZI_Iconise (IN long xPicSize, IN long yPicSize, IN long xCell, IN long yCell, OUT long &xPos, OUT long &yPos, OUT long &xSize, OUT long &ySize);
C_IMPORT void ZI_SetZoomValue (IN HWND hWnd, IN float rV);
C_IMPORT float ZI_GetZoomValue(IN HWND hWnd);
C_IMPORT void ZI_AlphaBlendEx (IN HDC hDCdest, IN long xDest, IN long yDest, IN long wDest, IN long hDest,
IN HDC hDCsrce, IN long xSrce, IN long ySrce, IN long wSrce, IN long hSrce,
IN BYTE Alpha, IN long AngleDegree, IN long nQuality);
C_IMPORT long ZI_IsKeyDown (IN long CheckKey);
C_IMPORT long ZI_IsAnyArrowPressed ();
C_IMPORT long ZI_IsShiftKeyPressed ();
C_IMPORT long ZI_IsCtrlKeyPressed ();
C_IMPORT long ZI_IsLButtonDown ();
C_IMPORT long ZI_IsRButtonDown ();
C_IMPORT HWND ZI_CreateWindow (IN HWND hParent, IN long x, IN long y, IN long xW, IN long yH, IN HMENU ControlID);
C_IMPORT LONG_PTR ZI_CreateImageFromBitmap (IN HBITMAP hBmp);
C_IMPORT long ZI_IsTrialVersion ();
C_IMPORT void ZI_DisableCropRectangle (IN HWND hWnd);
C_IMPORT void ZI_UpdateWindow (IN HWND hWnd, IN long nFlag);
C_IMPORT void ZI_DisableCropRectangle (IN HWND hWnd);
C_IMPORT void ZI_SetFromFile (IN HWND hCtrl, IN WCHAR* sUseText);
C_IMPORT long ZI_GetImageFrameCount (IN LONG_PTR lpImg);
C_IMPORT void ZI_UpdateWindow (IN HWND hWnd, IN long nFlag);
C_IMPORT void ZI_DisableCropRectangle (IN HWND hWnd);
C_IMPORT LONG_PTR ZI_CreateMultiFrameImage (IN LONG_PTR lpImg, IN long nUseBit, IN long nFit);
C_IMPORT void ZI_GradientPaintDC (IN HDC hDC, IN long x, IN long y, IN long xW, IN long yH, IN long TopRGB, IN long BottomRGB);
C_IMPORT void ZI_SetProperty (IN HWND hWnd, IN long nItem, IN LONG_PTR nValue);
C_IMPORT LONG_PTR ZI_GetProperty (IN HWND hWnd, IN long nItem);
C_IMPORT void ZI_GetBitmapSize (IN HBITMAP hBmp, OUT long &xWidth, OUT long &yHeight);
C_IMPORT HBITMAP ZI_GetBMP (IN HWND hWnd);
C_IMPORT void ZI_GetImageSizeFromControl (IN HWND hWnd, OUT long &imgW, OUT long &imgH);
C_IMPORT HBITMAP ZI_GetPaintBitmap (IN HWND hWnd);
C_IMPORT HDC ZI_GetPaintDC (IN HWND hWnd);
C_IMPORT HDC ZI_GetDC (IN HWND hWnd);
C_IMPORT long ZI_GetImageInfoList (IN LONG_PTR img, IN long numOfProperty, OUT DWORD* ArrayList);
C_IMPORT long ZI_GetImageInfoProperty (IN LONG_PTR img, IN ULONG nID, IN ULONG nLength, OUT MyPropertyItem* buffer);
C_IMPORT long ZI_SetImageInfoProperty (IN LONG_PTR img, IN ULONG nID, IN ULONG nLength, IN WORD nType, IN VOID* nValue);
C_IMPORT HBITMAP ZI_FitBitmapFromBitmap (IN HBITMAP FromBitmap, IN long UseW, IN long UseH);
#endif // !_GDIMAGE_H
...
I have reworked the ZOBJECT structure from the header, using 8-bit alignment, to be compatible with WinDev and PowerBASIC.
Both 32-bit and 64-bit ZIP files are attached to the first post of this thread.
...
Support for (READ ONLY) .TGA and .DDS graphic format have been added to GDImage64, to enable 3D texturing into ObjReader64.