Chinaunix首页 | 论坛 | 博客
  • 博客访问: 78697
  • 博文数量: 24
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 161
  • 用 户 组: 普通用户
  • 注册时间: 2015-01-04 17:48
文章分类

全部博文(24)

文章存档

2015年(24)

我的朋友

分类: Windows平台

2015-04-26 01:29:12

原文链接:http://blog.csdn.net/ningbinzhang/article/details/39956801

相关文章:http://blog.chinaunix.net/uid-30092150-id-4738158.html

  1. #pragma once  
  2.   
  3.   
  4. #ifndef WM_COPYGLOBALDATA  
  5. #define WM_COPYGLOBALDATA 0x0049  
  6. #endif  
  7.   
  8.   
  9. typedef WINUSERAPI BOOL WINAPI CHANGEWINDOWMESSAGEFILTER(UINT message, DWORD dwFlag);  
  10.   
  11.   
  12. //修复OnDropFile在win7管理员权限下接收不到的问题  
  13. void DropFileFix()  
  14. {  
  15.     HINSTANCE hDllInst = LoadLibrary(_T("user32.dll"));  
  16.     if (hDllInst)  
  17.     {  
  18.         CHANGEWINDOWMESSAGEFILTER *pAddMessageFilterFunc = (CHANGEWINDOWMESSAGEFILTER *)GetProcAddress(hDllInst, "ChangeWindowMessageFilter");  
  19.         if (pAddMessageFilterFunc)  
  20.         {  
  21.             pAddMessageFilterFunc(WM_DROPFILES, MSGFLT_ADD);  //MSGFLT_ADD=1
  22.             pAddMessageFilterFunc(WM_COPYDATA, MSGFLT_ADD);  
  23.             pAddMessageFilterFunc(0x0049, MSGFLT_ADD);  
  24.         }  
  25.         FreeLibrary(hDllInst);  
  26.     }  
  27. }  


在程序入口或对话框初始化函数中调用DropFileFix() 即可解决vista和win7中使用管理员权限接收不到WM_DROPFILES(OnDropFiles())消息的问题。


阅读(1407) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~