A) Du kannst natürlich auch in einem anderen Feld speichern, was da für Daten drin sind. Beim Speichern des BLOBs weißt du doch wohl, was du da rein tusts.
Macht Windows ja auch nicht anders und "erkennt" anhand des "externen" Dateinamens, um was es sich handeln könnte.
B) Viele Datei-Typen haben gewisse Kennzeichen, in ihren Daten.
Sehr oft kann man dafür die ersten 4 Byte der Datei benutzen.
https://de.wikipedia.org/wiki/Portable_Document_Format siehe "magische Zahl", da man 4 Byte auch als einen Integer interpretieren könnte.
OnAfterScroll und dort drin die Farbe zuweisen?