Re: LIGEnhancements - ListIconGadget with Grouping and TileView
Posted: Thu Feb 15, 2024 1:19 pm
Hi Denis, Jac
I'm facing the same error (PB 6.03 x64, C or ASM backend)
I'm facing the same error (PB 6.03 x64, C or ASM backend)
http://www.purebasic.com
https://www.purebasic.fr/english/
Same here.boddhi wrote: Mon Feb 19, 2024 3:47 am However, when I click on the first group's arrow, the execution freeze. No debug message, no error reported.
No issue with others arrows.
The same behavior
SizeOf() is not OkSizeOf(LV_COLUMN) = 52
------- OffsetOf() values -------
OffsetOf(LV_COLUMN\mask) = 0
OffsetOf(LV_COLUMN\fmt) = 4
OffsetOf(LV_COLUMN\cx) = 8
OffsetOf(LV_COLUMN\*pszText) = 16
OffsetOf(LV_COLUMN\cchTextMax) = 24
OffsetOf(LV_COLUMN\iSubItem) = 28
OffsetOf(LV_COLUMN\iImage) = 32
OffsetOf(LV_COLUMN\iOrder) = 36
OffsetOf(LV_COLUMN\cxMin) = 40
OffsetOf(LV_COLUMN\cxDefault) = 44
OffsetOf(LV_COLUMN\cxIdeal) = 48
Code: Select all
#include <iostream>
#include <windows.h>
#include <commctrl.h>
#define PRINTF_SIZEOF(type) printf(" SizeOf( " #type " ) = %zu\n", sizeof(type))
// #define PRINTF_OffsetOf(type,member) printf(" OffsetOf(" #type", "#member ") = %zu\n", offsetof(type,member))
#define PRINTF_OffsetOf(type,member) printf(" OffsetOf( " #member " ) = %zu\n", offsetof(type,member))
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
/*
--------------------
typedef struct tagLVCOLUMNW
{
UINT mask;
int fmt;
int cx;
LPWSTR pszText;
int cchTextMax;
int iSubItem;
int iImage;
int iOrder;
#if (NTDDI_VERSION >= NTDDI_VISTA)
int cxMin; // min snap point
int cxDefault; // default snap point
int cxIdeal; // read only. ideal may not eqaul current width if auto sized (LVS_EX_AUTOSIZECOLUMNS) to a lesser width.
#endif
} LVCOLUMNW, *LPLVCOLUMNW;
*/
printf("\n");
printf(" Structure \n");
printf(" -----------------\n");
PRINTF_SIZEOF(LVCOLUMNW);
printf("\n");
PRINTF_OffsetOf(LVCOLUMNW, mask);
PRINTF_OffsetOf(LVCOLUMNW, fmt);
PRINTF_OffsetOf(LVCOLUMNW, cx);
PRINTF_OffsetOf(LVCOLUMNW, pszText);
PRINTF_OffsetOf(LVCOLUMNW, cchTextMax);
PRINTF_OffsetOf(LVCOLUMNW, iSubItem);
PRINTF_OffsetOf(LVCOLUMNW, iImage);
PRINTF_OffsetOf(LVCOLUMNW, iOrder);
PRINTF_OffsetOf(LVCOLUMNW, cxMin);
PRINTF_OffsetOf(LVCOLUMNW, cxDefault);
PRINTF_OffsetOf(LVCOLUMNW, cxIdeal);
#else
printf("You must compile in unicode mode!\n");
#endif
return 0;
}
Code: Select all
CompilerSelect #PB_Compiler_Processor
CompilerCase #PB_Processor_x86
CompilerCase #PB_Processor_x64
Debug "Compilation Windows 64 bit - mode unicode"
Structure My_LVCOLUMN
mask.l
fmt.l
cx.l
PB_Alignment.b[4]
*pszText
cchTextMax.l
iSubItem.l
iImage.l
iOrder.l
cxMin.l
cxDefault.l
cxIdeal.l
PB_Alignment1.b[4]
EndStructure
CompilerEndSelect
Debug #CRLF$ + " Structure" + #CRLF$ + " ----------------------"
Debug "SizeOf(My_LVCOLUMN) = " + Str(SizeOf(My_LVCOLUMN))
Debug ""
Debug "------- OffsetOf() values -------"
Debug "OffsetOf(My_LVCOLUMN\mask) = " + Str(OffsetOf(My_LVCOLUMN\mask))
Debug "OffsetOf(My_LVCOLUMN\fmt) = " + Str(OffsetOf(My_LVCOLUMN\fmt))
Debug "OffsetOf(My_LVCOLUMN\cx) = " + Str(OffsetOf(My_LVCOLUMN\cx))
Debug "OffsetOf(My_LVCOLUMN\*pszText) = " + Str(OffsetOf(My_LVCOLUMN\pszText))
Debug "OffsetOf(My_LVCOLUMN\cchTextMax) = " + Str(OffsetOf(My_LVCOLUMN\cchTextMax))
Debug "OffsetOf(My_LVCOLUMN\iSubItem) = " + Str(OffsetOf(My_LVCOLUMN\iSubItem))
Debug "OffsetOf(My_LVCOLUMN\iImage) = " + Str(OffsetOf(My_LVCOLUMN\iImage))
Debug "OffsetOf(My_LVCOLUMN\iOrder) = " + Str(OffsetOf(My_LVCOLUMN\iOrder))
Debug "OffsetOf(My_LVCOLUMN\cxMin) = " + Str(OffsetOf(My_LVCOLUMN\cxMin))
Debug "OffsetOf(My_LVCOLUMN\cxDefault) = " + Str(OffsetOf(My_LVCOLUMN\cxDefault))
Debug "OffsetOf(My_LVCOLUMN\cxIdeal) = " + Str(OffsetOf(My_LVCOLUMN\cxIdeal))