0
我正在使用WinForms,並試圖讓SetNotifyWindowMessage()向WndProc發送消息,但它不這樣做。爲什麼SAPI的ISpNotifySource :: SetNotifyWindowMessage()將通知發送給我的WndProc()?
函數調用:
HRESULT initSAPI(HWND hWnd)
{
...
if(FAILED(g_cpRecoCtxt->SetNotifyWindowMessage(hWnd, WM_RECOEVENT, 0, 0)))
MessageBoxW(hWnd, L"Error sending window message", L"SAPI Initialization Error", 0);
...
}
WndProc中:
LRESULT WndProc (HWND hWnd, UINT message, WPARAM wparam, LPARAM lparam)
{
case WM_RECOEVENT:
ProcessRecoEvent(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
注:initSAPI()被調用鼠標點擊事件。
是的,我已將興趣設置爲「SPEI_RECOGNITION」。問題是,事件發生時,它沒有按照要求做的事情做。 – manuel 2010-04-15 03:25:46
您使用的是inproc還是共享識別器?你必須爲inproc識別器(特別是設置引擎)做更多的初始化操作,如果你不設置引擎,SAPI不會給你一個錯誤代碼,但它也不會做任何識別。 – 2010-04-15 16:14:50
我正在使用共享識別器。我已經完成了引擎,上下文,語法和規則設置。你怎麼看? – manuel 2010-04-19 04:28:58