您的位置:首页 > 运维架构

实现在vista和win7中使用管理员权限接收WM_DROPFILES(OnDropFiles())消息的方法

2014-10-10 09:05 543 查看
dropfiles.h


#pragma once

#ifndef WM_COPYGLOBALDATA
#define WM_COPYGLOBALDATA 0x0049
#endif

typedef WINUSERAPI BOOL WINAPI CHANGEWINDOWMESSAGEFILTER(UINT message, DWORD dwFlag);

//修复OnDropFile在win7管理员权限下接收不到的问题
void DropFileFix()
{
HINSTANCE hDllInst = LoadLibrary(_T("user32.dll"));
if (hDllInst)
{
CHANGEWINDOWMESSAGEFILTER *pAddMessageFilterFunc = (CHANGEWINDOWMESSAGEFILTER *)GetProcAddress(hDllInst, "ChangeWindowMessageFilter");
if (pAddMessageFilterFunc)
{
pAddMessageFilterFunc(WM_DROPFILES, MSGFLT_ADD);
pAddMessageFilterFunc(WM_COPYDATA, MSGFLT_ADD);
pAddMessageFilterFunc(0x0049, MSGFLT_ADD);
}
FreeLibrary(hDllInst);
}
}


在程序入口或对话框初始化函数中调用DropFileFix() 即可解决vista和win7中使用管理员权限接收不到WM_DROPFILES(OnDropFiles())消息的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐