char str[1024]; int len = WideCharToMultiByte(mCodePage, 0, aString, aLength, str, sizeof(str), nsnull, nsnull); if (len) { ::ExtTextOutA(aDC, aX, aY, 0, NULL, str, len, NULL); }
if (mUnderlinedOrStrikeOut) { if (IsWin95OrWin98()) {   SIZE size; ::GetTextExtentPoint32W(aDC, aString, aLength, &size); size.cx -= mOverhangCorrection; RECT clipRect; clipRect.top = aY - size.cy; clipRect.bottom = aY + size.cy;  clipRect.left = aX; clipRect.right = aX + size.cx; NS_ExtTextOutW(aDC, this, aX, aY, ETO_CLIPPED, &clipRect, aString, aLength, NULL); return; } }   NS_ExtTextOutW(aDC, this, aX, aY, 0, NULL, aString, aLength, NULL);
nsFontSubset::DrawString(HDC aDC, PRInt32 aX, PRInt32 aY,  const PRUnichar* aString, PRUint32 aLength){  // XXX allocate on heap if string is too long  char str[1024];  int len = WideCharToMultiByte(mCodePage, 0, aString, aLength, str,    sizeof(str), nsnull, nsnull);  if (len) {    ::ExtTextOutA(aDC, aX, aY, 0, NULL, str, len, NULL);  }}