Te doy un extracto del ucListView
Tenes que subclasificar el mensaje WM_NOTIFY del listview y obtener el handle del control Header (a travez de SendMessage)
Private Const HDN_BEGINTRACK As Long = (HDN_FIRST - 6) 'Ansi
Private Const WM_NOTIFY As Long = &H4E
Private Const LVM_FIRST As Long = &H1000
Private Const LVM_GETHEADER As Long = (LVM_FIRST + 31)
Private Type NMHDR
hwndFrom As Long
idfrom As Long
code As Long
End Type
Private Function LVHeaderHwnd(LV As ListView) As Long
LVHeaderHwnd = SendMessage(LV.hWnd, LVM_GETHEADER, 0, ByVal 0)
End Function
' Filtro de mensajes
Dim uNMH As NMHDR
If Msg = WM_NOTIFY Then
Call RtlMoveMemory(VarPtr(uNMH), lParam, Len(uNMH))
If uNMH.code = HDN_BEGINTRACK And uNMH.hwndFrom = m_hHeader Then
' Aca la columna esta cambiando de tamaño
' que el mensaje devuelva 1 y manejas vos el mensaje si queres cancelarlo
' Si queres saber que columna es, hace un HitTest al header
If (m_HeaderFixedWidth) Then
lReturn = 1
bHandled = True
End If
End If
End If