Word 2003/Word Viewer 2003 Top Ruler Numbers API Call here BOOL WINAPI TextOutA( _In_ HDC hdc, _In_ INT nXStart, _In_ INT nYStart, _In_reads_(cchString) LPCSTR lpString, _In_ INT cchString) bResult = TextOutW(hdc, nXStart, nYStart, StringU.Buffer, StringU.Length / sizeof(WCHAR)); ---------------------------------------------------------------------------------------------------- BOOL WINAPI TextOutW( _In_ HDC hdc, _In_ INT nXStart, _In_ INT nYStart, _In_reads_(cchString) LPCWSTR lpString, _In_ INT cchString) return ExtTextOutW(hdc, nXStart, nYStart, 0, NULL, (LPWSTR)lpString, cchString, NULL); ---------------------------------------------------------------------------------------------------- Word 2003/Word Viewer 2003 Left Gutter Numbers API Call here ExtTextOutA( _In_ HDC hdc, _In_ INT x, _In_ INT y, _In_ UINT fuOptions, _In_opt_ const RECT *lprc, _In_reads_opt_(cch) LPCSTR lpString, _In_ UINT cch, _In_reads_opt_(cch) const INT *lpDx) return ExtTextOutW(hdc, x, y, fuOptions, lprc, (LPCWSTR)lpString, cch, lpDx); ret = ExtTextOutW(hdc, x, y, fuOptions, lprc, StringU.Buffer, cch, lpDx); ---------------------------------------------------------------------------------------------------- First Common code for top ruler and left gutter numbers API Calls BOOL WINAPI ExtTextOutW( _In_ HDC hdc, _In_ INT x, _In_ INT y, _In_ UINT fuOptions, _In_opt_ const RECT *lprc, _In_reads_opt_(cwc) LPCWSTR lpString, _In_ UINT cwc, _In_reads_opt_(cwc) const INT *lpDx) return NtGdiExtTextOutW(hdc, x, y, fuOptions, (LPRECT)lprc, (LPWSTR)lpString, cwc, (LPINT)lpDx, 0); ----------------------------------------------------------------------------------------------------