/*
* Common controls definitions
*
* Copyright (C) the Wine project
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
* other than GPL or LGPL is available it will apply instead, Oracle elects to use only
* the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
* a choice of LGPL license versions is made available with the language indicating
* that LGPLv2 or any later version may be used, or where a choice of which version
* of the LGPL is applied is otherwise unspecified.
*/
#ifndef __WINE_COMMCTRL_H
#define __WINE_COMMCTRL_H
#include <prsht.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct tagINITCOMMONCONTROLSEX {
#ifndef _WIN32_IE
#endif
/* common control shared messages */
/* common notification codes (WM_NOTIFY)*/
#define NM_FIRST (0U- 0U)
/* callback constants */
/* owner drawn types */
/* common notification structures */
typedef struct tagNMTOOLTIPSCREATED
{
typedef struct tagNMMOUSE
{
typedef struct tagNMOBJECTNOTIFY
{
int iItem;
#ifdef __IID_DEFINED__
#else
const void *piid;
#endif
void *pObject;
typedef struct tagNMKEY
{
typedef struct tagNMCHAR
{
#ifndef CCSIZEOF_STRUCT
#endif
#ifndef SNDMSG
#ifdef __cplusplus
#else /* __cplusplus */
#endif /* __cplusplus */
#endif /* SNDMSG */
#ifdef __cplusplus
#else
#endif
/* Custom Draw messages */
/* drawstage flags */
/* itemState flags */
typedef struct tagNMCUSTOMDRAWINFO
{
typedef struct tagNMTTCUSTOMDRAW
{
/* StatusWindow */
#if defined(__GNUC__)
's','t','a','t','u','s','b','a','r','3','2',0 }
#else
's','t','a','t','u','s','b','a','r','3','2',0 };
#endif
typedef struct tagCOLORSCHEME
{
/**************************************************************************
* Drag List control
*/
typedef struct tagDRAGLISTINFO
{
#define DL_CURSORSET 0
#if defined(__GNUC__)
'_','D','r','a','g','L','i','s','t','M','s','g',0 }
#else
'_','D','r','a','g','L','i','s','t','M','s','g',0 };
#endif
/* UpDown */
#if defined(__GNUC__)
'u','p','d','o','w','n','3','2',0 }
#else
'u','p','d','o','w','n','3','2',0 };
#endif
typedef struct _UDACCEL
{
typedef struct tagNM_UPDOWN
{
int iPos;
int iDelta;
/* Progress Bar */
#if defined(__GNUC__)
'p','r','o','g','r','e','s','s','3','2',0 }
#else
'p','r','o','g','r','e','s','s','3','2',0 };
#endif
typedef struct
{
/* ImageList */
struct _IMAGELIST;
typedef struct _IMAGEINFO
{
typedef struct _IMAGELISTDRAWPARAMS
{
INT i;
INT x;
INT y;
#endif
#ifndef WM_MOUSEHOVER
#endif
#ifndef TME_HOVER
typedef struct tagTRACKMOUSEEVENT {
#endif
/* Flat Scrollbar control */
#if defined(__GNUC__)
'c','l','a','s','s','3','2',0 }
#else
'c','l','a','s','s','3','2',0 };
#endif
#define FSB_REGULAR_MODE 0
/* Subclassing stuff */
/* Header control */
#if defined(__GNUC__)
#else
#endif
typedef struct _HD_LAYOUT
{
typedef struct _HD_ITEMA
{
/* (_WIN32_IE >= 0x0300) */
/* (_WIN32_IE >= 0x0500) */
/* (_WIN32_WINNT >= 0x0600) */
typedef struct _HD_ITEMW
{
/* (_WIN32_IE >= 0x0300) */
/* (_WIN32_IE >= 0x0500) */
/* (_WIN32_WINNT >= 0x0600) */
typedef struct _HD_TEXTFILTERA
{
typedef struct _HD_TEXTFILTERW
{
typedef struct _HD_HITTESTINFO
{
typedef struct tagNMHEADERA
{
typedef struct tagNMHEADERW
{
typedef struct tagNMHDDISPINFOA
{
typedef struct tagNMHDDISPINFOW
{
typedef struct tagNMHDFILTERBTNCLICK
{
/* Win32 5.1 Button Theme */
#if defined(__GNUC__)
#else
#endif
typedef struct tagNMBCHOTITEM
{
/* Button control styles for _WIN32_WINNT >= 0x600 */
/* Toolbar */
#if defined(__GNUC__)
'W','i','n','d','o','w','3','2',0 }
#else
'W','i','n','d','o','w','3','2',0 };
#endif
/* as of _WIN32_IE >= 0x0500 the following symbols are obsolete,
* "everyone" should use the BTNS_... stuff below
*/
/* undocumented messages in Toolbar */
#ifdef __WINESRC__
#endif
/* Return values from TBN_DROPDOWN */
#define TBDDRET_DEFAULT 0
typedef struct _NMTBCUSTOMDRAW
{
int nStringBkMode;
int nHLStringBkMode;
int iListGap;
/* return flags for Toolbar NM_CUSTOMDRAW notifications */
/* when hottracked */
/* for TBSTATE_MARKED */
/* disabled items */
/* This is just for old CreateToolbar. */
/* Don't use it in new programs. */
typedef struct _OLDTBBUTTON {
typedef struct _TBBUTTON {
#ifdef _WIN64
#else
#endif
typedef struct _COLORMAP {
typedef struct tagTBADDBITMAP {
#define IDB_STD_SMALL_COLOR 0
#define STD_CUT 0
#define VIEW_LARGEICONS 0
#define HIST_BACK 0
typedef struct tagTBSAVEPARAMSA {
typedef struct tagTBSAVEPARAMSW {
typedef struct
{
typedef struct
{
typedef struct tagNMTBHOTITEM
{
int idOld;
int idNew;
typedef struct tagNMTBGETINFOTIPA
{
typedef struct tagNMTBGETINFOTIPW
{
typedef struct
{
int idCommand;
int iImage;
int cchText;
typedef struct
{
int idCommand;
int iImage;
int cchText;
/* contents of dwMask in the NMTBDISPINFO structure */
typedef struct tagNMTOOLBARA
{
typedef struct tagNMTOOLBARW
{
typedef struct
{
typedef struct
{
int iButton;
typedef struct tagNMTBSAVE
{
int iItem;
int cButtons;
typedef struct tagNMTBRESTORE
{
int iItem;
int cButtons;
int cbBytesPerRecord;
typedef struct
{
/* these are undocumented and the names are guesses */
typedef struct
{
typedef struct
{
/* Tool tips */
#if defined(__GNUC__)
'c','l','a','s','s','3','2',0 }
#else
'c','l','a','s','s','3','2',0 };
#endif
#define TTDT_AUTOMATIC 0
#define TTI_NONE 0
typedef struct tagTOOLINFOA {
void *lpReserved;
typedef struct tagTOOLINFOW {
void *lpReserved;
typedef struct _TT_HITTESTINFOA
{
typedef struct _TT_HITTESTINFOW
{
typedef struct tagNMTTDISPINFOA
{
typedef struct tagNMTTDISPINFOW
{
typedef struct _TTGETTITLE
{
/* Rebar control */
#if defined(__GNUC__)
'W','i','n','d','o','w','3','2',0 }
#else
'W','i','n','d','o','w','3','2',0 };
#endif
typedef struct tagREBARINFO
{
typedef struct tagREBARBANDINFOA
{
/* _WIN32_WINNT >= 0x0600 */
typedef struct tagREBARBANDINFOW
{
/* _WIN32_WINNT >= 0x0600 */
typedef struct tagNMREBARCHILDSIZE
{
typedef struct tagNMREBAR
{
typedef struct tagNMRBAUTOSIZE
{
typedef struct tagNMREBARCHEVRON
{
typedef struct _RB_HITTESTINFO
{
typedef struct tagNMREBARAUTOBREAK
{
/* Trackbar control */
#if defined(__GNUC__)
't','r','a','c','k','b','a','r','3','2',0 }
#else
't','r','a','c','k','b','a','r','3','2',0 };
#endif
#define TBTS_TOP 0
#define TB_LINEUP 0
/* Pager control */
#if defined(__GNUC__)
#else
#endif
#define PGF_INVISIBLE 0
#define PGB_TOPORLEFT 0
/* only used with PGN_SCROLL */
/* only used with PGN_CALCSIZE */
#include <pshpack1.h>
typedef struct
{
#include <poppack.h>
typedef struct
{
/* Treeview control */
#if defined(__GNUC__)
'T','r','e','e','V','i','e','w','3','2',0 }
#else
'T','r','e','e','V','i','e','w','3','2',0 };
#endif
#define TVSIL_NORMAL 0
/* TVIS_EX_HWND is listed on MSDN but apparently not in any header. */
#define TVGN_ROOT 0
typedef struct {
typedef struct {
typedef struct {
typedef struct {
typedef struct tagTVINSERTSTRUCTA {
union {
typedef struct tagTVINSERTSTRUCTW {
union {
typedef struct tagNMTREEVIEWA {
typedef struct tagNMTREEVIEWW {
typedef struct tagTVDISPINFOA {
typedef struct tagTVDISPINFOW {
typedef struct tagTVDISPINFOEXA {
typedef struct tagTVDISPINFOEXW {
typedef struct tagTVSORTCB
{
typedef struct tagTVHITTESTINFO {
/* Custom Draw Treeview */
typedef struct tagNMTVCUSTOMDRAW
{
/* Treeview tooltips */
typedef struct tagNMTVGETINFOTIPA
{
typedef struct tagNMTVGETINFOTIPW
{
#include <pshpack1.h>
typedef struct tagTVKEYDOWN
{
#include <poppack.h>
}
/* Listview control */
#if defined(__GNUC__)
'L','i','s','t','V','i','e','w','3','2',0 }
#else
'L','i','s','t','V','i','e','w','3','2',0 };
#endif
#define LVSIL_NORMAL 0
/* following 2 flags only for LVS_OWNERDATA listviews */
/* and only in report or list mode */
/* LVN_INCREMENTALSEARCH return codes */
typedef struct tagLVITEMA
{
/* (_WIN32_IE >= 0x0300) */
/* (_WIN32_IE >= 0x0560) */
/* (_WIN32_WINNT >= 0x0600) */
typedef struct tagLVITEMW
{
/* (_WIN32_IE >= 0x0300) */
/* (_WIN32_IE >= 0x0560) */
/* (_WIN32_WINNT >= 0x0600) */
typedef struct LVSETINFOTIP
{
int iItem;
int iSubItem;
/* ListView background image structs and constants
For _WIN32_IE version 0x400 and later. */
typedef struct tagLVBKIMAGEA
{
int xOffsetPercent;
int yOffsetPercent;
typedef struct tagLVBKIMAGEW
{
int xOffsetPercent;
int yOffsetPercent;
typedef struct tagLVCOLUMNA
{
/* (_WIN32_IE >= 0x0300) */
/* (_WIN32_WINNT >= 0x0600) */
typedef struct tagLVCOLUMNW
{
/* (_WIN32_IE >= 0x0300) */
/* (_WIN32_WINNT >= 0x0600) */
typedef struct tagNMLISTVIEW
{
typedef struct tagNMITEMACTIVATE
{
int iItem;
int iSubItem;
typedef struct tagLVDISPINFO
{
typedef struct tagLVDISPINFOW
{
#include <pshpack1.h>
typedef struct tagLVKEYDOWN
{
#include <poppack.h>
typedef struct tagNMLVGETINFOTIPA
{
int cchTextMax;
int iItem;
int iSubItem;
typedef struct tagNMLVGETINFOTIPW
{
int cchTextMax;
int iItem;
int iSubItem;
typedef struct tagLVHITTESTINFO
{
/* (_WIN32_WINNT >= 0x0600) */
typedef struct tagLVFINDINFOA
{
typedef struct tagLVFINDINFOW
{
/* Groups relates structures */
typedef struct LVGROUP
{
/* (_WIN32_WINNT >= 0x0600) */
typedef struct LVGROUPMETRICS
{
typedef struct LVINSERTGROUPSORTED
{
/* Tile related structures */
typedef struct LVTILEINFO
{
int iItem;
/* (_WIN32_WINNT >= 0x0600) */
int* piColFmt;
typedef struct LVTILEVIEWINFO
{
int cLines;
typedef struct LVINSERTMARK
{
int iItem;
typedef struct tagTCHITTESTINFO
{
typedef struct tagNMLVCUSTOMDRAW
{
typedef struct tagNMLVCACHEHINT
{
typedef struct tagNMLVFINDITEMA
{
int iStart;
typedef struct tagNMLVFINDITEMW
{
int iStart;
typedef struct tagNMLVODSTATECHANGE
{
int iFrom;
int iTo;
typedef struct NMLVSCROLL
{
int dx;
int dy;
{ LVITEM _LVi; _LVi.state = INDEXTOSTATEIMAGEMASK((bCheck)?2:1); _LVi.stateMask = LVIS_STATEIMAGEMASK; \
(BOOL)SNDMSG((hwndLV), LVM_SORTITEMSEX, (WPARAM)(LPARAM)(_lPrm), (LPARAM)(PFNLVCOMPARE)(_pfnCompare))
{ \
}
{ \
}
{ POINT ptNewPos; ptNewPos.x = (x1); ptNewPos.y = (y1); SNDMSG((hwnd), LVM_SETITEMPOSITION32, (WPARAM)(int)(n), (LPARAM)&ptNewPos); }
(int)SNDMSG((hwnd), LVM_INSERTMARKHITTEST, (WPARAM)(LPPOINT)(point), (LPARAM)(LPLVINSERTMARK)(lvim))
/* Tab Control */
#if defined(__GNUC__)
'T','a','b','C','o','n','t','r','o','l','3','2',0 }
#else
'T','a','b','C','o','n','t','r','o','l','3','2',0 };
#endif
/* tab control styles */
/* TabCtrl Macros */
/* constants for TCHITTESTINFO */
typedef struct tagTCITEMHEADERA
{
int cchTextMax;
int iImage;
typedef struct tagTCITEMHEADERW
{
int cchTextMax;
int iImage;
typedef struct tagTCITEMA
{
typedef struct tagTCITEMW
{
#include <pshpack1.h>
typedef struct tagTCKEYDOWN
{
} NMTCKEYDOWN;
#include <poppack.h>
/* ComboBoxEx control */
#if defined(__GNUC__)
'B','o','x','E','x','3','2',0 }
#else
'B','o','x','E','x','3','2',0 };
#endif
typedef struct tagCOMBOBOXEXITEMA
{
int cchTextMax;
int iImage;
int iSelectedImage;
int iOverlay;
int iIndent;
typedef struct tagCOMBOBOXEXITEMW
{
int cchTextMax;
int iImage;
int iSelectedImage;
int iOverlay;
int iIndent;
typedef struct tagNMCBEENDEDITW
{
int iNewSelection;
int iWhy;
typedef struct tagNMCBEENDEDITA
{
int iNewSelection;
int iWhy;
typedef struct
{
typedef struct
{
typedef struct
{
int iItemid;
typedef struct
{
int iItemid;
/* Hotkey control */
#if defined(__GNUC__)
'h','o','t','k','e','y','3','2',0 }
#else
'h','o','t','k','e','y','3','2',0 };
#endif
/* animate control */
#if defined(__GNUC__)
'A','n','i','m','a','t','e','3','2',0 }
#else
'A','n','i','m','a','t','e','3','2',0 };
#endif
/**************************************************************************
* IP Address control
*/
#if defined(__GNUC__)
'I','P','A','d','d','r','e','s','s','3','2',0 }
#else
'I','P','A','d','d','r','e','s','s','3','2',0 };
#endif
typedef struct tagNMIPADDRESS
{
/**************************************************************************
* Native Font control
*/
#if defined(__GNUC__)
'F','o','n','t','C','t','l',0 }
#else
'F','o','n','t','C','t','l',0 };
#endif
/**************************************************************************
* Month calendar control
*
*/
#if defined(__GNUC__)
'M','o','n','t','h','C','a','l','3','2',0 }
#else
'M','o','n','t','h','C','a','l','3','2',0 };
#endif
/* Notifications */
#define MCSC_BACKGROUND 0
#define GMR_VISIBLE 0
/* Month calendar's structures */
typedef struct {
/* Vista */
typedef struct tagNMSELCHANGE
{
typedef struct tagNMDAYSTATE
{
int cDayState;
/* macros */
/**************************************************************************
* Date and time picker control
*/
#if defined(__GNUC__)
'D','a','t','e','T','i','m','e','P','i','c','k','3','2',0 }
#else
'D','a','t','e','T','i','m','e','P','i','c','k','3','2',0 };
#endif
/* Datetime Notifications */
typedef struct tagNMDATETIMECHANGE
{
typedef struct tagNMDATETIMESTRINGA
{
typedef struct tagNMDATETIMESTRINGW
{
typedef struct tagNMDATETIMEWMKEYDOWNA
{
int nVirtKey;
typedef struct tagNMDATETIMEWMKEYDOWNW
{
int nVirtKey;
typedef struct tagNMDATETIMEFORMATA
{
typedef struct tagNMDATETIMEFORMATW
{
typedef struct tagNMDATETIMEFORMATQUERYA
{
typedef struct tagNMDATETIMEFORMATQUERYW
{
#define GDT_VALID 0
struct _DSA;
struct _DPA;
/* merge callback codes */
/* merge options */
typedef struct _DPASTREAMINFO
{
struct IStream;
/**************************************************************************
* SysLink control
*/
#if defined(__GNUC__)
#else
#endif
/* SysLink styles */
/* SysLink messages */
/* SysLink links flags */
/* SysLink links states */
/* SysLink misc. */
/* SysLink structures */
typedef struct tagLITEM
{
int iLink;
typedef struct tagLHITTESTINFO
{
typedef struct tagNMLINK
{
typedef struct tagNMLVLINK
{
int iItem;
int iSubItem;
/**************************************************************************
* Static control
*/
#if defined(__GNUC__)
#else
#endif
/**************************************************************************
* Combobox control
*/
#if defined(__GNUC__)
#else
#endif
/**************************************************************************
* Edit control
*/
#if defined(__GNUC__)
#else
#endif
/**************************************************************************
* Listbox control
*/
#if defined(__GNUC__)
#else
#endif
/**************************************************************************
* Scrollbar control
*/
#if defined(__GNUC__)
#else
#endif
/**************************************************************************
* Task dialog
*/
#ifndef NOTASKDIALOG
#include <pshpack1.h>
enum _TASKDIALOG_FLAGS
{
};
typedef int TASKDIALOG_FLAGS;
{
};
typedef int TASKDIALOG_COMMON_BUTTON_FLAGS;
typedef struct _TASKDIALOG_BUTTON
{
int nButtonID;
typedef struct _TASKDIALOGCONFIG
{
union
{
int nDefaultButton;
int nDefaultRadioButton;
union
{
#include <poppack.h>
#endif /* NOTASKDIALOG */
#ifdef __cplusplus
}
#endif
#endif /* __WINE_COMMCTRL_H */