/*
 This Software is provided under the Zope Public License (ZPL) Version 2.1.

 Copyright (C) 2011 Piotr Caban for CodeWeavers

 See the AUTHORS file for the list of contributors to the mingw-w64 project.

 This license has been certified as open source. It has also been designated
 as GPL compatible by the Free Software Foundation (FSF).

 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:

   1. Redistributions in source code must retain the accompanying copyright
      notice, this list of conditions, and the following disclaimer.
   2. Redistributions in binary form must reproduce the accompanying
      copyright notice, this list of conditions, and the following disclaimer
      in the documentation and/or other materials provided with the
      distribution.
   3. Names of the copyright holders must not be used to endorse or promote
      products derived from this software without prior written permission
      from the copyright holders.
   4. The right to distribute this software or to use it for any purpose does
      not give you the right to use Servicemarks (sm) or Trademarks (tm) of
      the copyright holders.  Use of them is covered by separate agreement
      with the copyright holders.
   5. If any files are modified, you must cause the modified files to carry
      prominent notices stating that you changed the files and the date of
      any change.

 Disclaimer

 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED
 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
 EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

#ifndef __VSSTYLE_H__
#define __VSSTYLE_H__


#define TMTVS_RESERVEDLOW 100000
#define TMTVS_RESERVEDHIGH 19999

/* AEROWIZARDSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_AEROWIZARDSTYLE (const WCHAR []){'A','E','R','O','W','I','Z','A','R','D','S','T','Y','L','E',0}
#define VSCLASS_AEROWIZARD (const WCHAR []){'A','E','R','O','W','I','Z','A','R','D',0}
#elif defined(_MSC_VER)
#define VSCLASS_AEROWIZARDSTYLE L"AEROWIZARDSTYLE"
#define VSCLASS_AEROWIZARD L"AEROWIZARD"
#else
static const WCHAR VSCLASS_AEROWIZARDSTYLE[] = {'A','E','R','O','W','I','Z','A','R','D','S','T','Y','L','E',0};
static const WCHAR VSCLASS_AEROWIZARD [] = {'A','E','R','O','W','I','Z','A','R','D',0};
#endif

enum AEROWIZARDPARTS {
    AW_TITLEBAR = 1,
    AW_HEADERAREA = 2,
    AW_CONTENTAREA = 3,
    AW_COMMANDAREA = 4,
    AW_BUTTON = 5
};

#define AEROWIZARDSTYLEPARTS AEROWIZARDPARTS;

enum TITLEBARSTATES {
    AW_S_TITLEBAR_ACTIVE = 1,
    AW_S_TITLEBAR_INACTIVE = 2
};

enum HEADERAREASTATES {
    AW_S_HEADERAREA_NOMARGIN = 1
};

enum CONTENTAREASTATES {
    AW_S_CONTENTAREA_NOMARGIN = 1
};

/* BUTTONSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_BUTTONSTYLE (const WCHAR []){'B','U','T','T','O','N','S','T','Y','L','E',0}
#define VSCLASS_BUTTON (const WCHAR []){'B','U','T','T','O','N',0}
#elif defined(_MSC_VER)
#define VSCLASS_BUTTONSTYLE L"BUTTONSTYLE"
#define VSCLASS_BUTTON L"BUTTON"
#else
static const WCHAR VSCLASS_BUTTONSTYLE [] = {'B','U','T','T','O','N','S','T','Y','L','E',0};
static const WCHAR VSCLASS_BUTTON [] = {'B','U','T','T','O','N',0};
#endif

enum BUTTONPARTS {
    BP_PUSHBUTTON = 1,
    BP_RADIOBUTTON = 2,
    BP_CHECKBOX = 3,
    BP_GROUPBOX = 4,
    BP_USERBUTTON = 5,
    BP_COMMANDLINK = 6,
    BP_COMMANDLINKGLYPH = 7
};

#define BUTTONSTYLEPARTS BUTTONPARTS;

enum PUSHBUTTONSTATES {
    PBS_NORMAL = 1,
    PBS_HOT = 2,
    PBS_PRESSED = 3,
    PBS_DISABLED = 4,
    PBS_DEFAULTED = 5,
    PBS_DEFAULTED_ANIMATING = 6
};

enum RADIOBUTTONSTATES {
    RBS_UNCHECKEDNORMAL = 1,
    RBS_UNCHECKEDHOT = 2,
    RBS_UNCHECKEDPRESSED = 3,
    RBS_UNCHECKEDDISABLED = 4,
    RBS_CHECKEDNORMAL = 5,
    RBS_CHECKEDHOT = 6,
    RBS_CHECKEDPRESSED = 7,
    RBS_CHECKEDDISABLED = 8
};

enum CHECKBOXSTATES {
    CBS_UNCHECKEDNORMAL = 1,
    CBS_UNCHECKEDHOT = 2,
    CBS_UNCHECKEDPRESSED = 3,
    CBS_UNCHECKEDDISABLED = 4,
    CBS_CHECKEDNORMAL = 5,
    CBS_CHECKEDHOT = 6,
    CBS_CHECKEDPRESSED = 7,
    CBS_CHECKEDDISABLED = 8,
    CBS_MIXEDNORMAL = 9,
    CBS_MIXEDHOT = 10,
    CBS_MIXEDPRESSED = 11,
    CBS_MIXEDDISABLED = 12,
    CBS_IMPLICITNORMAL = 13,
    CBS_IMPLICITHOT = 14,
    CBS_IMPLICITPRESSED = 15,
    CBS_IMPLICITDISABLED = 16,
    CBS_EXCLUDEDNORMAL = 17,
    CBS_EXCLUDEDHOT = 18,
    CBS_EXCLUDEDPRESSED = 19,
    CBS_EXCLUDEDDISABLED = 20
};

enum GROUPBOXSTATES {
    GBS_NORMAL = 1,
    GBS_DISABLED = 2
};

enum COMMANDLINKSTATES {
    CMDLS_NORMAL = 1,
    CMDLS_HOT = 2,
    CMDLS_PRESSED = 3,
    CMDLS_DISABLED = 4,
    CMDLS_DEFAULTED = 5,
    CMDLS_DEFAULTED_ANIMATING = 6
};

enum COMMANDLINKGLYPHSTATES {
    CMDLGS_NORMAL = 1,
    CMDLGS_HOT = 2,
    CMDLGS_PRESSED = 3,
    CMDLGS_DISABLED = 4,
    CMDLGS_DEFAULTED = 5
};

/* COMBOBOXSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_COMBOBOXSTYLE (const WCHAR []){'C','O','M','B','O','B','O','X','S','T','Y','L','E',0}
#define VSCLASS_COMBOBOX (const WCHAR []){'C','O','M','B','O','B','O','X',0}
#elif defined(_MSC_VER)
#define VSCLASS_COMBOBOXSTYLE L"COMBOBOXSTYLE"
#define VSCLASS_COMBOBOX L"COMBOBOX"
#else
static const WCHAR VSCLASS_COMBOBOXSTYLE [] = {'C','O','M','B','O','B','O','X','S','T','Y','L','E',0};
static const WCHAR VSCLASS_COMBOBOX [] = {'C','O','M','B','O','B','O','X',0};
#endif

enum COMBOBOXPARTS {
    CP_DROPDOWNBUTTON = 1,
    CP_BACKGROUND = 2,
    CP_TRANSPARENTBACKGROUND = 3,
    CP_BORDER = 4,
    CP_READONLY = 5,
    CP_DROPDOWNBUTTONRIGHT = 6,
    CP_DROPDOWNBUTTONLEFT = 7,
    CP_CUEBANNER = 8
};

#define COMBOBOXSTYLEPARTS COMBOBOXPARTS;

enum COMBOBOXSTYLESTATES {
    CBXS_NORMAL = 1,
    CBXS_HOT = 2,
    CBXS_PRESSED = 3,
    CBXS_DISABLED = 4
};

enum DROPDOWNBUTTONRIGHTSTATES {
    CBXSR_NORMAL = 1,
    CBXSR_HOT = 2,
    CBXSR_PRESSED = 3,
    CBXSR_DISABLED = 4
};

enum DROPDOWNBUTTONLEFTSTATES {
    CBXSL_NORMAL = 1,
    CBXSL_HOT = 2,
    CBXSL_PRESSED = 3,
    CBXSL_DISABLED = 4
};

enum TRANSPARENTBACKGROUNDSTATES {
    CBTBS_NORMAL = 1,
    CBTBS_HOT = 2,
    CBTBS_DISABLED = 3,
    CBTBS_FOCUSED = 4
};

enum BORDERSTATES {
    CBB_NORMAL = 1,
    CBB_HOT = 2,
    CBB_FOCUSED = 3,
    CBB_DISABLED = 4
};

enum READONLYSTATES {
    CBRO_NORMAL = 1,
    CBRO_HOT = 2,
    CBRO_PRESSED = 3,
    CBRO_DISABLED = 4
};

enum CUEBANNERSTATES {
    CBCB_NORMAL = 1,
    CBCB_HOT = 2,
    CBCB_PRESSED = 3,
    CBCB_DISABLED = 4
};

/* COMMUNICATIONSSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_COMMUNICATIONSSTYLE (const WCHAR []){'C','O','M','M','U','N','I','C','A','T','I','O','N','S','S','T','Y','L','E',0}
#define VSCLASS_COMMUNICATIONS (const WCHAR []){'C','O','M','M','U','N','I','C','A','T','I','O','N','S',0}
#elif defined(_MSC_VER)
#define VSCLASS_COMMUNICATIONSSTYLE L"COMMUNICATIONSSTYLE"
#define VSCLASS_COMMUNICATIONS L"COMMUNICATIONS"
#else
static const WCHAR VSCLASS_COMMUNICATIONSSTYLE [] = {'C','O','M','M','U','N','I','C','A','T','I','O','N','S','S','T','Y','L','E',0};
static const WCHAR VSCLASS_COMMUNICATIONS [] = {'C','O','M','M','U','N','I','C','A','T','I','O','N','S',0};
#endif

enum COMMUNICATIONSPARTS {
    CSST_TAB = 1
};

#define COMMUNICATIONSSTYLEPARTS COMMUNICATIONSPARTS;

enum TABSTATES {
    CSTB_NORMAL = 1,
    CSTB_HOT = 2,
    CSTB_SELECTED = 3
};

/* CONTROLPANELSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_CONTROLPANELSTYLE (const WCHAR []){'C','O','N','T','R','O','L','P','A','N','E','L','S','T','Y','L','E',0}
#define VSCLASS_CONTROLPANEL (const WCHAR []){'C','O','N','T','R','O','L','P','A','N','E','L',0}
#elif defined(_MSC_VER)
#define VSCLASS_CONTROLPANELSTYLE L"CONTROLPANELSTYLE"
#define VSCLASS_CONTROLPANEL L"CONTROLPANEL"
#else
static const WCHAR VSCLASS_CONTROLPANELSTYLE [] = {'C','O','N','T','R','O','L','P','A','N','E','L','S','T','Y','L','E',0};
static const WCHAR VSCLASS_CONTROLPANEL [] = {'C','O','N','T','R','O','L','P','A','N','E','L',0};
#endif

enum CONTROLPANELPARTS {
    CPANEL_NAVIGATIONPANE = 1,
    CPANEL_CONTENTPANE = 2,
    CPANEL_NAVIGATIONPANELABEL = 3,
    CPANEL_CONTENTPANELABEL = 4,
    CPANEL_TITLE = 5,
    CPANEL_BODYTEXT = 6,
    CPANEL_HELPLINK = 7,
    CPANEL_TASKLINK = 8,
    CPANEL_GROUPTEXT = 9,
    CPANEL_CONTENTLINK = 10,
    CPANEL_SECTIONTITLELINK = 11,
    CPANEL_LARGECOMMANDAREA = 12,
    CPANEL_SMALLCOMMANDAREA = 13,
    CPANEL_BUTTON = 14,
    CPANEL_MESSAGETEXT = 15,
    CPANEL_NAVIGATIONPANELINE = 16,
    CPANEL_CONTENTPANELINE = 17,
    CPANEL_BANNERAREA = 18,
    CPANEL_BODYTITLE = 19
};

#define CONTROLPANELSTYLEPARTS CONTROLPANELPARTS;

enum HELPLINKSTATES {
    CPHL_NORMAL = 1,
    CPHL_HOT = 2,
    CPHL_PRESSED = 3,
    CPHL_DISABLED = 4
};

enum TASKLINKSTATES {
    CPTL_NORMAL = 1,
    CPTL_HOT = 2,
    CPTL_PRESSED = 3,
    CPTL_DISABLED = 4,
    CPTL_PAGE = 5
};

enum CONTENTLINKSTATES {
    CPCL_NORMAL = 1,
    CPCL_HOT = 2,
    CPCL_PRESSED = 3,
    CPCL_DISABLED = 4
};

enum SECTIONTITLELINKSTATES {
    CPSTL_NORMAL = 1,
    CPSTL_HOT = 2
};

/* DATEPICKERSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_DATEPICKERSTYLE (const WCHAR []){'D','A','T','E','P','I','C','K','E','R','S','T','Y','L','E',0}
#define VSCLASS_DATEPICKER (const WCHAR []){'D','A','T','E','P','I','C','K','E','R',0}
#elif defined(_MSC_VER)
#define VSCLASS_DATEPICKERSTYLE L"DATEPICKERSTYLE"
#define VSCLASS_DATEPICKER L"DATEPICKER"
#else
static const WCHAR VSCLASS_DATEPICKERSTYLE[] = {'D','A','T','E','P','I','C','K','E','R','S','T','Y','L','E',0};
static const WCHAR VSCLASS_DATEPICKER [] = {'D','A','T','E','P','I','C','K','E','R',0};
#endif

enum DATEPICKERPARTS {
    DP_DATETEXT = 1,
    DP_DATEBORDER = 2,
    DP_SHOWCALENDARBUTTONRIGHT = 3
};

#define DATEPICKERSTYLEPARTS DATEPICKERPARTS;

enum DATETEXTSTATES {
    DPDT_NORMAL = 1,
    DPDT_DISABLED = 2,
    DPDT_SELECTED = 3
};

enum DATEBORDERSTATES {
    DPDB_NORMAL = 1,
    DPDB_HOT = 2,
    DPDB_FOCUSED = 3,
    DPDB_DISABLED = 4
};

enum SHOWCALENDARBUTTONRIGHTSTATES {
    DPSCBR_NORMAL = 1,
    DPSCBR_HOT = 2,
    DPSCBR_PRESSED = 3,
    DPSCBR_DISABLED = 4
};

/* DRAGDROPSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_DRAGDROPSTYLE (const WCHAR []){'D','R','A','G','D','R','O','P','S','T','Y','L','E',0}
#define VSCLASS_DRAGDROP (const WCHAR []){'D','R','A','G','D','R','O','P',0}
#elif defined(_MSC_VER)
#define VSCLASS_DRAGDROPSTYLE L"DRAGDROPSTYLE"
#define VSCLASS_DRAGDROP L"DRAGDROP"
#else
static const WCHAR VSCLASS_DRAGDROPSTYLE [] = {'D','R','A','G','D','R','O','P','S','T','Y','L','E',0};
static const WCHAR VSCLASS_DRAGDROP [] = {'D','R','A','G','D','R','O','P',0};
#endif

enum DRAGDROPPARTS {
    DD_COPY = 1,
    DD_MOVE = 2,
    DD_UPDATEMETADATA = 3,
    DD_CREATELINK = 4,
    DD_WARNING = 5,
    DD_NONE = 6,
    DD_IMAGEBG = 7,
    DD_TEXTBG = 8
};

#define DRAGDROPSTYLEPARTS DRAGDROPPARTS;

enum COPYSTATES {
    DDCOPY_HIGHLIGHT = 1,
    DDCOPY_NOHIGHLIGHT = 2
};

enum MOVESTATES {
    DDMOVE_HIGHLIGHT = 1,
    DDMOVE_NOHIGHLIGHT = 2
};

enum UPDATEMETADATASTATES {
    DDUPDATEMETADATA_HIGHLIGHT = 1,
    DDUPDATEMETADATA_NOHIGHLIGHT = 2
};

enum CREATELINKSTATES {
    DDCREATELINK_HIGHLIGHT = 1,
    DDCREATELINK_NOHIGHLIGHT = 2
};

enum WARNINGSTATES {
    DDWARNING_HIGHLIGHT = 1,
    DDWARNING_NOHIGHLIGHT = 2
};

enum NONESTATES {
    DDNONE_HIGHLIGHT = 1,
    DDNONE_NOHIGHLIGHT = 2
};

/* EDITSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_EDITSTYLE (const WCHAR []){'E','D','I','T','S','T','Y','L','E',0}
#define VSCLASS_EDIT (const WCHAR []){'E','D','I','T',0}
#elif defined(_MSC_VER)
#define VSCLASS_EDITSTYLE L"EDITSTYLE"
#define VSCLASS_EDIT L"EDIT"
#else
static const WCHAR VSCLASS_EDITSTYLE [] = {'E','D','I','T','S','T','Y','L','E',0};
static const WCHAR VSCLASS_EDIT [] = {'E','D','I','T',0};
#endif

enum EDITPARTS {
    EP_EDITTEXT = 1,
    EP_CARET = 2,
    EP_BACKGROUND = 3,
    EP_PASSWORD = 4,
    EP_BACKGROUNDWITHBORDER = 5,
    EP_EDITBORDER_NOSCROLL = 6,
    EP_EDITBORDER_HSCROLL = 7,
    EP_EDITBORDER_VSCROLL = 8,
    EP_EDITBORDER_HVSCROLL = 9
};

#define EDITSTYLEPARTS EDITPARTS;

enum EDITTEXTSTATES {
    ETS_NORMAL = 1,
    ETS_HOT = 2,
    ETS_SELECTED = 3,
    ETS_DISABLED = 4,
    ETS_FOCUSED = 5,
    ETS_READONLY = 6,
    ETS_ASSIST = 7,
    ETS_CUEBANNER = 8
};

enum BACKGROUNDSTATES {
    EBS_NORMAL = 1,
    EBS_HOT = 2,
    EBS_DISABLED = 3,
    EBS_FOCUSED = 4,
    EBS_READONLY = 5,
    EBS_ASSIST = 6
};

enum BACKGROUNDWITHBORDERSTATES {
    EBWBS_NORMAL = 1,
    EBWBS_HOT = 2,
    EBWBS_DISABLED = 3,
    EBWBS_FOCUSED = 4
};

enum EDITBORDER_NOSCROLLSTATES {
    EPSN_NORMAL = 1,
    EPSN_HOT = 2,
    EPSN_FOCUSED = 3,
    EPSN_DISABLED = 4
};

enum EDITBORDER_HSCROLLSTATES {
    EPSH_NORMAL = 1,
    EPSH_HOT = 2,
    EPSH_FOCUSED = 3,
    EPSH_DISABLED = 4
};

enum EDITBORDER_VSCROLLSTATES {
    EPSV_NORMAL = 1,
    EPSV_HOT = 2,
    EPSV_FOCUSED = 3,
    EPSV_DISABLED = 4
};

enum EDITBORDER_HVSCROLLSTATES {
    EPSHV_NORMAL = 1,
    EPSHV_HOT = 2,
    EPSHV_FOCUSED = 3,
    EPSHV_DISABLED = 4
};

/* EXPLORERBARSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_EXPLORERBARSTYLE (const WCHAR []){'E','X','P','L','O','R','E','R','B','A','R','S','T','Y','L','E',0}
#define VSCLASS_EXPLORERBAR (const WCHAR []){'E','X','P','L','O','R','E','R','B','A','R',0}
#elif defined(_MSC_VER)
#define VSCLASS_EXPLORERBARSTYLE L"EXPLORERBARSTYLE"
#define VSCLASS_EXPLORERBAR L"EXPLORERBAR"
#else
static const WCHAR VSCLASS_EXPLORERBARSTYLE [] = {'E','X','P','L','O','R','E','R','B','A','R','S','T','Y','L','E',0};
static const WCHAR VSCLASS_EXPLORERBAR [] = {'E','X','P','L','O','R','E','R','B','A','R',0};
#endif

enum EXPLORERBARPARTS {
    EBP_HEADERBACKGROUND = 1,
    EBP_HEADERCLOSE = 2,
    EBP_HEADERPIN = 3,
    EBP_IEBARMENU = 4,
    EBP_NORMALGROUPBACKGROUND = 5,
    EBP_NORMALGROUPCOLLAPSE = 6,
    EBP_NORMALGROUPEXPAND = 7,
    EBP_NORMALGROUPHEAD = 8,
    EBP_SPECIALGROUPBACKGROUND = 9,
    EBP_SPECIALGROUPCOLLAPSE = 10,
    EBP_SPECIALGROUPEXPAND = 11,
    EBP_SPECIALGROUPHEAD = 12
};

#define EXPLORERBARSTYLEPARTS EXPLORERBARPARTS;

enum HEADERCLOSESTATES {
    EBHC_NORMAL = 1,
    EBHC_HOT = 2,
    EBHC_PRESSED = 3
};

enum HEADERPINSTATES {
    EBHP_NORMAL = 1,
    EBHP_HOT = 2,
    EBHP_PRESSED = 3,
    EBHP_SELECTEDNORMAL = 4,
    EBHP_SELECTEDHOT = 5,
    EBHP_SELECTEDPRESSED = 6
};

enum IEBARMENUSTATES {
    EBM_NORMAL = 1,
    EBM_HOT = 2,
    EBM_PRESSED = 3
};

enum NORMALGROUPCOLLAPSESTATES {
    EBNGC_NORMAL = 1,
    EBNGC_HOT = 2,
    EBNGC_PRESSED = 3
};

enum NORMALGROUPEXPANDSTATES {
    EBNGE_NORMAL = 1,
    EBNGE_HOT = 2,
    EBNGE_PRESSED = 3
};

enum SPECIALGROUPCOLLAPSESTATES {
    EBSGC_NORMAL = 1,
    EBSGC_HOT = 2,
    EBSGC_PRESSED = 3
};

enum SPECIALGROUPEXPANDSTATES {
    EBSGE_NORMAL = 1,
    EBSGE_HOT = 2,
    EBSGE_PRESSED = 3
};

/* FLYOUTSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_FLYOUTSTYLE (const WCHAR []){'F','L','Y','O','U','T','S','T','Y','L','E',0}
#define VSCLASS_FLYOUT (const WCHAR []){'F','L','Y','O','U','T',0}
#elif defined(_MSC_VER)
#define VSCLASS_FLYOUTSTYLE L"FLYOUTSTYLE"
#define VSCLASS_FLYOUT L"FLYOUT"
#else
static const WCHAR VSCLASS_FLYOUTSTYLE [] = {'F','L','Y','O','U','T','S','T','Y','L','E',0};
static const WCHAR VSCLASS_FLYOUT [] = {'F','L','Y','O','U','T',0};
#endif

enum FLYOUTPARTS {
    FLYOUT_HEADER = 1,
    FLYOUT_BODY = 2,
    FLYOUT_LABEL = 3,
    FLYOUT_LINK = 4,
    FLYOUT_DIVIDER = 5,
    FLYOUT_WINDOW = 6,
    FLYOUT_LINKAREA = 7,
    FLYOUT_LINKHEADER = 8
};

#define FLYOUTSTYLEPARTS FLYOUTPARTS;

enum LABELSTATES {
    FLS_NORMAL = 1,
    FLS_SELECTED = 2,
    FLS_EMPHASIZED = 3,
    FLS_DISABLED = 4
};

enum LINKSTATES {
    FLYOUTLINK_NORMAL = 1,
    FLYOUTLINK_HOVER = 2
};

enum BODYSTATES {
    FBS_NORMAL = 1,
    FBS_EMPHASIZED = 2
};

enum LINKHEADERSTATES {
    FLH_NORMAL = 1,
    FLH_HOVER = 2
};

/* HEADERSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_HEADERSTYLE (const WCHAR []){'H','E','A','D','E','R','S','T','Y','L','E',0}
#define VSCLASS_HEADER (const WCHAR []){'H','E','A','D','E','R',0}
#elif defined(_MSC_VER)
#define VSCLASS_HEADERSTYLE L"HEADERSTYLE"
#define VSCLASS_HEADER L"HEADER"
#else
static const WCHAR VSCLASS_HEADERSTYLE [] = {'H','E','A','D','E','R','S','T','Y','L','E',0};
static const WCHAR VSCLASS_HEADER [] = {'H','E','A','D','E','R',0};
#endif

enum HEADERPARTS {
    HP_HEADERITEM = 1,
    HP_HEADERITEMLEFT = 2,
    HP_HEADERITEMRIGHT = 3,
    HP_HEADERSORTARROW = 4,
    HP_HEADERDROPDOWN = 5,
    HP_HEADERDROPDOWNFILTER = 6,
    HP_HEADEROVERFLOW = 7
};

#define HEADERSTYLEPARTS HEADERPARTS;

enum HEADERSTYLESTATES {
    HBG_DETAILS = 1,
    HBG_ICON = 2
};

enum HEADERITEMSTATES {
    HIS_NORMAL = 1,
    HIS_HOT = 2,
    HIS_PRESSED = 3,
    HIS_SORTEDNORMAL = 4,
    HIS_SORTEDHOT = 5,
    HIS_SORTEDPRESSED = 6,
    HIS_ICONNORMAL = 7,
    HIS_ICONHOT = 8,
    HIS_ICONPRESSED = 9,
    HIS_ICONSORTEDNORMAL = 10,
    HIS_ICONSORTEDHOT = 11,
    HIS_ICONSORTEDPRESSED = 12
};

enum HEADERITEMLEFTSTATES {
    HILS_NORMAL = 1,
    HILS_HOT = 2,
    HILS_PRESSED = 3
};

enum HEADERITEMRIGHTSTATES {
    HIRS_NORMAL = 1,
    HIRS_HOT = 2,
    HIRS_PRESSED = 3
};

enum HEADERSORTARROWSTATES {
    HSAS_SORTEDUP = 1,
    HSAS_SORTEDDOWN = 2
};

enum HEADERDROPDOWNSTATES {
    HDDS_NORMAL = 1,
    HDDS_SOFTHOT = 2,
    HDDS_HOT = 3
};

enum HEADERDROPDOWNFILTERSTATES {
    HDDFS_NORMAL = 1,
    HDDFS_SOFTHOT = 2,
    HDDFS_HOT = 3
};

enum HEADEROVERFLOWSTATES {
    HOFS_NORMAL = 1,
    HOFS_HOT = 2
};

/* LISTBOXSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_LISTBOXSTYLE (const WCHAR []){'L','I','S','T','B','O','X','S','T','Y','L','E',0}
#define VSCLASS_LISTBOX (const WCHAR []){'L','I','S','T','B','O','X',0}
#elif defined(_MSC_VER)
#define VSCLASS_LISTBOXSTYLE L"LISTBOXSTYLE"
#define VSCLASS_LISTBOX L"LISTBOX"
#else
static const WCHAR VSCLASS_LISTBOXSTYLE [] = {'L','I','S','T','B','O','X','S','T','Y','L','E',0};
static const WCHAR VSCLASS_LISTBOX[] = {'L','I','S','T','B','O','X',0};
#endif

enum LISTBOXPARTS {
    LBCP_BORDER_HSCROLL = 1,
    LBCP_BORDER_HVSCROLL = 2,
    LBCP_BORDER_NOSCROLL = 3,
    LBCP_BORDER_VSCROLL = 4,
    LBCP_ITEM = 5
};

#define LISTBOXSTYLEPARTS LISTBOXPARTS;

enum BORDER_HSCROLLSTATES {
    LBPSH_NORMAL = 1,
    LBPSH_FOCUSED = 2,
    LBPSH_HOT = 3,
    LBPSH_DISABLED = 4
};

enum BORDER_HVSCROLLSTATES {
    LBPSHV_NORMAL = 1,
    LBPSHV_FOCUSED = 2,
    LBPSHV_HOT = 3,
    LBPSHV_DISABLED = 4
};

enum BORDER_NOSCROLLSTATES {
    LBPSN_NORMAL = 1,
    LBPSN_FOCUSED = 2,
    LBPSN_HOT = 3,
    LBPSN_DISABLED = 4
};

enum BORDER_VSCROLLSTATES {
    LBPSV_NORMAL = 1,
    LBPSV_FOCUSED = 2,
    LBPSV_HOT = 3,
    LBPSV_DISABLED = 4
};

enum ITEMSTATES {
    LBPSI_HOT = 1,
    LBPSI_HOTSELECTED = 2,
    LBPSI_SELECTED = 3,
    LBPSI_SELECTEDNOTFOCUS = 4
};

/* LISTVIEWSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_LISTVIEWSTYLE (const WCHAR []){'L','I','S','T','V','I','E','W','S','T','Y','L','E',0}
#define VSCLASS_LISTVIEW (const WCHAR []){'L','I','S','T','V','I','E','W',0}
#elif defined(_MSC_VER)
#define VSCLASS_LISTVIEWSTYLE L"LISTVIEWSTYLE"
#define VSCLASS_LISTVIEW L"LISTVIEW"
#else
static const WCHAR VSCLASS_LISTVIEWSTYLE [] = {'L','I','S','T','V','I','E','W','S','T','Y','L','E',0};
static const WCHAR VSCLASS_LISTVIEW [] = {'L','I','S','T','V','I','E','W',0};
#endif

enum LISTVIEWPARTS {
    LVP_LISTITEM = 1,
    LVP_LISTGROUP = 2,
    LVP_LISTDETAIL = 3,
    LVP_LISTSORTEDDETAIL = 4,
    LVP_EMPTYTEXT = 5,
    LVP_GROUPHEADER = 6,
    LVP_GROUPHEADERLINE = 7,
    LVP_EXPANDBUTTON = 8,
    LVP_COLLAPSEBUTTON = 9,
    LVP_COLUMNDETAIL = 10
};

#define LISTVIEWSTYLEPARTS LISTVIEWPARTS;

enum LISTITEMSTATES {
    LISS_NORMAL = 1,
    LISS_HOT = 2,
    LISS_SELECTED = 3,
    LISS_DISABLED = 4,
    LISS_SELECTEDNOTFOCUS = 5,
    LISS_HOTSELECTED = 6
};

enum GROUPHEADERSTATES {
    LVGH_OPEN = 1,
    LVGH_OPENHOT = 2,
    LVGH_OPENSELECTED = 3,
    LVGH_OPENSELECTEDHOT = 4,
    LVGH_OPENSELECTEDNOTFOCUSED = 5,
    LVGH_OPENSELECTEDNOTFOCUSEDHOT = 6,
    LVGH_OPENMIXEDSELECTION = 7,
    LVGH_OPENMIXEDSELECTIONHOT = 8,
    LVGH_CLOSE = 9,
    LVGH_CLOSEHOT = 10,
    LVGH_CLOSESELECTED = 11,
    LVGH_CLOSESELECTEDHOT = 12,
    LVGH_CLOSESELECTEDNOTFOCUSED = 13,
    LVGH_CLOSESELECTEDNOTFOCUSEDHOT = 14,
    LVGH_CLOSEMIXEDSELECTION = 15,
    LVGH_CLOSEMIXEDSELECTIONHOT = 16
};

enum GROUPHEADERLINESTATES {
    LVGHL_OPEN = 1,
    LVGHL_OPENHOT = 2,
    LVGHL_OPENSELECTED = 3,
    LVGHL_OPENSELECTEDHOT = 4,
    LVGHL_OPENSELECTEDNOTFOCUSED = 5,
    LVGHL_OPENSELECTEDNOTFOCUSEDHOT = 6,
    LVGHL_OPENMIXEDSELECTION = 7,
    LVGHL_OPENMIXEDSELECTIONHOT = 8,
    LVGHL_CLOSE = 9,
    LVGHL_CLOSEHOT = 10,
    LVGHL_CLOSESELECTED = 11,
    LVGHL_CLOSESELECTEDHOT = 12,
    LVGHL_CLOSESELECTEDNOTFOCUSED = 13,
    LVGHL_CLOSESELECTEDNOTFOCUSEDHOT = 14,
    LVGHL_CLOSEMIXEDSELECTION = 15,
    LVGHL_CLOSEMIXEDSELECTIONHOT = 16
};

enum EXPANDBUTTONSTATES {
    LVEB_NORMAL = 1,
    LVEB_HOVER = 2,
    LVEB_PUSHED = 3
};

enum COLLAPSEBUTTONSTATES {
    LVCB_NORMAL = 1,
    LVCB_HOVER = 2,
    LVCB_PUSHED = 3
};

/* MENUSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_MENUSTYLE (const WCHAR []){'M','E','N','U','S','T','Y','L','E',0}
#define VSCLASS_MENU (const WCHAR []){'M','E','N','U',0}
#elif defined(_MSC_VER)
#define VSCLASS_MENUSTYLE L"MENUSTYLE"
#define VSCLASS_MENU L"MENU"
#else
static const WCHAR VSCLASS_MENUSTYLE [] = {'M','E','N','U','S','T','Y','L','E',0};
static const WCHAR VSCLASS_MENU [] = {'M','E','N','U',0};
#endif

enum MENUPARTS {
    MENU_MENUITEM_TMSCHEMA = 1,
    MENU_MENUDROPDOWN_TMSCHEMA = 2,
    MENU_MENUBARITEM_TMSCHEMA = 3,
    MENU_MENUBARDROPDOWN_TMSCHEMA = 4,
    MENU_CHEVRON_TMSCHEMA = 5,
    MENU_SEPARATOR_TMSCHEMA = 6,
    MENU_BARBACKGROUND = 7,
    MENU_BARITEM = 8,
    MENU_POPUPBACKGROUND = 9,
    MENU_POPUPBORDERS = 10,
    MENU_POPUPCHECK = 11,
    MENU_POPUPCHECKBACKGROUND = 12,
    MENU_POPUPGUTTER = 13,
    MENU_POPUPITEM = 14,
    MENU_POPUPSEPARATOR = 15,
    MENU_POPUPSUBMENU = 16,
    MENU_SYSTEMCLOSE = 17,
    MENU_SYSTEMMAXIMIZE = 18,
    MENU_SYSTEMMINIMIZE = 19,
    MENU_SYSTEMRESTORE = 20
};

#define MENUSTYLEPARTS MENUPARTS;

enum BARBACKGROUNDSTATES {
    MB_ACTIVE = 1,
    MB_INACTIVE = 2
};

enum BARITEMSTATES {
    MBI_NORMAL = 1,
    MBI_HOT = 2,
    MBI_PUSHED = 3,
    MBI_DISABLED = 4,
    MBI_DISABLEDHOT = 5,
    MBI_DISABLEDPUSHED = 6
};

enum POPUPCHECKSTATES {
    MC_CHECKMARKNORMAL = 1,
    MC_CHECKMARKDISABLED = 2,
    MC_BULLETNORMAL = 3,
    MC_BULLETDISABLED = 4
};

enum POPUPCHECKBACKGROUNDSTATES {
    MCB_DISABLED = 1,
    MCB_NORMAL = 2,
    MCB_BITMAP = 3
};

enum POPUPITEMSTATES {
    MPI_NORMAL = 1,
    MPI_HOT = 2,
    MPI_DISABLED = 3,
    MPI_DISABLEDHOT = 4
};

enum POPUPSUBMENUSTATES {
    MSM_NORMAL = 1,
    MSM_DISABLED = 2
};

enum SYSTEMCLOSESTATES {
    MSYSC_NORMAL = 1,
    MSYSC_DISABLED = 2
};

enum SYSTEMMAXIMIZESTATES {
    MSYSMX_NORMAL = 1,
    MSYSMX_DISABLED = 2
};

enum SYSTEMMINIMIZESTATES {
    MSYSMN_NORMAL = 1,
    MSYSMN_DISABLED = 2
};

enum SYSTEMRESTORESTATES {
    MSYSR_NORMAL = 1,
    MSYSR_DISABLED = 2
};

/* NAVIGATION class */
#if defined(__GNUC__)
#define VSCLASS_NAVIGATION (const WCHAR []){'N','A','V','I','G','A','T','I','O','N',0}
#elif defined(_MSC_VER)
#define VSCLASS_NAVIGATION L"NAVIGATION"
#else
static const WCHAR VSCLASS_NAVIGATION [] = {'N','A','V','I','G','A','T','I','O','N',0};
#endif

enum NAVIGATIONPARTS {
    NAV_BACKBUTTON = 1,
    NAV_FORWARDBUTTON = 2,
    NAV_MENUBUTTON = 3
};

enum NAV_BACKBUTTONSTATES {
    NAV_BB_NORMAL = 1,
    NAV_BB_HOT = 2,
    NAV_BB_PRESSED = 3,
    NAV_BB_DISABLED = 4
};

enum NAV_FORWARDBUTTONSTATES {
    NAV_FB_NORMAL = 1,
    NAV_FB_HOT = 2,
    NAV_FB_PRESSED = 3,
    NAV_FB_DISABLED = 4
};

enum NAV_MENUBUTTONSTATES {
    NAV_MB_NORMAL = 1,
    NAV_MB_HOT = 2,
    NAV_MB_PRESSED = 3,
    NAV_MB_DISABLED = 4
};

/* PROGRESSSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_PROGRESSSTYLE (const WCHAR []){'P','R','O','G','R','E','S','S','S','T','Y','L','E',0}
#define VSCLASS_PROGRESS (const WCHAR []){'P','R','O','G','R','E','S','S',0}
#elif defined(_MSC_VER)
#define VSCLASS_PROGRESSSTYLE L"PROGRESSSTYLE"
#define VSCLASS_PROGRESS L"PROGRESS"
#else
static const WCHAR VSCLASS_PROGRESSSTYLE [] = {'P','R','O','G','R','E','S','S','S','T','Y','L','E',0};
static const WCHAR VSCLASS_PROGRESS [] = {'P','R','O','G','R','E','S','S',0};
#endif

enum PROGRESSPARTS {
    PP_BAR = 1,
    PP_BARVERT = 2,
    PP_CHUNK = 3,
    PP_CHUNKVERT = 4,
    PP_FILL = 5,
    PP_FILLVERT = 6,
    PP_PULSEOVERLAY = 7,
    PP_MOVEOVERLAY = 8,
    PP_PULSEOVERLAYVERT = 9,
    PP_MOVEOVERLAYVERT = 10,
    PP_TRANSPARENTBAR = 11,
    PP_TRANSPARENTBARVERT = 12
};

#define PROGRESSSTYLEPARTS PROGRESSPARTS;

enum TRANSPARENTBARSTATES {
    PBBS_NORMAL = 1,
    PBBS_PARTIAL = 2
};

enum TRANSPARENTBARVERTSTATES {
    PBBVS_NORMAL = 1,
    PBBVS_PARTIAL = 2
};

enum FILLSTATES {
    PBFS_NORMAL = 1,
    PBFS_ERROR = 2,
    PBFS_PAUSED = 3,
    PBFS_PARTIAL = 4
};

enum FILLVERTSTATES {
    PBFVS_NORMAL = 1,
    PBFVS_ERROR = 2,
    PBFVS_PAUSED = 3,
    PBFVS_PARTIAL = 4
};

/* REBARSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_REBARSTYLE (const WCHAR []){'R','E','B','A','R','S','T','Y','L','E',0}
#define VSCLASS_REBAR (const WCHAR []){'R','E','B','A','R',0}
#elif defined(_MSC_VER)
#define VSCLASS_REBARSTYLE L"REBARSTYLE"
#define VSCLASS_REBAR L"REBAR"
#else
static const WCHAR VSCLASS_REBARSTYLE [] = {'R','E','B','A','R','S','T','Y','L','E',0};
static const WCHAR VSCLASS_REBAR [] = {'R','E','B','A','R',0};
#endif

enum REBARPARTS {
    RP_GRIPPER = 1,
    RP_GRIPPERVERT = 2,
    RP_BAND = 3,
    RP_CHEVRON = 4,
    RP_CHEVRONVERT = 5,
    RP_BACKGROUND = 6,
    RP_SPLITTER = 7,
    RP_SPLITTERVERT = 8
};

#define REBARSTYLEPARTS REBARPARTS;

enum CHEVRONSTATES {
    CHEVS_NORMAL = 1,
    CHEVS_HOT = 2,
    CHEVS_PRESSED = 3
};

enum CHEVRONVERTSTATES {
    CHEVSV_NORMAL = 1,
    CHEVSV_HOT = 2,
    CHEVSV_PRESSED = 3
};

enum SPLITTERSTATES {
    SPLITS_NORMAL = 1,
    SPLITS_HOT = 2,
    SPLITS_PRESSED = 3
};

enum SPLITTERVERTSTATES {
    SPLITSV_NORMAL = 1,
    SPLITSV_HOT = 2,
    SPLITSV_PRESSED = 3
};

/* SCROLLBARSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_SCROLLBARSTYLE (const WCHAR []){'S','C','R','O','L','L','B','A','R','S','T','Y','L','E',0}
#define VSCLASS_SCROLLBAR (const WCHAR []){'S','C','R','O','L','L','B','A','R',0}
#elif defined(_MSC_VER)
#define VSCLASS_SCROLLBARSTYLE L"SCROLLBARSTYLE"
#define VSCLASS_SCROLLBAR L"SCROLLBAR"
#else
static const WCHAR VSCLASS_SCROLLBARSTYLE [] = {'S','C','R','O','L','L','B','A','R','S','T','Y','L','E',0};
static const WCHAR VSCLASS_SCROLLBAR [] = {'S','C','R','O','L','L','B','A','R',0};
#endif

enum SCROLLBARPARTS {
    SBP_ARROWBTN = 1,
    SBP_THUMBBTNHORZ = 2,
    SBP_THUMBBTNVERT = 3,
    SBP_LOWERTRACKHORZ = 4,
    SBP_UPPERTRACKHORZ = 5,
    SBP_LOWERTRACKVERT = 6,
    SBP_UPPERTRACKVERT = 7,
    SBP_GRIPPERHORZ = 8,
    SBP_GRIPPERVERT = 9,
    SBP_SIZEBOX = 10
};

#define SCROLLBARSTYLEPARTS SCROLLBARPARTS;

enum ARROWBTNSTATES {
    ABS_UPNORMAL = 1,
    ABS_UPHOT = 2,
    ABS_UPPRESSED = 3,
    ABS_UPDISABLED = 4,
    ABS_DOWNNORMAL = 5,
    ABS_DOWNHOT = 6,
    ABS_DOWNPRESSED = 7,
    ABS_DOWNDISABLED = 8,
    ABS_LEFTNORMAL = 9,
    ABS_LEFTHOT = 10,
    ABS_LEFTPRESSED = 11,
    ABS_LEFTDISABLED = 12,
    ABS_RIGHTNORMAL = 13,
    ABS_RIGHTHOT = 14,
    ABS_RIGHTPRESSED = 15,
    ABS_RIGHTDISABLED = 16,
    ABS_UPHOVER = 17,
    ABS_DOWNHOVER = 18,
    ABS_LEFTHOVER = 19,
    ABS_RIGHTHOVER = 20
};

enum SCROLLBARSTYLESTATES {
    SCRBS_NORMAL = 1,
    SCRBS_HOT = 2,
    SCRBS_PRESSED = 3,
    SCRBS_DISABLED = 4,
    SCRBS_HOVER = 5
};

enum SIZEBOXSTATES {
    SZB_RIGHTALIGN = 1,
    SZB_LEFTALIGN = 2,
    SZB_TOPRIGHTALIGN = 3,
    SZB_TOPLEFTALIGN = 4,
    SZB_HALFBOTTOMRIGHTALIGN = 5,
    SZB_HALFBOTTOMLEFTALIGN = 6,
    SZB_HALFTOPRIGHTALIGN = 7,
    SZB_HALFTOPLEFTALIGN = 8
};

/* SPINSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_SPINSTYLE (const WCHAR []){'S','P','I','N','S','T','Y','L','E',0}
#elif defined(_MSC_VER)
#define VSCLASS_SPINSTYLE L"SPINSTYLE"
#else
static const WCHAR VSCLASS_SPINSTYLE [] = {'S','P','I','N','S','T','Y','L','E',0};
#endif
#if defined(__GNUC__)
#define VSCLASS_SPIN (const WCHAR []){'S','P','I','N',0}
#elif defined(_MSC_VER)
#define VSCLASS_SPIN L"SPIN"
#else
static const WCHAR VSCLASS_SPIN [] = {'S','P','I','N',0};
#endif

enum SPINPARTS {
    SPNP_UP = 1,
    SPNP_DOWN = 2,
    SPNP_UPHORZ = 3,
    SPNP_DOWNHORZ = 4
};

#define SPINSTYLEPARTS SPINPARTS;

enum UPSTATES {
    UPS_NORMAL = 1,
    UPS_HOT = 2,
    UPS_PRESSED = 3,
    UPS_DISABLED = 4
};

enum DOWNSTATES {
    DNS_NORMAL = 1,
    DNS_HOT = 2,
    DNS_PRESSED = 3,
    DNS_DISABLED = 4
};

enum UPHORZSTATES {
    UPHZS_NORMAL = 1,
    UPHZS_HOT = 2,
    UPHZS_PRESSED = 3,
    UPHZS_DISABLED = 4
};

enum DOWNHORZSTATES {
    DNHZS_NORMAL = 1,
    DNHZS_HOT = 2,
    DNHZS_PRESSED = 3,
    DNHZS_DISABLED = 4
};

/* STATUSSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_STATUSSTYLE (const WCHAR []){'S','T','A','T','U','S','S','T','Y','L','E',0}
#define VSCLASS_STATUS (const WCHAR []){'S','T','A','T','U','S',0}
#elif defined(_MSC_VER)
#define VSCLASS_STATUSSTYLE L"STATUSSTYLE"
#define VSCLASS_STATUS L"STATUS"
#else
static const WCHAR VSCLASS_STATUSSTYLE [] = {'S','T','A','T','U','S','S','T','Y','L','E',0};
static const WCHAR VSCLASS_STATUS [] = {'S','T','A','T','U','S',0};
#endif

enum STATUSPARTS {
    SP_PANE = 1,
    SP_GRIPPERPANE = 2,
    SP_GRIPPER = 3
};

#define STATUSSTYLEPARTS STATUSPARTS;

/* TABSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_TABSTYLE (const WCHAR []){'T','A','B','S','T','Y','L','E',0}
#define VSCLASS_TAB (const WCHAR []){'T','A','B',0}
#elif defined(_MSC_VER)
#define VSCLASS_TABSTYLE L"TABSTYLE"
#define VSCLASS_TAB L"TAB"
#else
static const WCHAR VSCLASS_TABSTYLE [] = {'T','A','B','S','T','Y','L','E',0};
static const WCHAR VSCLASS_TAB [] = {'T','A','B',0};
#endif

enum TABPARTS {
    TABP_TABITEM = 1,
    TABP_TABITEMLEFTEDGE = 2,
    TABP_TABITEMRIGHTEDGE = 3,
    TABP_TABITEMBOTHEDGE = 4,
    TABP_TOPTABITEM = 5,
    TABP_TOPTABITEMLEFTEDGE = 6,
    TABP_TOPTABITEMRIGHTEDGE = 7,
    TABP_TOPTABITEMBOTHEDGE = 8,
    TABP_PANE = 9,
    TABP_BODY = 10,
    TABP_AEROWIZARDBODY = 11
};

#define TABSTYLEPARTS TABPARTS;

enum TABITEMSTATES {
    TIS_NORMAL = 1,
    TIS_HOT = 2,
    TIS_SELECTED = 3,
    TIS_DISABLED = 4,
    TIS_FOCUSED = 5
};

enum TABITEMLEFTEDGESTATES {
    TILES_NORMAL = 1,
    TILES_HOT = 2,
    TILES_SELECTED = 3,
    TILES_DISABLED = 4,
    TILES_FOCUSED = 5
};

enum TABITEMRIGHTEDGESTATES {
    TIRES_NORMAL = 1,
    TIRES_HOT = 2,
    TIRES_SELECTED = 3,
    TIRES_DISABLED = 4,
    TIRES_FOCUSED = 5
};

enum TABITEMBOTHEDGESTATES {
    TIBES_NORMAL = 1,
    TIBES_HOT = 2,
    TIBES_SELECTED = 3,
    TIBES_DISABLED = 4,
    TIBES_FOCUSED = 5
};

enum TOPTABITEMSTATES {
    TTIS_NORMAL = 1,
    TTIS_HOT = 2,
    TTIS_SELECTED = 3,
    TTIS_DISABLED = 4,
    TTIS_FOCUSED = 5
};

enum TOPTABITEMLEFTEDGESTATES {
    TTILES_NORMAL = 1,
    TTILES_HOT = 2,
    TTILES_SELECTED = 3,
    TTILES_DISABLED = 4,
    TTILES_FOCUSED = 5
};

enum TOPTABITEMRIGHTEDGESTATES {
    TTIRES_NORMAL = 1,
    TTIRES_HOT = 2,
    TTIRES_SELECTED = 3,
    TTIRES_DISABLED = 4,
    TTIRES_FOCUSED = 5
};

enum TOPTABITEMBOTHEDGESTATES {
    TTIBES_NORMAL = 1,
    TTIBES_HOT = 2,
    TTIBES_SELECTED = 3,
    TTIBES_DISABLED = 4,
    TTIBES_FOCUSED = 5
};

/* TASKDIALOGSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_TASKDIALOGSTYLE (const WCHAR []){'T','A','S','K','D','I','A','L','O','G','S','T','Y','L','E',0}
#define VSCLASS_TASKDIALOG (const WCHAR []){'T','A','S','K','D','I','A','L','O','G',0}
#elif defined(_MSC_VER)
#define VSCLASS_TASKDIALOGSTYLE L"TASKDIALOGSTYLE"
#define VSCLASS_TASKDIALOG L"TASKDIALOG"
#else
static const WCHAR VSCLASS_TASKDIALOGSTYLE[] = {'T','A','S','K','D','I','A','L','O','G','S','T','Y','L','E',0};
static const WCHAR VSCLASS_TASKDIALOG [] = {'T','A','S','K','D','I','A','L','O','G',0};
#endif

enum TASKDIALOGPARTS {
    TDLG_PRIMARYPANEL = 1,
    TDLG_MAININSTRUCTIONPANE = 2,
    TDLG_MAINICON = 3,
    TDLG_CONTENTPANE = 4,
    TDLG_CONTENTICON = 5,
    TDLG_EXPANDEDCONTENT = 6,
    TDLG_COMMANDLINKPANE = 7,
    TDLG_SECONDARYPANEL = 8,
    TDLG_CONTROLPANE = 9,
    TDLG_BUTTONSECTION = 10,
    TDLG_BUTTONWRAPPER = 11,
    TDLG_EXPANDOTEXT = 12,
    TDLG_EXPANDOBUTTON = 13,
    TDLG_VERIFICATIONTEXT = 14,
    TDLG_FOOTNOTEPANE = 15,
    TDLG_FOOTNOTEAREA = 16,
    TDLG_FOOTNOTESEPARATOR = 17,
    TDLG_EXPANDEDFOOTERAREA = 18,
    TDLG_PROGRESSBAR = 19,
    TDLG_IMAGEALIGNMENT = 20,
    TDLG_RADIOBUTTONPANE = 21
};

#define TASKDIALOGSTYLEPARTS TASKDIALOGPARTS;

enum CONTENTPANESTATES {
    TDLGCPS_STANDALONE = 1
};

enum EXPANDOBUTTONSTATES {
    TDLGEBS_NORMAL = 1,
    TDLGEBS_HOVER = 2,
    TDLGEBS_PRESSED = 3,
    TDLGEBS_EXPANDEDNORMAL = 4,
    TDLGEBS_EXPANDEDHOVER = 5,
    TDLGEBS_EXPANDEDPRESSED = 6
};

/* TEXTSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_TEXTSTYLE (const WCHAR []){'T','E','X','T','S','T','Y','L','E',0}
#elif defined(_MSC_VER)
#define VSCLASS_TEXTSTYLE L"TEXTSTYLE"
#else
static const WCHAR VSCLASS_TEXTSTYLE [] = {'T','E','X','T','S','T','Y','L','E',0};
#endif

enum TEXTSTYLEPARTS {
    TEXT_MAININSTRUCTION = 1,
    TEXT_INSTRUCTION = 2,
    TEXT_BODYTITLE = 3,
    TEXT_BODYTEXT = 4,
    TEXT_SECONDARYTEXT = 5,
    TEXT_HYPERLINKTEXT = 6,
    TEXT_EXPANDED = 7,
    TEXT_LABEL = 8,
    TEXT_CONTROLLABEL = 9
};

enum HYPERLINKTEXTSTATES {
    TS_HYPERLINK_NORMAL = 1,
    TS_HYPERLINK_HOT = 2,
    TS_HYPERLINK_PRESSED = 3,
    TS_HYPERLINK_DISABLED = 4
};

enum CONTROLLABELSTATES {
    TS_CONTROLLABEL_NORMAL = 1,
    TS_CONTROLLABEL_DISABLED = 2
};

/* TOOLBARSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_TOOLBARSTYLE (const WCHAR []){'T','O','O','L','B','A','R','S','T','Y','L','E',0}
#define VSCLASS_TOOLBAR (const WCHAR []){'T','O','O','L','B','A','R',0}
#elif defined(_MSC_VER)
#define VSCLASS_TOOLBARSTYLE L"TOOLBARSTYLE"
#define VSCLASS_TOOLBAR L"TOOLBAR"
#else
static const WCHAR VSCLASS_TOOLBARSTYLE [] = {'T','O','O','L','B','A','R','S','T','Y','L','E',0};
static const WCHAR VSCLASS_TOOLBAR[] = {'T','O','O','L','B','A','R',0};
#endif

enum TOOLBARPARTS {
    TP_BUTTON = 1,
    TP_DROPDOWNBUTTON = 2,
    TP_SPLITBUTTON = 3,
    TP_SPLITBUTTONDROPDOWN = 4,
    TP_SEPARATOR = 5,
    TP_SEPARATORVERT = 6,
    TP_DROPDOWNBUTTONGLYPH = 7
};

#define TOOLBARSTYLEPARTS TOOLBARPARTS;

enum TOOLBARSTYLESTATES {
    TS_NORMAL = 1,
    TS_HOT = 2,
    TS_PRESSED = 3,
    TS_DISABLED = 4,
    TS_CHECKED = 5,
    TS_HOTCHECKED = 6,
    TS_NEARHOT = 7,
    TS_OTHERSIDEHOT = 8
};

/* TOOLTIPSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_TOOLTIPSTYLE (const WCHAR []){'T','O','O','L','T','I','P','S','T','Y','L','E',0}
#define VSCLASS_TOOLTIP (const WCHAR []){'T','O','O','L','T','I','P',0}
#elif defined(_MSC_VER)
#define VSCLASS_TOOLTIPSTYLE L"TOOLTIPSTYLE"
#define VSCLASS_TOOLTIP L"TOOLTIP"
#else
static const WCHAR VSCLASS_TOOLTIPSTYLE [] = {'T','O','O','L','T','I','P','S','T','Y','L','E',0};
static const WCHAR VSCLASS_TOOLTIP[] = {'T','O','O','L','T','I','P',0};
#endif

enum TOOLTIPPARTS {
    TTP_STANDARD = 1,
    TTP_STANDARDTITLE = 2,
    TTP_BALLOON = 3,
    TTP_BALLOONTITLE = 4,
    TTP_CLOSE = 5,
    TTP_BALLOONSTEM = 6,
    TTP_WRENCH = 7
};

#define TOOLTIPSTYLEPARTS TOOLTIPPARTS;

enum CLOSESTATES {
    TTCS_NORMAL = 1,
    TTCS_HOT = 2,
    TTCS_PRESSED = 3
};

enum STANDARDSTATES {
    TTSS_NORMAL = 1,
    TTSS_LINK = 2
};

enum BALLOONSTATES {
    TTBS_NORMAL = 1,
    TTBS_LINK = 2
};

enum BALLOONSTEMSTATES {
    TTBSS_POINTINGUPLEFTWALL = 1,
    TTBSS_POINTINGUPCENTERED = 2,
    TTBSS_POINTINGUPRIGHTWALL = 3,
    TTBSS_POINTINGDOWNRIGHTWALL = 4,
    TTBSS_POINTINGDOWNCENTERED = 5,
    TTBSS_POINTINGDOWNLEFTWALL = 6
};

enum WRENCHSTATES {
    TTWS_NORMAL = 1,
    TTWS_HOT = 2,
    TTWS_PRESSED = 3
};

/* TRACKBARSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_TRACKBARSTYLE (const WCHAR []){'T','R','A','C','K','B','A','R','S','T','Y','L','E',0}
#define VSCLASS_TRACKBAR (const WCHAR []){'T','R','A','C','K','B','A','R',0}
#elif defined(_MSC_VER)
#define VSCLASS_TRACKBARSTYLE L"TRACKBARSTYLE"
#define VSCLASS_TRACKBAR L"TRACKBAR"
#else
static const WCHAR VSCLASS_TRACKBARSTYLE [] = {'T','R','A','C','K','B','A','R','S','T','Y','L','E',0};
static const WCHAR VSCLASS_TRACKBAR [] = {'T','R','A','C','K','B','A','R',0};
#endif

enum TRACKBARPARTS {
    TKP_TRACK = 1,
    TKP_TRACKVERT = 2,
    TKP_THUMB = 3,
    TKP_THUMBBOTTOM = 4,
    TKP_THUMBTOP = 5,
    TKP_THUMBVERT = 6,
    TKP_THUMBLEFT = 7,
    TKP_THUMBRIGHT = 8,
    TKP_TICS = 9,
    TKP_TICSVERT = 10
};

#define TRACKBARSTYLEPARTS TRACKBARPARTS;

enum TRACKBARSTYLESTATES {
    TKS_NORMAL = 1
};

enum TRACKSTATES {
    TRS_NORMAL = 1
};

enum TRACKVERTSTATES {
    TRVS_NORMAL = 1
};

enum THUMBSTATES {
    TUS_NORMAL = 1,
    TUS_HOT = 2,
    TUS_PRESSED = 3,
    TUS_FOCUSED = 4,
    TUS_DISABLED = 5
};

enum THUMBBOTTOMSTATES {
    TUBS_NORMAL = 1,
    TUBS_HOT = 2,
    TUBS_PRESSED = 3,
    TUBS_FOCUSED = 4,
    TUBS_DISABLED = 5
};

enum THUMBTOPSTATES {
    TUTS_NORMAL = 1,
    TUTS_HOT = 2,
    TUTS_PRESSED = 3,
    TUTS_FOCUSED = 4,
    TUTS_DISABLED = 5
};

enum THUMBVERTSTATES {
    TUVS_NORMAL = 1,
    TUVS_HOT = 2,
    TUVS_PRESSED = 3,
    TUVS_FOCUSED = 4,
    TUVS_DISABLED = 5
};

enum THUMBLEFTSTATES {
    TUVLS_NORMAL = 1,
    TUVLS_HOT = 2,
    TUVLS_PRESSED = 3,
    TUVLS_FOCUSED = 4,
    TUVLS_DISABLED = 5
};

enum THUMBRIGHTSTATES {
    TUVRS_NORMAL = 1,
    TUVRS_HOT = 2,
    TUVRS_PRESSED = 3,
    TUVRS_FOCUSED = 4,
    TUVRS_DISABLED = 5
};

enum TICSSTATES {
    TSS_NORMAL = 1
};

enum TICSVERTSTATES {
    TSVS_NORMAL = 1
};

/* TREEVIEWSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_TREEVIEWSTYLE (const WCHAR []){'T','R','E','E','V','I','E','W','S','T','Y','L','E',0}
#define VSCLASS_TREEVIEW (const WCHAR []){'T','R','E','E','V','I','E','W',0}
#elif defined(_MSC_VER)
#define VSCLASS_TREEVIEWSTYLE L"TREEVIEWSTYLE"
#define VSCLASS_TREEVIEW L"TREEVIEW"
#else
static const WCHAR VSCLASS_TREEVIEWSTYLE [] = {'T','R','E','E','V','I','E','W','S','T','Y','L','E',0};
static const WCHAR VSCLASS_TREEVIEW [] = {'T','R','E','E','V','I','E','W',0};
#endif

enum TREEVIEWPARTS {
    TVP_TREEITEM = 1,
    TVP_GLYPH = 2,
    TVP_BRANCH = 3,
    TVP_HOTGLYPH = 4
};

#define TREEVIEWSTYLEPARTS TREEVIEWPARTS;

enum TREEITEMSTATES {
    TREIS_NORMAL = 1,
    TREIS_HOT = 2,
    TREIS_SELECTED = 3,
    TREIS_DISABLED = 4,
    TREIS_SELECTEDNOTFOCUS = 5,
    TREIS_HOTSELECTED = 6
};

enum GLYPHSTATES {
    GLPS_CLOSED = 1,
    GLPS_OPENED = 2
};

enum HOTGLYPHSTATES {
    HGLPS_CLOSED = 1,
    HGLPS_OPENED = 2
};

/* WINDOWSTYLE class */
#if defined(__GNUC__)
#define VSCLASS_WINDOWSTYLE (const WCHAR []){'W','I','N','D','O','W','S','T','Y','L','E',0}
#define VSCLASS_WINDOW (const WCHAR []){'W','I','N','D','O','W',0}
#elif defined(_MSC_VER)
#define VSCLASS_WINDOWSTYLE L"WINDOWSTYLE"
#define VSCLASS_WINDOW L"WINDOW"
#else
static const WCHAR VSCLASS_WINDOWSTYLE [] = {'W','I','N','D','O','W','S','T','Y','L','E',0};
static const WCHAR VSCLASS_WINDOW [] = {'W','I','N','D','O','W',0};
#endif

enum WINDOWPARTS {
    WP_CAPTION = 1,
    WP_SMALLCAPTION = 2,
    WP_MINCAPTION = 3,
    WP_SMALLMINCAPTION = 4,
    WP_MAXCAPTION = 5,
    WP_SMALLMAXCAPTION = 6,
    WP_FRAMELEFT = 7,
    WP_FRAMERIGHT = 8,
    WP_FRAMEBOTTOM = 9,
    WP_SMALLFRAMELEFT = 10,
    WP_SMALLFRAMERIGHT = 11,
    WP_SMALLFRAMEBOTTOM = 12,
    WP_SYSBUTTON = 13,
    WP_MDISYSBUTTON = 14,
    WP_MINBUTTON = 15,
    WP_MDIMINBUTTON = 16,
    WP_MAXBUTTON = 17,
    WP_CLOSEBUTTON = 18,
    WP_SMALLCLOSEBUTTON = 19,
    WP_MDICLOSEBUTTON = 20,
    WP_RESTOREBUTTON = 21,
    WP_MDIRESTOREBUTTON = 22,
    WP_HELPBUTTON = 23,
    WP_MDIHELPBUTTON = 24,
    WP_HORZSCROLL = 25,
    WP_HORZTHUMB = 26,
    WP_VERTSCROLL = 27,
    WP_VERTTHUMB = 28,
    WP_DIALOG = 29,
    WP_CAPTIONSIZINGTEMPLATE = 30,
    WP_SMALLCAPTIONSIZINGTEMPLATE = 31,
    WP_FRAMELEFTSIZINGTEMPLATE = 32,
    WP_SMALLFRAMELEFTSIZINGTEMPLATE = 33,
    WP_FRAMERIGHTSIZINGTEMPLATE = 34,
    WP_SMALLFRAMERIGHTSIZINGTEMPLATE = 35,
    WP_FRAMEBOTTOMSIZINGTEMPLATE = 36,
    WP_SMALLFRAMEBOTTOMSIZINGTEMPLATE = 37,
    WP_FRAME = 38
};

#define WINDOWSTYLEPARTS WINDOWPARTS;

enum FRAMESTATES {
    FS_ACTIVE = 1,
    FS_INACTIVE = 2
};

enum CAPTIONSTATES {
    CS_ACTIVE = 1,
    CS_INACTIVE = 2,
    CS_DISABLED = 3
};

enum MAXCAPTIONSTATES {
    MXCS_ACTIVE = 1,
    MXCS_INACTIVE = 2,
    MXCS_DISABLED = 3
};

enum MINCAPTIONSTATES {
    MNCS_ACTIVE = 1,
    MNCS_INACTIVE = 2,
    MNCS_DISABLED = 3
};

enum HORZSCROLLSTATES {
    HSS_NORMAL = 1,
    HSS_HOT = 2,
    HSS_PUSHED = 3,
    HSS_DISABLED = 4
};

enum HORZTHUMBSTATES {
    HTS_NORMAL = 1,
    HTS_HOT = 2,
    HTS_PUSHED = 3,
    HTS_DISABLED = 4
};

enum VERTSCROLLSTATES {
    VSS_NORMAL = 1,
    VSS_HOT = 2,
    VSS_PUSHED = 3,
    VSS_DISABLED = 4
};

enum VERTTHUMBSTATES {
    VTS_NORMAL = 1,
    VTS_HOT = 2,
    VTS_PUSHED = 3,
    VTS_DISABLED = 4
};

enum SYSBUTTONSTATES {
    SBS_NORMAL = 1,
    SBS_HOT = 2,
    SBS_PUSHED = 3,
    SBS_DISABLED = 4
};

enum MINBUTTONSTATES {
    MINBS_NORMAL = 1,
    MINBS_HOT = 2,
    MINBS_PUSHED = 3,
    MINBS_DISABLED = 4
};

enum MAXBUTTONSTATES {
    MAXBS_NORMAL = 1,
    MAXBS_HOT = 2,
    MAXBS_PUSHED = 3,
    MAXBS_DISABLED = 4
};

enum RESTOREBUTTONSTATES {
    RBS_NORMAL = 1,
    RBS_HOT = 2,
    RBS_PUSHED = 3,
    RBS_DISABLED = 4
};

enum HELPBUTTONSTATES {
    HBS_NORMAL = 1,
    HBS_HOT = 2,
    HBS_PUSHED = 3,
    HBS_DISABLED = 4
};

enum CLOSEBUTTONSTATES {
    CBS_NORMAL = 1,
    CBS_HOT = 2,
    CBS_PUSHED = 3,
    CBS_DISABLED = 4
};

#endif /* __VSSTYLE_H__ */
