GetSaveFileNameW返回的结构体路径名缺少后缀
最近在做一个项目,具体是勾住某个软件的另存为操作,对另存为出来的文件进行别的处理
思路是用钩子勾住了软件另存为时使用的GetSaveFileNameW API
GetSaveFileNameW的原型如下
BOOL GetSaveFileName(LPOPENFILENAME Ipofn)
在我们成功勾住了GetSaveFileName,然后读lpofn里面的内容时,诡异的事情发生了。
lpofn里面的lpstrFile存放的是文件全路径,但是只有到文件名部分,没有后缀。
比如,另存为的文件是F:\Doc\test.doc,但是lpofn->lpstrFile内容只有F:\Doc\test这部分,没有后缀。
按理说GetSaveFileName是写好的API,即使是不同的应用程序,但是在使用这个API之后,返回应该是一样的啊,为啥这个程序会缺斤少两呢。
然后我们又勾住NtCreateFile,生成文件时又变成带后缀的完整路径了,百思不得其解,还望各位大牛不吝赐教