Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  commctrl.rs   Sprache: unbekannt

 
// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
use ctypes::{c_char, c_int, c_long, c_short, c_void};
use shared::basetsd::{DWORD_PTR, INT_PTR, LONG_PTR, UINT_PTR};
#[cfg(target_pointer_width = "64")] use shared::basetsd::PINT_PTR;
use shared::guiddef::{IID, REFIID};
use shared::minwindef::{
    BOOL, BYTE, DWORD, HINSTANCE, HKEY, INT, LPARAM, LPINT, LRESULT, PUINT, UINT, ULONG, WORD,
    WPARAM,
};
use shared::windef::{
    COLORREF, HBITMAP, HBRUSH, HDC, HICON, HMENU, HPEN, HWND, LPCRECT, LPRECT, POINT, RECT, SIZE,
};
use um::commoncontrols::IImageList;
use um::minwinbase::SYSTEMTIME;
use um::winnt::{CHAR, LANGID, LONG, LPCSTR, LPCWSTR, LPSTR, LPWSTR, PCWSTR, PVOID, PWSTR, WCHAR};
use um::winuser::{
    CB_DELETESTRING, IMAGE_BITMAP, LPSCROLLINFO, LPTRACKMOUSEEVENT, NMHDR,
    WINDOWPOS, WM_USER,
};
use vc::vcruntime::size_t;
pub type HRESULT = c_long;
extern "system" {
    pub fn InitCommonControls();
}
//138
STRUCT!{struct INITCOMMONCONTROLSEX {
    dwSize: DWORD,
    dwICC: DWORD,
}}
pub type LPINITCOMMONCONTROLSEX = *mut INITCOMMONCONTROLSEX;
pub const ICC_LISTVIEW_CLASSES: DWORD = 0x1;
pub const ICC_TREEVIEW_CLASSES: DWORD = 0x2;
pub const ICC_BAR_CLASSES: DWORD = 0x4;
pub const ICC_TAB_CLASSES: DWORD = 0x8;
pub const ICC_UPDOWN_CLASS: DWORD = 0x10;
pub const ICC_PROGRESS_CLASS: DWORD = 0x20;
pub const ICC_HOTKEY_CLASS: DWORD = 0x40;
pub const ICC_ANIMATE_CLASS: DWORD = 0x80;
pub const ICC_WIN95_CLASSES: DWORD = 0xFF;
pub const ICC_DATE_CLASSES: DWORD = 0x100;
pub const ICC_USEREX_CLASSES: DWORD = 0x200;
pub const ICC_COOL_CLASSES: DWORD = 0x400;
pub const ICC_INTERNET_CLASSES: DWORD = 0x800;
pub const ICC_PAGESCROLLER_CLASS: DWORD = 0x1000;
pub const ICC_NATIVEFNTCTL_CLASS: DWORD = 0x2000;
pub const ICC_STANDARD_CLASSES: DWORD = 0x4000;
pub const ICC_LINK_CLASS: DWORD = 0x8000;
extern "system" {
    pub fn InitCommonControlsEx(
        lpInitCtrls: *const INITCOMMONCONTROLSEX,
    ) -> BOOL;
}
pub const ODT_HEADER: UINT = 100;
pub const ODT_TAB: UINT = 101;
pub const ODT_LISTVIEW: UINT = 102;
pub const LVM_FIRST: UINT = 0x1000;
pub const TV_FIRST: UINT = 0x1100;
pub const HDM_FIRST: UINT = 0x1200;
pub const TCM_FIRST: UINT = 0x1300;
pub const PGM_FIRST: UINT = 0x1400;
pub const ECM_FIRST: UINT = 0x1500;
pub const BCM_FIRST: UINT = 0x1600;
pub const CBM_FIRST: UINT = 0x1700;
pub const CCM_FIRST: UINT = 0x2000;
pub const CCM_LAST: UINT = CCM_FIRST + 0x200;
pub const CCM_SETBKCOLOR: UINT = CCM_FIRST + 1;
STRUCT!{struct COLORSCHEME {
    dwSize: DWORD,
    clrBtnHighlight: COLORREF,
    clrBtnShadow: COLORREF,
}}
pub type LPCOLORSCHEME = *mut COLORSCHEME;
pub const CCM_SETCOLORSCHEME: UINT = CCM_FIRST + 2;
pub const CCM_GETCOLORSCHEME: UINT = CCM_FIRST + 3;
pub const CCM_GETDROPTARGET: UINT = CCM_FIRST + 4;
pub const CCM_SETUNICODEFORMAT: UINT = CCM_FIRST + 5;
pub const CCM_GETUNICODEFORMAT: UINT = CCM_FIRST + 6;
pub const CCM_SETVERSION: UINT = CCM_FIRST + 7;
pub const CCM_GETVERSION: UINT = CCM_FIRST + 8;
pub const CCM_SETNOTIFYWINDOW: UINT = CCM_FIRST + 9;
pub const CCM_SETWINDOWTHEME: UINT = CCM_FIRST + 0xb;
pub const CCM_DPISCALE: UINT = CCM_FIRST + 0xc;
pub const INFOTIPSIZE: c_int = 1024;
pub const NM_OUTOFMEMORY: UINT = (NM_FIRST as i32 - 1) as u32;
pub const NM_CLICK: UINT = (NM_FIRST as i32 - 2) as u32;
pub const NM_DBLCLK: UINT = (NM_FIRST as i32 - 3) as u32;
pub const NM_RETURN: UINT = (NM_FIRST as i32 - 4) as u32;
pub const NM_RCLICK: UINT = (NM_FIRST as i32 - 5) as u32;
pub const NM_RDBLCLK: UINT = (NM_FIRST as i32 - 6) as u32;
pub const NM_SETFOCUS: UINT = (NM_FIRST as i32 - 7) as u32;
pub const NM_KILLFOCUS: UINT = (NM_FIRST as i32 - 8) as u32;
pub const NM_CUSTOMDRAW: UINT = (NM_FIRST as i32 - 12) as u32;
pub const NM_HOVER: UINT = (NM_FIRST as i32 - 13) as u32;
pub const NM_NCHITTEST: UINT = (NM_FIRST as i32 - 14) as u32;
pub const NM_KEYDOWN: UINT = (NM_FIRST as i32 - 15) as u32;
pub const NM_RELEASEDCAPTURE: UINT = (NM_FIRST as i32 - 16) as u32;
pub const NM_SETCURSOR: UINT = (NM_FIRST as i32 - 17) as u32;
pub const NM_CHAR: UINT = (NM_FIRST as i32 - 18) as u32;
pub const NM_TOOLTIPSCREATED: UINT = (NM_FIRST as i32 - 19) as u32;
pub const NM_LDOWN: UINT = (NM_FIRST as i32 - 20) as u32;
pub const NM_RDOWN: UINT = (NM_FIRST as i32 - 21) as u32;
pub const NM_THEMECHANGED: UINT = (NM_FIRST as i32 - 22) as u32;
pub const NM_FONTCHANGED: UINT = (NM_FIRST as i32 - 23) as u32;
pub const NM_CUSTOMTEXT: UINT = (NM_FIRST as i32 - 24) as u32;
pub const NM_TVSTATEIMAGECHANGING: UINT = (NM_FIRST as i32 - 24) as u32;
STRUCT!{struct NMTOOLTIPSCREATED {
    hdr: NMHDR,
    hwndToolTips: HWND,
}}
pub type LPNMTOOLTIPSCREATED = *mut NMTOOLTIPSCREATED;
STRUCT!{struct NMMOUSE {
    hdr: NMHDR,
    dwItemSpec: DWORD_PTR,
    dwItemData: DWORD_PTR,
    pt: POINT,
    dwHitInfo: LPARAM,
}}
pub type LPNMMOUSE = *mut NMMOUSE;
pub type NMCLICK = NMMOUSE;
pub type LPNMCLICK = LPNMMOUSE;
STRUCT!{struct NMOBJECTNOTIFY {
    hdr: NMHDR,
    iItem: c_int,
    piid: *const IID,
    pObject: *mut c_void,
    hResult: HRESULT,
    dwFlags: DWORD,
}}
pub type LPNMOBJECTNOTIFY = *mut NMOBJECTNOTIFY;
STRUCT!{struct NMKEY {
    hdr: NMHDR,
    nVKey: UINT,
    uFlags: UINT,
}}
pub type LPNMKEY = *mut NMKEY;
STRUCT!{struct NMCHAR {
    hdr: NMHDR,
    ch: UINT,
    dwItemPrev: DWORD,
    dwItemNext: DWORD,
}}
pub type LPNMCHAR = *mut NMCHAR;
STRUCT!{struct NMCUSTOMTEXT {
    hdr: NMHDR,
    hDC: HDC,
    lpString: LPCWSTR,
    nCount: c_int,
    lpRect: LPRECT,
    uFormat: UINT,
    fLink: BOOL,
}}
pub type LPNMCUSTOMTEXT = *mut NMCUSTOMTEXT;
pub const NM_FIRST: UINT = 0;
pub const NM_LAST: UINT = -99i32 as u32;
pub const LVN_FIRST: UINT = -100i32 as u32;
pub const LVN_LAST: UINT = -199i32 as u32;
pub const HDN_FIRST: UINT = -300i32 as u32;
pub const HDN_LAST: UINT = -399i32 as u32;
pub const TVN_FIRST: UINT = -400i32 as u32;
pub const TVN_LAST: UINT = -499i32 as u32;
pub const TTN_FIRST: UINT = -520i32 as u32;
pub const TTN_LAST: UINT = -549i32 as u32;
pub const TCN_FIRST: UINT = -550i32 as u32;
pub const TCN_LAST: UINT = -580i32 as u32;
pub const CDN_FIRST: UINT = -601i32 as u32;
pub const CDN_LAST: UINT = -699i32 as u32;
pub const TBN_FIRST: UINT = -700i32 as u32;
pub const TBN_LAST: UINT = -720i32 as u32;
pub const UDN_FIRST: UINT = -721i32 as u32;
pub const UDN_LAST: UINT = -729i32 as u32;
pub const DTN_FIRST: UINT = -740i32 as u32;
pub const DTN_LAST: UINT = -745i32 as u32;
pub const MCN_FIRST: UINT = -746i32 as u32;
pub const MCN_LAST: UINT = -752i32 as u32;
pub const DTN_FIRST2: UINT = -753i32 as u32;
pub const DTN_LAST2: UINT = -799i32 as u32;
pub const CBEN_FIRST: UINT = -800i32 as u32;
pub const CBEN_LAST: UINT = -830i32 as u32;
pub const RBN_FIRST: UINT = -831i32 as u32;
pub const RBN_LAST: UINT = -859i32 as u32;
pub const IPN_FIRST: UINT = -860i32 as u32;
pub const IPN_LAST: UINT = -879i32 as u32;
pub const SBN_FIRST: UINT = -880i32 as u32;
pub const SBN_LAST: UINT = -899i32 as u32;
pub const PGN_FIRST: UINT = -900i32 as u32;
pub const PGN_LAST: UINT = -950i32 as u32;
pub const WMN_FIRST: UINT = -1000i32 as u32;
pub const WMN_LAST: UINT = -1200i32 as u32;
pub const BCN_FIRST: UINT = -1250i32 as u32;
pub const BCN_LAST: UINT = -1350i32 as u32;
pub const TRBN_FIRST: UINT = -1501i32 as u32;
pub const TRBN_LAST: UINT = -1519i32 as u32;
pub const MSGF_COMMCTRL_BEGINDRAG: c_int = 0x4200;
pub const MSGF_COMMCTRL_SIZEHEADER: c_int = 0x4201;
pub const MSGF_COMMCTRL_DRAGSELECT: c_int = 0x4202;
pub const MSGF_COMMCTRL_TOOLBARCUST: c_int = 0x4203;
pub const CDRF_DODEFAULT: LRESULT = 0x00000000;
pub const CDRF_NEWFONT: LRESULT = 0x00000002;
pub const CDRF_SKIPDEFAULT: LRESULT = 0x00000004;
pub const CDRF_DOERASE: LRESULT = 0x00000008;
pub const CDRF_SKIPPOSTPAINT: LRESULT = 0x00000100;
pub const CDRF_NOTIFYPOSTPAINT: LRESULT = 0x00000010;
pub const CDRF_NOTIFYITEMDRAW: LRESULT = 0x00000020;
pub const CDRF_NOTIFYSUBITEMDRAW: LRESULT = 0x00000020;
pub const CDRF_NOTIFYPOSTERASE: LRESULT = 0x00000040;
pub const CDDS_PREPAINT: DWORD = 0x00000001;
pub const CDDS_POSTPAINT: DWORD = 0x00000002;
pub const CDDS_PREERASE: DWORD = 0x00000003;
pub const CDDS_POSTERASE: DWORD = 0x00000004;
pub const CDDS_ITEM: DWORD = 0x00010000;
pub const CDDS_ITEMPREPAINT: DWORD = CDDS_ITEM | CDDS_PREPAINT;
pub const CDDS_ITEMPOSTPAINT: DWORD = CDDS_ITEM | CDDS_POSTPAINT;
pub const CDDS_ITEMPREERASE: DWORD = CDDS_ITEM | CDDS_PREERASE;
pub const CDDS_ITEMPOSTERASE: DWORD = CDDS_ITEM | CDDS_POSTERASE;
pub const CDDS_SUBITEM: DWORD = 0x00020000;
pub const CDIS_SELECTED: UINT = 0x0001;
pub const CDIS_GRAYED: UINT = 0x0002;
pub const CDIS_DISABLED: UINT = 0x0004;
pub const CDIS_CHECKED: UINT = 0x0008;
pub const CDIS_FOCUS: UINT = 0x0010;
pub const CDIS_DEFAULT: UINT = 0x0020;
pub const CDIS_HOT: UINT = 0x0040;
pub const CDIS_MARKED: UINT = 0x0080;
pub const CDIS_INDETERMINATE: UINT = 0x0100;
pub const CDIS_SHOWKEYBOARDCUES: UINT = 0x0200;
pub const CDIS_NEARHOT: UINT = 0x0400;
pub const CDIS_OTHERSIDEHOT: UINT = 0x0800;
pub const CDIS_DROPHILITED: UINT = 0x1000;
STRUCT!{struct NMCUSTOMDRAW {
    hdr: NMHDR,
    dwDrawStage: DWORD,
    hdc: HDC,
    rc: RECT,
    dwItemSpec: DWORD_PTR,
    uItemState: UINT,
    lItemlParam: LPARAM,
}}
pub type LPNMCUSTOMDRAW = *mut NMCUSTOMDRAW;
STRUCT!{struct NMTTCUSTOMDRAW {
    nmcd: NMCUSTOMDRAW,
    uDrawFlags: UINT,
}}
pub type LPNMTTCUSTOMDRAW = *mut NMTTCUSTOMDRAW;
STRUCT!{struct NMCUSTOMSPLITRECTINFO {
    hdr: NMHDR,
    rcClient: RECT,
    rcButton: RECT,
    rcSplit: RECT,
}}
pub type LPNMCUSTOMSPLITRECTINFO = *mut NMCUSTOMSPLITRECTINFO;
pub const NM_GETCUSTOMSPLITRECT: UINT = BCN_FIRST + 0x0003;
pub const CLR_NONE: DWORD = 0xFFFFFFFF;
pub const CLR_DEFAULT: DWORD = 0xFF000000;
pub enum IMAGELIST {}
pub type HIMAGELIST = *mut IMAGELIST;
STRUCT!{struct IMAGELISTDRAWPARAMS {
    cbSize: DWORD,
    himl: HIMAGELIST,
    i: c_int,
    hdcDst: HDC,
    x: c_int,
    y: c_int,
    cx: c_int,
    cy: c_int,
    xBitmap: c_int,
    yBitmap: c_int,
    rgbBk: COLORREF,
    rgbFg: COLORREF,
    fStyle: UINT,
    dwRop: DWORD,
    fState: DWORD,
    Frame: DWORD,
    crEffect: COLORREF,
}}
pub type LPIMAGELISTDRAWPARAMS = *mut IMAGELISTDRAWPARAMS;
pub const ILC_MASK: UINT = 0x00000001;
pub const ILC_COLOR: UINT = 0x00000000;
pub const ILC_COLORDDB: UINT = 0x000000FE;
pub const ILC_COLOR4: UINT = 0x00000004;
pub const ILC_COLOR8: UINT = 0x00000008;
pub const ILC_COLOR16: UINT = 0x00000010;
pub const ILC_COLOR24: UINT = 0x00000018;
pub const ILC_COLOR32: UINT = 0x00000020;
pub const ILC_PALETTE: UINT = 0x00000800;
pub const ILC_MIRROR: UINT = 0x00002000;
pub const ILC_PERITEMMIRROR: UINT = 0x00008000;
pub const ILC_ORIGINALSIZE: UINT = 0x00010000;
pub const ILC_HIGHQUALITYSCALE: UINT = 0x00020000;
extern "system" {
    pub fn ImageList_Create(
        cx: c_int,
        cy: c_int,
        flags: UINT,
        cInitial: c_int,
        cGrow: c_int,
    ) -> HIMAGELIST;
    pub fn ImageList_Destroy(
        himl: HIMAGELIST,
    ) -> BOOL;
    pub fn ImageList_GetImageCount(
        himl: HIMAGELIST,
    ) -> c_int;
    pub fn ImageList_SetImageCount(
        himl: HIMAGELIST,
        uNewCount: UINT,
    ) -> BOOL;
    pub fn ImageList_Add(
        himl: HIMAGELIST,
        hbmImage: HBITMAP,
        hbmMask: HBITMAP,
    ) -> c_int;
    pub fn ImageList_ReplaceIcon(
        himl: HIMAGELIST,
        i: c_int,
        hicon: HICON,
    ) -> c_int;
    pub fn ImageList_SetBkColor(
        himl: HIMAGELIST,
        clrBk: COLORREF,
    ) -> COLORREF;
    pub fn ImageList_GetBkColor(
        himl: HIMAGELIST,
    ) -> COLORREF;
    pub fn ImageList_SetOverlayImage(
        himl: HIMAGELIST,
        iImage: c_int,
        iOverlay: c_int,
    ) -> BOOL;
}
#[inline]
pub unsafe fn ImageList_AddIcon(himl: HIMAGELIST, hicon: HICON) -> c_int {
    ImageList_ReplaceIcon(himl, -1, hicon)
}
pub const ILD_NORMAL: UINT = 0x00000000;
pub const ILD_TRANSPARENT: UINT = 0x00000001;
pub const ILD_MASK: UINT = 0x00000010;
pub const ILD_IMAGE: UINT = 0x00000020;
pub const ILD_ROP: UINT = 0x00000040;
pub const ILD_BLEND25: UINT = 0x00000002;
pub const ILD_BLEND50: UINT = 0x00000004;
pub const ILD_OVERLAYMASK: UINT = 0x00000F00;
#[inline]
pub fn INDEXTOOVERLAYMASK(i: UINT) -> UINT {
    i << 8
}
pub const ILD_PRESERVEALPHA: UINT = 0x00001000;
pub const ILD_SCALE: UINT = 0x00002000;
pub const ILD_DPISCALE: UINT = 0x00004000;
pub const ILD_ASYNC: UINT = 0x00008000;
pub const ILD_SELECTED: UINT = ILD_BLEND50;
pub const ILD_FOCUS: UINT = ILD_BLEND25;
pub const ILD_BLEND: UINT = ILD_BLEND50;
pub const CLR_HILIGHT: DWORD = CLR_DEFAULT;
pub const ILS_NORMAL: DWORD = 0x00000000;
pub const ILS_GLOW: DWORD = 0x00000001;
pub const ILS_SHADOW: DWORD = 0x00000002;
pub const ILS_SATURATE: DWORD = 0x00000004;
pub const ILS_ALPHA: DWORD = 0x00000008;
pub const ILGT_NORMAL: DWORD = 0x00000000;
pub const ILGT_ASYNC : DWORD = 0x00000001;
extern "system" {
    pub fn ImageList_Draw(
        himl: HIMAGELIST,
        i: c_int,
        hdcDst: HDC,
        x: c_int,
        y: c_int,
        fStyle: UINT,
    ) -> BOOL;
}
pub const HBITMAP_CALLBACK: HBITMAP = -1isize as HBITMAP;
extern "system" {
    pub fn ImageList_Replace(
        himl: HIMAGELIST,
        i: c_int,
        hbmImage: HBITMAP,
        hbmMask: HBITMAP,
    ) -> BOOL;
    pub fn ImageList_AddMasked(
        himl: HIMAGELIST,
        hbmImage: HBITMAP,
        crMask: COLORREF,
    ) -> c_int;
    pub fn ImageList_DrawEx(
        himl: HIMAGELIST,
        i: c_int,
        hdcDst: HDC,
        x: c_int,
        y: c_int,
        dx: c_int,
        dy: c_int,
        rgbBk: COLORREF,
        rgbFg: COLORREF,
        fStyle: UINT,
    ) -> BOOL;
    pub fn ImageList_DrawIndirect(
        pimldp: *mut IMAGELISTDRAWPARAMS,
    ) -> BOOL;
    pub fn ImageList_Remove(
        himl: HIMAGELIST,
        i: c_int,
    ) -> BOOL;
    pub fn ImageList_GetIcon(
        himl: HIMAGELIST,
        i: c_int,
        flags: UINT,
    ) -> HICON;
    pub fn ImageList_LoadImageA(
        hi: HINSTANCE,
        lpbmp: LPCSTR,
        cx: c_int,
        cGrow: c_int,
        crMask: COLORREF,
        uType: UINT,
        uFlags: UINT,
    ) -> HIMAGELIST;
    pub fn ImageList_LoadImageW(
        hi: HINSTANCE,
        lpbmp: LPCWSTR,
        cx: c_int,
        cGrow: c_int,
        crMask: COLORREF,
        uType: UINT,
        uFlags: UINT,
    ) -> HIMAGELIST;
}
pub const ILCF_MOVE: UINT = 0x00000000;
pub const ILCF_SWAP: UINT = 0x00000001;
extern "system" {
    pub fn ImageList_Copy(
        himlDst: HIMAGELIST,
        iDst: c_int,
        himlSrc: HIMAGELIST,
        iSrc: c_int,
        uFlags: UINT,
    ) -> BOOL;
    pub fn ImageList_BeginDrag(
        himlTrack: HIMAGELIST,
        iTrack: c_int,
        dxHotspot: c_int,
        dyHotspot: c_int,
    ) -> BOOL;
    pub fn ImageList_EndDrag();
    pub fn ImageList_DragEnter(
        hwndLock: HWND,
        x: c_int,
        y: c_int,
    ) -> BOOL;
    pub fn ImageList_DragLeave(
        hwndLock: HWND,
    ) -> BOOL;
    pub fn ImageList_DragMove(
        x: c_int,
        y: c_int,
    ) -> BOOL;
    pub fn ImageList_SetDragCursorImage(
        himlDrag: HIMAGELIST,
        iDrag: c_int,
        dxHotspot: c_int,
        dyHotspot: c_int,
    ) -> BOOL;
    pub fn ImageList_DragShowNolock(
        fShow: BOOL,
    ) -> BOOL;
    pub fn ImageList_GetDragImage(
        ppt: *mut POINT,
        pptHotspot: *mut POINT,
    ) -> HIMAGELIST;
}
#[inline]
pub unsafe fn ImageList_RemoveAll(himl: HIMAGELIST) -> BOOL {
    ImageList_Remove(himl, -1)
}
#[inline]
pub unsafe fn ImageList_ExtractIcon(_: HINSTANCE, himl: HIMAGELIST, i: c_int) -> HICON {
    ImageList_GetIcon(himl, i, 0)
}
#[inline]
pub unsafe fn ImageList_LoadBitmap(
    hi: HINSTANCE,
    lpbmp: LPCWSTR,
    cx: c_int,
    cGrow: c_int,
    crMask: COLORREF,
) -> HIMAGELIST {
    ImageList_LoadImageW(hi, lpbmp, cx, cGrow, crMask, IMAGE_BITMAP, 0)
}
pub enum IStream {}
extern "system" {
    pub fn ImageList_Read(
        pstm: *mut IStream,
    ) -> HIMAGELIST;
    pub fn ImageList_Write(
        himl: HIMAGELIST,
        pstm: *mut IStream,
    ) -> BOOL;
}
pub const ILP_NORMAL: DWORD = 0;
pub const ILP_DOWNLEVEL: DWORD = 0;
extern "system" {
    pub fn ImageList_ReadEx(
        dwFlags: DWORD,
        pstm: *mut IStream,
        riid: REFIID,
        ppv: *mut PVOID,
    ) -> HRESULT;
    pub fn ImageList_WriteEx(
        himl: HIMAGELIST,
        dwFlags: DWORD,
        pstm: *mut IStream,
    ) -> HRESULT;
}
STRUCT!{struct IMAGEINFO {
    hbmImage: HBITMAP,
    hbmMask: HBITMAP,
    Unused1: c_int,
    Unused2: c_int,
    rcImage: RECT,
}}
pub type LPIMAGEINFO = *mut IMAGEINFO;
extern "system" {
    pub fn ImageList_GetIconSize(
        himl: HIMAGELIST,
        cx: *mut c_int,
        cy: *mut c_int,
    ) -> BOOL;
    pub fn ImageList_SetIconSize(
        himl: HIMAGELIST,
        cx: c_int,
        cy: c_int,
    ) -> BOOL;
    pub fn ImageList_GetImageInfo(
        himl: HIMAGELIST,
        i: c_int,
        pImageInfo: *mut IMAGEINFO,
    ) -> BOOL;
    pub fn ImageList_Merge(
        himl1: HIMAGELIST,
        i1: c_int,
        himl2: HIMAGELIST,
        i2: c_int,
        dx: c_int,
        dy: c_int,
    ) -> HIMAGELIST;
    pub fn ImageList_Duplicate(
        himl: HIMAGELIST,
    ) -> HIMAGELIST;
    pub fn HIMAGELIST_QueryInterface(
        himl: HIMAGELIST,
        riid: REFIID,
        ppv: *mut *mut c_void,
    ) -> HRESULT;
}
#[inline]
pub fn IImageListToHIMAGELIST(himl: *mut IImageList) -> HIMAGELIST {
    himl as HIMAGELIST
}
pub const WC_HEADER: &'static str = "SysHeader32";
pub const HDS_HORZ: DWORD = 0x0000;
pub const HDS_BUTTONS: DWORD = 0x0002;
pub const HDS_HOTTRACK: DWORD = 0x0004;
pub const HDS_HIDDEN: DWORD = 0x0008;
pub const HDS_DRAGDROP: DWORD = 0x0040;
pub const HDS_FULLDRAG: DWORD = 0x0080;
pub const HDS_FILTERBAR: DWORD = 0x0100;
pub const HDS_FLAT: DWORD = 0x0200;
pub const HDS_CHECKBOXES: DWORD = 0x0400;
pub const HDS_NOSIZING: DWORD = 0x0800;
pub const HDS_OVERFLOW: DWORD = 0x1000;
pub const HDFT_ISSTRING: UINT = 0x0000;
pub const HDFT_ISNUMBER: UINT = 0x0001;
pub const HDFT_ISDATE: UINT = 0x0002;
pub const HDFT_HASNOVALUE: UINT = 0x8000;
STRUCT!{struct HD_TEXTFILTERA {
    pszText: LPSTR,
    cchTextMax: INT,
}}
pub type LPHD_TEXTFILTERA = *mut HD_TEXTFILTERA;
STRUCT!{struct HD_TEXTFILTERW {
    pszText: LPWSTR,
    cchTextMax: INT,
}}
pub type LPHD_TEXTFILTERW = *mut HD_TEXTFILTERW;
STRUCT!{struct HDITEMA {
    mask: UINT,
    cxy: c_int,
    pszText: LPSTR,
    hbm: HBITMAP,
    cchTextMax: c_int,
    fmt: c_int,
    lParam: LPARAM,
    iImage: c_int,
    iOrder: c_int,
    _type: UINT,
    pvFilter: *mut c_void,
    state: UINT,
}}
pub type LPHDITEMA = *mut HDITEMA;
STRUCT!{struct HDITEMW {
    mask: UINT,
    cxy: c_int,
    pszText: LPWSTR,
    hbm: HBITMAP,
    cchTextMax: c_int,
    fmt: c_int,
    lParam: LPARAM,
    iImage: c_int,
    iOrder: c_int,
    _type: UINT,
    pvFilter: *mut c_void,
    state: UINT,
}}
pub type LPHDITEMW = *mut HDITEMW;
pub const HDI_WIDTH: UINT = 0x0001;
pub const HDI_HEIGHT: UINT = HDI_WIDTH;
pub const HDI_TEXT: UINT = 0x0002;
pub const HDI_FORMAT: UINT = 0x0004;
pub const HDI_LPARAM: UINT = 0x0008;
pub const HDI_BITMAP: UINT = 0x0010;
pub const HDI_IMAGE: UINT = 0x0020;
pub const HDI_DI_SETITEM: UINT = 0x0040;
pub const HDI_ORDER: UINT = 0x0080;
pub const HDI_FILTER: UINT = 0x0100;
pub const HDI_STATE: UINT = 0x0200;
pub const HDF_LEFT: c_int = 0x0000;
pub const HDF_RIGHT: c_int = 0x0001;
pub const HDF_CENTER: c_int = 0x0002;
pub const HDF_JUSTIFYMASK: c_int = 0x0003;
pub const HDF_RTLREADING: c_int = 0x0004;
pub const HDF_BITMAP: c_int = 0x2000;
pub const HDF_STRING: c_int = 0x4000;
pub const HDF_OWNERDRAW: c_int = 0x8000;
pub const HDF_IMAGE: c_int = 0x0800;
pub const HDF_BITMAP_ON_RIGHT: c_int = 0x1000;
pub const HDF_SORTUP: c_int = 0x0400;
pub const HDF_SORTDOWN: c_int = 0x0200;
pub const HDF_CHECKBOX: c_int = 0x0040;
pub const HDF_CHECKED: c_int = 0x0080;
pub const HDF_FIXEDWIDTH: c_int = 0x0100;
pub const HDF_SPLITBUTTON: c_int = 0x1000000;
pub const HDIS_FOCUSED: UINT = 0x00000001;
pub const HDM_GETITEMCOUNT: UINT = HDM_FIRST + 0;
pub const HDM_INSERTITEMA: UINT = HDM_FIRST + 1;
pub const HDM_INSERTITEMW: UINT = HDM_FIRST + 10;
pub const HDM_DELETEITEM: UINT = HDM_FIRST + 2;
pub const HDM_GETITEMA: UINT = HDM_FIRST + 3;
pub const HDM_GETITEMW: UINT = HDM_FIRST + 11;
pub const HDM_SETITEMA: UINT = HDM_FIRST + 4;
pub const HDM_SETITEMW: UINT = HDM_FIRST + 12;
STRUCT!{struct HDLAYOUT {
    prc: *mut RECT,
    pwpos: *mut WINDOWPOS,
}}
pub type LPHDLAYOUT = *mut HDLAYOUT;
pub const HDM_LAYOUT: UINT = HDM_FIRST + 5;
pub const HHT_NOWHERE: UINT = 0x0001;
pub const HHT_ONHEADER: UINT = 0x0002;
pub const HHT_ONDIVIDER: UINT = 0x0004;
pub const HHT_ONDIVOPEN: UINT = 0x0008;
pub const HHT_ONFILTER: UINT = 0x0010;
pub const HHT_ONFILTERBUTTON: UINT = 0x0020;
pub const HHT_ABOVE: UINT = 0x0100;
pub const HHT_BELOW: UINT = 0x0200;
pub const HHT_TORIGHT: UINT = 0x0400;
pub const HHT_TOLEFT: UINT = 0x0800;
pub const HHT_ONITEMSTATEICON: UINT = 0x1000;
pub const HHT_ONDROPDOWN: UINT = 0x2000;
pub const HHT_ONOVERFLOW: UINT = 0x4000;
STRUCT!{struct HDHITTESTINFO {
    pt: POINT,
    flags: UINT,
    iItem: c_int,
}}
pub type LPHDHITTESTINFO = *mut HDHITTESTINFO;
pub type HD_HITTESTINFO = HDHITTESTINFO;
pub const HDSIL_NORMAL: WPARAM = 0;
pub const HDSIL_STATE: WPARAM = 1;
pub const HDM_HITTEST: UINT = HDM_FIRST + 6;
pub const HDM_GETITEMRECT: UINT = HDM_FIRST + 7;
pub const HDM_SETIMAGELIST: UINT = HDM_FIRST + 8;
pub const HDM_GETIMAGELIST: UINT = HDM_FIRST + 9;
pub const HDM_ORDERTOINDEX: UINT = HDM_FIRST + 15;
pub const HDM_CREATEDRAGIMAGE: UINT = HDM_FIRST + 16;
pub const HDM_GETORDERARRAY: UINT = HDM_FIRST + 17;
pub const HDM_SETORDERARRAY: UINT = HDM_FIRST + 18;
pub const HDM_SETHOTDIVIDER: UINT = HDM_FIRST + 19;
pub const HDM_SETBITMAPMARGIN: UINT = HDM_FIRST + 20;
pub const HDM_GETBITMAPMARGIN: UINT = HDM_FIRST + 21;
pub const HDM_SETUNICODEFORMAT: UINT = CCM_SETUNICODEFORMAT;
pub const HDM_GETUNICODEFORMAT: UINT = CCM_GETUNICODEFORMAT;
pub const HDM_SETFILTERCHANGETIMEOUT: UINT = HDM_FIRST + 22;
pub const HDM_EDITFILTER: UINT = HDM_FIRST + 23;
pub const HDM_CLEARFILTER: UINT = HDM_FIRST + 24;
pub const HDM_GETITEMDROPDOWNRECT: UINT = HDM_FIRST + 25;
pub const HDM_GETOVERFLOWRECT: UINT = HDM_FIRST + 26;
pub const HDM_GETFOCUSEDITEM: UINT = HDM_FIRST + 27;
pub const HDM_SETFOCUSEDITEM: UINT = HDM_FIRST + 28;
pub const HDN_ITEMCHANGINGA: UINT = HDN_FIRST - 0;
pub const HDN_ITEMCHANGINGW: UINT = HDN_FIRST - 20;
pub const HDN_ITEMCHANGEDA: UINT = HDN_FIRST - 1;
pub const HDN_ITEMCHANGEDW: UINT = HDN_FIRST - 21;
pub const HDN_ITEMCLICKA: UINT = HDN_FIRST - 2;
pub const HDN_ITEMCLICKW: UINT = HDN_FIRST - 22;
pub const HDN_ITEMDBLCLICKA: UINT = HDN_FIRST - 3;
pub const HDN_ITEMDBLCLICKW: UINT = HDN_FIRST - 23;
pub const HDN_DIVIDERDBLCLICKA: UINT = HDN_FIRST - 5;
pub const HDN_DIVIDERDBLCLICKW: UINT = HDN_FIRST - 25;
pub const HDN_BEGINTRACKA: UINT = HDN_FIRST - 6;
pub const HDN_BEGINTRACKW: UINT = HDN_FIRST - 26;
pub const HDN_ENDTRACKA: UINT = HDN_FIRST - 7;
pub const HDN_ENDTRACKW: UINT = HDN_FIRST - 27;
pub const HDN_TRACKA: UINT = HDN_FIRST - 8;
pub const HDN_TRACKW: UINT = HDN_FIRST - 28;
pub const HDN_GETDISPINFOA: UINT = HDN_FIRST - 9;
pub const HDN_GETDISPINFOW: UINT = HDN_FIRST - 29;
pub const HDN_BEGINDRAG: UINT = HDN_FIRST - 10;
pub const HDN_ENDDRAG: UINT = HDN_FIRST - 11;
pub const HDN_FILTERCHANGE: UINT = HDN_FIRST - 12;
pub const HDN_FILTERBTNCLICK: UINT = HDN_FIRST - 13;
pub const HDN_BEGINFILTEREDIT: UINT = HDN_FIRST - 14;
pub const HDN_ENDFILTEREDIT: UINT = HDN_FIRST - 15;
pub const HDN_ITEMSTATEICONCLICK: UINT = HDN_FIRST - 16;
pub const HDN_ITEMKEYDOWN: UINT = HDN_FIRST - 17;
pub const HDN_DROPDOWN: UINT = HDN_FIRST - 18;
pub const HDN_OVERFLOWCLICK: UINT = HDN_FIRST - 19;
STRUCT!{struct NMHEADERA {
    hdr: NMHDR,
    iItem: c_int,
    iButton: c_int,
    pitem: *mut HDITEMA,
}}
pub type LPNMHEADERA = *mut NMHEADERA;
pub type HD_NOTIFYA = NMHEADERA;
STRUCT!{struct NMHEADERW {
    hdr: NMHDR,
    iItem: c_int,
    iButton: c_int,
    pitem: *mut HDITEMW,
}}
pub type LPNMHEADERW = *mut NMHEADERW;
pub type HD_NOTIFYW = NMHEADERW;
STRUCT!{struct NMHDDISPINFOW {
    hdr: NMHDR,
    iItem: c_int,
    mask: UINT,
    pszText: LPWSTR,
    cchTextMax: c_int,
    iImage: c_int,
    lParam: LPARAM,
}}
pub type LPNMHDDISPINFOW = *mut NMHDDISPINFOW;
STRUCT!{struct NMHDDISPINFOA {
    hdr: NMHDR,
    iItem: c_int,
    mask: UINT,
    pszText: LPSTR,
    cchTextMax: c_int,
    iImage: c_int,
    lParam: LPARAM,
}}
pub type LPNMHDDISPINFOA = *mut NMHDDISPINFOA;
STRUCT!{struct NMHDFILTERBTNCLICK {
    hdr: NMHDR,
    iItem: INT,
    rc: RECT,
}}
pub type LPNMHDFILTERBTNCLICK = *mut NMHDFILTERBTNCLICK;
pub const TOOLBARCLASSNAME: &'static str = "ToolbarWindow32";
#[cfg(target_pointer_width = "32")]
STRUCT!{struct TBBUTTON {
    iBitmap: c_int,
    idCommand: c_int,
    fsState: BYTE,
    fsStyle: BYTE,
    bReserved: [BYTE; 2],
    dwData: DWORD_PTR,
    iString: INT_PTR,
}}
#[cfg(target_pointer_width = "64")]
STRUCT!{struct TBBUTTON {
    iBitmap: c_int,
    idCommand: c_int,
    fsState: BYTE,
    fsStyle: BYTE,
    bReserved: [BYTE; 6],
    dwData: DWORD_PTR,
    iString: INT_PTR,
}}
pub type PTBBUTTON = *mut TBBUTTON;
pub type LPTBBUTTON = *mut TBBUTTON;
pub type LPCTBBUTTON = *const TBBUTTON;
STRUCT!{struct COLORMAP {
    from: COLORREF,
    to: COLORREF,
}}
pub type LPCOLORMAP = *mut COLORMAP;
extern "system" {
    pub fn CreateToolbarEx(
        hwnd: HWND,
        ws: DWORD,
        wID: UINT,
        nBitmaps: c_int,
        hBMInst: HINSTANCE,
        wBMID: UINT_PTR,
        lpButtons: LPCTBBUTTON,
        iNumButtons: c_int,
        dxButton: c_int,
        dyButton: c_int,
        dxBitmap: c_int,
        dyBitmap: c_int,
        uStructSize: UINT,
    ) -> HWND;
    pub fn CreateMappedBitmap(
        hInstance: HINSTANCE,
        idBitmap: INT_PTR,
        wFlags: UINT,
        lpColorMap: LPCOLORMAP,
        iNumMaps: c_int,
    ) -> HBITMAP;
}
pub const CMB_MASKED: UINT = 0x02;
pub const TBSTATE_CHECKED: BYTE = 0x01;
pub const TBSTATE_PRESSED: BYTE = 0x02;
pub const TBSTATE_ENABLED: BYTE = 0x04;
pub const TBSTATE_HIDDEN: BYTE = 0x08;
pub const TBSTATE_INDETERMINATE: BYTE = 0x10;
pub const TBSTATE_WRAP: BYTE = 0x20;
pub const TBSTATE_ELLIPSES: BYTE = 0x40;
pub const TBSTATE_MARKED: BYTE = 0x80;
pub const TBSTYLE_BUTTON: DWORD = 0x0000;
pub const TBSTYLE_SEP: DWORD = 0x0001;
pub const TBSTYLE_CHECK: DWORD = 0x0002;
pub const TBSTYLE_GROUP: DWORD = 0x0004;
pub const TBSTYLE_CHECKGROUP: DWORD = TBSTYLE_GROUP | TBSTYLE_CHECK;
pub const TBSTYLE_DROPDOWN: DWORD = 0x0008;
pub const TBSTYLE_AUTOSIZE: DWORD = 0x0010;
pub const TBSTYLE_NOPREFIX: DWORD = 0x0020;
pub const TBSTYLE_TOOLTIPS: DWORD = 0x0100;
pub const TBSTYLE_WRAPABLE: DWORD = 0x0200;
pub const TBSTYLE_ALTDRAG: DWORD = 0x0400;
pub const TBSTYLE_FLAT: DWORD = 0x0800;
pub const TBSTYLE_LIST: DWORD = 0x1000;
pub const TBSTYLE_CUSTOMERASE: DWORD = 0x2000;
pub const TBSTYLE_REGISTERDROP: DWORD = 0x4000;
pub const TBSTYLE_TRANSPARENT: DWORD = 0x8000;
pub const TBSTYLE_EX_DRAWDDARROWS: DWORD = 0x00000001;
pub const BTNS_BUTTON: DWORD = TBSTYLE_BUTTON;
pub const BTNS_SEP: DWORD = TBSTYLE_SEP;
pub const BTNS_CHECK: DWORD = TBSTYLE_CHECK;
pub const BTNS_GROUP: DWORD = TBSTYLE_GROUP;
pub const BTNS_CHECKGROUP: DWORD = TBSTYLE_CHECKGROUP;
pub const BTNS_DROPDOWN: DWORD = TBSTYLE_DROPDOWN;
pub const BTNS_AUTOSIZE: DWORD = TBSTYLE_AUTOSIZE;
pub const BTNS_NOPREFIX: DWORD = TBSTYLE_NOPREFIX;
pub const BTNS_SHOWTEXT: DWORD = 0x0040;
pub const BTNS_WHOLEDROPDOWN: DWORD = 0x0080;
pub const TBSTYLE_EX_MIXEDBUTTONS: DWORD = 0x00000008;
pub const TBSTYLE_EX_HIDECLIPPEDBUTTONS: DWORD = 0x00000010;
pub const TBSTYLE_EX_MULTICOLUMN: DWORD = 0x00000002;
pub const TBSTYLE_EX_VERTICAL: DWORD = 0x00000004;
pub const TBSTYLE_EX_DOUBLEBUFFER: DWORD = 0x00000080;
STRUCT!{struct NMTBCUSTOMDRAW {
    nmcd: NMCUSTOMDRAW,
    hbrMonoDither: HBRUSH,
    hbrLines: HBRUSH,
    hpenLines: HPEN,
    clrText: COLORREF,
    clrMark: COLORREF,
    clrTextHighlight: COLORREF,
    clrBtnFace: COLORREF,
    clrBtnHighlight: COLORREF,
    clrHighlightHotTrack: COLORREF,
    rcText: RECT,
    nStringBkMode: c_int,
    nHLStringBkMode: c_int,
    iListGap: c_int,
}}
pub type LPNMTBCUSTOMDRAW = *mut NMTBCUSTOMDRAW;
pub const TBCDRF_NOEDGES: LRESULT = 0x00010000;
pub const TBCDRF_HILITEHOTTRACK: LRESULT = 0x00020000;
pub const TBCDRF_NOOFFSET: LRESULT = 0x00040000;
pub const TBCDRF_NOMARK: LRESULT = 0x00080000;
pub const TBCDRF_NOETCHEDEFFECT: LRESULT = 0x00100000;
pub const TBCDRF_BLENDICON: LRESULT = 0x00200000;
pub const TBCDRF_NOBACKGROUND: LRESULT = 0x00400000;
pub const TBCDRF_USECDCOLORS: LRESULT = 0x00800000;
pub const TB_ENABLEBUTTON: UINT = WM_USER + 1;
pub const TB_CHECKBUTTON: UINT = WM_USER + 2;
pub const TB_PRESSBUTTON: UINT = WM_USER + 3;
pub const TB_HIDEBUTTON: UINT = WM_USER + 4;
pub const TB_INDETERMINATE: UINT = WM_USER + 5;
pub const TB_MARKBUTTON: UINT = WM_USER + 6;
pub const TB_ISBUTTONENABLED: UINT = WM_USER + 9;
pub const TB_ISBUTTONCHECKED: UINT = WM_USER + 10;
pub const TB_ISBUTTONPRESSED: UINT = WM_USER + 11;
pub const TB_ISBUTTONHIDDEN: UINT = WM_USER + 12;
pub const TB_ISBUTTONINDETERMINATE: UINT = WM_USER + 13;
pub const TB_ISBUTTONHIGHLIGHTED: UINT = WM_USER + 14;
pub const TB_SETSTATE: UINT = WM_USER + 17;
pub const TB_GETSTATE: UINT = WM_USER + 18;
pub const TB_ADDBITMAP: UINT = WM_USER + 19;
STRUCT!{struct TBADDBITMAP {
    hInst: HINSTANCE,
    nID: UINT_PTR,
}}
pub type LPTBADDBITMAP = *mut TBADDBITMAP;
pub const HINST_COMMCTRL: HINSTANCE = -1isize as HINSTANCE;
pub const IDB_STD_SMALL_COLOR: WPARAM = 0;
pub const IDB_STD_LARGE_COLOR: WPARAM = 1;
pub const IDB_VIEW_SMALL_COLOR: WPARAM = 4;
pub const IDB_VIEW_LARGE_COLOR: WPARAM = 5;
pub const IDB_HIST_SMALL_COLOR: WPARAM = 8;
pub const IDB_HIST_LARGE_COLOR: WPARAM = 9;
pub const IDB_HIST_NORMAL: WPARAM = 12;
pub const IDB_HIST_HOT: WPARAM = 13;
pub const IDB_HIST_DISABLED: WPARAM = 14;
pub const IDB_HIST_PRESSED: WPARAM = 15;
pub const STD_CUT: c_int = 0;
pub const STD_COPY: c_int = 1;
pub const STD_PASTE: c_int = 2;
pub const STD_UNDO: c_int = 3;
pub const STD_REDOW: c_int = 4;
pub const STD_DELETE: c_int = 5;
pub const STD_FILENEW: c_int = 6;
pub const STD_FILEOPEN: c_int = 7;
pub const STD_FILESAVE: c_int = 8;
pub const STD_PRINTPRE: c_int = 9;
pub const STD_PROPERTIES: c_int = 10;
pub const STD_HELP: c_int = 11;
pub const STD_FIND: c_int = 12;
pub const STD_REPLACE: c_int = 13;
pub const STD_PRINT: c_int = 14;
pub const VIEW_LARGEICONS: c_int = 0;
pub const VIEW_SMALLICONS: c_int = 1;
pub const VIEW_LIST: c_int = 2;
pub const VIEW_DETAILS: c_int = 3;
pub const VIEW_SORTNAME: c_int = 4;
pub const VIEW_SORTSIZE: c_int = 5;
pub const VIEW_SORTDATE: c_int = 6;
pub const VIEW_SORTTYPE: c_int = 7;
pub const VIEW_PARENTFOLDER: c_int = 8;
pub const VIEW_NETCONNECT: c_int = 9;
pub const VIEW_NETDISCONNECT: c_int = 10;
pub const VIEW_NEWFOLDER: c_int = 11;
pub const VIEW_VIEWMENU: c_int = 12;
pub const HIST_BACK: c_int = 0;
pub const HIST_FORWARD: c_int = 1;
pub const HIST_FAVORITES: c_int = 2;
pub const HIST_ADDTOFAVORITES: c_int = 3;
pub const HIST_VIEWTREE: c_int = 4;
pub const TB_ADDBUTTONSA: UINT = WM_USER + 20;
pub const TB_INSERTBUTTONA: UINT = WM_USER + 21;
pub const TB_DELETEBUTTON: UINT = WM_USER + 22;
pub const TB_GETBUTTON: UINT = WM_USER + 23;
pub const TB_BUTTONCOUNT: UINT = WM_USER + 24;
pub const TB_COMMANDTOINDEX: UINT = WM_USER + 25;
STRUCT!{struct TBSAVEPARAMSA {
    hkr: HKEY,
    pszSubKey: LPCSTR,
    pszValueName: LPCSTR,
}}
pub type LPTBSAVEPARAMSA = *mut TBSAVEPARAMSA;
STRUCT!{struct TBSAVEPARAMSW {
    hkr: HKEY,
    pszSubKey: LPCWSTR,
    pszValueName: LPCWSTR,
}}
pub type LPTBSAVEPARAMSW = *mut TBSAVEPARAMSW;
pub const TB_SAVERESTOREA: UINT = WM_USER + 26;
pub const TB_SAVERESTOREW: UINT = WM_USER + 76;
pub const TB_CUSTOMIZE: UINT = WM_USER + 27;
pub const TB_ADDSTRINGA: UINT = WM_USER + 28;
pub const TB_ADDSTRINGW: UINT = WM_USER + 77;
pub const TB_GETITEMRECT: UINT = WM_USER + 29;
pub const TB_BUTTONSTRUCTSIZE: UINT = WM_USER + 30;
pub const TB_SETBUTTONSIZE: UINT = WM_USER + 31;
pub const TB_SETBITMAPSIZE: UINT = WM_USER + 32;
pub const TB_AUTOSIZE: UINT = WM_USER + 33;
pub const TB_GETTOOLTIPS: UINT = WM_USER + 35;
pub const TB_SETTOOLTIPS: UINT = WM_USER + 36;
pub const TB_SETPARENT: UINT = WM_USER + 37;
pub const TB_SETROWS: UINT = WM_USER + 39;
pub const TB_GETROWS: UINT = WM_USER + 40;
pub const TB_SETCMDID: UINT = WM_USER + 42;
pub const TB_CHANGEBITMAP: UINT = WM_USER + 43;
pub const TB_GETBITMAP: UINT = WM_USER + 44;
pub const TB_GETBUTTONTEXTA: UINT = WM_USER + 45;
pub const TB_GETBUTTONTEXTW: UINT = WM_USER + 75;
pub const TB_REPLACEBITMAP: UINT = WM_USER + 46;
pub const TB_SETINDENT: UINT = WM_USER + 47;
pub const TB_SETIMAGELIST: UINT = WM_USER + 48;
pub const TB_GETIMAGELIST: UINT = WM_USER + 49;
pub const TB_LOADIMAGES: UINT = WM_USER + 50;
pub const TB_GETRECT: UINT = WM_USER + 51;
pub const TB_SETHOTIMAGELIST: UINT = WM_USER + 52;
pub const TB_GETHOTIMAGELIST: UINT = WM_USER + 53;
pub const TB_SETDISABLEDIMAGELIST: UINT = WM_USER + 54;
pub const TB_GETDISABLEDIMAGELIST: UINT = WM_USER + 55;
pub const TB_SETSTYLE: UINT = WM_USER + 56;
pub const TB_GETSTYLE: UINT = WM_USER + 57;
pub const TB_GETBUTTONSIZE: UINT = WM_USER + 58;
pub const TB_SETBUTTONWIDTH: UINT = WM_USER + 59;
pub const TB_SETMAXTEXTROWS: UINT = WM_USER + 60;
pub const TB_GETTEXTROWS: UINT = WM_USER + 61;
pub const TB_GETOBJECT: UINT = WM_USER + 62;
pub const TB_GETHOTITEM: UINT = WM_USER + 71;
pub const TB_SETHOTITEM: UINT = WM_USER + 72;
pub const TB_SETANCHORHIGHLIGHT: UINT = WM_USER + 73;
pub const TB_GETANCHORHIGHLIGHT: UINT = WM_USER + 74;
pub const TB_MAPACCELERATORA: UINT = WM_USER + 78;
STRUCT!{struct TBINSERTMARK {
    iButton: c_int,
    dwFlags: DWORD,
}}
pub type LPTBINSERTMARK = *mut TBINSERTMARK;
pub const TBIMHT_AFTER: DWORD = 0x00000001;
pub const TBIMHT_BACKGROUND: DWORD = 0x00000002;
pub const TB_GETINSERTMARK: UINT = WM_USER + 79;
pub const TB_SETINSERTMARK: UINT = WM_USER + 80;
pub const TB_INSERTMARKHITTEST: UINT = WM_USER + 81;
pub const TB_MOVEBUTTON: UINT = WM_USER + 82;
pub const TB_GETMAXSIZE: UINT = WM_USER + 83;
pub const TB_SETEXTENDEDSTYLE: UINT = WM_USER + 84;
pub const TB_GETEXTENDEDSTYLE: UINT = WM_USER + 85;
pub const TB_GETPADDING: UINT = WM_USER + 86;
pub const TB_SETPADDING: UINT = WM_USER + 87;
pub const TB_SETINSERTMARKCOLOR: UINT = WM_USER + 88;
pub const TB_GETINSERTMARKCOLOR: UINT = WM_USER + 89;
pub const TB_SETCOLORSCHEME: UINT = CCM_SETCOLORSCHEME;
pub const TB_GETCOLORSCHEME: UINT = CCM_GETCOLORSCHEME;
pub const TB_SETUNICODEFORMAT: UINT = CCM_SETUNICODEFORMAT;
pub const TB_GETUNICODEFORMAT: UINT = CCM_GETUNICODEFORMAT;
pub const TB_MAPACCELERATORW: UINT = WM_USER + 90;
STRUCT!{struct TBREPLACEBITMAP {
    hInstOld: HINSTANCE,
    nIDOld: UINT_PTR,
    hInstNew: HINSTANCE,
    nIDNew: UINT_PTR,
    nButtons: c_int,
}}
pub type LPTBREPLACEBITMAP = *mut TBREPLACEBITMAP;
pub const TBBF_LARGE: DWORD = 0x0001;
pub const TB_GETBITMAPFLAGS: UINT = WM_USER + 41;
pub const TBIF_IMAGE: DWORD = 0x00000001;
pub const TBIF_TEXT: DWORD = 0x00000002;
pub const TBIF_STATE: DWORD = 0x00000004;
pub const TBIF_STYLE: DWORD = 0x00000008;
pub const TBIF_LPARAM: DWORD = 0x00000010;
pub const TBIF_COMMAND: DWORD = 0x00000020;
pub const TBIF_SIZE: DWORD = 0x00000040;
pub const TBIF_BYINDEX: DWORD = 0x80000000;
STRUCT!{struct TBBUTTONINFOA {
    cbSize: UINT,
    dwMask: DWORD,
    idCommand: c_int,
    iImage: c_int,
    fsState: BYTE,
    fsStyle: BYTE,
    cx: WORD,
    lParam: DWORD_PTR,
    pszText: LPSTR,
    cchText: c_int,
}}
pub type LPTBBUTTONINFOA = *mut TBBUTTONINFOA;
STRUCT!{struct TBBUTTONINFOW {
    cbSize: UINT,
    dwMask: DWORD,
    idCommand: c_int,
    iImage: c_int,
    fsState: BYTE,
    fsStyle: BYTE,
    cx: WORD,
    lParam: DWORD_PTR,
    pszText: LPWSTR,
    cchText: c_int,
}}
pub type LPTBBUTTONINFOW = *mut TBBUTTONINFOW;
pub const TB_GETBUTTONINFOW: UINT = WM_USER + 63;
pub const TB_SETBUTTONINFOW: UINT = WM_USER + 64;
pub const TB_GETBUTTONINFOA: UINT = WM_USER + 65;
pub const TB_SETBUTTONINFOA: UINT = WM_USER + 66;
pub const TB_INSERTBUTTONW: UINT = WM_USER + 67;
pub const TB_ADDBUTTONSW: UINT = WM_USER + 68;
pub const TB_HITTEST: UINT = WM_USER + 69;
pub const TB_SETDRAWTEXTFLAGS: UINT = WM_USER + 70;
pub const TB_GETSTRINGW: UINT = WM_USER + 91;
pub const TB_GETSTRINGA: UINT = WM_USER + 92;
pub const TB_SETBOUNDINGSIZE: UINT = WM_USER + 93;
pub const TB_SETHOTITEM2: UINT = WM_USER + 94;
pub const TB_HASACCELERATOR: UINT = WM_USER + 95;
pub const TB_SETLISTGAP: UINT = WM_USER + 96;
pub const TB_GETIMAGELISTCOUNT: UINT = WM_USER + 98;
pub const TB_GETIDEALSIZE: UINT = WM_USER + 99;
pub const TBMF_PAD: DWORD = 0x00000001;
pub const TBMF_BARPAD: DWORD = 0x00000002;
pub const TBMF_BUTTONSPACING: DWORD = 0x00000004;
STRUCT!{struct TBMETRICS {
    cbSize: UINT,
    dwMask: DWORD,
    cxPad: c_int,
    cyPad: c_int,
    cxBarPad: c_int,
    cyBarPad: c_int,
    cxButtonSpacing: c_int,
    cyButtonSpacing: c_int,
}}
pub type LPTBMETRICS = *mut TBMETRICS;
pub const TB_GETMETRICS: UINT = WM_USER + 101;
pub const TB_SETMETRICS: UINT = WM_USER + 102;
pub const TB_GETITEMDROPDOWNRECT: UINT = WM_USER + 103;
pub const TB_SETPRESSEDIMAGELIST: UINT = WM_USER + 104;
pub const TB_GETPRESSEDIMAGELIST: UINT = WM_USER + 105;
pub const TB_SETWINDOWTHEME: UINT = CCM_SETWINDOWTHEME;
pub const TBN_GETBUTTONINFOA: UINT = TBN_FIRST - 0;
pub const TBN_BEGINDRAG: UINT = TBN_FIRST - 1;
pub const TBN_ENDDRAG: UINT = TBN_FIRST - 2;
pub const TBN_BEGINADJUST: UINT = TBN_FIRST - 3;
pub const TBN_ENDADJUST: UINT = TBN_FIRST - 4;
pub const TBN_RESET: UINT = TBN_FIRST - 5;
pub const TBN_QUERYINSERT: UINT = TBN_FIRST - 6;
pub const TBN_QUERYDELETE: UINT = TBN_FIRST - 7;
pub const TBN_TOOLBARCHANGE: UINT = TBN_FIRST - 8;
pub const TBN_CUSTHELP: UINT = TBN_FIRST - 9;
pub const TBN_DROPDOWN: UINT = TBN_FIRST - 10;
pub const TBN_GETOBJECT: UINT = TBN_FIRST - 12;
STRUCT!{struct NMTBHOTITEM {
    hdr: NMHDR,
    idOld: c_int,
    idNew: c_int,
    dwFlags: DWORD,
}}
pub type LPNMTBHOTITEM = *mut NMTBHOTITEM;
pub const HICF_OTHER: DWORD = 0x00000000;
pub const HICF_MOUSE: DWORD = 0x00000001;
pub const HICF_ARROWKEYS: DWORD = 0x00000002;
pub const HICF_ACCELERATOR: DWORD = 0x00000004;
pub const HICF_DUPACCEL: DWORD = 0x00000008;
pub const HICF_ENTERING: DWORD = 0x00000010;
pub const HICF_LEAVING: DWORD = 0x00000020;
pub const HICF_RESELECT: DWORD = 0x00000040;
pub const HICF_LMOUSE: DWORD = 0x00000080;
pub const HICF_TOGGLEDROPDOWN: DWORD = 0x00000100;
pub const TBN_HOTITEMCHANGE: UINT = TBN_FIRST - 13;
pub const TBN_DRAGOUT: UINT = TBN_FIRST - 14;
pub const TBN_DELETINGBUTTON: UINT = TBN_FIRST - 15;
pub const TBN_GETDISPINFOA: UINT = TBN_FIRST - 16;
pub const TBN_GETDISPINFOW: UINT = TBN_FIRST - 17;
pub const TBN_GETINFOTIPA: UINT = TBN_FIRST - 18;
pub const TBN_GETINFOTIPW: UINT = TBN_FIRST - 19;
pub const TBN_GETBUTTONINFOW: UINT = TBN_FIRST - 20;
pub const TBN_RESTORE: UINT = TBN_FIRST - 21;
pub const TBN_SAVE: UINT = TBN_FIRST - 22;
pub const TBN_INITCUSTOMIZE: UINT = TBN_FIRST - 23;
pub const TBNRF_HIDEHELP: LRESULT = 0x00000001;
pub const TBNRF_ENDCUSTOMIZE: LRESULT = 0x00000002;
pub const TBN_WRAPHOTITEM: UINT = TBN_FIRST - 24;
pub const TBN_DUPACCELERATOR: UINT = TBN_FIRST - 25;
pub const TBN_WRAPACCELERATOR: UINT = TBN_FIRST - 26;
pub const TBN_DRAGOVER: UINT = TBN_FIRST - 27;
pub const TBN_MAPACCELERATOR: UINT = TBN_FIRST - 28;
STRUCT!{struct NMTBSAVE {
    hdr: NMHDR,
    pData: *mut DWORD,
    pCurrent: *mut DWORD,
    cbData: UINT,
    iItem: c_int,
    cButtons: c_int,
    tbButton: TBBUTTON,
}}
pub type LPNMTBSAVE = *mut NMTBSAVE;
STRUCT!{struct NMTBRESTORE {
    hdr: NMHDR,
    pData: *mut DWORD,
    pCurrent: *mut DWORD,
    cbData: UINT,
    iItem: c_int,
    cButtons: c_int,
    cbBytesPerRecord: c_int,
    tbButton: TBBUTTON,
}}
pub type LPNMTBRESTORE = *mut NMTBRESTORE;
STRUCT!{struct NMTBGETINFOTIPA {
    hdr: NMHDR,
    pszText: LPSTR,
    cchTextMax: c_int,
    iItem: c_int,
    lParal: LPARAM,
}}
pub type LPNMTBGETINFOTIPA = *mut NMTBGETINFOTIPA;
STRUCT!{struct NMTBGETINFOTIPW {
    hdr: NMHDR,
    pszText: LPWSTR,
    cchTextMax: c_int,
    iItem: c_int,
    lParal: LPARAM,
}}
pub type LPNMTBGETINFOTIPW = *mut NMTBGETINFOTIPW;
pub const TBNF_IMAGE: DWORD = 0x00000001;
pub const TBNF_TEXT: DWORD = 0x00000002;
pub const TBNF_DI_SETITEM: DWORD = 0x10000000;
STRUCT!{struct NMTBDISPINFOA {
    hdr: NMHDR,
    dwMask: DWORD,
    idCommand: c_int,
    lParam: DWORD_PTR,
    iImage: c_int,
    pszText: LPSTR,
    cchText: c_int,
}}
pub type LPNMTBDISPINFOA = *mut NMTBDISPINFOA;
STRUCT!{struct NMTBDISPINFOW {
    hdr: NMHDR,
    dwMask: DWORD,
    idCommand: c_int,
    lParam: DWORD_PTR,
    iImage: c_int,
    pszText: LPWSTR,
    cchText: c_int,
}}
pub type LPNMTBDISPINFOW = *mut NMTBDISPINFOW;
pub const TBDDRET_DEFAULT: LRESULT = 0;
pub const TBDDRET_NODEFAULT: LRESULT = 1;
pub const TBDDRET_TREATPRESSED: LRESULT = 2;
pub type TBNOTIFYA = NMTOOLBARA;
pub type TBNOTIFYW = NMTOOLBARW;
pub type LPTBNOTIFYA = LPNMTOOLBARA;
pub type LPTBNOTIFYW = LPNMTOOLBARW;
STRUCT!{struct NMTOOLBARA {
    hdr: NMHDR,
    iItem: c_int,
    tbButton: TBBUTTON,
    cchText: c_int,
    pszText: LPSTR,
    rcButton: RECT,
}}
pub type LPNMTOOLBARA = *mut NMTOOLBARA;
STRUCT!{struct NMTOOLBARW {
    hdr: NMHDR,
    iItem: c_int,
    tbButton: TBBUTTON,
    cchText: c_int,
    pszText: LPWSTR,
    rcButton: RECT,
}}
pub type LPNMTOOLBARW = *mut NMTOOLBARW;
pub const REBARCLASSNAME: &'static str = "ReBarWindow32";
pub const RBIM_IMAGELIST: UINT = 0x00000001;
pub const RBS_TOOLTIPS: DWORD = 0x00000100;
pub const RBS_VARHEIGHT: DWORD = 0x00000200;
pub const RBS_BANDBORDERS: DWORD = 0x00000400;
pub const RBS_FIXEDORDER: DWORD = 0x00000800;
pub const RBS_REGISTERDROP: DWORD = 0x00001000;
pub const RBS_AUTOSIZE: DWORD = 0x00002000;
pub const RBS_VERTICALGRIPPER: DWORD = 0x00004000;
pub const RBS_DBLCLKTOGGLE: DWORD = 0x00008000;
STRUCT!{struct REBARINFO {
    cbSize: UINT,
    fMask: UINT,
    himl: HIMAGELIST,
}}
pub type LPREBARINFO = *mut REBARINFO;
pub const RBBS_BREAK: UINT = 0x00000001;
pub const RBBS_FIXEDSIZE: UINT = 0x00000002;
pub const RBBS_CHILDEDGE: UINT = 0x00000004;
pub const RBBS_HIDDEN: UINT = 0x00000008;
pub const RBBS_NOVERT: UINT = 0x00000010;
pub const RBBS_FIXEDBMP: UINT = 0x00000020;
pub const RBBS_VARIABLEHEIGHT: UINT = 0x00000040;
pub const RBBS_GRIPPERALWAYS: UINT = 0x00000080;
pub const RBBS_NOGRIPPER: UINT = 0x00000100;
pub const RBBS_USECHEVRON: UINT = 0x00000200;
pub const RBBS_HIDETITLE: UINT = 0x00000400;
pub const RBBS_TOPALIGN: UINT = 0x00000800;
pub const RBBIM_STYLE: UINT = 0x00000001;
pub const RBBIM_COLORS: UINT = 0x00000002;
pub const RBBIM_TEXT: UINT = 0x00000004;
pub const RBBIM_IMAGE: UINT = 0x00000008;
pub const RBBIM_CHILD: UINT = 0x00000010;
pub const RBBIM_CHILDSIZE: UINT = 0x00000020;
pub const RBBIM_SIZE: UINT = 0x00000040;
pub const RBBIM_BACKGROUND: UINT = 0x00000080;
pub const RBBIM_ID: UINT = 0x00000100;
pub const RBBIM_IDEALSIZE: UINT = 0x00000200;
pub const RBBIM_LPARAM: UINT = 0x00000400;
pub const RBBIM_HEADERSIZE: UINT = 0x00000800;
pub const RBBIM_CHEVRONLOCATION: UINT = 0x00001000;
pub const RBBIM_CHEVRONSTATE: UINT = 0x00002000;
STRUCT!{struct REBARBANDINFOA {
    cbSize: UINT,
    fMask: UINT,
    fStyle: UINT,
    clrFore: COLORREF,
    clrBack: COLORREF,
    lpText: LPSTR,
    cch: UINT,
    iImage: c_int,
    hwndChild: HWND,
    cxMinChild: UINT,
    cyMinChild: UINT,
    cx: UINT,
    hbmBack: HBITMAP,
    wID: UINT,
    cyChild: UINT,
    cyMaxChild: UINT,
    cyIntegral: UINT,
    cxIdeal: UINT,
    lParam: LPARAM,
    cxHeader: UINT,
    rcChevronLocation: RECT,
    uChevronState: UINT,
}}
pub type LPREBARBANDINFOA = *mut REBARBANDINFOA;
pub type LPCREBARBANDINFOA = *const REBARBANDINFOA;
STRUCT!{struct REBARBANDINFOW {
    cbSize: UINT,
    fMask: UINT,
    fStyle: UINT,
    clrFore: COLORREF,
    clrBack: COLORREF,
    lpText: LPWSTR,
    cch: UINT,
    iImage: c_int,
    hwndChild: HWND,
    cxMinChild: UINT,
    cyMinChild: UINT,
    cx: UINT,
    hbmBack: HBITMAP,
    wID: UINT,
    cyChild: UINT,
    cyMaxChild: UINT,
    cyIntegral: UINT,
    cxIdeal: UINT,
    lParam: LPARAM,
    cxHeader: UINT,
    rcChevronLocation: RECT,
    uChevronState: UINT,
}}
pub type LPREBARBANDINFOW = *mut REBARBANDINFOW;
pub type LPCREBARBANDINFOW = *const REBARBANDINFOW;
pub const RB_INSERTBANDA: UINT = WM_USER + 1;
pub const RB_DELETEBAND: UINT = WM_USER + 2;
pub const RB_GETBARINFO: UINT = WM_USER + 3;
pub const RB_SETBARINFO: UINT = WM_USER + 4;
pub const RB_SETBANDINFOA: UINT = WM_USER + 6;
pub const RB_SETPARENT: UINT = WM_USER + 7;
pub const RB_HITTEST: UINT = WM_USER + 8;
pub const RB_GETRECT: UINT = WM_USER + 9;
pub const RB_INSERTBANDW: UINT = WM_USER + 10;
pub const RB_SETBANDINFOW: UINT = WM_USER + 11;
pub const RB_GETBANDCOUNT: UINT = WM_USER + 12;
pub const RB_GETROWCOUNT: UINT = WM_USER + 13;
pub const RB_GETROWHEIGHT: UINT = WM_USER + 14;
pub const RB_IDTOINDEX: UINT = WM_USER + 16;
pub const RB_GETTOOLTIPS: UINT = WM_USER + 17;
pub const RB_SETTOOLTIPS: UINT = WM_USER + 18;
pub const RB_SETBKCOLOR: UINT = WM_USER + 19;
pub const RB_GETBKCOLOR: UINT = WM_USER + 20;
pub const RB_SETTEXTCOLOR: UINT = WM_USER + 21;
pub const RB_GETTEXTCOLOR: UINT = WM_USER + 22;
pub const RBSTR_CHANGERECT: WPARAM = 0x0001;
pub const RB_SIZETORECT: UINT = WM_USER + 23;
pub const RB_SETCOLORSCHEME: UINT = CCM_SETCOLORSCHEME;
pub const RB_GETCOLORSCHEME: UINT = CCM_GETCOLORSCHEME;
pub const RB_BEGINDRAG: UINT = WM_USER + 24;
pub const RB_ENDDRAG: UINT = WM_USER + 25;
pub const RB_DRAGMOVE: UINT = WM_USER + 26;
pub const RB_GETBARHEIGHT: UINT = WM_USER + 27;
pub const RB_GETBANDINFOW: UINT = WM_USER + 28;
pub const RB_GETBANDINFOA: UINT = WM_USER + 29;
pub const RB_MINIMIZEBAND: UINT = WM_USER + 30;
pub const RB_MAXIMIZEBAND: UINT = WM_USER + 31;
pub const RB_GETDROPTARGET: UINT = CCM_GETDROPTARGET;
pub const RB_GETBANDBORDERS: UINT = WM_USER + 34;
pub const RB_SHOWBAND: UINT = WM_USER + 35;
pub const RB_SETPALETTE: UINT = WM_USER + 37;
pub const RB_GETPALETTE: UINT = WM_USER + 38;
pub const RB_MOVEBAND: UINT = WM_USER + 39;
pub const RB_SETUNICODEFORMAT: UINT = CCM_SETUNICODEFORMAT;
pub const RB_GETUNICODEFORMAT: UINT = CCM_GETUNICODEFORMAT;
pub const RB_GETBANDMARGINS: UINT = WM_USER + 40;
pub const RB_SETWINDOWTHEME: UINT = CCM_SETWINDOWTHEME;
pub const RB_SETEXTENDEDSTYLE: UINT = WM_USER + 41;
pub const RB_GETEXTENDEDSTYLE: UINT = WM_USER + 42;
pub const RB_PUSHCHEVRON: UINT = WM_USER + 43;
pub const RB_SETBANDWIDTH: UINT = WM_USER + 44;
pub const RBN_HEIGHTCHANGE: UINT = RBN_FIRST - 0;
pub const RBN_GETOBJECT: UINT = RBN_FIRST - 1;
pub const RBN_LAYOUTCHANGED: UINT = RBN_FIRST - 2;
pub const RBN_AUTOSIZE: UINT = RBN_FIRST - 3;
pub const RBN_BEGINDRAG: UINT = RBN_FIRST - 4;
pub const RBN_ENDDRAG: UINT = RBN_FIRST - 5;
pub const RBN_DELETINGBAND: UINT = RBN_FIRST - 6;
pub const RBN_DELETEDBAND: UINT = RBN_FIRST - 7;
pub const RBN_CHILDSIZE: UINT = RBN_FIRST - 8;
pub const RBN_CHEVRONPUSHED: UINT = RBN_FIRST - 10;
pub const RBN_SPLITTERDRAG: UINT = RBN_FIRST - 11;
pub const RBN_MINMAX: UINT = RBN_FIRST - 21;
pub const RBN_AUTOBREAK: UINT = RBN_FIRST - 22;
STRUCT!{struct NMREBARCHILDSIZE {
    hdr: NMHDR,
    uBand: UINT,
    wID: UINT,
    rcChild: RECT,
    rcBand: RECT,
}}
pub type LPNMREBARCHILDSIZE = *mut NMREBARCHILDSIZE;
STRUCT!{struct NMREBAR {
    hdr: NMHDR,
    dwMask: DWORD,
    uBand: UINT,
    fStyle: UINT,
    wID: UINT,
    lParam: LPARAM,
}}
pub type LPNMREBAR = *mut NMREBAR;
pub const RBNM_ID: DWORD = 0x00000001;
pub const RBNM_STYLE: DWORD = 0x00000002;
pub const RBNM_LPARAM: DWORD = 0x00000004;
STRUCT!{struct NMRBAUTOSIZE {
    hdr: NMHDR,
    fChanged: BOOL,
    rcTarget: RECT,
    rcActual: RECT,
}}
pub type LPNMRBAUTOSIZE = *mut NMRBAUTOSIZE;
STRUCT!{struct NMREBARCHEVRON {
    hdr: NMHDR,
    uBand: UINT,
    wID: UINT,
    lParam: LPARAM,
    rc: RECT,
    lParamNM: LPARAM,
}}
pub type LPNMREBARCHEVRON = *mut NMREBARCHEVRON;
STRUCT!{struct NMREBARSPLITTER {
    hdr: NMHDR,
    rcSizing: RECT,
}}
pub type LPNMREBARSPLITTER = *mut NMREBARSPLITTER;
pub const RBAB_AUTOSIZE: UINT = 0x0001;
pub const RBAB_ADDBAND: UINT = 0x0002;
STRUCT!{struct NMREBARAUTOBREAK {
    hdr: NMHDR,
    uBand: UINT,
    wID: UINT,
    lParam: LPARAM,
    uMsg: UINT,
    fStyleCurrent: UINT,
    fAutoBreak: UINT,
}}
pub type LPNMREBARAUTOBREAK = *mut NMREBARAUTOBREAK;
pub const RBHT_NOWHERE: UINT = 0x0001;
pub const RBHT_CAPTION: UINT = 0x0002;
pub const RBHT_CLIENT: UINT = 0x0003;
pub const RBHT_GRABBER: UINT = 0x0004;
pub const RBHT_CHEVRON: UINT = 0x0008;
pub const RBHT_SPLITTER: UINT = 0x0010;
STRUCT!{struct RBHITTESTINFO {
    pt: POINT,
    flags: UINT,
    iBand: c_int,
}}
pub type LPRBHITTESTINFO = *mut RBHITTESTINFO;
pub const TOOLTIPS_CLASS: &'static str = "tooltips_class32";
pub type LPTOOLINFOA = LPTTTOOLINFOA;
pub type LPTOOLINFOW = LPTTTOOLINFOW;
pub type TOOLINFOA = TTTOOLINFOA;
pub type TOOLINFOW = TTTOOLINFOW;
STRUCT!{struct TTTOOLINFOA {
    cbSize: UINT,
    uFlags: UINT,
    hwnd: HWND,
    uId: UINT_PTR,
    rect: RECT,
    hinst: HINSTANCE,
    lpszText: LPSTR,
    lParam: LPARAM,
    lpReserved: *mut c_void,
}}
pub type PTTTOOLINFOA = *mut TTTOOLINFOA;
pub type LPTTTOOLINFOA = *mut TTTOOLINFOA;
STRUCT!{struct TTTOOLINFOW {
    cbSize: UINT,
    uFlags: UINT,
    hwnd: HWND,
    uId: UINT_PTR,
    rect: RECT,
    hinst: HINSTANCE,
    lpszText: LPWSTR,
    lParam: LPARAM,
    lpReserved: *mut c_void,
}}
pub type PTTTOOLINFOW = *mut TTTOOLINFOW;
pub type LPTTTOOLINFOW = *mut TTTOOLINFOW;
pub const TTS_ALWAYSTIP: DWORD = 0x01;
pub const TTS_NOPREFIX: DWORD = 0x02;
pub const TTS_NOANIMATE: DWORD = 0x10;
pub const TTS_NOFADE: DWORD = 0x20;
pub const TTS_BALLOON: DWORD = 0x40;
pub const TTS_CLOSE: DWORD = 0x80;
pub const TTS_USEVISUALSTYLE: DWORD = 0x100;
pub const TTF_IDISHWND: UINT = 0x0001;
pub const TTF_CENTERTIP: UINT = 0x0002;
pub const TTF_RTLREADING: UINT = 0x0004;
pub const TTF_SUBCLASS: UINT = 0x0010;
pub const TTF_TRACK: UINT = 0x0020;
pub const TTF_ABSOLUTE: UINT = 0x0080;
pub const TTF_TRANSPARENT: UINT = 0x0100;
pub const TTF_PARSELINKS: UINT = 0x1000;
pub const TTF_DI_SETITEM: UINT = 0x8000;
pub const TTDT_AUTOMATIC: WPARAM = 0;
pub const TTDT_RESHOW: WPARAM = 1;
pub const TTDT_AUTOPOP: WPARAM = 2;
pub const TTDT_INITIAL: WPARAM = 3;
pub const TTI_NONE: WPARAM = 0;
pub const TTI_INFO: WPARAM = 1;
pub const TTI_WARNING: WPARAM = 2;
pub const TTI_ERROR: WPARAM = 3;
pub const TTI_INFO_LARGE: WPARAM = 4;
pub const TTI_WARNING_LARGE: WPARAM = 5;
pub const TTI_ERROR_LARGE: WPARAM = 6;
pub const TTM_ACTIVATE: UINT = WM_USER + 1;
pub const TTM_SETDELAYTIME: UINT = WM_USER + 3;
pub const TTM_ADDTOOLA: UINT = WM_USER + 4;
pub const TTM_ADDTOOLW: UINT = WM_USER + 50;
pub const TTM_DELTOOLA: UINT = WM_USER + 5;
pub const TTM_DELTOOLW: UINT = WM_USER + 51;
pub const TTM_NEWTOOLRECTA: UINT = WM_USER + 6;
pub const TTM_NEWTOOLRECTW: UINT = WM_USER + 52;
pub const TTM_RELAYEVENT: UINT = WM_USER + 7;
pub const TTM_GETTOOLINFOA: UINT = WM_USER + 8;
pub const TTM_GETTOOLINFOW: UINT = WM_USER + 53;
pub const TTM_SETTOOLINFOA: UINT = WM_USER + 9;
pub const TTM_SETTOOLINFOW: UINT = WM_USER + 54;
pub const TTM_HITTESTA: UINT = WM_USER + 10;
pub const TTM_HITTESTW: UINT = WM_USER + 55;
pub const TTM_GETTEXTA: UINT = WM_USER + 11;
pub const TTM_GETTEXTW: UINT = WM_USER + 56;
pub const TTM_UPDATETIPTEXTA: UINT = WM_USER + 12;
pub const TTM_UPDATETIPTEXTW: UINT = WM_USER + 57;
pub const TTM_GETTOOLCOUNT: UINT = WM_USER + 13;
pub const TTM_ENUMTOOLSA: UINT = WM_USER + 14;
pub const TTM_ENUMTOOLSW: UINT = WM_USER + 58;
pub const TTM_GETCURRENTTOOLA: UINT = WM_USER + 15;
pub const TTM_GETCURRENTTOOLW: UINT = WM_USER + 59;
pub const TTM_WINDOWFROMPOINT: UINT = WM_USER + 16;
pub const TTM_TRACKACTIVATE: UINT = WM_USER + 17;
pub const TTM_TRACKPOSITION: UINT = WM_USER + 18;
pub const TTM_SETTIPBKCOLOR: UINT = WM_USER + 19;
pub const TTM_SETTIPTEXTCOLOR: UINT = WM_USER + 20;
pub const TTM_GETDELAYTIME: UINT = WM_USER + 21;
pub const TTM_GETTIPBKCOLOR: UINT = WM_USER + 22;
pub const TTM_GETTIPTEXTCOLOR: UINT = WM_USER + 23;
pub const TTM_SETMAXTIPWIDTH: UINT = WM_USER + 24;
pub const TTM_GETMAXTIPWIDTH: UINT = WM_USER + 25;
pub const TTM_SETMARGIN: UINT = WM_USER + 26;
pub const TTM_GETMARGIN: UINT = WM_USER + 27;
pub const TTM_POP: UINT = WM_USER + 28;
pub const TTM_UPDATE: UINT = WM_USER + 29;
pub const TTM_GETBUBBLESIZE: UINT = WM_USER + 30;
pub const TTM_ADJUSTRECT: UINT = WM_USER + 31;
pub const TTM_SETTITLEA: UINT = WM_USER + 32;
pub const TTM_SETTITLEW: UINT = WM_USER + 33;
pub const TTM_POPUP: UINT = WM_USER + 34;
pub const TTM_GETTITLE: UINT = WM_USER + 35;
STRUCT!{struct TTGETTITLE {
    dwSize: DWORD,
    uTitleBitmap: UINT,
    cch: UINT,
    pszTitle: *mut WCHAR,
}}
pub type LPTTGETTITLE = *mut TTGETTITLE;
pub const TTM_SETWINDOWTHEME: UINT = CCM_SETWINDOWTHEME;
pub type LPHITTESTINFOW = LPTTHITTESTINFOW;
pub type LPHITTESTINFOA = LPTTHITTESTINFOA;
STRUCT!{struct TTHITTESTINFOA {
    hwnd: HWND,
    pt: POINT,
    ti: TTTOOLINFOA,
}}
pub type LPTTHITTESTINFOA = *mut TTHITTESTINFOA;
STRUCT!{struct TTHITTESTINFOW {
    hwnd: HWND,
    pt: POINT,
    ti: TTTOOLINFOW,
}}
pub type LPTTHITTESTINFOW = *mut TTHITTESTINFOW;
pub const TTN_GETDISPINFOA: UINT = TTN_FIRST - 0;
pub const TTN_GETDISPINFOW: UINT = TTN_FIRST - 10;
pub const TTN_SHOW: UINT = TTN_FIRST - 1;
pub const TTN_POP: UINT = TTN_FIRST - 2;
pub const TTN_LINKCLICK: UINT = TTN_FIRST - 3;
pub const TTN_NEEDTEXTA: UINT = TTN_GETDISPINFOA;
pub const TTN_NEEDTEXTW: UINT = TTN_GETDISPINFOW;
pub type TOOLTIPTEXTW = NMTTDISPINFOW;
pub type TOOLTIPTEXTA = NMTTDISPINFOA;
pub type LPTOOLTIPTEXTA = LPNMTTDISPINFOA;
pub type LPTOOLTIPTEXTW = LPNMTTDISPINFOW;
STRUCT!{struct NMTTDISPINFOA {
    hdr: NMHDR,
    lpszText: LPSTR,
    szText: [c_char; 80],
    hinst: HINSTANCE,
    uFlags: UINT,
    lParam: LPARAM,
}}
pub type LPNMTTDISPINFOA = *mut NMTTDISPINFOA;
STRUCT!{struct NMTTDISPINFOW {
    hdr: NMHDR,
    lpszText: LPWSTR,
    szText: [WCHAR; 80],
    hinst: HINSTANCE,
    uFlags: UINT,
    lParam: LPARAM,
}}
pub type LPNMTTDISPINFOW = *mut NMTTDISPINFOW;
pub const SBARS_SIZEGRIP: DWORD = 0x0100;
pub const SBARS_TOOLTIPS: DWORD = 0x0800;
pub const SBT_TOOLTIPS: DWORD = 0x0800;
extern "system" {
    pub fn DrawStatusTextA(
        hDC: HDC,
        lprc: LPCRECT,
        pszText: LPCSTR,
        uFlags: UINT,
    );
    pub fn DrawStatusTextW(
        hDC: HDC,
        lprc: LPCRECT,
        pszText: LPCWSTR,
        uFlags: UINT,
    );
    pub fn CreateStatusWindowA(
        style: LONG,
        lpszText: LPCSTR,
        hwndParent: HWND,
        wID: UINT,
    ) -> HWND;
    pub fn CreateStatusWindowW(
        style: LONG,
        lpszText: LPCWSTR,
        hwndParent: HWND,
        wID: UINT,
    ) -> HWND;
}
pub const STATUSCLASSNAME: &'static str = "msctls_statusbar32";
pub const SB_SETTEXTA: UINT = WM_USER + 1;
pub const SB_SETTEXTW: UINT = WM_USER + 11;
pub const SB_GETTEXTA: UINT = WM_USER + 2;
pub const SB_GETTEXTW: UINT = WM_USER + 13;
pub const SB_GETTEXTLENGTHA: UINT = WM_USER + 3;
pub const SB_GETTEXTLENGTHW: UINT = WM_USER + 12;
pub const SB_SETPARTS: UINT = WM_USER + 4;
pub const SB_GETPARTS: UINT = WM_USER + 6;
pub const SB_GETBORDERS: UINT = WM_USER + 7;
pub const SB_SETMINHEIGHT: UINT = WM_USER + 8;
pub const SB_SIMPLE: UINT = WM_USER + 9;
pub const SB_GETRECT: UINT = WM_USER + 10;
pub const SB_ISSIMPLE: UINT = WM_USER + 14;
pub const SB_SETICON: UINT = WM_USER + 15;
pub const SB_SETTIPTEXTA: UINT = WM_USER + 16;
pub const SB_SETTIPTEXTW: UINT = WM_USER + 17;
pub const SB_GETTIPTEXTA: UINT = WM_USER + 18;
pub const SB_GETTIPTEXTW: UINT = WM_USER + 19;
pub const SB_GETICON: UINT = WM_USER + 20;
pub const SB_SETUNICODEFORMAT: UINT = CCM_SETUNICODEFORMAT;
pub const SB_GETUNICODEFORMAT: UINT = CCM_GETUNICODEFORMAT;
pub const SBT_OWNERDRAW: WPARAM = 0x1000;
pub const SBT_NOBORDERS: WPARAM = 0x0100;
pub const SBT_POPOUT: WPARAM = 0x0200;
pub const SBT_RTLREADING: WPARAM = 0x0400;
pub const SBT_NOTABPARSING: WPARAM = 0x0800;
pub const SB_SETBKCOLOR: UINT = CCM_SETBKCOLOR;
pub const SBN_SIMPLEMODECHANGE: UINT = SBN_FIRST - 0;
pub const SB_SIMPLEID: WPARAM = 0x00ff;
extern "system" {
    pub fn MenuHelp(
        uMsg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
        hMainMenu: HMENU,
        hInst: HINSTANCE,
        hwndStatus: HWND,
        lpwIDs: *mut UINT,
    );
    pub fn ShowHideMenuCtl(
        hWnd: HWND,
        uFlags: UINT_PTR,
        lpInfo: LPINT,
    ) -> BOOL;
    pub fn GetEffectiveClientRect(
        hWnd: HWND,
        lprc: LPRECT,
        lpInfo: *const INT,
    );
}
pub const TRACKBAR_CLASS: &'static str = "msctls_trackbar32";
pub const TBS_AUTOTICKS: DWORD = 0x0001;
pub const TBS_VERT: DWORD = 0x0002;
pub const TBS_HORZ: DWORD = 0x0000;
pub const TBS_TOP: DWORD = 0x0004;
pub const TBS_BOTTOM: DWORD = 0x0000;
pub const TBS_LEFT: DWORD = 0x0004;
pub const TBS_RIGHT: DWORD = 0x0000;
pub const TBS_BOTH: DWORD = 0x0008;
pub const TBS_NOTICKS: DWORD = 0x0010;
pub const TBS_ENABLESELRANGE: DWORD = 0x0020;
pub const TBS_FIXEDLENGTH: DWORD = 0x0040;
pub const TBS_NOTHUMB: DWORD = 0x0080;
pub const TBS_TOOLTIPS: DWORD = 0x0100;
pub const TBS_REVERSED: DWORD = 0x0200;
pub const TBS_DOWNISLEFT: DWORD = 0x0400;
pub const TBS_NOTIFYBEFOREMOVE: DWORD = 0x0800;
pub const TBS_TRANSPARENTBKGND: DWORD = 0x1000;
pub const TBM_GETPOS: UINT = WM_USER;
pub const TBM_GETRANGEMIN: UINT = WM_USER + 1;
pub const TBM_GETRANGEMAX: UINT = WM_USER + 2;
pub const TBM_GETTIC: UINT = WM_USER + 3;
pub const TBM_SETTIC: UINT = WM_USER + 4;
pub const TBM_SETPOS: UINT = WM_USER + 5;
pub const TBM_SETRANGE: UINT = WM_USER + 6;
pub const TBM_SETRANGEMIN: UINT = WM_USER + 7;
pub const TBM_SETRANGEMAX: UINT = WM_USER + 8;
pub const TBM_CLEARTICS: UINT = WM_USER + 9;
pub const TBM_SETSEL: UINT = WM_USER + 10;
pub const TBM_SETSELSTART: UINT = WM_USER + 11;
pub const TBM_SETSELEND: UINT = WM_USER + 12;
pub const TBM_GETPTICS: UINT = WM_USER + 14;
pub const TBM_GETTICPOS: UINT = WM_USER + 15;
pub const TBM_GETNUMTICS: UINT = WM_USER + 16;
pub const TBM_GETSELSTART: UINT = WM_USER + 17;
pub const TBM_GETSELEND: UINT = WM_USER + 18;
pub const TBM_CLEARSEL: UINT = WM_USER + 19;
pub const TBM_SETTICFREQ: UINT = WM_USER + 20;
pub const TBM_SETPAGESIZE: UINT = WM_USER + 21;
pub const TBM_GETPAGESIZE: UINT = WM_USER + 22;
pub const TBM_SETLINESIZE: UINT = WM_USER + 23;
pub const TBM_GETLINESIZE: UINT = WM_USER + 24;
pub const TBM_GETTHUMBRECT: UINT = WM_USER + 25;
pub const TBM_GETCHANNELRECT: UINT = WM_USER + 26;
pub const TBM_SETTHUMBLENGTH: UINT = WM_USER + 27;
pub const TBM_GETTHUMBLENGTH: UINT = WM_USER + 28;
pub const TBM_SETTOOLTIPS: UINT = WM_USER + 29;
pub const TBM_GETTOOLTIPS: UINT = WM_USER + 30;
pub const TBM_SETTIPSIDE: UINT = WM_USER + 31;
pub const TBTS_TOP: WPARAM = 0;
pub const TBTS_LEFT: WPARAM = 1;
pub const TBTS_BOTTOM: WPARAM = 2;
pub const TBTS_RIGHT: WPARAM = 3;
pub const TBM_SETBUDDY: UINT = WM_USER + 32;
pub const TBM_GETBUDDY: UINT = WM_USER + 33;
pub const TBM_SETPOSNOTIFY: UINT = WM_USER + 34;
pub const TBM_SETUNICODEFORMAT: UINT = CCM_SETUNICODEFORMAT;
pub const TBM_GETUNICODEFORMAT: UINT = CCM_GETUNICODEFORMAT;
pub const TB_LINEUP: WPARAM = 0;
pub const TB_LINEDOWN: WPARAM = 1;
pub const TB_PAGEUP: WPARAM = 2;
pub const TB_PAGEDOWN: WPARAM = 3;
pub const TB_THUMBPOSITION: WPARAM = 4;
pub const TB_THUMBTRACK: WPARAM = 5;
pub const TB_TOP: WPARAM = 6;
pub const TB_BOTTOM: WPARAM = 7;
pub const TB_ENDTRACK: WPARAM = 8;
pub const TBCD_TICS: DWORD_PTR = 0x0001;
pub const TBCD_THUMB: DWORD_PTR = 0x0001;
pub const TBCD_CHANNEL: DWORD_PTR = 0x0001;
pub const TRBN_THUMBPOSCHANGING: UINT = TRBN_FIRST - 1;
STRUCT!{struct NMTRBTHUMBPOSCHANGING {
    hdr: NMHDR,
    dwPos: DWORD,
    nReason: c_int,
}}
STRUCT!{struct DRAGLISTINFO {
    uNotification: UINT,
    hWnd: HWND,
    ptCursor: POINT,
}}
pub type LPDRAGLISTINFO = *mut DRAGLISTINFO;
pub const DL_BEGINDRAG: UINT = WM_USER + 133;
pub const DL_DRAGGING: UINT = WM_USER + 134;
pub const DL_DROPPED: UINT = WM_USER + 135;
pub const DL_CANCELDRAG: UINT = WM_USER + 136;
pub const DL_CURSORSET: UINT = 0;
pub const DL_STOPCURSOR: UINT = 1;
pub const DL_COPYCURSOR: UINT = 2;
pub const DL_MOVECURSOR: UINT = 3;
pub const DRAGLISTMSGSTRING: &'static str = "commctrl_DragListMsg";
extern "system" {
    pub fn MakeDragList(
        hLB: HWND,
    ) -> BOOL;
    pub fn DrawInsert(
        handParent: HWND,
        hLB: HWND,
        nItem: c_int,
    );
    pub fn LBItemFromPt(
        hLB: HWND,
        pt: POINT,
        bAutoScroll: BOOL,
    ) -> c_int;
}
pub const UPDOWN_CLASS: &'static str = "msctls_updown32";
STRUCT!{struct UDACCEL {
    nSec: UINT,
    nInc: UINT,
}}
pub type LPUDACCEL = *mut UDACCEL;
pub const UD_MAXVAL: c_short = 0x7fff;
pub const UD_MINVAL: c_short = 0 - UD_MAXVAL;
pub const UDS_WRAP: DWORD = 0x0001;
pub const UDS_SETBUDDYINT: DWORD = 0x0002;
pub const UDS_ALIGNRIGHT: DWORD = 0x0004;
pub const UDS_ALIGNLEFT: DWORD = 0x0008;
pub const UDS_AUTOBUDDY: DWORD = 0x0010;
pub const UDS_ARROWKEYS: DWORD = 0x0020;
pub const UDS_HORZ: DWORD = 0x0040;
pub const UDS_NOTHOUSANDS: DWORD = 0x0080;
pub const UDS_HOTTRACK: DWORD = 0x0100;
pub const UDM_SETRANGE: UINT = WM_USER + 101;
pub const UDM_GETRANGE: UINT = WM_USER + 102;
pub const UDM_SETPOS: UINT = WM_USER + 103;
pub const UDM_GETPOS: UINT = WM_USER + 104;
pub const UDM_SETBUDDY: UINT = WM_USER + 105;
pub const UDM_GETBUDDY: UINT = WM_USER + 106;
pub const UDM_SETACCEL: UINT = WM_USER + 107;
pub const UDM_GETACCEL: UINT = WM_USER + 108;
pub const UDM_SETBASE: UINT = WM_USER + 109;
pub const UDM_GETBASE: UINT = WM_USER + 110;
pub const UDM_SETRANGE32: UINT = WM_USER + 111;
pub const UDM_GETRANGE32: UINT = WM_USER + 112;
pub const UDM_SETUNICODEFORMAT: UINT = CCM_SETUNICODEFORMAT;
pub const UDM_GETUNICODEFORMAT: UINT = CCM_GETUNICODEFORMAT;
pub const UDM_SETPOS32: UINT = WM_USER + 113;
pub const UDM_GETPOS32: UINT = WM_USER + 114;
extern "system" {
    pub fn CreateUpDownControl(
        dwStyle: DWORD,
        x: c_int,
        y: c_int,
        cx: c_int,
        cy: c_int,
        hParent: HWND,
        nID: c_int,
        hInst: HINSTANCE,
        nBuddy: HWND,
        nUpper: c_int,
        nLower: c_int,
        nPos: c_int,
    ) -> HWND;
}
pub type NM_UPDOWN = NMUPDOWN;
pub type LPNM_UPDOWN = LPNMUPDOWN;
STRUCT!{struct NMUPDOWN {
    hdr: NMHDR,
    iPos: c_int,
    iDelta: c_int,
}}
pub type LPNMUPDOWN = *mut NMUPDOWN;
pub const UDN_DELTAPOS: UINT = UDN_FIRST - 1;
pub const PROGRESS_CLASS: &'static str = "msctls_progress32";
pub const PBS_SMOOTH: DWORD = 0x01;
pub const PBS_VERTICAL: DWORD = 0x04;
pub const PBM_SETRANGE: UINT = WM_USER + 1;
pub const PBM_SETPOS: UINT = WM_USER + 2;
pub const PBM_DELTAPOS: UINT = WM_USER + 3;
pub const PBM_SETSTEP: UINT = WM_USER + 4;
pub const PBM_STEPIT: UINT = WM_USER + 5;
pub const PBM_SETRANGE32: UINT = WM_USER + 6;
STRUCT!{struct PBRANGE {
    iLow: c_int,
    iHigh: c_int,
}}
pub type LPPBRANGE = *mut PBRANGE;
pub const PBM_GETRANGE: UINT = WM_USER + 7;
pub const PBM_GETPOS: UINT = WM_USER + 8;
pub const PBM_SETBARCOLOR: UINT = WM_USER + 9;
pub const PBM_SETBKCOLOR: UINT = CCM_SETBKCOLOR;
pub const PBS_MARQUEE: DWORD = 0x08;
pub const PBM_SETMARQUEE: UINT = WM_USER + 10;
pub const PBS_SMOOTHREVERSE: DWORD = 0x10;
pub const PBM_GETSTEP: UINT = WM_USER + 13;
pub const PBM_GETBKCOLOR: UINT = WM_USER + 14;
pub const PBM_GETBARCOLOR: UINT = WM_USER + 15;
pub const PBM_SETSTATE: UINT = WM_USER + 16;
pub const PBM_GETSTATE: UINT = WM_USER + 17;
pub const PBST_NORMAL: c_int = 0x0001;
pub const PBST_ERROR: c_int = 0x0002;
pub const PBST_PAUSED: c_int = 0x0003;
pub const HOTKEYF_SHIFT: BYTE = 0x01;
pub const HOTKEYF_CONTROL: BYTE = 0x02;
pub const HOTKEYF_ALT: BYTE = 0x04;
pub const HOTKEYF_EXT: BYTE = 0x08;
pub const HKCOMB_NONE: WPARAM = 0x0001;
pub const HKCOMB_S: WPARAM = 0x0002;
pub const HKCOMB_C: WPARAM = 0x0004;
pub const HKCOMB_A: WPARAM = 0x0008;
pub const HKCOMB_SC: WPARAM = 0x0010;
pub const HKCOMB_SA: WPARAM = 0x0020;
pub const HKCOMB_CA: WPARAM = 0x0040;
pub const HKCOMB_SCA: WPARAM = 0x0080;
pub const HKM_SETHOTKEY: UINT = WM_USER + 1;
pub const HKM_GETHOTKEY: UINT = WM_USER + 2;
pub const HKM_SETRULES: UINT = WM_USER + 3;
pub const HOTKEY_CLASS: &'static str = "msctls_hotkey32";
pub const CCS_TOP: DWORD = 0x00000001;
pub const CCS_NOMOVEY: DWORD = 0x00000002;
pub const CCS_BOTTOM: DWORD = 0x00000003;
pub const CCS_NORESIZE: DWORD = 0x00000004;
pub const CCS_NOPARENTALIGN: DWORD = 0x00000008;
pub const CCS_ADJUSTABLE: DWORD = 0x00000020;
pub const CCS_NODIVIDER: DWORD = 0x00000040;
pub const CCS_VERT: DWORD = 0x00000080;
pub const CCS_LEFT: DWORD = CCS_VERT | CCS_TOP;
pub const CCS_RIGHT: DWORD = CCS_VERT | CCS_BOTTOM;
pub const CCS_NOMOVEX: DWORD = CCS_VERT | CCS_NOMOVEY;
pub const INVALID_LINK_INDEX: c_int = -1;
pub const MAX_LINKID_TEXT: usize = 48;
pub const L_MAX_URL_LENGTH: usize = 2048 + 32 + 4;
--> --------------------

--> maximum size reached

--> --------------------

[ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge