#include <windows.h>
using namespace std;

//#define C_IMPORT extern "C" __declspec(dllimport)

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 int SK_METRICFIRST      = 0;
const int SK_CYCAPTION        = SK_METRICFIRST;
const int SK_CYMENU           = 1;
const int SK_CYSTATUS         = 2;
const int SK_CXFRAMELEFT      = 3;
const int SK_CXFRAMERIGHT     = 4;
const int SK_CYFRAMETOP       = SK_CYCAPTION;
const int SK_CYFRAMEBOTTOM    = 5;
const int SK_CXSIZE           = 6;
const int SK_CYSIZE           = 7;
const int SK_CXSYSBUT         = 8;
const int SK_CYSYSBUT         = 9;
const int SK_CXCAPTEXT        = 10;
const int SK_CYCAPTEXT        = 11;
const int SK_XBUT3DBORDER     = 12;
const int SK_YBUT3DBORDER     = 13;
const int SK_CXSYSICON        = 14;
const int SK_CYSYSICON        = 15;
const int SK_CXSYSLED         = 16;
const int SK_CYSYSLED         = 17;
const int SK_TRANSLUCENCY     = 18;
const int SK_MENUTRANSLUCENCY = 19;
const int SK_PAINT_BORDER     = 20;
const int SK_PAINT_BACKGROUND = 21;
const int SK_ICONSIZE         = 22;
const int SK_OUTER_GLOW       = 23;
const int SK_SKIN_ICON        = 24;
const int SK_DWM_AERO         = 25;
const int SK_DWM_LEFT         = 26;
const int SK_DWM_TOP          = 27;
const int SK_DWM_RIGHT        = 28;
const int SK_DWM_BOTTOM       = 29;
const int SKMETRIC_UB         = 30;

enum FontStyle {
    FontStyleRegular    = 0,
    FontStyleBold       = 1,
    FontStyleItalic     = 2,
    FontStyleBoldItalic = 3,
    FontStyleUnderline  = 4,
    FontStyleStrikeout  = 8
};

C_IMPORT HWND     skPopupOwner (IN HWND hWnd);
C_IMPORT HFONT    skCaptionFont ();
C_IMPORT HFONT    skFont ();
C_IMPORT HFONT    skFontBold ();
C_IMPORT HFONT    skFontDlg ();
C_IMPORT LONG_PTR skCaptionFontPlus ();
C_IMPORT LONG_PTR skFontPlus ();
C_IMPORT LONG_PTR skFontBoldPlus ();
C_IMPORT LONG_PTR skFontDlgPlus ();
C_IMPORT void     skSkinDisable (IN HWND hWnd);
C_IMPORT void     skSetZorder (IN HWND hWnd, IN HWND UseOrder);
C_IMPORT HDC      skGetHdcMemBmp (IN HWND hOwner);
C_IMPORT long     skARGB (IN BYTE A, IN BYTE R, IN BYTE G, IN BYTE B);
C_IMPORT void     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 void     skChildOffset (IN HWND hWnd, OUT long &ofX, OUT long &ofY);
C_IMPORT void     skSetLabelFont (IN HWND hCtrl, IN WCHAR* zFontName, IN WORD nFontSize, IN long ARGBcolor, IN WORD nFontStyle);
C_IMPORT long     MinTrackSizeX (IN long SizeX);
C_IMPORT long     MinTrackSizeY (IN long SizeY);
C_IMPORT WCHAR*   skVersion ();
C_IMPORT long     skInitEngine (IN WCHAR* zSkinFile, IN WCHAR* zUserKey);
C_IMPORT long     skSetAnchorCtrl (IN HWND hWnd, IN long AnchorMode);
C_IMPORT long     skUsingDWM ();
C_IMPORT WCHAR*   skSkinFolder ();
C_IMPORT HWND     skButImage (IN HWND hOwner, OUT HBITMAP hBitmap, IN long xLeft, IN long yLeft, IN long ButID);
C_IMPORT WCHAR*   skAuthor ();
C_IMPORT HWND     skBorder (IN HWND hWnd, IN long x, IN long y, IN long xW, IN long yH, IN long nID, IN long nBorder);
C_IMPORT void     skSkinChildCtrl (IN HWND hWnd, IN long RedrawFlag);
C_IMPORT void     skSkinEnable (IN HWND hWnd);
C_IMPORT void     skRedrawMenuBar(IN HWND hWnd);
C_IMPORT HMENU    skGetMenu (IN HWND hWnd);
C_IMPORT HWND     skMenuContainer (IN HWND hWnd);
C_IMPORT void     skSkinWindowUpdate (IN HWND hWnd, IN long RedrawFlag);
C_IMPORT long     skSkinWindow (IN HWND hWnd, WCHAR* zSysButTip);
C_IMPORT HWND     skCreateDW (IN HWND hParent);
C_IMPORT void     skDestroyDW (OUT HWND &hDW);
C_IMPORT long     skDialogAlert (IN WCHAR* zCaption, IN WCHAR* zMessage, IN WCHAR* zButton);
C_IMPORT long     skDialogError (IN WCHAR* zCaption, IN WCHAR* zMessage, IN WCHAR* zButton);
C_IMPORT long     skDialogInfo (IN WCHAR* zCaption, IN WCHAR* zMessage, IN WCHAR* zButton);
C_IMPORT long     skDialogYesNo (IN WCHAR* zCaption, IN WCHAR* zMessage, IN WCHAR* zButton);
C_IMPORT WCHAR*   skDialogInput (IN WCHAR* zCaption, IN WCHAR* zMessage, IN WCHAR* zButton);
C_IMPORT HWND     skButtonImage (IN HWND hOwner, IN WCHAR* zFullpathImageName, IN long x, IN long y, IN long ButID, IN long StateMax);
C_IMPORT HWND     skPushButtonImage (IN HWND hOwner, IN WCHAR* zFullpathImageName, IN WCHAR* zLabel, IN long x, IN long y, IN long xW, IN long yH, IN long ButID, IN long Alignment);
C_IMPORT void     skSetToolTipText (IN HWND hObj, IN WCHAR* zText);
C_IMPORT void     skGetToolTipText (IN HWND hObj, IN WCHAR* zLabel);
C_IMPORT HWND     skCreateToolTip (IN HWND hObj, IN WCHAR* zText);
C_IMPORT void     skRemoveToolTip (IN HWND hObj);
C_IMPORT HWND     skClockCtrl (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     skComputeAngleFromPoint(IN HWND hWnd, IN long mX, IN long mY);
C_IMPORT void     skGaugeSetMinMax (IN HWND hCtrl, IN long nMin, IN long nMax);
C_IMPORT void     skGaugeGetMinMax (IN HWND hCtrl, OUT long &nMin, OUT long &nMax);
C_IMPORT void     skGaugeSetPos (IN HWND hCtrl, IN long nPos, IN long RedrawFlag);
C_IMPORT long     skGaugeGetPos (IN HWND hCtrl);
C_IMPORT HWND     skKnobGauge (IN HWND hOwner, IN WCHAR* zFullpathImageName, IN long x, IN long y, IN long w, IN long h, IN long ButID, IN long MinValue, IN long MaxValue, IN long UsePos, IN long StateMax);
C_IMPORT HWND     skStaticImage (IN HWND hOwner, WCHAR* zFullpathImageName, IN long x, IN long y, IN long w, IN long h, IN long nID);
C_IMPORT HWND     skGetDWMregion (IN HWND hWnd);
C_IMPORT long     skGetSystemMetrics (IN long nMeasure);
C_IMPORT HBITMAP  skSkiToDib (IN WCHAR* szFile, OUT long &nReserved);
C_IMPORT long     skTerminateProcess (IN WCHAR* szModule);
C_IMPORT void     skPaintBrushBitmap (IN HDC hDC, IN long x, IN long y, IN long nWidth, IN long nHeight, IN long ARGBcolor);
