This is a really bad idea to use P/Invoke where it is not absolutely needed, because it can totally break that powerful platform compatibility CLR provides. Why using it with resources? There are .NET resources embedded in the module of an assembly; they work perfectly for absolutely any kind of resources, including any custom data, regardless of the data format.
As to the embedding of fonts, this is well demonstrated in this CodeProject article:
Embedding Font To Resources[
^].
—SA