Mal schnell was rauskopiert. Funktioniert mit japanischen Text und Tahoma vs. Arial
Unicode MS.
Delphi-Quellcode:
var pwOutGlyphs: PWord;
i, cwstr: Integer;
wstr: String;
erg: Cardinal;
begin
wstr:=Edit1.Text;
cwstr:=Length(wstr);
if wstr='' then exit;
GetMem(pwOutGlyphs, cwstr*2);
ZeroMemory(pwOutGlyphs, cwstr*2);
erg:=GetGlyphIndices(Canvas.Handle, @wstr[1], cwstr, pwOutGlyphs, GGI_MARK_NONEXISTING_GLYPHS);
if erg=GDI_ERROR then RaiseLastOSError;
ExtTextOut(Canvas.Handle, 10, 6, ETO_GLYPH_INDEX, Nil, PChar(pwOutGlyphs), cwstr, Nil);
Memo1.Clear;
for i:=0 to cwstr-1 do Memo1.Lines.Add(IntToHex(PWordArray(pwOutGlyphs)[i], 4));
end;
Edit: War noch von D2005.