Requested API Structure and constants

Got an idea for enhancing PureBasic? New command(s) you'd like to see?
Mistrel
Addict
Addict
Posts: 3415
Joined: Sat Jun 30, 2007 8:04 pm

Re: Requested API Structure and constants

Post by Mistrel »

Code: Select all

WM_CLIPBOARDUPDATE 0x031D
WM_DWMCOLORIZATIONCOLORCHANGED 0x0320
WM_DWMCOMPOSITIONCHANGED 0x031e
WM_DWMNCRENDERINGCHANGED 0x031f
WM_DWMSENDICONICLIVEPREVIEWBITMAP 0x0326
WM_DWMSENDICONICTHUMBNAIL 0x0323
WM_DWMWINDOWMAXIMIZEDCHANGE 0x0321
WM_GETTITLEBARINFOEX 0x033F
WM_INPUT_DEVICE_CHANGE 0x00FE
WM_DPICHANGED 0x02e0
// Moved from "Bugs - Windows" to "Feature Requests and Wishlists" (Kiffi)
User avatar
jacdelad
Addict
Addict
Posts: 1432
Joined: Wed Feb 03, 2021 12:46 pm
Location: Planet Riesa
Contact:

Re: Requested API Structure and constants

Post by jacdelad »

Code: Select all

#LVBKIF_FLAG_ALPHABLEND $20000000
#LVBKIF_FLAG_TILEOFFSET $100
#LVBKIF_SOURCE_HBITMAP $1
#LVBKIF_SOURCE_MASK $3
#LVBKIF_SOURCE_NONE $0
#LVBKIF_SOURCE_URL $2
#LVBKIF_STYLE_NORMAL $0
#LVBKIF_STYLE_TILE $10
#LVBKIF_TYPE_WATERMARK $10000000

#LVCF_DEFAULTWIDTH $80
#LVCF_IDEALWIDTH $100
#LVCF_MINWIDTH $40

#LVCFMT_FILL $200000
#LVCFMT_FIXED_WIDTH $100
#LVCFMT_FIXED_RATIO $80000
#LVCFMT_LINE_BREAK $100000
#LVCFMT_NO_DPI_SCALE $40000
#LVCFMT_NO_TITLE $800000
#LVCFMT_SPLITBUTTON $1000000
#LVCFMT_TILE_PLACEMENTMASK $300000
#LVCFMT_WRAP $400000

#LVFI_SUBSTRING $4

#LVFIF_STATE $2
#LVFIF_TEXT $1

#LVFIS_FOCUSED $1

#LVGF_DESCRIPTIONBOTTOM $800
#LVGF_DESCRIPTIONTOP $400
#LVGF_EXTENDEDIMAGE $2000
#LVGF_ITEMS $4000
#LVGF_SUBSET $8000
#LVGF_SUBSETITEMS $10000
#LVGF_SUBTITLE $100
#LVGF_TASK $200
#LVGF_TITLEIMAGE $1000

#LVGS_FOCUSED $10
#LVGS_NOHEADER $4
#LVGS_NORMAL $0
#LVGS_SELECTED $20
#LVGS_SUBSETED $40
#LVGS_SUBSETLINKFOCUSED $80

#LVHT_EX_FOOTER $0
#LVHT_EX_GROUP $FF000000
#LVHT_EX_GROUP_BACKGROUND $80000000
#LVHT_EX_GROUP_COLLAPSE $40000000
#LVHT_EX_GROUP_FOOTER $20000000
#LVHT_EX_GROUP_HEADER $10000000
#LVHT_EX_GROUP_STATEICON $1000000
#LVHT_EX_GROUP_SUBSETLINK $2000000
#LVHT_EX_ONCONTENTS $4000000

#LVIF_COLFMT $10000

#LVIS_ACTIVATING $20

#LVS_EX_COLUMNOVERFLOW $80000000

#LVTVIF_AUTOSIZE $0
#LVTVIF_EXTENDED $4
#LVTVIF_FIXEDHEIGHT $2
#LVTVIF_FIXEDSIZE $3
#LVTVIF_FIXEDWIDTH $1

#LVTVIM_COLUMNS $2
#LVTVIM_LABELMARGIN $4
#LVTVIM_TILESIZE $1
I will also try to add the missing listview structures (=listicon for PureBasic).
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Mistrel
Addict
Addict
Posts: 3415
Joined: Sat Jun 30, 2007 8:04 pm

Re: Requested API Structure and constants

Post by Mistrel »

WM_MOUSELAST is defined as 0x0209 but has been at least 0x020a since Windows 98. Its current value is 0x020e.

Code: Select all

#if _WIN32_WINNT >= 0x0600
#define WM_MOUSELAST 0x020e
#elif _WIN32_WINNT >= 0x0500
#define WM_MOUSELAST 0x020d
#elif (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
#define WM_MOUSELAST 0x020a
#else
#define WM_MOUSELAST 0x0209
#endif
User avatar
jacdelad
Addict
Addict
Posts: 1432
Joined: Wed Feb 03, 2021 12:46 pm
Location: Planet Riesa
Contact:

Re: Requested API Structure and constants

Post by jacdelad »

That's crazy, I thought these constants are...constant?
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Mistrel
Addict
Addict
Posts: 3415
Joined: Sat Jun 30, 2007 8:04 pm

Re: Requested API Structure and constants

Post by Mistrel »

WM_MOUSELAST identifies the last mouse-related constant between it and WM_MOUSEFIRST. As new constants were added this number was expanded. It corresponds with the features configured by the Win32 SDK. So it will always return the correct constant for what is defined but in the case of PureBasic you have to match them up since it doesn't use the #ifdef rules of the SDK but instead defines everything explicitly.

This is a compile-time constant. Not a forever-constant. :)
User avatar
Caronte3D
Addict
Addict
Posts: 1027
Joined: Fri Jan 22, 2016 5:33 pm
Location: Some Universe

Re: Requested API Structure and constants

Post by Caronte3D »

I don't know if thi's windows related, but...

Now we have:
#PB_ListIcon_Checked
#PB_ListIcon_Inbetween

But no #PB_ListIcon_Unchecked so we must use 0 to uncheck
Mistrel
Addict
Addict
Posts: 3415
Joined: Sat Jun 30, 2007 8:04 pm

Re: Requested API Structure and constants

Post by Mistrel »

Alternatively, you can define #PB_ListIcon_Unchecked yourself in the meantime instead of comparing with 0.
User avatar
Caronte3D
Addict
Addict
Posts: 1027
Joined: Fri Jan 22, 2016 5:33 pm
Location: Some Universe

Re: Requested API Structure and constants

Post by Caronte3D »

Thanks Mistrel, I know, but I always use autocomplete and I think it should be assigned by default in PB
mpz
Enthusiast
Enthusiast
Posts: 494
Joined: Sat Oct 11, 2008 9:07 pm
Location: Germany, Berlin > member German forum

Re: Requested API Structure and constants

Post by mpz »

Hi,

here comes some constants to read disk informations

greetings
Michael

Code: Select all

;winioctl.h              
;ntddcdrm.h              
              
#IOCTL_DISK_GET_DRIVE_GEOMETRY = $00070000            
#IOCTL_DISK_GET_PARTITION_INFO = $00074004            
#IOCTL_DISK_SET_PARTITION_INFO = $0007C008            
              
#IOCTL_DISK_GET_DRIVE_LAYOUT = $0007400C          
#IOCTL_DISK_SET_DRIVE_LAYOUT = $0007C010          
#IOCTL_DISK_VERIFY = $00070014
#IOCTL_DISK_FORMAT_TRACKS = $0007C018       
#IOCTL_DISK_REASSIGN_BLOCKS = $0007C01C         
#IOCTL_DISK_PERFORMANCE = $00070020     
#IOCTL_DISK_IS_WRITABLE = $00070024     
#IOCTL_DISK_LOGGING = $00070028 
#IOCTL_DISK_FORMAT_TRACKS_EX = $0007C02C          
#IOCTL_DISK_HISTOGRAM_STRUCTURE = $00070030           
#IOCTL_DISK_HISTOGRAM_DATA = $00070034        
#IOCTL_DISK_HISTOGRAM_RESET = $00070038         
#IOCTL_DISK_REQUEST_STRUCTURE = $0007003C           
#IOCTL_DISK_REQUEST_DATA = $00070040      
#IOCTL_DISK_PERFORMANCE_OFF = $00070060         
#IOCTL_DISK_CONTROLLER_NUMBER = $00070044           
#SMART_GET_VERSION = $00074080
#SMART_SEND_DRIVE_COMMAND = $0007C084       
#SMART_RCV_DRIVE_DATA = $0007C088   
#IOCTL_DISK_GET_PARTITION_INFO_EX = $00070048            
#IOCTL_DISK_SET_PARTITION_INFO_EX = $0007C04C            
#IOCTL_DISK_GET_DRIVE_LAYOUT_EX = $00070050            
#IOCTL_DISK_SET_DRIVE_LAYOUT_EX = $0007C054            
#IOCTL_DISK_CREATE_DISK = $0007C058    
#IOCTL_DISK_GET_LENGTH_INFO = $0007405C        
#IOCTL_DISK_GET_DRIVE_GEOMETRY_EX = $000700A0            
#IOCTL_DISK_UPDATE_DRIVE_SIZE = $0007C0C8          
#IOCTL_DISK_GROW_PARTITION = $0007C0D0       
#IOCTL_DISK_GET_CACHE_INFORMATION = $000740D4            
#IOCTL_DISK_SET_CACHE_INFORMATION = $0007C0D8            
#IOCTL_DISK_GET_WRITE_CACHE_STATE = $000740DC            
#IOCTL_DISK_DELETE_DRIVE_LAYOUT = $0007C100            
#IOCTL_DISK_UPDATE_PROPERTIES = $00070140          
#IOCTL_DISK_INTERNAL_SET_VERIFY = $00070403            
#IOCTL_DISK_INTERNAL_CLEAR_VERIFY = $00070407            
#IOCTL_DISK_INTERNAL_SET_NOTIFY= $00070408            
#IOCTL_DISK_CHECK_VERIFY = $00074800     
#IOCTL_DISK_MEDIA_REMOVAL = $00074804      
#IOCTL_DISK_EJECT_MEDIA = $00074808    
#IOCTL_DISK_LOAD_MEDIA = $0007480C   
#IOCTL_DISK_RESERVE = $00074810
#IOCTL_DISK_RELEASE = $00074814
#IOCTL_DISK_FIND_NEW_DEVICES = $00074818         
#IOCTL_DISK_GET_MEDIA_TYPES = $00070C00        
              
#FSCTL_REQUEST_OPLOCK_LEVEL_1 = $00090000            
#FSCTL_REQUEST_OPLOCK_LEVEL_2 = $00090004            
#FSCTL_REQUEST_BATCH_OPLOCK = $00090008            
#FSCTL_OPLOCK_BREAK_ACKNOWLEDGE = $0009000C            
#FSCTL_OPBATCH_ACK_CLOSE_PENDING = $00090010            
#FSCTL_OPLOCK_BREAK_NOTIFY = $00090014            
#FSCTL_LOCK_VOLUME = $00090018            
#FSCTL_UNLOCK_VOLUME = $0009001C            
#FSCTL_DISMOUNT_VOLUME = $00090020            
#FSCTL_IS_VOLUME_MOUNTED = $00090028            
#FSCTL_IS_PATHNAME_VALID = $0009002C            
#FSCTL_MARK_VOLUME_DIRTY = $00090030            
#FSCTL_QUERY_RETRIEVAL_POINTERS = $0009003B            
#FSCTL_GET_COMPRESSION = $0009003C            
#FSCTL_SET_COMPRESSION = $0009C040            
#FSCTL_MARK_AS_SYSTEM_HIVE = $0009004F            
#FSCTL_OPLOCK_BREAK_ACK_NO_2 = $00090050            
#FSCTL_INVALIDATE_VOLUMES = $00090054            
#FSCTL_QUERY_FAT_BPB = $00090058            
#FSCTL_REQUEST_FILTER_OPLOCK = $0009005C            
#FSCTL_FILESYSTEM_GET_STATISTICS = $00090060            
#FSCTL_GET_NTFS_VOLUME_DATA = $00090064            
#FSCTL_GET_NTFS_FILE_RECORD = $00090068            
#FSCTL_GET_VOLUME_BITMAP = $0009006F            
#FSCTL_GET_RETRIEVAL_POINTERS = $00090073            
#FSCTL_MOVE_FILE = $00090074            
#FSCTL_IS_VOLUME_DIRTY = $00090078            
#FSCTL_ALLOW_EXTENDED_DASD_IO = $00090083            
#FSCTL_READ_PROPERTY_DATA = $00090087            
#FSCTL_WRITE_PROPERTY_DATA = $0009008B            
#FSCTL_FIND_FILES_BY_SID = $0009008F            
#FSCTL_DUMP_PROPERTY_DATA = $00090097            
#FSCTL_SET_OBJECT_ID = $00090098            
#FSCTL_GET_OBJECT_ID = $0009009C            
#FSCTL_DELETE_OBJECT_ID = $000900A0            
#FSCTL_SET_REPARSE_POINT = $000900A4            
#FSCTL_GET_REPARSE_POINT = $000900A8            
#FSCTL_DELETE_REPARSE_POINT = $000900AC            
#FSCTL_ENUM_USN_DATA = $000900B3            
#FSCTL_SECURITY_ID_CHECK = $000940B7            
#FSCTL_READ_USN_JOURNAL = $000900BB            
#FSCTL_SET_OBJECT_ID_EXTENDED = $000900BC            
#FSCTL_CREATE_OR_GET_OBJECT_ID = $000900C0            
#FSCTL_SET_SPARSE = $000900C4            
#FSCTL_SET_ZERO_DATA = $000980C8            
#FSCTL_QUERY_ALLOCATED_RANGES = $000940CF            
#FSCTL_ENABLE_UPGRADE = $000980D0            
#FSCTL_SET_ENCRYPTION = $000900D7            
#FSCTL_ENCRYPTION_FSCTL_IO = $000900DB            
#FSCTL_WRITE_RAW_ENCRYPTED = $000900DF            
#FSCTL_READ_RAW_ENCRYPTED = $000900E3            
#FSCTL_CREATE_USN_JOURNAL = $000900E7            
#FSCTL_READ_FILE_USN_DATA = $000900EB            
#FSCTL_WRITE_USN_CLOSE_RECORD = $000900EF            
#FSCTL_EXTEND_VOLUME = $000900F0            
#FSCTL_QUERY_USN_JOURNAL = $000900F4            
#FSCTL_DELETE_USN_JOURNAL = $000900F8            
#FSCTL_MARK_HANDLE = $000900FC            
#FSCTL_SIS_COPYFILE = $00090100            
#FSCTL_SIS_LINK_FILES = $0009C104            
#FSCTL_HSM_MSG = $0009C108            
#FSCTL_HSM_DATA = $0009C113            
#FSCTL_RECALL_FILE = $00090117            
              
#IOCTL_STORAGE_CHECK_VERIFY = $002D4800            
#IOCTL_STORAGE_CHECK_VERIFY2 = $002D0800            
#IOCTL_STORAGE_MEDIA_REMOVAL = $002D4804            
#IOCTL_STORAGE_EJECT_MEDIA = $002D4808            
#IOCTL_STORAGE_LOAD_MEDIA = $002D480C            
#IOCTL_STORAGE_LOAD_MEDIA2 = $002D080C            
#IOCTL_STORAGE_RESERVE = $002D4810            
#IOCTL_STORAGE_RELEASE = $002D4814            
#IOCTL_STORAGE_FIND_NEW_DEVICES = $002D4818            
#IOCTL_STORAGE_EJECTION_CONTROL = $002D0940            
#IOCTL_STORAGE_MCN_CONTROL = $002D0944            
#IOCTL_STORAGE_GET_MEDIA_TYPES = $002D0C00            
#IOCTL_STORAGE_GET_MEDIA_TYPES_EX = $002D0C04            
#IOCTL_STORAGE_RESET_BUS = $002D5000            
#IOCTL_STORAGE_RESET_DEVICE = $002D5004            
#IOCTL_STORAGE_GET_DEVICE_NUMBER = $002D1080            
#IOCTL_STORAGE_PREDICT_FAILURE = $002D1100            
#IOCTL_STORAGE_QUERY_PROPERTY = $002D1400            
#OBSOLETE_IOCTL_STORAGE_RESET_BUS = $002DD000            
#OBSOLETE_IOCTL_STORAGE_RESET_DEVICE = $002DD004            
              
#FT_INITIALIZE_SET = $00660000            
#FT_REGENERATE = $00660004            
#FT_CONFIGURE = $0066000B            
#FT_VERIFY = $0066000C            
#FT_SECONDARY_READ = $00664012            
#FT_PRIMARY_READ = $00664016            
#FT_BALANCED_READ_MODE = $0066001B            
#FT_SYNC_REDUNDANT_COPY = $0066001C            
#FT_SEQUENTIAL_WRITE_MODE = $00660023            
#FT_PARALLEL_WRITE_MODE = $00660027            
#FT_QUERY_SET_STATE = $00660028            
#FT_CLUSTER_SET_MEMBER_STATE = $0066002C            
#FT_CLUSTER_GET_MEMBER_STATE = $00660030            
              
#FT_CREATE_LOGICAL_DISK = $0067C000            
#FT_BREAK_LOGICAL_DISK = $0067C004            
#FT_ENUMERATE_LOGICAL_DISKS = $00674008            
#FT_QUERY_LOGICAL_DISK_INFORMATION = $0067400C            
#FT_ORPHAN_LOGICAL_DISK_MEMBER = $0067C010            
#FT_REPLACE_LOGICAL_DISK_MEMBER = $0067C014            
#FT_QUERY_NT_DEVICE_NAME_FOR_LOGICAL_DISK = $00674018            
#FT_INITIALIZE_LOGICAL_DISK = $0067C01C            
#FT_QUERY_DRIVE_LETTER_FOR_LOGICAL_DISK = $00674020            
#FT_CHECK_IO = $00674024            
#FT_SET_DRIVE_LETTER_FOR_LOGICAL_DISK = $0067C028            
#FT_QUERY_NT_DEVICE_NAME_FOR_PARTITION = $00674030            
#FT_CHANGE_NOTIFY = $00674034            
#FT_STOP_SYNC_OPERATIONS = $0067C038            
#FT_QUERY_LOGICAL_DISK_ID = $00674190            
#FT_CREATE_PARTITION_LOGICAL_DISK = $0067C194            
              
#IOCTL_MOUNTMGR_CREATE_POINT = $006DC000            
#IOCTL_MOUNTMGR_DELETE_POINTS = $006DC004            
#IOCTL_MOUNTMGR_QUERY_POINTS = $006D0008            
#IOCTL_MOUNTMGR_DELETE_POINTS_DBONLY = $006DC00C            
#IOCTL_MOUNTMGR_NEXT_DRIVE_LETTER = $006DC010            
#IOCTL_MOUNTMGR_AUTO_DL_ASSIGNMENTS = $006DC014            
#IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_CREATED = $006DC018            
#IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_DELETED = $006DC01C            
#IOCTL_MOUNTMGR_CHANGE_NOTIFY = $006D4020            
#IOCTL_MOUNTMGR_KEEP_LINKS_WHEN_OFFLINE = $006DC024            
#IOCTL_MOUNTMGR_CHECK_UNPROCESSED_VOLUMES = $006D4028            
#IOCTL_MOUNTMGR_VOLUME_ARRIVAL_NOTIFICATION = $006D402C            
#IOCTL_MOUNTMGR_VOLUME_ARRIVAL_NOTIFICATION = $006D402C            
#IOCTL_MOUNTMGR_QUERY_DOS_VOLUME_PATH = $006D0030            
#IOCTL_MOUNTMGR_QUERY_DOS_VOLUME_PATHS = $006D0034            
              
#IOCTL_MOUNTDEV_QUERY_UNIQUE_ID = $004D0000            
#IOCTL_MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY = $004D0004            
#IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME = $004D000C            
#IOCTL_MOUNTDEV_LINK_CREATED = $004D0010            
#IOCTL_MOUNTDEV_LINK_DELETED = $004D0014            
#IOCTL_MOUNTDEV_QUERY_STABLE_GUID = $004D0018            
              
#IOCTL_CDROM_READ_TOC = $00024000            
#IOCTL_CDROM_SEEK_AUDIO_MSF = $00024004            
#IOCTL_CDROM_STOP_AUDIO = $00024008            
#IOCTL_CDROM_PAUSE_AUDIO = $0002400C            
#IOCTL_CDROM_RESUME_AUDIO = $00024010            
#IOCTL_CDROM_GET_VOLUME = $00024014            
#IOCTL_CDROM_PLAY_AUDIO_MSF = $00024018            
#IOCTL_CDROM_SET_VOLUME = $00024028            
#IOCTL_CDROM_READ_Q_CHANNEL = $0002402C            
#IOCTL_CDROM_GET_CONTROL = $00024034            
#IOCTL_CDROM_GET_LAST_SESSION = $00024038            
#IOCTL_CDROM_RAW_READ = $0002403E            
#IOCTL_CDROM_DISK_TYPE = $00020040            
#IOCTL_CDROM_GET_DRIVE_GEOMETRY = $0002404C            
#IOCTL_CDROM_GET_DRIVE_GEOMETRY_EX = $00024050            
#IOCTL_CDROM_READ_TOC_EX = $00024054            
#IOCTL_CDROM_GET_CONFIGURATION = $00024058            
#IOCTL_CDROM_CHECK_VERIFY = $00024800            
#IOCTL_CDROM_MEDIA_REMOVAL = $00024804            
#IOCTL_CDROM_EJECT_MEDIA = $00024808            
#IOCTL_CDROM_LOAD_MEDIA = $0002480C            
#IOCTL_CDROM_RESERVE = $00024810            
#IOCTL_CDROM_RELEASE = $00024814            
#IOCTL_CDROM_FIND_NEW_DEVICES = $00024818            
#IOCTL_CDROM_UNLOAD_DRIVER = $00025008            
              
              
Working on - MP3D Library - PB 5.73 version ready for download
fryquez
Enthusiast
Enthusiast
Posts: 362
Joined: Mon Dec 21, 2015 8:12 pm

Re: Requested API Structure and constants

Post by fryquez »

Not missing, but wrong ones:

\Residents\Windows\Windows.pb

Code: Select all

#SecurityAnonymous = 0
#SecurityIdentification = 1
\Documentation\Imports\Windows\shlwapi.pb

Code: Select all

AnsiWide(StrFormatByteSize, (arg1.q, arg2, arg3), 16)
Little John
Addict
Addict
Posts: 4519
Joined: Thu Jun 07, 2007 3:25 pm
Location: Berlin, Germany

Re: Requested API Structure and constants

Post by Little John »

Code: Select all

#KEYEVENTF_UNICODE = 4
#KEYEVENTF_SCANCODE = 8
https://github.com/tpn/winsdk-10/blob/m ... /WinUser.h
Denis
Enthusiast
Enthusiast
Posts: 704
Joined: Fri Apr 25, 2003 5:10 pm
Location: Doubs - France

Re: Requested API Structure and constants

Post by Denis »

PureBasic Structure ENHMETAHEADER is not Ok

Code: Select all

Structure ENHMETAHEADER
      iType.l
      nSize.l
      rclBounds.RECT
      rclFrame.RECT
      dSignature.l
      nVersion.l
      nBytes.l
      nRecords.l
      nHandles.w
      sReserved.w
      nDescription.l
      offDescription.l
      nPalEntries.l
      szlDevice.SIZE
      szlMillimeters.SIZE
      cbPixelFormat.l
      offPixelFormat.l
      bOpenGL.l
EndStructure
The same from Microsoft
(https://learn.microsoft.com/fr-fr/windo ... metaheader)

Code: Select all

typedef struct tagENHMETAHEADER {
  DWORD iType;
  DWORD nSize;
  RECTL rclBounds;
  RECTL rclFrame;
  DWORD dSignature;
  DWORD nVersion;
  DWORD nBytes;
  DWORD nRecords;
  WORD  nHandles;
  WORD  sReserved;
  DWORD nDescription;
  DWORD offDescription;
  DWORD nPalEntries;
  SIZEL szlDevice;
  SIZEL szlMillimeters;
  DWORD cbPixelFormat;
  DWORD offPixelFormat;
  DWORD bOpenGL;
  SIZEL szlMicrometers;
} ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER;
Very last Item szlMicrometers.SIZEL is lacking
A+
Denis
User avatar
jacdelad
Addict
Addict
Posts: 1432
Joined: Wed Feb 03, 2021 12:46 pm
Location: Planet Riesa
Contact:

Re: Requested API Structure and constants

Post by jacdelad »

Since I want to retrieve more information about themes in Windows Vista and above I need a lot of more constants:

Code: Select all

#TMTVS_RESERVEDLOW  = 100000
#TMTVS_RESERVEDHIGH =  19999

#AW_TITLEBAR = 1
#AW_HEADERAREA = 2
#AW_CONTENTAREA = 3
#AW_COMMANDAREA = 4
#AW_BUTTON = 5

#AW_S_TITLEBAR_ACTIVE = 1
#AW_S_TITLEBAR_INACTIVE = 2
#AW_S_HEADERAREA_NOMARGIN = 1
#AW_S_CONTENTAREA_NOMARGIN = 1

#BP_PUSHBUTTON             =  1
#BP_RADIOBUTTON            =  2
#BP_CHECKBOX               =  3
#BP_GROUPBOX               =  4
#BP_USERBUTTON             =  5
#BP_COMMANDLINK            =  6
#BP_COMMANDLINKGLYPH       =  7
#BP_RADIOBUTTON_HCDISABLED =  8
#BP_CHECKBOX_HCDISABLED    =  9
#BP_GROUPBOX_HCDISABLED    = 10
#BP_PUSHBUTTONDROPDOWN     = 11

#PBS_NORMAL              = 1
#PBS_HOT                 = 2
#PBS_PRESSED             = 3
#PBS_DISABLED            = 4
#PBS_DEFAULTED           = 5
#PBS_DEFAULTED_ANIMATING = 6

#RBS_UNCHECKEDNORMAL   = 1
#RBS_UNCHECKEDHOT      = 2
#RBS_UNCHECKEDPRESSED  = 3
#RBS_UNCHECKEDDISABLED = 4
#RBS_CHECKEDNORMAL     = 5
#RBS_CHECKEDHOT        = 6
#RBS_CHECKEDPRESSED    = 7
#RBS_CHECKEDDISABLED   = 8

#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

#GBS_NORMAL   = 1
#GBS_DISABLED = 2

#CMDLS_NORMAL              = 1
#CMDLS_HOT                 = 2
#CMDLS_PRESSED             = 3
#CMDLS_DISABLED            = 4
#CMDLS_DEFAULTED           = 5
#CMDLS_DEFAULTED_ANIMATING = 6

#CMDLGS_NORMAL    = 1
#CMDLGS_HOT       = 2
#CMDLGS_PRESSED   = 3
#CMDLGS_DISABLED  = 4
#CMDLGS_DEFAULTED = 5

#PBDDS_NORMAL   = 1
#PBDDS_DISABLED = 2

#CP_DROPDOWNBUTTON        = 1
#CP_BACKGROUND            = 2
#CP_TRANSPARENTBACKGROUND = 3
#CP_BORDER                = 4
#CP_READONLY              = 5
#CP_DROPDOWNBUTTONRIGHT   = 6
#CP_DROPDOWNBUTTONLEFT    = 7
#CP_CUEBANNER             = 8
#CP_DROPDOWNITEM          = 9

#CBXS_NORMAL   = 1
#CBXS_HOT      = 2
#CBXS_PRESSED  = 3
#CBXS_DISABLED = 4

#CBXSR_NORMAL   = 1
#CBXSR_HOT      = 2
#CBXSR_PRESSED  = 3
#CBXSR_DISABLED = 4

#CBXSL_NORMAL   = 1
#CBXSL_HOT      = 2
#CBXSL_PRESSED  = 3
#CBXSL_DISABLED = 4

#CBTBS_NORMAL   = 1
#CBTBS_HOT      = 2
#CBTBS_DISABLED = 3
#CBTBS_FOCUSED  = 4

#CBB_NORMAL   = 1
#CBB_HOT      = 2
#CBB_FOCUSED  = 3
#CBB_DISABLED = 4

#CBRO_NORMAL   = 1
#CBRO_HOT      = 2
#CBRO_PRESSED  = 3
#CBRO_DISABLED = 4

#CBCB_NORMAL   = 1
#CBCB_HOT      = 2
#CBCB_PRESSED  = 3
#CBCB_DISABLED = 4

#CBDI_NORMAL      = 1
#CBDI_HIGHLIGHTED = 2

#CSST_TAB = 1

#CSTB_NORMAL   = 1
#CSTB_HOT      = 2
#CSTB_SELECTED = 3

#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

#CPHL_NORMAL   = 1
#CPHL_HOT      = 2
#CPHL_PRESSED  = 3
#CPHL_DISABLED = 4

#CPTL_NORMAL   = 1
#CPTL_HOT      = 2
#CPTL_PRESSED  = 3
#CPTL_DISABLED = 4
#CPTL_PAGE     = 5

#CPCL_NORMAL   = 1
#CPCL_HOT      = 2
#CPCL_PRESSED  = 3
#CPCL_DISABLED = 4

#CPSTL_NORMAL = 1
#CPSTL_HOT    = 2

#DP_DATETEXT                = 1
#DP_DATEBORDER              = 2
#DP_SHOWCALENDARBUTTONRIGHT = 3

#DPDT_NORMAL   = 1
#DPDT_DISABLED = 2
#DPDT_SELECTED = 3

#DPDB_NORMAL   = 1
#DPDB_HOT      = 2
#DPDB_FOCUSED  = 3
#DPDB_DISABLED = 4

#DPSCBR_NORMAL   = 1
#DPSCBR_HOT      = 2
#DPSCBR_PRESSED  = 3
#DPSCBR_DISABLED = 4

#DD_COPY           = 1
#DD_MOVE           = 2
#DD_UPDATEMETADATA = 3
#DD_CREATELINK     = 4
#DD_WARNING        = 5
#DD_NONE           = 6
#DD_IMAGEBG        = 7
#DD_TEXTBG         = 8

#DDCOPY_HIGHLIGHT   = 1
#DDCOPY_NOHIGHLIGHT = 2

#DDMOVE_HIGHLIGHT   = 1
#DDMOVE_NOHIGHLIGHT = 2

#DDUPDATEMETADATA_HIGHLIGHT   = 1
#DDUPDATEMETADATA_NOHIGHLIGHT = 2

#DDCREATELINK_HIGHLIGHT   = 1
#DDCREATELINK_NOHIGHLIGHT = 2

#DDWARNING_HIGHLIGHT   = 1
#DDWARNING_NOHIGHLIGHT = 2

#DDNONE_HIGHLIGHT   = 1
#DDNONE_NOHIGHLIGHT = 2

#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

#ETS_NORMAL    = 1
#ETS_HOT       = 2
#ETS_SELECTED  = 3
#ETS_DISABLED  = 4
#ETS_FOCUSED   = 5
#ETS_READONLY  = 6
#ETS_ASSIST    = 7
#ETS_CUEBANNER = 8

#EBS_NORMAL   = 1
#EBS_HOT      = 2
#EBS_DISABLED = 3
#EBS_FOCUSED  = 4
#EBS_READONLY = 5
#EBS_ASSIST   = 6

#EBWBS_NORMAL   = 1
#EBWBS_HOT      = 2
#EBWBS_DISABLED = 3
#EBWBS_FOCUSED  = 4

#EPSN_NORMAL   = 1
#EPSN_HOT      = 2
#EPSN_FOCUSED  = 3
#EPSN_DISABLED = 4

#EPSH_NORMAL   = 1
#EPSH_HOT      = 2
#EPSH_FOCUSED  = 3
#EPSH_DISABLED = 4

#EPSV_NORMAL   = 1
#EPSV_HOT      = 2
#EPSV_FOCUSED  = 3
#EPSV_DISABLED = 4

#EPSHV_NORMAL   = 1
#EPSHV_HOT      = 2
#EPSHV_FOCUSED  = 3
#EPSHV_DISABLED = 4

#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

#EBHC_NORMAL  = 1
#EBHC_HOT     = 2
#EBHC_PRESSED = 3

#EBHP_NORMAL          = 1
#EBHP_HOT             = 2
#EBHP_PRESSED         = 3
#EBHP_SELECTEDNORMAL  = 4
#EBHP_SELECTEDHOT     = 5
#EBHP_SELECTEDPRESSED = 6

#EBM_NORMAL  = 1
#EBM_HOT     = 2
#EBM_PRESSED = 3

#EBNGC_NORMAL  = 1
#EBNGC_HOT     = 2
#EBNGC_PRESSED = 3

#EBNGE_NORMAL  = 1
#EBNGE_HOT     = 2
#EBNGE_PRESSED = 3

#EBSGC_NORMAL  = 1
#EBSGC_HOT     = 2
#EBSGC_PRESSED = 3

#EBSGE_NORMAL  = 1
#EBSGE_HOT     = 2
#EBSGE_PRESSED = 3

#FLYOUT_HEADER     = 1
#FLYOUT_BODY       = 2
#FLYOUT_LABEL      = 3
#FLYOUT_LINK       = 4
#FLYOUT_DIVIDER    = 5
#FLYOUT_WINDOW     = 6
#FLYOUT_LINKAREA   = 7
#FLYOUT_LINKHEADER = 8

#FLS_NORMAL     = 1
#FLS_SELECTED   = 2
#FLS_EMPHASIZED = 3
#FLS_DISABLED   = 4

#FLYOUTLINK_NORMAL = 1
#FLYOUTLINK_HOVER  = 2

#FBS_NORMAL     = 1
#FBS_EMPHASIZED = 2

#FLH_NORMAL = 1
#FLH_HOVER  = 2

#HP_HEADERITEM           = 1
#HP_HEADERITEMLEFT       = 2
#HP_HEADERITEMRIGHT      = 3
#HP_HEADERSORTARROW      = 4
#HP_HEADERDROPDOWN       = 5
#HP_HEADERDROPDOWNFILTER = 6
#HP_HEADEROVERFLOW       = 7

#HBG_DETAILS = 1
#HBG_ICON    = 2

#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

#HILS_NORMAL  = 1
#HILS_HOT     = 2
#HILS_PRESSED = 3

#HIRS_NORMAL  = 1
#HIRS_HOT     = 2
#HIRS_PRESSED = 3

#HSAS_SORTEDUP   = 1
#HSAS_SORTEDDOWN = 2

#HDDS_NORMAL  = 1
#HDDS_SOFTHOT = 2
#HDDS_HOT     = 3

#HDDFS_NORMAL  = 1
#HDDFS_SOFTHOT = 2
#HDDFS_HOT     = 3

#HOFS_NORMAL = 1
#HOFS_HOT    = 2

#LBCP_BORDER_HSCROLL  = 1
#LBCP_BORDER_HVSCROLL = 2
#LBCP_BORDER_NOSCROLL = 3
#LBCP_BORDER_VSCROLL  = 4
#LBCP_ITEM            = 5

#LBPSH_NORMAL   = 1
#LBPSH_FOCUSED  = 2
#LBPSH_HOT      = 3
#LBPSH_DISABLED = 4

#LBPSHV_NORMAL   = 1
#LBPSHV_FOCUSED  = 2
#LBPSHV_HOT      = 3
#LBPSHV_DISABLED = 4

#LBPSN_NORMAL   = 1
#LBPSN_FOCUSED  = 2
#LBPSN_HOT      = 3
#LBPSN_DISABLED = 4

#LBPSV_NORMAL   = 1
#LBPSV_FOCUSED  = 2
#LBPSV_HOT      = 3
#LBPSV_DISABLED = 4

#LBPSI_HOT              = 1
#LBPSI_HOTSELECTED      = 2
#LBPSI_SELECTED         = 3
#LBPSI_SELECTEDNOTFOCUS = 4

#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

#LISS_NORMAL = 1
#LISS_HOT = 2
#LISS_SELECTED = 3
#LISS_DISABLED = 4
#LISS_SELECTEDNOTFOCUS = 5
#LISS_HOTSELECTED = 6

#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

#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

#LVEB_NORMAL = 1
#LVEB_HOVER = 2
#LVEB_PUSHED = 3

#LVCB_NORMAL = 1
#LVCB_HOVER = 2
#LVCB_PUSHED = 3

#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

#MB_ACTIVE = 1
#MB_INACTIVE = 2

#MBI_NORMAL = 1
#MBI_HOT = 2
#MBI_PUSHED = 3
#MBI_DISABLED = 4
#MBI_DISABLEDHOT = 5
#MBI_DISABLEDPUSHED = 6

#MC_CHECKMARKNORMAL = 1
#MC_CHECKMARKDISABLED = 2
#MC_BULLETNORMAL = 3
#MC_BULLETDISABLED = 4

#MCB_DISABLED = 1
#MCB_NORMAL = 2
#MCB_BITMAP = 3

#MPI_NORMAL = 1
#MPI_HOT = 2
#MPI_DISABLED = 3
#MPI_DISABLEDHOT = 4

#MSM_NORMAL = 1
#MSM_DISABLED = 2

#MSYSC_NORMAL = 1
#MSYSC_DISABLED = 2

#MSYSMX_NORMAL = 1
#MSYSMX_DISABLED = 2

#MSYSMN_NORMAL = 1
#MSYSMN_DISABLED = 2

#MSYSR_NORMAL = 1
#MSYSR_DISABLED = 2

#NAV_BACKBUTTON = 1
#NAV_FORWARDBUTTON = 2
#NAV_MENUBUTTON = 3

#NAV_BB_NORMAL = 1
#NAV_BB_HOT = 2
#NAV_BB_PRESSED = 3
#NAV_BB_DISABLED = 4

#NAV_FB_NORMAL = 1
#NAV_FB_HOT = 2
#NAV_FB_PRESSED = 3
#NAV_FB_DISABLED = 4

#NAV_MB_NORMAL = 1
#NAV_MB_HOT = 2
#NAV_MB_PRESSED = 3
#NAV_MB_DISABLED = 4

#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

#PBBS_NORMAL = 1
#PBBS_PARTIAL = 2

#PBBVS_NORMAL = 1
#PBBVS_PARTIAL = 2

#PBFS_NORMAL = 1
#PBFS_ERROR = 2
#PBFS_PAUSED = 3
#PBFS_PARTIAL = 4

#PBFVS_NORMAL = 1
#PBFVS_ERROR = 2
#PBFVS_PAUSED = 3
#PBFVS_PARTIAL = 4

#RP_GRIPPER = 1
#RP_GRIPPERVERT = 2
#RP_BAND = 3
#RP_CHEVRON = 4
#RP_CHEVRONVERT = 5
#RP_BACKGROUND = 6
#RP_SPLITTER = 7
#RP_SPLITTERVERT = 8

#CHEVS_NORMAL = 1
#CHEVS_HOT = 2
#CHEVS_PRESSED = 3

#CHEVSV_NORMAL = 1
#CHEVSV_HOT = 2
#CHEVSV_PRESSED = 3

#SPLITS_NORMAL = 1
#SPLITS_HOT = 2
#SPLITS_PRESSED = 3

#SPLITSV_NORMAL = 1
#SPLITSV_HOT = 2
#SPLITSV_PRESSED = 3

#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
#SBP_SIZEBOXBKGND = 11

#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

#SCRBS_NORMAL = 1
#SCRBS_HOT = 2
#SCRBS_PRESSED = 3
#SCRBS_DISABLED = 4
#SCRBS_HOVER = 5

#SZB_RIGHTALIGN = 1
#SZB_LEFTALIGN = 2
#SZB_TOPRIGHTALIGN = 3
#SZB_TOPLEFTALIGN = 4
#SZB_HALFBOTTOMRIGHTALIGN = 5
#SZB_HALFBOTTOMLEFTALIGN = 6
#SZB_HALFTOPRIGHTALIGN = 7
#SZB_HALFTOPLEFTALIGN = 8

#SPNP_UP = 1
#SPNP_DOWN = 2
#SPNP_UPHORZ = 3
#SPNP_DOWNHORZ = 4

#UPS_NORMAL = 1
#UPS_HOT = 2
#UPS_PRESSED = 3
#UPS_DISABLED = 4

#DNS_NORMAL = 1
#DNS_HOT = 2
#DNS_PRESSED = 3
#DNS_DISABLED = 4

#UPHZS_NORMAL = 1
#UPHZS_HOT = 2
#UPHZS_PRESSED = 3
#UPHZS_DISABLED = 4

#DNHZS_NORMAL = 1
#DNHZS_HOT = 2
#DNHZS_PRESSED = 3
#DNHZS_DISABLED = 4

#SP_PANE = 1
#SP_GRIPPERPANE = 2
#SP_GRIPPER = 3

#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

#TIS_NORMAL = 1
#TIS_HOT = 2
#TIS_SELECTED = 3
#TIS_DISABLED = 4
#TIS_FOCUSED = 5

#TILES_NORMAL = 1
#TILES_HOT = 2
#TILES_SELECTED = 3
#TILES_DISABLED = 4
#TILES_FOCUSED = 5

#TIRES_NORMAL = 1
#TIRES_HOT = 2
#TIRES_SELECTED = 3
#TIRES_DISABLED = 4
#TIRES_FOCUSED = 5

#TIBES_NORMAL = 1
#TIBES_HOT = 2
#TIBES_SELECTED = 3
#TIBES_DISABLED = 4
#TIBES_FOCUSED = 5

#TTIS_NORMAL = 1
#TTIS_HOT = 2
#TTIS_SELECTED = 3
#TTIS_DISABLED = 4
#TTIS_FOCUSED = 5

#TTILES_NORMAL = 1
#TTILES_HOT = 2
#TTILES_SELECTED = 3
#TTILES_DISABLED = 4
#TTILES_FOCUSED = 5

#TTIRES_NORMAL = 1
#TTIRES_HOT = 2
#TTIRES_SELECTED = 3
#TTIRES_DISABLED = 4
#TTIRES_FOCUSED = 5

#TTIBES_NORMAL = 1
#TTIBES_HOT = 2
#TTIBES_SELECTED = 3
#TTIBES_DISABLED = 4
#TTIBES_FOCUSED = 5

#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

#TDLGCPS_STANDALONE = 1

#TDLGEBS_NORMAL = 1
#TDLGEBS_HOVER = 2
#TDLGEBS_PRESSED = 3
#TDLGEBS_EXPANDEDNORMAL = 4
#TDLGEBS_EXPANDEDHOVER = 5
#TDLGEBS_EXPANDEDPRESSED = 6
#TDLGEBS_NORMALDISABLED = 7
#TDLGEBS_EXPANDEDDISABLED = 8

#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

#TS_HYPERLINK_NORMAL = 1
#TS_HYPERLINK_HOT = 2
#TS_HYPERLINK_PRESSED = 3
#TS_HYPERLINK_DISABLED = 4

#TS_CONTROLLABEL_NORMAL = 1
#TS_CONTROLLABEL_DISABLED = 2

#TP_BUTTON = 1
#TP_DROPDOWNBUTTON = 2
#TP_SPLITBUTTON = 3
#TP_SPLITBUTTONDROPDOWN = 4
#TP_SEPARATOR = 5
#TP_SEPARATORVERT = 6
#TP_DROPDOWNBUTTONGLYPH = 7

#TS_NORMAL = 1
#TS_HOT = 2
#TS_PRESSED = 3
#TS_DISABLED = 4
#TS_CHECKED = 5
#TS_HOTCHECKED = 6
#TS_NEARHOT = 7
#TS_OTHERSIDEHOT = 8

#TTP_STANDARD = 1
#TTP_STANDARDTITLE = 2
#TTP_BALLOON = 3
#TTP_BALLOONTITLE = 4
#TTP_CLOSE = 5
#TTP_BALLOONSTEM = 6
#TTP_WRENCH = 7

#TTCS_NORMAL = 1
#TTCS_HOT = 2
#TTCS_PRESSED = 3

#TTSS_NORMAL = 1
#TTSS_LINK = 2

#TTBS_NORMAL = 1
#TTBS_LINK = 2

#TTBSS_POINTINGUPLEFTWALL = 1
#TTBSS_POINTINGUPCENTERED = 2
#TTBSS_POINTINGUPRIGHTWALL = 3
#TTBSS_POINTINGDOWNRIGHTWALL = 4
#TTBSS_POINTINGDOWNCENTERED = 5
#TTBSS_POINTINGDOWNLEFTWALL = 6

#TTWS_NORMAL = 1
#TTWS_HOT = 2
#TTWS_PRESSED = 3

#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

#TKS_NORMAL = 1

#TRS_NORMAL = 1

#TRVS_NORMAL = 1

#TUS_NORMAL = 1
#TUS_HOT = 2
#TUS_PRESSED = 3
#TUS_FOCUSED = 4
#TUS_DISABLED = 5

#TUBS_NORMAL = 1
#TUBS_HOT = 2
#TUBS_PRESSED = 3
#TUBS_FOCUSED = 4
#TUBS_DISABLED = 5

#TUTS_NORMAL = 1
#TUTS_HOT = 2
#TUTS_PRESSED = 3
#TUTS_FOCUSED = 4
#TUTS_DISABLED = 5

#TUVS_NORMAL = 1
#TUVS_HOT = 2
#TUVS_PRESSED = 3
#TUVS_FOCUSED = 4
#TUVS_DISABLED = 5

#TUVLS_NORMAL = 1
#TUVLS_HOT = 2
#TUVLS_PRESSED = 3
#TUVLS_FOCUSED = 4
#TUVLS_DISABLED = 5

#TUVRS_NORMAL = 1
#TUVRS_HOT = 2
#TUVRS_PRESSED = 3
#TUVRS_FOCUSED = 4
#TUVRS_DISABLED = 5

#TSS_NORMAL = 1

#TSVS_NORMAL = 1

#TVP_TREEITEM = 1
#TVP_GLYPH = 2
#TVP_BRANCH = 3
#TVP_HOTGLYPH = 4

#TREIS_NORMAL = 1
#TREIS_HOT = 2
#TREIS_SELECTED = 3
#TREIS_DISABLED = 4
#TREIS_SELECTEDNOTFOCUS = 5
#TREIS_HOTSELECTED = 6

#GLPS_CLOSED = 1
#GLPS_OPENED = 2

#HGLPS_CLOSED = 1
#HGLPS_OPENED = 2

#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
#WP_BORDER = 39

#FS_ACTIVE = 1
#FS_INACTIVE = 2

#CS_ACTIVE = 1
#CS_INACTIVE = 2
#CS_DISABLED = 3

#MXCS_ACTIVE = 1
#MXCS_INACTIVE = 2
#MXCS_DISABLED = 3

#MNCS_ACTIVE = 1
#MNCS_INACTIVE = 2
#MNCS_DISABLED = 3

#HSS_NORMAL = 1
#HSS_HOT = 2
#HSS_PUSHED = 3
#HSS_DISABLED = 4

#HTS_NORMAL = 1
#HTS_HOT = 2
#HTS_PUSHED = 3
#HTS_DISABLED = 4

#VSS_NORMAL = 1
#VSS_HOT = 2
#VSS_PUSHED = 3
#VSS_DISABLED = 4

#VTS_NORMAL = 1
#VTS_HOT = 2
#VTS_PUSHED = 3
#VTS_DISABLED = 4

#SBS_NORMAL = 1
#SBS_HOT = 2
#SBS_PUSHED = 3
#SBS_DISABLED = 4

#MINBS_NORMAL = 1
#MINBS_HOT = 2
#MINBS_PUSHED = 3
#MINBS_DISABLED = 4

#MAXBS_NORMAL = 1
#MAXBS_HOT = 2
#MAXBS_PUSHED = 3
#MAXBS_DISABLED = 4

#RBS_NORMAL = 1
#RBS_HOT = 2
#RBS_PUSHED = 3
#RBS_DISABLED = 4

#HBS_NORMAL = 1
#HBS_HOT = 2
#HBS_PUSHED = 3
#HBS_DISABLED = 4

#CBS_NORMAL = 1
#CBS_HOT = 2
#CBS_PUSHED = 3
#CBS_DISABLED = 4

#TMT_RESERVEDLOW  =    0
#TMT_RESERVEDHIGH = 7999
#TMT_DIBDATA = 2
#TMT_GLYPHDIBDATA = 8
#TMT_ENUM = 200
#TMT_STRING = 201
#TMT_INT = 202
#TMT_BOOL = 203
#TMT_COLOR = 204
#TMT_MARGINS = 205
#TMT_FILENAME = 206
#TMT_SIZE = 207
#TMT_POSITION = 208
#TMT_RECT = 209
#TMT_FONT = 210
#TMT_INTLIST = 211
#TMT_HBITMAP = 212
#TMT_DISKSTREAM = 213
#TMT_STREAM = 214
#TMT_BITMAPREF = 215
#TMT_COLORSCHEMES = 401
#TMT_SIZES = 402
#TMT_CHARSET = 403
#TMT_NAME = 600
#TMT_DISPLAYNAME = 601
#TMT_TOOLTIP = 602
#TMT_COMPANY = 603
#TMT_AUTHOR = 604
#TMT_COPYRIGHT = 605
#TMT_URL = 606
#TMT_VERSION = 607
#TMT_DESCRIPTION = 608
#TMT_FIRST_RCSTRING_NAME = #TMT_DISPLAYNAME
#TMT_LAST_RCSTRING_NAME = #TMT_DESCRIPTION
#TMT_CAPTIONFONT = 801
#TMT_SMALLCAPTIONFONT = 802
#TMT_MENUFONT = 803
#TMT_STATUSFONT = 804
#TMT_MSGBOXFONT = 805
#TMT_ICONTITLEFONT = 806
#TMT_HEADING1FONT = 807
#TMT_HEADING2FONT = 808
#TMT_BODYFONT = 809
#TMT_FIRSTFONT = #TMT_CAPTIONFONT
#TMT_LASTFONT = #TMT_BODYFONT
#TMT_FLATMENUS = 1001
#TMT_FIRSTBOOL = #TMT_FLATMENUS
#TMT_LASTBOOL = #TMT_FLATMENUS
#TMT_SIZINGBORDERWIDTH = 1201
#TMT_SCROLLBARWIDTH = 1202
#TMT_SCROLLBARHEIGHT = 1203
#TMT_CAPTIONBARWIDTH = 1204
#TMT_CAPTIONBARHEIGHT = 1205
#TMT_SMCAPTIONBARWIDTH = 1206
#TMT_SMCAPTIONBARHEIGHT = 1207
#TMT_MENUBARWIDTH = 1208
#TMT_MENUBARHEIGHT = 1209
#TMT_PADDEDBORDERWIDTH = 1210
#TMT_FIRSTSIZE = #TMT_SIZINGBORDERWIDTH
#TMT_LASTSIZE = #TMT_PADDEDBORDERWIDTH
#TMT_MINCOLORDEPTH = 1301
#TMT_FIRSTINT = #TMT_MINCOLORDEPTH
#TMT_LASTINT = #TMT_MINCOLORDEPTH
#TMT_CSSNAME = 1401
#TMT_XMLNAME = 1402
#TMT_LASTUPDATED = 1403
#TMT_ALIAS = 1404
#TMT_FIRSTSTRING = #TMT_CSSNAME
#TMT_LASTSTRING = #TMT_ALIAS
#TMT_SCROLLBAR = 1601
#TMT_BACKGROUND = 1602
#TMT_ACTIVECAPTION = 1603
#TMT_INACTIVECAPTION = 1604
#TMT_MENU = 1605
#TMT_WINDOW = 1606
#TMT_WINDOWFRAME = 1607
#TMT_MENUTEXT = 1608
#TMT_WINDOWTEXT = 1609
#TMT_CAPTIONTEXT = 1610
#TMT_ACTIVEBORDER = 1611
#TMT_INACTIVEBORDER = 1612
#TMT_APPWORKSPACE = 1613
#TMT_HIGHLIGHT = 1614
#TMT_HIGHLIGHTTEXT = 1615
#TMT_BTNFACE = 1616
#TMT_BTNSHADOW = 1617
#TMT_GRAYTEXT = 1618
#TMT_BTNTEXT = 1619
#TMT_INACTIVECAPTIONTEXT = 1620
#TMT_BTNHIGHLIGHT = 1621
#TMT_DKSHADOW3D = 1622
#TMT_LIGHT3D = 1623
#TMT_INFOTEXT = 1624
#TMT_INFOBK = 1625
#TMT_BUTTONALTERNATEFACE = 1626
#TMT_HOTTRACKING = 1627
#TMT_GRADIENTACTIVECAPTION = 1628
#TMT_GRADIENTINACTIVECAPTION = 1629
#TMT_MENUHILIGHT = 1630
#TMT_MENUBAR = 1631
#TMT_FIRSTCOLOR = #TMT_SCROLLBAR
#TMT_LASTCOLOR = #TMT_MENUBAR
#TMT_FROMHUE1 = 1801
#TMT_FROMHUE2 = 1802
#TMT_FROMHUE3 = 1803
#TMT_FROMHUE4 = 1804
#TMT_FROMHUE5 = 1805
#TMT_TOHUE1 = 1806
#TMT_TOHUE2 = 1807
#TMT_TOHUE3 = 1808
#TMT_TOHUE4 = 1809
#TMT_TOHUE5 = 1810
#TMT_FROMCOLOR1 = 2001
#TMT_FROMCOLOR2 = 2002
#TMT_FROMCOLOR3 = 2003
#TMT_FROMCOLOR4 = 2004
#TMT_FROMCOLOR5 = 2005
#TMT_TOCOLOR1 = 2006
#TMT_TOCOLOR2 = 2007
#TMT_TOCOLOR3 = 2008
#TMT_TOCOLOR4 = 2009
#TMT_TOCOLOR5 = 2010
#TMT_TRANSPARENT = 2201
#TMT_AUTOSIZE = 2202
#TMT_BORDERONLY = 2203
#TMT_COMPOSITED = 2204
#TMT_BGFILL = 2205
#TMT_GLYPHTRANSPARENT = 2206
#TMT_GLYPHONLY = 2207
#TMT_ALWAYSSHOWSIZINGBAR = 2208
#TMT_MIRRORIMAGE = 2209
#TMT_UNIFORMSIZING = 2210
#TMT_INTEGRALSIZING = 2211
#TMT_SOURCEGROW = 2212
#TMT_SOURCESHRINK = 2213
#TMT_DRAWBORDERS = 2214
#TMT_NOETCHEDEFFECT = 2215
#TMT_TEXTAPPLYOVERLAY = 2216
#TMT_TEXTGLOW = 2217
#TMT_TEXTITALIC = 2218
#TMT_COMPOSITEDOPAQUE = 2219
#TMT_LOCALIZEDMIRRORIMAGE = 2220
#TMT_IMAGECOUNT = 2401
#TMT_ALPHALEVEL = 2402
#TMT_BORDERSIZE = 2403
#TMT_ROUNDCORNERWIDTH = 2404
#TMT_ROUNDCORNERHEIGHT = 2405
#TMT_GRADIENTRATIO1 = 2406
#TMT_GRADIENTRATIO2 = 2407
#TMT_GRADIENTRATIO3 = 2408
#TMT_GRADIENTRATIO4 = 2409
#TMT_GRADIENTRATIO5 = 2410
#TMT_PROGRESSCHUNKSIZE = 2411
#TMT_PROGRESSSPACESIZE = 2412
#TMT_SATURATION = 2413
#TMT_TEXTBORDERSIZE = 2414
#TMT_ALPHATHRESHOLD = 2415
#TMT_WIDTH = 2416
#TMT_HEIGHT = 2417
#TMT_GLYPHINDEX = 2418
#TMT_TRUESIZESTRETCHMARK = 2419
#TMT_MINDPI1 = 2420
#TMT_MINDPI2 = 2421
#TMT_MINDPI3 = 2422
#TMT_MINDPI4 = 2423
#TMT_MINDPI5 = 2424
#TMT_TEXTGLOWSIZE = 2425
#TMT_FRAMESPERSECOND = 2426
#TMT_PIXELSPERFRAME = 2427
#TMT_ANIMATIONDELAY = 2428
#TMT_GLOWINTENSITY = 2429
#TMT_OPACITY = 2430
#TMT_COLORIZATIONCOLOR = 2431
#TMT_COLORIZATIONOPACITY = 2432
#TMT_MINDPI6 = 2433
#TMT_MINDPI7 = 2434
#TMT_GLYPHFONT = 2601
#TMT_IMAGEFILE = 3001
#TMT_IMAGEFILE1 = 3002
#TMT_IMAGEFILE2 = 3003
#TMT_IMAGEFILE3 = 3004
#TMT_IMAGEFILE4 = 3005
#TMT_IMAGEFILE5 = 3006
#TMT_GLYPHIMAGEFILE = 3008
#TMT_IMAGEFILE6 = 3009
#TMT_IMAGEFILE7 = 3010
#TMT_TEXT = 3201
#TMT_CLASSICVALUE = 3202
#TMT_OFFSET = 3401
#TMT_TEXTSHADOWOFFSET = 3402
#TMT_MINSIZE = 3403
#TMT_MINSIZE1 = 3404
#TMT_MINSIZE2 = 3405
#TMT_MINSIZE3 = 3406
#TMT_MINSIZE4 = 3407
#TMT_MINSIZE5 = 3408
#TMT_NORMALSIZE = 3409
#TMT_MINSIZE6 = 3410
#TMT_MINSIZE7 = 3411
#TMT_SIZINGMARGINS = 3601
#TMT_CONTENTMARGINS = 3602
#TMT_CAPTIONMARGINS = 3603
#TMT_BORDERCOLOR = 3801
#TMT_FILLCOLOR = 3802
#TMT_TEXTCOLOR = 3803
#TMT_EDGELIGHTCOLOR = 3804
#TMT_EDGEHIGHLIGHTCOLOR = 3805
#TMT_EDGESHADOWCOLOR = 3806
#TMT_EDGEDKSHADOWCOLOR = 3807
#TMT_EDGEFILLCOLOR = 3808
#TMT_TRANSPARENTCOLOR = 3809
#TMT_GRADIENTCOLOR1 = 3810
#TMT_GRADIENTCOLOR2 = 3811
#TMT_GRADIENTCOLOR3 = 3812
#TMT_GRADIENTCOLOR4 = 3813
#TMT_GRADIENTCOLOR5 = 3814
#TMT_SHADOWCOLOR = 3815
#TMT_GLOWCOLOR = 3816
#TMT_TEXTBORDERCOLOR = 3817
#TMT_TEXTSHADOWCOLOR = 3818
#TMT_GLYPHTEXTCOLOR = 3819
#TMT_GLYPHTRANSPARENTCOLOR = 3820
#TMT_FILLCOLORHINT = 3821
#TMT_BORDERCOLORHINT = 3822
#TMT_ACCENTCOLORHINT = 3823
#TMT_TEXTCOLORHINT = 3824
#TMT_HEADING1TEXTCOLOR = 3825
#TMT_HEADING2TEXTCOLOR = 3826
#TMT_BODYTEXTCOLOR = 3827
#TMT_BGTYPE = 4001
#TMT_BORDERTYPE = 4002
#TMT_FILLTYPE = 4003
#TMT_SIZINGTYPE = 4004
#TMT_HALIGN = 4005
#TMT_CONTENTALIGNMENT = 4006
#TMT_VALIGN = 4007
#TMT_OFFSETTYPE = 4008
#TMT_ICONEFFECT = 4009
#TMT_TEXTSHADOWTYPE = 4010
#TMT_IMAGELAYOUT = 4011
#TMT_GLYPHTYPE = 4012
#TMT_IMAGESELECTTYPE = 4013
#TMT_GLYPHFONTSIZINGTYPE = 4014
#TMT_TRUESIZESCALINGTYPE = 4015
#TMT_USERPICTURE = 5001
#TMT_DEFAULTPANESIZE = 5002
#TMT_BLENDCOLOR = 5003
#TMT_CUSTOMSPLITRECT = 5004
#TMT_ANIMATIONBUTTONRECT = 5005
#TMT_ANIMATIONDURATION = 5006
#TMT_TRANSITIONDURATIONS = 6000
#TMT_SCALEDBACKGROUND = 7001
#TMT_ATLASIMAGE = 8000
#TMT_ATLASINPUTIMAGE = 8001
#TMT_ATLASRECT = 8002
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
User avatar
jacdelad
Addict
Addict
Posts: 1432
Joined: Wed Feb 03, 2021 12:46 pm
Location: Planet Riesa
Contact:

Re: Requested API Structure and constants

Post by jacdelad »

Code: Select all

#TD_WARNING_ICON = -1
#TD_ERROR_ICON = -2
#TD_INFORMATION_ICON = -3
#TD_SHIELD_ICON = -4

#TDF_USE_COMMAND_LINKS           = $10
#TDF_ENABLE_HYPERLINKS           = $1
#TDF_USE_HICON_MAIN              = $2
#TDF_USE_HICON_FOOTER            = $4
#TDF_EXPAND_FOOTER_AREA          = $40
#TDF_EXPANDED_BY_DEFAULT         = $80
#TDF_VERIFICATION_FLAG_CHECKED   = $100
#TDF_SHOW_PROGRESS_BAR           = $200
#TDF_SHOW_MARQUEE_PROGRESS_BAR   = $400
#TDF_CALLBACK_TIMER              = $800
#TDF_POSITION_RELATIVE_TO_WINDOW = $1000
#TDF_NO_DEFAULT_RADIO_BUTTON     = $4000
#TDF_CAN_BE_MINIMIZED            = $8000

#TD_ICON_NONE                   = 0
#TD_ICON_SHIELD_COLORED_GREY    = 65527
#TD_ICON_SHIELD_OK_COLORED      = 65528
#TD_ICON_SHIELD_ERROR_COLORED   = 65529
#TD_ICON_SHIELD_WARNING_COLORED = 65530
#TD_ICON_SHIELD_COLORED         = 65531
#TD_ICON_SHIELD                 = 65532
#TD_ICON_SHIELD_QUESTION        = 65533
#TD_ICON_ERROR                  = 65534
#TD_ICON_QUESTION               = 65535
For Windows Vista and above, when working with TaskDialogs (I hope this request hasn't been posted before, but I couldn't find it).
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Denis
Enthusiast
Enthusiast
Posts: 704
Joined: Fri Apr 25, 2003 5:10 pm
Location: Doubs - France

Re: Requested API Structure and constants

Post by Denis »

Structure MENUITEMINFO declared in PB has to be updated, the very last item is lacking (since Windows 2000)
WINVER = 0x500 = Windows 2000
WINVER = 0x501 = Windows XP
WINVER = 0x600 = Windows Vista
WINVER = 0x601 = Windows 7
WINVER = 0x602 = Windows 8
WINVER = 0x603 = Windows Blue
WINVER = 0xA00 = Windows 10

added The lacking item, hbmpItem


C/C++ Structure using Visual Studio Community 2022 Version 17.5.1 (use hfile declarations 10.0.22621.0)
Declaration MS
winuser.h line 7866
typedef struct tagMENUITEMINFOW
{
UINT cbSize;
UINT fMask;
UINT fType; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
UINT fState; // used if MIIM_STATE
UINT wID; // used if MIIM_ID
HMENU hSubMenu; // used if MIIM_SUBMENU
HBITMAP hbmpChecked; // used if MIIM_CHECKMARKS
HBITMAP hbmpUnchecked; // used if MIIM_CHECKMARKS
ULONG_PTR dwItemData; // used if MIIM_DATA
LPWSTR dwTypeData; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
UINT cch; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
#if(WINVER >= 0x0500)
HBITMAP hbmpItem; // used if MIIM_BITMAP
#endif /* WINVER >= 0x0500
} MENUITEMINFOW, FAR* LPMENUITEMINFOW;

C/C++ code using Visual Studio 2019 Version 16.7.6 (use declarations 10.0.18362.0)

Code: Select all

#include <iostream>
#include <windows.h>
#include <commCtrl.h>
#include <winuser.h>


#define PRINTF_SIZEOF(type) printf("  SizeOf( "  #type  " ) = %zu\n", sizeof(type))
#define PRINTF_OffsetOf(type,member) printf("  OffsetOf( "  #member  " ) = %zu\n", offsetof(type,member))
#define PRINTF_Normal(type) printf("  IS_INTRESOURCE( "  #type  " ) = %zu\n", (type))


int main()
{
#ifdef UNICODE


#if defined(_WIN64)
	printf("\n");
	printf("\n");
	printf("  Compilation Window 64 bit - mode unicode\n");
#else
	printf("\n");
	printf("\n");
	printf("  Compilation Window 32 bit - mode unicode\n");
#endif

	/*

#if(WINVER >= 0x0500)
		WINVER = 0x500 = Windows 2000
		WINVER = 0x501 = Windows XP
		WINVER = 0x600 = Windows Vista
		WINVER = 0x601 = Windows 7
		WINVER = 0x602 = Windows 8
		WINVER = 0x603 = Windows Blue
		WINVER = 0xA00 = Windows 10

		winuser.h  line 7866  version  Visual Studio 2022  10.0.22621.0
typedef struct tagMENUITEMINFOW
{
	UINT     cbSize;
	UINT     fMask;
	UINT     fType;         // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
	UINT     fState;        // used if MIIM_STATE
	UINT     wID;           // used if MIIM_ID
	HMENU    hSubMenu;      // used if MIIM_SUBMENU
	HBITMAP  hbmpChecked;   // used if MIIM_CHECKMARKS
	HBITMAP  hbmpUnchecked; // used if MIIM_CHECKMARKS
	ULONG_PTR dwItemData;   // used if MIIM_DATA
	LPWSTR   dwTypeData;    // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
	UINT     cch;           // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
#if(WINVER >= 0x0500)
	HBITMAP  hbmpItem;      // used if MIIM_BITMAP
#endif /* WINVER >= 0x0500 
}   MENUITEMINFOW, FAR* LPMENUITEMINFOW;
*/


	printf("\n");
	printf("  Structure MENUITEMINFO\n");
	printf("  -----------------\n");

	PRINTF_SIZEOF(MENUITEMINFO);
	printf("\n");
	PRINTF_OffsetOf(MENUITEMINFO, cbSize);
	PRINTF_OffsetOf(MENUITEMINFO, fMask);
	PRINTF_OffsetOf(MENUITEMINFO, fType);
	PRINTF_OffsetOf(MENUITEMINFO, fState);
	PRINTF_OffsetOf(MENUITEMINFO, wID);
	PRINTF_OffsetOf(MENUITEMINFO, hSubMenu);
	PRINTF_OffsetOf(MENUITEMINFO, hbmpChecked);
	PRINTF_OffsetOf(MENUITEMINFO, hbmpUnchecked);
	PRINTF_OffsetOf(MENUITEMINFO, dwItemData);
	PRINTF_OffsetOf(MENUITEMINFO, dwTypeData);
	PRINTF_OffsetOf(MENUITEMINFO, cch);
	PRINTF_OffsetOf(MENUITEMINFO, hbmpItem);


#else
	printf("You must compile in unicode mode!\n");
#endif


	return 0;
}

PB 6.02 b2 code

Code: Select all


CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86
            
            Structure My_MENUITEMINFO
                  cbSize.l
                  fMask.l
                  fType.l
                  fState.l
                  wID.l
                  hSubMenu.i
                  hbmpChecked.i
                  hbmpUnchecked.i
                  dwItemData.i
                  *dwTypeData
                  cch.l
                  hbmpItem.i
            EndStructure
            
      CompilerCase #PB_Processor_x64
            
            Structure My_MENUITEMINFO
                  cbSize.l
                  fMask.l
                  fType.l
                  fState.l
                  wID.l
                  PB_Alignment1.b[4]
                  hSubMenu.i
                  hbmpChecked.i
                  hbmpUnchecked.i
                  dwItemData.i
                  *dwTypeData
                  cch.l
                  PB_Alignment2.b[4]
                  hbmpItem.i
            EndStructure
            
CompilerEndSelect

CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86
            Debug ""
            Debug ""
            Debug "Compilation Window 32 bit - mode Unicode "
            Debug "---------------------------"
            Debug ""
            
            Debug "SizeOf(My_MENUITEMINFO)   = " + Str(SizeOf(My_MENUITEMINFO))
            Debug ""
            
            Debug "OffsetOf( cbSize )        = " + Str(OffsetOf( My_MENUITEMINFO\cbSize ))
            Debug "OffsetOf( fMask )         = " + Str(OffsetOf( My_MENUITEMINFO\fMask ))
            Debug "OffsetOf( fType )         = " + Str(OffsetOf( My_MENUITEMINFO\fType ))
            Debug "OffsetOf( fState )        = " + Str(OffsetOf( My_MENUITEMINFO\fState ))
            Debug "OffsetOf( wID )           = " + Str(OffsetOf( My_MENUITEMINFO\wID ))
            Debug "OffsetOf( hSubMenu )      = " + Str(OffsetOf( My_MENUITEMINFO\hSubMenu ))
            Debug "OffsetOf( hbmpChecked )   = " + Str(OffsetOf( My_MENUITEMINFO\hbmpChecked ))
            Debug "OffsetOf( hbmpUnchecked ) = " + Str(OffsetOf( My_MENUITEMINFO\hbmpUnchecked ))
            Debug "OffsetOf( dwItemData )    = " + Str(OffsetOf( My_MENUITEMINFO\ dwItemData ))
            Debug "OffsetOf( *dwTypeData )   = " + Str(OffsetOf( My_MENUITEMINFO\dwTypeData ))
            Debug "OffsetOf( cch )           = " + Str(OffsetOf( My_MENUITEMINFO\cch ))
            Debug "OffsetOf( hbmpItem )      = " + Str(OffsetOf( My_MENUITEMINFO\hbmpItem ))
            
            
      CompilerCase #PB_Processor_x64
            Debug ""
            Debug ""
            Debug "Compilation Window 64 bit - mode Unicode "
            Debug "---------------------------"
            Debug ""
            
            Debug "SizeOf(My_MENUITEMINFO)   = " + Str(SizeOf(My_MENUITEMINFO))
            Debug ""
            
            Debug "OffsetOf( cbSize )        = " + Str(OffsetOf( My_MENUITEMINFO\cbSize ))
            Debug "OffsetOf( fMask )         = " + Str(OffsetOf( My_MENUITEMINFO\fMask ))
            Debug "OffsetOf( fType )         = " + Str(OffsetOf( My_MENUITEMINFO\fType ))
            Debug "OffsetOf( fState )        = " + Str(OffsetOf( My_MENUITEMINFO\fState ))
            Debug "OffsetOf( wID )           = " + Str(OffsetOf( My_MENUITEMINFO\wID ))
            ;  Debug "OffsetOf( PB_Alignment1 ) = " + Str(OffsetOf( My_MENUITEMINFO\PB_Alignment1 ))
            Debug "OffsetOf( hSubMenu )      = " + Str(OffsetOf( My_MENUITEMINFO\hSubMenu ))
            Debug "OffsetOf( hbmpChecked )   = " + Str(OffsetOf( My_MENUITEMINFO\hbmpChecked ))
            Debug "OffsetOf( hbmpUnchecked ) = " + Str(OffsetOf( My_MENUITEMINFO\hbmpUnchecked ))
            Debug "OffsetOf( dwItemData )    = " + Str(OffsetOf( My_MENUITEMINFO\ dwItemData ))
            Debug "OffsetOf( *dwTypeData )   = " + Str(OffsetOf( My_MENUITEMINFO\dwTypeData ))
            Debug "OffsetOf( cch )           = " + Str(OffsetOf( My_MENUITEMINFO\cch ))
            ;  Debug "OffsetOf( PB_Alignment2 ) = " + Str(OffsetOf( My_MENUITEMINFO\PB_Alignment2 ))
            Debug "OffsetOf( hbmpItem )      = " + Str(OffsetOf( My_MENUITEMINFO\hbmpItem ))
            
CompilerEndSelect
result in x86 mode :
G:\Site PB\Structures
Image Image

result in x64 mode :
Image Image
A+
Denis
Post Reply