Hi Leandro,
While we're at it, are you aware that your declaration of
Type LOGFONT in your
ClsSkinner.cls isn't exactly correct and causes misalignment of derivative UDTs throughout the module:
Private Type LOGFONT
lfHeight As Long
lfWidth As Long
lfEscapement As Long
lfOrientation As Long
lfWeight As Long
lfItalic As Byte
lfUnderline As Byte
lfStrikeOut As Byte
lfCharSet As Byte
lfOutPrecision As Byte
lfClipPrecision As Byte
lfQuality As Byte
lfPitchAndFamily As Byte
lfFacename(LF_FACESIZE) As Byte ' That's not correct!
End TypeSuch a declaration makes LOGFONT exactly one byte longer than necessary as lfFacename(LF_FACESIZE) where Const LF_FACESIZE As Long = 32 effectively produces a 33-byte long array: lfFacename(LF_FACESIZE) = lfFacename(32) = lfFacename(0 To 32) = 33 bytes long.
IMO the declaration should be corrected to
lfFacename(LF_FACESIZE - 1) to make sure the skin files are compatible with, and usable in, other languages and applications.
(Actually, I noticed this bug a couple years ago when fixing/porting your code to
FBSL but was too lazy to notify y'all in due time. Anyway, as they say
Better late than never ...

)