TSF DLL 每次升级都装进新的 msime_v* 版本目录,语言配置注册的图标指向 DLL 自身, 注册表里的图标路径随之每次变化。任务栏恰好在换目录时取不到图标,就改显示「简体」文字, 并一直沿用到资源管理器重启。 - 安装器把 windows/image/msime.ico 装成 Program Files 与 Program Files (x86) 下 metasequoiaime\MetasequoiaImeTip.ico,排在 TSF DLL 的 regserver 条目之前 - RegisterProfiles 发现 DLL 上一级目录有这个文件就注册它(索引 0),否则退回 DLL 内嵌的 IDIS_METASEQUOIAIME,开发时从 build 目录注册不受影响 - 打包脚本收集并断言该图标;打包测试检查两份都装、且先于 DLL 安装
windows —— TSF 文本服务
水杉输入法在 Windows 上的前端:一个纯 TSF 方案的文本服务 DLL,注入宿主进程,负责按键预判、焦点与线程归属、composition 的 edit session 写入,以及与 Server 之间的命名管道协议。候选窗、工具栏、设置页和实际的候选计算都在 ../server/,本目录只做宿主适配。
产品介绍、安装和功能说明见仓库根目录的 README;本目录的代码地图、TSF/COM 硬约定和改动要求见 AGENTS.md。
构建
从仓库根目录配置,源码目录是本目录:
cmake -S windows -B windows/build -A x64 `
-DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake" `
-DVCPKG_TARGET_TRIPLET=x64-windows-static
cmake --build windows/build --config Release --parallel
ctest --test-dir windows/build -C Release --output-on-failure
Win32 用 -A Win32 和 x86-windows-static;安装包两种架构都要。scripts/ 下是本机开发用的生成、构建、注册和签名脚本,从本目录运行。
引擎契约来自 ../engine/contracts/,是本仓的目录,普通检出就有。TSF 只引用这些头文件,不链接引擎运行库。