Definiere doch mal (und wenn auch nur zum Testen) folgende Variable:
Delphi-Quellcode:
var
FPrevClientProc: TFNWndProc;
SkinGrid : TSkinGrid;
SkinGridIntf: ISkinGrid;
Dann erzeugst du das SkinGrid mit
SkinGridIntf := TSkinGrid.Create(...);
und schau mal, ob es dann geht.
Sorry, aber deine Art mit Klassen, Interfaces und Handles zu hantieren ist irgendwie, sagen wir "unüblich".
Wenn du die Referenzzählung nicht brauchst, dann leite deine Klassen nicht von TInterfacedObject sonder von TInterfacedPersistent (classes.pas) ab. Dann musst du die Instanzen aber auch selbst wieder freigeben.