|
Microsoft Agent技术应用(5) { pwsz = new WCHAR[cch + 1]; MultiByteToWideChar(CP_ACP, 0, lpstr, -1, pwsz, cch); pwsz[cch] = '\0'; agentSaveState(); agentPlay(L"Read"); agentSpeak(pwsz); agentPlay(L"ReadReturn"); agentRestoreState(); delete pwsz; } GlobalUnlock(hglb); CloseClipboard(); } } } } 最后还须在程序退出时将当前窗口句柄从剪贴板监视队列移走: void RemoveClipSpy() { ChangeClipboardChain(g_hMainWnd, g_hNextWnd); }
(四) 与外部程序的接口 应用程序和AgentShell之间传递数据主要通过WM_COPYDATA消息实现,由于传递的数据类型各 有不同,所以需要定义一个数据结构来描述: strUCt AgentActionSTRUCT { WORD nAction; DWORD nD1; DWORD nD2; WCHAR sData[MAX_DATA_LEN]; }; nAction用来表示Agent应该执行的操作,如显示、表演等。nD1,nD2,sData用来记录传递的数据。
|