name "f07_text_input_win32"
description "F07 IME/text-input demo: TSF COM bring-up probe (hand-declared ITfThreadMgr) + full IMM32 editor with inline underlined pre-edit, caret-anchored ImmSetCandidateWindow and the WM_IME_* choreography logged."
targetType "executable"
sourcePaths "."
targetPath "build"
platforms "windows"
// Druntime's built-in core.sys.windows bindings only (the TSF vtbls/GUIDs are
// hand-declared in app.d; msctf.h has no druntime projection) — same policy as
// ../scaffold/. Set WSI_AUTO_EXIT=1 for the bounded CI mode: a SetTimer script
// probes imm32 (context/default-IME-window/open-status), types ASCII (caret +
// candidate-anchor movement), self-injects a composition string with
// ImmSetCompositionStringW(SCS_SETSTR) and commits/cancels it with
// ImmNotifyIME, then runs the ImmAssociateContext(null) disable/restore probe
// and exits 0. Without the env var the window stays open for real IME typing
// (the Tier-C manual script in ../../f07-text-input.md). This dub.sdl is for
// the Windows CI runner; locally the demo is cross-compiled with
// `nix develop .#win32` (win32-ldc2) and run under Wine — dub cannot drive
// that pipeline.