Hi Julian,
I was trying to use WPSymbolDlg but i have ran into a number of issues with it. Basically it does not work for all the fonts, as it is treating fonts containing characters sequentially. See the code snippet
for j := 0 to 6 do
for i := 0 to 31 do
CharacterGrid.Cells[i, j] := Chr(i + (32 * (j + 1)));
Whereas the font files do not contain Symbols/Characters placed sequentially, instead there are number of entries in a table defining the ranges of characters in the Font file. You will be able to get more details you should take a look at functions GetGlyphIndices/GetGlyphOutline in MSDN. I hope this can be fixed soon.
Also you will need to change the Character to return as WideChar to support unicode characters.