NVDA Helper
In-process and lite high-speed utilities for NVDA
nvdaHelperLocal.cpp File Reference
#include <cstdio>
#include <sstream>
#include <algorithm>
#include <rpc.h>
#include <sddl.h>
#include <common/log.h>
#include <common/apiHook.h>
#include <local/nvdaControllerInternal.h>
#include "nvdaHelperLocal.h"
#include "dllImportTableHooks.h"
#include "rpcsrv.h"

Go to the source code of this file.

Classes

struct  _fwct_info
 

Functions

handle_t createRemoteBindingHandle (wchar_t *uuidString)
 
 void (__stdcall *_notifySendMessageCancelled)()
 
LRESULT cancellableSendMessageTimeout (HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam, UINT fuFlags, UINT uTimeout, PDWORD_PTR lpdwResult)
 
LRESULT WINAPI fake_SendMessageW (HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
 
LRESULT WINAPI fake_SendMessageTimeoutW (HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam, UINT fuFlags, UINT uTimeout, PDWORD_PTR lpdwResult)
 
BOOL WINAPI fake_OpenClipboard (HWND hwndOwner)
 
void nvdaHelperLocal_initialize (bool secureMode)
 
void nvdaHelperLocal_terminate ()
 
void logMessage (int level, const wchar_t *msg)
 
BOOL CALLBACK _fwct_enumThreadWindowsProc (HWND hwnd, LPARAM lParam)
 
HWND findWindowWithClassInThread (long threadID, wchar_t *windowClassName, BOOL checkVisible)
 

Variables

decltype(&SendMessageW) real_SendMessageW = nullptr
 
decltype(&SendMessageTimeoutW) real_SendMessageTimeoutW = nullptr
 
decltype(&OpenClipboard) real_OpenClipboard = nullptr
 
const UINT CANCELSENDMESSAGE_CHECK_INTERVAL = 400
 
DWORD mainThreadId = 0
 
HANDLE cancelCallEvent = NULL
 

Function Documentation

◆ createRemoteBindingHandle()

handle_t createRemoteBindingHandle ( wchar_t * uuidString)

References LOG_ERROR.

◆ void()

void ( __stdcall * _notifySendMessageCancelled)

◆ cancellableSendMessageTimeout()

LRESULT cancellableSendMessageTimeout ( HWND hwnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam,
UINT fuFlags,
UINT uTimeout,
PDWORD_PTR lpdwResult )

◆ fake_SendMessageW()

LRESULT WINAPI fake_SendMessageW ( HWND hwnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam )

◆ fake_SendMessageTimeoutW()

LRESULT WINAPI fake_SendMessageTimeoutW ( HWND hwnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam,
UINT fuFlags,
UINT uTimeout,
PDWORD_PTR lpdwResult )

◆ fake_OpenClipboard()

BOOL WINAPI fake_OpenClipboard ( HWND hwndOwner)

◆ nvdaHelperLocal_initialize()

◆ nvdaHelperLocal_terminate()

void nvdaHelperLocal_terminate ( )

◆ logMessage()

void logMessage ( int level,
const wchar_t * msg )

◆ _fwct_enumThreadWindowsProc()

◆ findWindowWithClassInThread()

HWND findWindowWithClassInThread ( long threadID,
wchar_t * windowClassName,
BOOL checkVisible )

Variable Documentation

◆ real_SendMessageW

decltype(&SendMessageW) real_SendMessageW = nullptr

◆ real_SendMessageTimeoutW

decltype(&SendMessageTimeoutW) real_SendMessageTimeoutW = nullptr

◆ real_OpenClipboard

decltype(&OpenClipboard) real_OpenClipboard = nullptr

◆ CANCELSENDMESSAGE_CHECK_INTERVAL

const UINT CANCELSENDMESSAGE_CHECK_INTERVAL = 400

◆ mainThreadId

DWORD mainThreadId = 0

◆ cancelCallEvent