Yes, i'm almost sure that windows API works
you call createfont with a "display name" or something like that. on your hard drive the ttf file name does not match with that display name.
you can also rename the ttf file, the "display name" will remain the same...
I found so far the undocumented API GetFontResourceInfo
function GetFontResourceInfo(lpszFilename: PChar; var cbBuffer: DWORD; lpBuffer: PChar; dwQueryType: DWORD): DWORD; stdcall; external 'gdi32.dll' name 'GetFontResourceInfoW';