首页 / 软件开发 / C++ / 如何在MSWord中加入MSAgent
如何在MSWord中加入MSAgent2010-11-22赖锋在每天的工作中使用Word是必须的工作,在使用MSWord的时候,使用帮助能 帮助我们省下不少的时间,可是每天使用Word的时候都是对着限定的几个 Assistant, 感觉有点闷 ,当我在网上看到微软推出的MSAgent技术时,我想, 为何不可以有这些角色用到MSWord中去呢? 虽然不可能做到MSWord中的所有功能 ,不过,我想在MSWord中加入一些MSWord中的Assistant所没有的功能提示也不 错。使用 钩子技术, COM。就可以帮助实现这个功能。实现工具 VC++ 6.0, 辅助工具 Spy++。步骤:建立DLL,使用该DLL设置钩子建立钩子函数处理消息利用MSAgent处理相应的消息程序的源代码说明,HookMsg.cpp:#pragma data_seg( ".SHARED" )
HWND gs_hClient = NULL; // Globle shared variable。
// It""s the dealing message window
HWND gs_hServer = NULL;
HINSTANCE g_hInst;
HHOOK g_hHook;
#pragma data_seg()
#pragma comment( linker, "/SECTION:.SHARED,RWS")
gs_hClient 为监视的程序句柄,其所产生的消息将会由 gs_hSever 的消息 处理程序句柄处理,g_hInst 为钩子所在的dll 的Module 中。 g_hHook 为钩子句柄。主要是在SetHook 和 MsgHookProc 中。SetHook 中
g_hHook = ::SetWindowsHookEx(
WH_CALLWNDPROC,
(HOOKPROC) MsgHookProc,
g_hInst,
::GetWindowThreadProcessId( gs_hClient, NULL ) );