创建入口点函数

【勇芳软件工作室】汉化HomePreviousNext

文件管理器通过FMExtensionProc回调函数与扩展DLL进行通信。请确保通过在扩展名的模块定义(.DEF)文件的EXPORTS语句中列出该函数。FMExtensionProc功能通过执行下表中列出的任务来处理上一节中列出的消息。

任务行动
初始化扩展名(FMEVENT_LOAD)为文件管理器提供菜单的名称和句柄,并保存菜单项增量值。
初始化菜单(FMEVENT_INITMENU)初始化所有顶级菜单项和任何子菜单中的项目。
初始化工具栏(FMEVENT_TOOLBARLOAD)为文件管理器提供有关添加到工具栏的按钮的信息,包括命令标识符,帮助字符串标识符,样式和位图标识符。
处理菜单选择执行用户从扩展菜单中选择的命令。
处理文件选择(FMEVENT_SELCHANGE)查询文件管理器,了解用户从目录窗口或“搜索结果”窗口中选择的文件的信息。
更新菜单中的项目(FMEVENT_USER_REFRESH)当用户从“窗口”菜单中选择“文件管理器”的“刷新”命令时,适当地修改菜单。
提供菜单项帮助字符串(FMEVENT_HELPSTRING)为文件管理器提供指定菜单中指定命令的帮助字符串。文件管理器在窗口左下方的区域显示此字符串。
传递菜单项帮助请求到WinHelp(FMEVENT_HELPMENUITEM)为WinHelp提供文件管理器传递的窗口和菜单项信息,
退出扩展DLL(FMEVENT_UNLOAD)释放任何分配的内存并准备退出。

FMExtensionProc功能定义如下。

LONG WINAPI FMExtensionProc(hwnd,wMsg,lParam)

HWND hwnd;

WORD wMsg;

LONG lParam;

【HWND】参数标识文件管理器窗口。扩展应该使用此窗口句柄来指定必须显示的任何对话框或消息框的父窗口。它还应该使用此句柄将查询消息发送到文件管理器。【uMsg】参数包含之前列出的一个文件管理器消息。【lParam的】参数包含消息特定值。来自FMExtensionProc函数的返回值取决于【uMsg】参数的值。

添加到文件管理器的菜单可以是分级(级联)菜单,除了命令项目之外,可能包含灰色,禁用或已选菜单项。菜单项应仅为文字;不支持所有者绘制的菜单和位图菜单。不支持更改复选标记的位图。

无论何时文件管理器调用FMExtensionProc函数,它将等待刷新其目录窗口(用于文件系统中的更改),直到该函数返回。这允许扩展程序执行大量的文件操作,而不会对文件管理器进行过多的重绘。扩展程序不需要发送FM_REFRESH_WINDOWS消息,以通知文件管理器重新绘制其目录窗口。