接口约定
enum/loadRes/saveRes 是枚举、加载和保存 aardio EXE 内嵌文件的主要入口,默认资源类型为字符串 "RES";枚举内嵌库可指定 "LIB"。enum 回调参数为 module,resType,resName;字符串保持字符串,数字 ID 为 number。不返回值继续,明确返回 false 停止。路径加载的模块只在调用期间有效。names/types/languages/list 提供数组查询;loadMenu/decodeMenu 是按需使用的菜单解码辅助接口。4/*_RT_MENU*/ 或直接写 4。loadRes 始终返回独立二进制字符串;空资源返回 ""。"MENU" 仍是自定义类型名,数字菜单类型为 4/*_RT_MENU*/;数值名称 0、65535 均支持。0)精确匹配;省略语言才使用 Windows 回退。路径参数自动释放,借用模块不释放。
不访问文件,纯数据解码 MENU/MENUEX 。
参数 @1 可指定字符串或 buffer 类型的菜单模板资源。
返回结构与 fsys.res.menu 相同。损坏/截断/过深返回 null,错误文本,13;参数类型错误码 87。
fsys.res.menu.for menu,resId in fsys.res.menu.each(/*参数 @1 可选指定模块句柄或路径;
参数 @2 可选指定语言 ID。
返回 menu 为包含菜单树数据的 fsys.res.menu 对象。
resId 为菜单资源 ID。*/){
}
fsys.res.menu.enum(
function(text,id,position,item,resId,level){
/*枚举菜单项:
text 为菜单标题;
id 为命令 ID(Command ID,标准 MENU 弹出项为 null);
position 为在当前层级的序号(自 1 开始);
item 为菜单项完整数据表;
resId 为菜单资源名或资源 ID。
level 为嵌套深度(顶层为 0);
返回 false 停止枚举。*/
}
)
将 RT_MENU 资源解码为普通表 {version;helpId;items}
同时支持标准 MENU 与扩展 MENUEX,不创建窗口或菜单句柄。
菜单项目含 id,text,type,state,flags,popup,separator;弹出项另含 items/helpId。
标准 MENU 的弹出项没有命令 ID(id 为 null);MENUEX 保留 DWORD ID。
返回文本使用 UTF-8 编码,保留菜单控制字符 & 与 TAB,最多允许 64 层嵌套。
错误返回 null,错误文本,错误码。
MENUEX 头帮助 ID,标准 MENU 为 0
菜单项目纯数组,按原显示顺序
每项含 id,text,type,state,flags,popup,separator。
弹出项另含 items/helpId;标准 MENU 弹出项的 id 为 null。
模板版本:0 表示 MENU,1 表示 MENUEX