At the simplest level, I use "VCL" to mean "anything in a VCL unit". So yeah, basically most of the stuff that comes with Delphi, and any class that's TPersistent or below. TPersistent is part of the VCL (in the unit "classes"). Not every class - you can derive your own heirarchies from TObject, as long as they don't descend from VCL classes.

c:\program files\borland\delphi*\source\vcl <--- that's the VCL code right there!

I do admit that I unfairly lump some non-VCL units as "VCL code" (like the SysUtils unit, which is actually in the RTL, and sometimes the math unit). I prefer units containing one or two (max) classes, or a small modicum of functions, having a clearly defined purpose. Sprawling utliity files are an easy way to bloat your exe and I'm highly allergic to code size.

Anything in the delphi*\source\rtl\sys dirs go under the category of "non VCL", even if I sometimes mistakenly say otherwise.

Btw, I should have mentioned this before, but I forgot: the BPP in the non-VCL bitmap loader is bytes per pixel, not bits per pixel. I may rename that var later so it's clear, and/or provide another var for bits per pixel. I said my brain was mush and I wasn't joking.