#pragma once #define CLBS_NOTIFY 0x1 #define CLBS_SORT 0x2 #define CLBS_DISABLENOSCROLL 0x1000 #define CLBS_VSCROLL 0x200000 #define CLBS_BORDER 0x800000 #define CLBS_POPOUT_HEADINGS 0x200 #define CLBS_SPRINGLY_COLUMNS 0x0 typedef struct _CLBS_INFO { DWORD Style; DWORD Unknown; /* FIXME - ExStyle??? */ LPCWSTR StyleName; } CLBS_INFO, *LPCLBS_INFO; typedef struct _CUSTOM_CONTROL_INFO { WCHAR ClassName[32]; DWORD Zero1; /* sizeof(DWORD) or sizeof(PVOID)? */ WCHAR ClassName2[32]; DWORD Unknown1; /* FIXME - size correct? */ DWORD Unknown2; /* FIXME - size correct? */ DWORD Unknown3; /* FIXME - size correct? */ DWORD Zero2; /* FIXME - size correct? */ DWORD Zero3; /* FIXME - size correct? */ DWORD StylesCount; const CLBS_INFO *SupportedStyles; WCHAR Columns[256]; INT_PTR (WINAPI *ClbStyleW)(IN HWND hWndParent, IN LPARAM dwInitParam); DWORD Zero4; /* FIXME - size correct? */ DWORD Zero5; /* FIXME - size correct? */ DWORD Zero6; /* FIXME - size correct? */ } CUSTOM_CONTROL_INFO, *LPCUSTOM_CONTROL_INFO; LRESULT CALLBACK ClbWndProc(HWND,UINT,WPARAM,LPARAM); INT_PTR WINAPI ClbStyleW(HWND,LPARAM); BOOL WINAPI CustomControlInfoW(LPCUSTOM_CONTROL_INFO);