well, i think i have reached a solution for your first problem...
which is, u want to give ExtTextOut a string, and it draws it, without shaping, or ReOrdering...
now here is what i found out...
when u call ExtTextOut with the flag ETO_GLYPH_INDEX, the input string lpString, is not a
Unicode string oran ASCII string, its an INDEX string, that means (from what i understand) that
lpString is a Double-Byte string of Glyph indices relative to the current selected font in the given
display context...
How to Convert to the magik Index string..?? --> GetCharacterPlacement()...
GetCharacterPlacement takes a Single-Byte string, and returns a Double-Byte String of Indices
now to give GetCharacterPlacement a single-byte string containing arabic chars, you have
to convert from wide charecter (usually U+0637) to CP-1256 which is windows code page
for arabic (see Arabeyes' resources page) for example... 0x0627 => 0xc7
someone from the senior Arabeyes members, should be able to help with this easily...
and most important, in the PuTTY Configuration Dialog, goto Window/ Appearance---
choose a font and choose Arabic script (to turn the font's Code Page to arabic)...
well, enough said... here is my code changes...
at the end of the do_text() function there is a comment that says /* And 'normal' unicode characters */
look for the following ExtTextOut(), and add this before it...
//===================
GCP_RESULTS gcpr;
char buff1[1024];
char buff2[1024];
char buff4[1024];
ZeroMemory(buff1, 1020);
ZeroMemory(buff2, 1020);
ZeroMemory(buff4, 1020); {
int ak;
for(ak=0; ak < 1020; ak++)
buff4[ak] = GCPCLASS_NEUTRAL;
} ZeroMemory(&gcpr, sizeof(gcpr));
gcpr.lStructSize = sizeof(gcpr);
gcpr.lpGlyphs = buff1;
gcpr.lpOutString = buff2;
gcpr.lpClass = buff4;
gcpr.nGlyphs = 1020;{
// this is a static array i wrote, to show you what charecters should be used...
char temp1[] = { 0xd8, 0xda, 0xd9, 0xc7, 0xda, 0xd9, 0xda, 0xd9, 0x0};
GetCharacterPlacement(hdc, temp1, 8, 0, &gcpr, FLI_MASK | GCP_CLASSIN)
// GetCharacterPlacement() parses temp1 according to gcpr.lpClass
// and returns the Glyph Index in gcpr.lpGlyph...
}
ExtTextOut(hdc, x,
y - font_height * (lattr == LATTR_BOT) + text_adjust,
ETO_GLYPH_INDEX | ETO_CLIPPED | ETO_OPAQUE, &line_box, buff1, 8, IpDx);
// the lpString used here is buff1, which is gcpr.lpGlyph...
//==============================
well... try it and tell me how it went...
_________________________________________________________________
Add photos to your e-mail with MSN 8. Get 2 months FREE*. http://join.msn.com/?page=features/featuredemail
_______________________________________________ Developer mailing list [EMAIL PROTECTED] http://lists.arabeyes.org/mailman/listinfo/developer

