NVDA Helper
In-process and lite high-speed utilities for NVDA
|
#include <vector>
#include <algorithm>
#include <optional>
#include <map>
#include <set>
#include <list>
#include <windows.h>
#include <usp10.h>
#include "nvdaHelperRemote.h"
#include "dllmain.h"
#include <common/apiHook.h>
#include "displayModel.h"
#include <common/log.h>
#include <remote/nvdaControllerInternal.h>
#include <common/lock.h>
#include "gdiHooks.h"
Go to the source code of this file.
Classes | |
class | TextInsertionTracker |
class | GlyphTranslator |
class | GlyphTranslatorCache |
class | hookClass_TextOut< charType > |
class | hookClass_PolyTextOut< WA_POLYTEXT > |
class | hookClass_ExtTextOut< charType > |
struct | ScriptStringAnalyseArgs_t |
Typedefs | |
typedef int(WINAPI * | FillRect_funcType) (HDC, const RECT *, HBRUSH) |
typedef BOOL(WINAPI * | DrawFocusRect_funcType) (HDC, const RECT *) |
typedef BOOL(WINAPI * | PatBlt_funcType) (HDC, int, int, int, int, DWORD) |
typedef HDC(WINAPI * | BeginPaint_funcType) (HWND, LPPAINTSTRUCT) |
typedef HDC(WINAPI * | CreateCompatibleDC_funcType) (HDC) |
typedef HGDIOBJ(WINAPI * | SelectObject_funcType) (HDC, HGDIOBJ) |
typedef BOOL(WINAPI * | DeleteDC_funcType) (HDC) |
typedef BOOL(WINAPI * | BitBlt_funcType) (HDC, int, int, int, int, HDC, int, int, DWORD) |
typedef BOOL(WINAPI * | StretchBlt_funcType) (HDC, int, int, int, int, HDC, int, int, int, int, DWORD) |
typedef BOOL(WINAPI * | GdiTransparentBlt_funcType) (HDC, int, int, int, int, HDC, int, int, int, int, UINT) |
typedef map< SCRIPT_STRING_ANALYSIS, ScriptStringAnalyseArgs_t > | ScriptStringAnalyseArgsByAnalysis_t |
typedef HRESULT(WINAPI * | ScriptStringAnalyse_funcType) (HDC, const void *, int, int, int, DWORD, int, SCRIPT_CONTROL *, SCRIPT_STATE *, const int *, SCRIPT_TABDEF *, const BYTE *, SCRIPT_STRING_ANALYSIS *) |
typedef HRESULT(WINAPI * | ScriptStringFree_funcType) (SCRIPT_STRING_ANALYSIS *) |
typedef HRESULT(WINAPI * | ScriptStringOut_funcType) (SCRIPT_STRING_ANALYSIS, int, int, UINT, const RECT *, int, int, BOOL) |
typedef HRESULT(WINAPI * | ScriptTextOut_funcType) (const HDC, SCRIPT_CACHE *, int, int, UINT, const RECT *, const SCRIPT_ANALYSIS *, const WCHAR *, int, const WORD *, int, const int *, const int *, const GOFFSET *) |
typedef BOOL(WINAPI * | ScrollWindow_funcType) (HWND, int, int, const RECT *, const RECT *) |
typedef BOOL(WINAPI * | ScrollWindowEx_funcType) (HWND, int, int, const RECT *, const RECT *, HRGN, LPRECT, UINT) |
typedef BOOL(WINAPI * | DestroyWindow_funcType) (HWND) |
Functions | |
size_t | WA_strlen (const char *str) |
size_t | WA_strlen (const wchar_t *str) |
char * | WA_strncpy (char *dest, const char *source, size_t size) |
wchar_t * | WA_strncpy (wchar_t *dest, const wchar_t *source, size_t size) |
void CALLBACK | textChangeNotifyTimerProc (HWND hwnd, UINT msg, UINT_PTR timerID, DWORD time) |
void | queueTextChangeNotify (HWND hwnd, RECT &rc) |
displayModel_t * | acquireDisplayModel (HDC hdc, BOOL noCreate=FALSE) |
Fetches and or creates a new displayModel for the window of the given device context. | |
void | dcPointsToScreenPoints (HDC hdc, POINT *points, int count, bool relative) |
converts given points from dc coordinates to screen coordinates. | |
void | swapBuffer (WORD *array, int length) |
std::vector< BYTE > | getTTFData (HDC hdc, const char *tableName) |
std::pair< std::vector< POINT >, SIZE > | calcCharExtentsVecFromLpdx (const int cbCount, const int *lpdx, const TEXTMETRIC &tm, const UINT &fuOptions, const HDC &hdc) |
std::pair< std::vector< POINT >, SIZE > | calcCharExtentsVec (const int cbCount, const TEXTMETRIC &tm, const bool fromGlyphs, const HDC &hdc, const wchar_t *lpString, std::wstring &newText) |
void | ExtTextOutHelper (displayModel_t *model, HDC hdc, int x, int y, const RECT *lprc, UINT fuOptions, UINT textAlign, BOOL stripHotkeyIndicator, const wchar_t *lpString, const int codePage, const int *lpdx, int cbCount, LPSIZE resultTextSize, int direction) |
Given a displayModel, this function clears a rectangle, and inserts a chunk, for the given text, using the given offsets and rectangle etc. | |
void | ExtTextOutHelper (displayModel_t *model, HDC hdc, int x, int y, const RECT *lprc, UINT fuOptions, UINT textAlign, BOOL stripHotkeyIndicator, const char *lpString, const int codePage, const int *lpdx, int cbCount, LPSIZE resultTextSize, int direction) |
an overload of ExtTextOutHelper to work with ansi strings. | |
int WINAPI | fake_FillRect (HDC hdc, const RECT *lprc, HBRUSH hBrush) |
BOOL WINAPI | fake_DrawFocusRect (HDC hdc, const RECT *lprc) |
BOOL WINAPI | fake_PatBlt (HDC hdc, int nxLeft, int nxTop, int nWidth, int nHeight, DWORD dwRop) |
HDC WINAPI | fake_BeginPaint (HWND hwnd, LPPAINTSTRUCT lpPaint) |
HDC WINAPI | fake_CreateCompatibleDC (HDC hdc) |
HGDIOBJ WINAPI | fake_SelectObject (HDC hdc, HGDIOBJ hGdiObj) |
BOOL WINAPI | fake_DeleteDC (HDC hdc) |
void | StretchBlt_helper (HDC hdcDest, int nXDest, int nYDest, int nWidthDest, int nHeightDest, HDC hdcSrc, int nXSrc, int nYSrc, int nWidthSrc, int nHeightSrc, DWORD dwRop) |
BOOL WINAPI | fake_BitBlt (HDC hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, HDC hdcSrc, int nXSrc, int nYSrc, DWORD dwRop) |
BOOL WINAPI | fake_StretchBlt (HDC hdcDest, int nXDest, int nYDest, int nWidthDest, int nHeightDest, HDC hdcSrc, int nXSrc, int nYSrc, int nWidthSrc, int nHeightSrc, DWORD dwRop) |
BOOL WINAPI | fake_GdiTransparentBlt (HDC hdcDest, int nXDest, int nYDest, int nWidthDest, int nHeightDest, HDC hdcSrc, int nXSrc, int nYSrc, int nWidthSrc, int nHeightSrc, UINT crTransparent) |
int | charSetToCodePage (int charset) |
HRESULT WINAPI | fake_ScriptStringAnalyse (HDC hdc, const void *pString, int cString, int cGlyphs, int iCharset, DWORD dwFlags, int iRectWidth, SCRIPT_CONTROL *psControl, SCRIPT_STATE *psState, const int *piDx, SCRIPT_TABDEF *pTabdef, const BYTE *pbInClass, SCRIPT_STRING_ANALYSIS *pssa) |
HRESULT WINAPI | fake_ScriptStringFree (SCRIPT_STRING_ANALYSIS *pssa) |
HRESULT WINAPI | fake_ScriptStringOut (SCRIPT_STRING_ANALYSIS ssa, int iX, int iY, UINT uOptions, const RECT *prc, int iMinSel, int iMaxSel, BOOL fDisabled) |
HRESULT WINAPI | fake_ScriptTextOut (const HDC hdc, SCRIPT_CACHE *psc, int x, int y, UINT fuOptions, const RECT *lprc, const SCRIPT_ANALYSIS *psa, const WCHAR *pwcReserved, int iReserved, const WORD *pwGlyphs, int cGlyphs, const int *piAdvanced, const int *piJustify, const GOFFSET *pGoffset) |
BOOL WINAPI | fake_ScrollWindow (HWND hwnd, int XAmount, int YAmount, const RECT *lpRect, const RECT *lpClipRect) |
BOOL WINAPI | fake_ScrollWindowEx (HWND hwnd, int dx, int dy, const RECT *prcScroll, const RECT *prcClip, HRGN hrgnUpdate, LPRECT prcUpdate, UINT flags) |
BOOL WINAPI | fake_DestroyWindow (HWND hwnd) |
void | gdiHooks_inProcess_initialize () |
void | gdiHooks_inProcess_terminate () |
typedef int(WINAPI * FillRect_funcType) (HDC, const RECT *, HBRUSH) |
typedef BOOL(WINAPI * DrawFocusRect_funcType) (HDC, const RECT *) |
typedef HDC(WINAPI * BeginPaint_funcType) (HWND, LPPAINTSTRUCT) |
typedef HDC(WINAPI * CreateCompatibleDC_funcType) (HDC) |
typedef HGDIOBJ(WINAPI * SelectObject_funcType) (HDC, HGDIOBJ) |
typedef BOOL(WINAPI * DeleteDC_funcType) (HDC) |
typedef BOOL(WINAPI * StretchBlt_funcType) (HDC, int, int, int, int, HDC, int, int, int, int, DWORD) |
typedef BOOL(WINAPI * GdiTransparentBlt_funcType) (HDC, int, int, int, int, HDC, int, int, int, int, UINT) |
typedef map<SCRIPT_STRING_ANALYSIS,ScriptStringAnalyseArgs_t> ScriptStringAnalyseArgsByAnalysis_t |
typedef HRESULT(WINAPI * ScriptStringAnalyse_funcType) (HDC, const void *, int, int, int, DWORD, int, SCRIPT_CONTROL *, SCRIPT_STATE *, const int *, SCRIPT_TABDEF *, const BYTE *, SCRIPT_STRING_ANALYSIS *) |
typedef HRESULT(WINAPI * ScriptStringFree_funcType) (SCRIPT_STRING_ANALYSIS *) |
typedef HRESULT(WINAPI * ScriptStringOut_funcType) (SCRIPT_STRING_ANALYSIS, int, int, UINT, const RECT *, int, int, BOOL) |
typedef HRESULT(WINAPI * ScriptTextOut_funcType) (const HDC, SCRIPT_CACHE *, int, int, UINT, const RECT *, const SCRIPT_ANALYSIS *, const WCHAR *, int, const WORD *, int, const int *, const int *, const GOFFSET *) |
typedef BOOL(WINAPI * ScrollWindowEx_funcType) (HWND, int, int, const RECT *, const RECT *, HRGN, LPRECT, UINT) |
typedef BOOL(WINAPI * DestroyWindow_funcType) (HWND) |
size_t WA_strlen | ( | const char * | str | ) |
size_t WA_strlen | ( | const wchar_t * | str | ) |
char * WA_strncpy | ( | char * | dest, |
const char * | source, | ||
size_t | size ) |
wchar_t * WA_strncpy | ( | wchar_t * | dest, |
const wchar_t * | source, | ||
size_t | size ) |
void CALLBACK textChangeNotifyTimerProc | ( | HWND | hwnd, |
UINT | msg, | ||
UINT_PTR | timerID, | ||
DWORD | time ) |
References nvdaControllerInternal_displayModelTextChangeNotify(), and textChangeNotifications.
Referenced by gdiHooks_inProcess_initialize().
void queueTextChangeNotify | ( | HWND | hwnd, |
RECT & | rc ) |
References textChangeNotifications, and windowsForTextChangeNotifications.
Referenced by ExtTextOutHelper(), and StretchBlt_helper().
|
inline |
Fetches and or creates a new displayModel for the window of the given device context.
If this function returns a displayModel, you must call release on it when you no longer need it.
hdc | a handle of the device context who's window the displayModel is for. |
noCreate | If true a display model will not be created if it does not exist. |
References LockableAutoFreeObject::acquire(), displayModelsByMemoryDC, displayModelsByWindow, and LOG_DEBUG.
Referenced by fake_BeginPaint(), fake_DrawFocusRect(), fake_FillRect(), fake_PatBlt(), fake_ScriptStringOut(), fake_SelectObject(), hookClass_ExtTextOut< charType >::fakeFunction(), hookClass_PolyTextOut< WA_POLYTEXT >::fakeFunction(), hookClass_TextOut< charType >::fakeFunction(), and StretchBlt_helper().
converts given points from dc coordinates to screen coordinates.
hdc | a handle to a device context |
points | a pointer to the points you wish to convert. |
count | the number of points you want to convert. |
Referenced by ExtTextOutHelper(), fake_DrawFocusRect(), fake_FillRect(), fake_PatBlt(), and StretchBlt_helper().
References SWAPWORD.
Referenced by getTTFData().
std::vector< BYTE > getTTFData | ( | HDC | hdc, |
const char * | tableName ) |
References LOG_DEBUG, and swapBuffer().
Referenced by GlyphTranslatorCache::fetchGlyphTranslator(), and GlyphTranslator::GlyphTranslator().
std::pair< std::vector< POINT >, SIZE > calcCharExtentsVecFromLpdx | ( | const int | cbCount, |
const int * | lpdx, | ||
const TEXTMETRIC & | tm, | ||
const UINT & | fuOptions, | ||
const HDC & | hdc ) |
Referenced by ExtTextOutHelper().
std::pair< std::vector< POINT >, SIZE > calcCharExtentsVec | ( | const int | cbCount, |
const TEXTMETRIC & | tm, | ||
const bool | fromGlyphs, | ||
const HDC & | hdc, | ||
const wchar_t * | lpString, | ||
std::wstring & | newText ) |
Referenced by ExtTextOutHelper().
void ExtTextOutHelper | ( | displayModel_t * | model, |
HDC | hdc, | ||
int | x, | ||
int | y, | ||
const RECT * | lprc, | ||
UINT | fuOptions, | ||
UINT | textAlign, | ||
BOOL | stripHotkeyIndicator, | ||
const wchar_t * | lpString, | ||
const int | codePage, | ||
const int * | lpdx, | ||
int | cbCount, | ||
LPSIZE | resultTextSize, | ||
int | direction ) |
Given a displayModel, this function clears a rectangle, and inserts a chunk, for the given text, using the given offsets and rectangle etc.
This function is used by many of the hook functions.
model | a pointer to a displayModel | |
hdc | a handle to the device context that was used to write the text originally. | |
[in] | x | the x coordinate (in device units) where the text should start from (depending on textAlign flags, this could be the left, center, or right of the text). |
[in] | y | the y coordinate (in device units) where the text should start from (depending on textAlign flags, this could be the top, or bottom of the text). |
[in] | lprc | a pointer to the rectangle that should be cleared. If lprc is NULL, or ETO_OPAQUE is not in fuOptions, then only the rectangle bounding the text will be cleared. |
[in] | fuOptions | flags accepted by GDI32's ExtTextOut. |
[in] | textAlign | possible flags returned by GDI32's GetTextAlign. |
[in] | lpString | the string of unicode text you wish to record. |
[in] | codePage | not used in the unicode version |
[in] | lpdx | an optional array of x (or x and y paires if ETO_PDY is set) that describes where the next character starts relative to the origin of the current character. |
[in] | cbCount | the length of the string in characters. |
[out] | resultTextSize | An optional pointer to a SIZE structure that should be filled with the size of the text. |
[in] | direction | >0 for left to right, <0 for right to left, 0 for neutral or unknown. Text must still be passed in in visual order. |
References BOOL(), calcCharExtentsVec(), calcCharExtentsVecFromLpdx(), displayModel_t::clearRectangle(), dcPointsToScreenPoints(), GlyphTranslator::decRef(), GlyphTranslatorCache::fetchGlyphTranslator(), glyphTranslatorCache, displayModel_t::insertChunk(), LOG_DEBUG, queueTextChangeNotify(), TextInsertionTracker::reportTextInsertion(), and GlyphTranslator::translateGlyphs().
Referenced by ExtTextOutHelper(), fake_ScriptStringOut(), hookClass_ExtTextOut< charType >::fakeFunction(), hookClass_PolyTextOut< WA_POLYTEXT >::fakeFunction(), and hookClass_TextOut< charType >::fakeFunction().
void ExtTextOutHelper | ( | displayModel_t * | model, |
HDC | hdc, | ||
int | x, | ||
int | y, | ||
const RECT * | lprc, | ||
UINT | fuOptions, | ||
UINT | textAlign, | ||
BOOL | stripHotkeyIndicator, | ||
const char * | lpString, | ||
const int | codePage, | ||
const int * | lpdx, | ||
int | cbCount, | ||
LPSIZE | resultTextSize, | ||
int | direction ) |
an overload of ExtTextOutHelper to work with ansi strings.
lpString | the string of ansi text you wish to record. |
codePage | the code page used for the string which will be converted to unicode |
References ExtTextOutHelper().
int WINAPI fake_FillRect | ( | HDC | hdc, |
const RECT * | lprc, | ||
HBRUSH | hBrush ) |
References acquireDisplayModel(), displayModel_t::clearRectangle(), dcPointsToScreenPoints(), real_FillRect, and LockableAutoFreeObject::release().
Referenced by gdiHooks_inProcess_initialize().
BOOL WINAPI fake_DrawFocusRect | ( | HDC | hdc, |
const RECT * | lprc ) |
References acquireDisplayModel(), BOOL(), dcPointsToScreenPoints(), displayModel_t::getFocusRect(), displayModel_t::hwnd, nvdaControllerInternal_drawFocusRectNotify(), real_DrawFocusRect, LockableAutoFreeObject::release(), and displayModel_t::setFocusRect().
Referenced by gdiHooks_inProcess_initialize().
References acquireDisplayModel(), BOOL(), displayModel_t::clearRectangle(), dcPointsToScreenPoints(), real_PatBlt, and LockableAutoFreeObject::release().
Referenced by gdiHooks_inProcess_initialize().
HDC WINAPI fake_BeginPaint | ( | HWND | hwnd, |
LPPAINTSTRUCT | lpPaint ) |
References acquireDisplayModel(), displayModel_t::clearRectangle(), real_BeginPaint, and LockableAutoFreeObject::release().
Referenced by gdiHooks_inProcess_initialize().
HDC WINAPI fake_CreateCompatibleDC | ( | HDC | hdc | ) |
References displayModelsByMemoryDC, and real_CreateCompatibleDC.
Referenced by gdiHooks_inProcess_initialize().
HGDIOBJ WINAPI fake_SelectObject | ( | HDC | hdc, |
HGDIOBJ | hGdiObj ) |
References acquireDisplayModel(), displayModel_t::clearAll(), real_SelectObject, and LockableAutoFreeObject::release().
Referenced by gdiHooks_inProcess_initialize().
BOOL WINAPI fake_DeleteDC | ( | HDC | hdc | ) |
References BOOL(), displayModelsByMemoryDC, and real_DeleteDC.
Referenced by gdiHooks_inProcess_initialize().
BOOL WINAPI fake_BitBlt | ( | HDC | hdcDest, |
int | nXDest, | ||
int | nYDest, | ||
int | nWidth, | ||
int | nHeight, | ||
HDC | hdcSrc, | ||
int | nXSrc, | ||
int | nYSrc, | ||
DWORD | dwRop ) |
References BOOL(), real_BitBlt, and StretchBlt_helper().
Referenced by gdiHooks_inProcess_initialize().
BOOL WINAPI fake_StretchBlt | ( | HDC | hdcDest, |
int | nXDest, | ||
int | nYDest, | ||
int | nWidthDest, | ||
int | nHeightDest, | ||
HDC | hdcSrc, | ||
int | nXSrc, | ||
int | nYSrc, | ||
int | nWidthSrc, | ||
int | nHeightSrc, | ||
DWORD | dwRop ) |
References BOOL(), real_StretchBlt, and StretchBlt_helper().
Referenced by gdiHooks_inProcess_initialize().
BOOL WINAPI fake_GdiTransparentBlt | ( | HDC | hdcDest, |
int | nXDest, | ||
int | nYDest, | ||
int | nWidthDest, | ||
int | nHeightDest, | ||
HDC | hdcSrc, | ||
int | nXSrc, | ||
int | nYSrc, | ||
int | nWidthSrc, | ||
int | nHeightSrc, | ||
UINT | crTransparent ) |
References BOOL(), real_GdiTransparentBlt, and StretchBlt_helper().
Referenced by gdiHooks_inProcess_initialize().
References LOG_ERROR.
Referenced by fake_ScriptStringOut().
HRESULT WINAPI fake_ScriptStringFree | ( | SCRIPT_STRING_ANALYSIS * | pssa | ) |
HRESULT WINAPI fake_ScriptStringOut | ( | SCRIPT_STRING_ANALYSIS | ssa, |
int | iX, | ||
int | iY, | ||
UINT | uOptions, | ||
const RECT * | prc, | ||
int | iMinSel, | ||
int | iMaxSel, | ||
BOOL | fDisabled ) |
References acquireDisplayModel(), allow_ScriptStringAnalyseArgsByAnalysis, BOOL(), charSetToCodePage(), criticalSection_ScriptStringAnalyseArgsByAnalysis, ExtTextOutHelper(), TextInsertionTracker::hasTrackedTextInsertion(), HRESULT(), real_ScriptStringOut, LockableAutoFreeObject::release(), and ScriptStringAnalyseArgsByAnalysis.
Referenced by gdiHooks_inProcess_initialize().
HRESULT WINAPI fake_ScriptTextOut | ( | const HDC | hdc, |
SCRIPT_CACHE * | psc, | ||
int | x, | ||
int | y, | ||
UINT | fuOptions, | ||
const RECT * | lprc, | ||
const SCRIPT_ANALYSIS * | psa, | ||
const WCHAR * | pwcReserved, | ||
int | iReserved, | ||
const WORD * | pwGlyphs, | ||
int | cGlyphs, | ||
const int * | piAdvanced, | ||
const int * | piJustify, | ||
const GOFFSET * | pGoffset ) |
References HRESULT(), LPVOID(), real_ScriptTextOut, and tls_index_curScriptTextOutScriptAnalysis.
Referenced by gdiHooks_inProcess_initialize().
BOOL WINAPI fake_DestroyWindow | ( | HWND | hwnd | ) |
References BOOL(), displayModelsByWindow, and real_DestroyWindow.
Referenced by gdiHooks_inProcess_initialize().
void gdiHooks_inProcess_initialize | ( | ) |
References allow_ScriptStringAnalyseArgsByAnalysis, apiHook_hookFunction_safe(), criticalSection_ScriptStringAnalyseArgsByAnalysis, fake_BeginPaint(), fake_BitBlt(), fake_CreateCompatibleDC(), fake_DeleteDC(), fake_DestroyWindow(), fake_DrawFocusRect(), fake_FillRect(), fake_GdiTransparentBlt(), fake_PatBlt(), fake_ScriptStringAnalyse(), fake_ScriptStringFree(), fake_ScriptStringOut(), fake_ScriptTextOut(), fake_ScrollWindow(), fake_ScrollWindowEx(), fake_SelectObject(), fake_StretchBlt(), nhAssert, real_BeginPaint, real_BitBlt, real_CreateCompatibleDC, real_DeleteDC, real_DestroyWindow, real_DrawFocusRect, real_FillRect, real_GdiTransparentBlt, real_PatBlt, real_ScriptStringAnalyse, real_ScriptStringFree, real_ScriptStringOut, real_ScriptTextOut, real_ScrollWindow, real_ScrollWindowEx, real_SelectObject, real_StretchBlt, textChangeNotifyTimerID, textChangeNotifyTimerProc(), tls_index_curScriptTextOutScriptAnalysis, and tls_index_textInsertionsCount.
Referenced by inProcess_initialize().
void gdiHooks_inProcess_terminate | ( | ) |
References allow_ScriptStringAnalyseArgsByAnalysis, GlyphTranslatorCache::cleanup(), criticalSection_ScriptStringAnalyseArgsByAnalysis, displayModelsByMemoryDC, displayModelsByWindow, glyphTranslatorCache, ScriptStringAnalyseArgsByAnalysis, textChangeNotifyTimerID, tls_index_curScriptTextOutScriptAnalysis, and tls_index_textInsertionsCount.
Referenced by inProcess_terminate().
map<HWND,int> windowsForTextChangeNotifications |
Referenced by displayModelRemote_requestTextChangeNotificationsForWindow(), and queueTextChangeNotify().
map<HWND,RECT> textChangeNotifications |
Referenced by queueTextChangeNotify(), and textChangeNotifyTimerProc().
UINT_PTR textChangeNotifyTimerID =0 |
Referenced by gdiHooks_inProcess_initialize(), and gdiHooks_inProcess_terminate().
DWORD tls_index_textInsertionsCount =TLS_OUT_OF_INDEXES |
DWORD tls_index_curScriptTextOutScriptAnalysis =TLS_OUT_OF_INDEXES |
displayModelsMap_t<HDC> displayModelsByMemoryDC |
Referenced by acquireDisplayModel(), fake_CreateCompatibleDC(), fake_DeleteDC(), and gdiHooks_inProcess_terminate().
displayModelsMap_t<HWND> displayModelsByWindow |
GlyphTranslatorCache glyphTranslatorCache |
Referenced by ExtTextOutHelper(), and gdiHooks_inProcess_terminate().
FillRect_funcType real_FillRect =NULL |
Referenced by fake_FillRect(), and gdiHooks_inProcess_initialize().
DrawFocusRect_funcType real_DrawFocusRect =NULL |
Referenced by fake_DrawFocusRect(), and gdiHooks_inProcess_initialize().
PatBlt_funcType real_PatBlt =NULL |
Referenced by fake_PatBlt(), and gdiHooks_inProcess_initialize().
BeginPaint_funcType real_BeginPaint =NULL |
Referenced by fake_BeginPaint(), and gdiHooks_inProcess_initialize().
CreateCompatibleDC_funcType real_CreateCompatibleDC =NULL |
Referenced by fake_CreateCompatibleDC(), and gdiHooks_inProcess_initialize().
SelectObject_funcType real_SelectObject =NULL |
Referenced by fake_SelectObject(), and gdiHooks_inProcess_initialize().
DeleteDC_funcType real_DeleteDC =NULL |
Referenced by fake_DeleteDC(), and gdiHooks_inProcess_initialize().
BitBlt_funcType real_BitBlt =NULL |
Referenced by fake_BitBlt(), and gdiHooks_inProcess_initialize().
StretchBlt_funcType real_StretchBlt =NULL |
Referenced by fake_StretchBlt(), and gdiHooks_inProcess_initialize().
GdiTransparentBlt_funcType real_GdiTransparentBlt =NULL |
Referenced by fake_GdiTransparentBlt(), and gdiHooks_inProcess_initialize().
ScriptStringAnalyseArgsByAnalysis_t ScriptStringAnalyseArgsByAnalysis |
CRITICAL_SECTION criticalSection_ScriptStringAnalyseArgsByAnalysis |
BOOL allow_ScriptStringAnalyseArgsByAnalysis =FALSE |
ScriptStringAnalyse_funcType real_ScriptStringAnalyse =NULL |
Referenced by fake_ScriptStringAnalyse(), and gdiHooks_inProcess_initialize().
ScriptStringFree_funcType real_ScriptStringFree =NULL |
Referenced by fake_ScriptStringFree(), and gdiHooks_inProcess_initialize().
ScriptStringOut_funcType real_ScriptStringOut =NULL |
Referenced by fake_ScriptStringOut(), and gdiHooks_inProcess_initialize().
ScriptTextOut_funcType real_ScriptTextOut =NULL |
Referenced by fake_ScriptTextOut(), and gdiHooks_inProcess_initialize().
ScrollWindow_funcType real_ScrollWindow =NULL |
Referenced by fake_ScrollWindow(), and gdiHooks_inProcess_initialize().
ScrollWindowEx_funcType real_ScrollWindowEx =NULL |
Referenced by fake_ScrollWindowEx(), and gdiHooks_inProcess_initialize().
DestroyWindow_funcType real_DestroyWindow =NULL |
Referenced by fake_DestroyWindow(), and gdiHooks_inProcess_initialize().