全局hook怎么记录

全局hook如何记录
比如我想hook全局消息,用WH_GETMESSAGE,写在一个dll里,我希望把hook到得系统消息能够记录在一个txt文本内,所以在dll内定义了
#pragma data_seg( ".sdata" )
wofstream wout;
#pragma data_seg()
#pragma comment( linker,"/section:.sdata,rws" )

但是现在发现它只能记录调用该dll的我写的程序的那些消息,而对于全局其他进程的消息无法记录,虽然我能肯定确实截获到了,因为我在Hook函数中用messagebeep()测过。
想请问要实现我的目的有什么方法么

------解决方案--------------------
wofstream wout
可不可以共享写?

你自己的DLL独占的话,其他的就写不进去了。
------解决方案--------------------
就是想把HOOK到的消息写到文件里呗?
在dll中加入
Void WriteLog(TCHAR buf[200])
{
FILE *fp;
fp=fopen("C:\\Log.txt","a+");
fputs(buf,fp);
fputs("\n",fp);
fclose(fp);
}
然后想写的时候把要写的字符串用wsprintf格式一下,传给WriteLog就OK了。