Commit Graph
285 Commits
Author SHA1 Message Date
mirkobrombin 84dfa0e477 feat: find and enumerate the windows of other processes 2026-11-04 17:01:05 +00:00
mirkobrombin e84d214977 feat: give Tahoma dialogs a face of the same width and height 2026-11-04 16:18:00 +00:00
mirkobrombin 951fdc69c9 feat: turn text by its font's escapement 2026-11-04 16:00:56 +00:00
mirkobrombin e82ebb8f43 fix: give comctl32 to programs that load it late 2026-11-04 16:00:56 +00:00
mirkobrombin a53da8cf58 fix: read and write EUC-JP on the high-bit JIS grid 2026-11-04 16:00:56 +00:00
mirkobrombin 2e6ed878c8 feat: convert the Japanese, Chinese and Korean double-byte code pages 2026-11-04 15:33:21 +00:00
mirkobrombin f6a069098e test: describe ANSI window classes at both widths 2026-11-04 15:22:28 +00:00
mirkobrombin d3de1f8752 feat: answer more window, queue, locale, resource, time and activation calls in the guest 2026-11-04 12:48:39 +00:00
mirkobrombin 73925ae9ab feat: compute the checksum of a mapped image 2026-11-04 12:48:38 +00:00
mirkobrombin d89730a2d5 feat: sign hashes with the RSA key pairs a CryptoAPI provider imports 2026-11-04 12:48:38 +00:00
mirkobrombin 5ede33f0c6 feat: keep the error objects of automation for each thread 2026-11-04 12:48:38 +00:00
mirkobrombin 9723ec64ff chore: merge pull request #127 from rayzorben 2026-11-04 12:48:31 +00:00
mirkobrombin 2c3d4295c9 feat: run the VBScript custom actions of a package
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: VBScript interpreter for script custom actions and the test package built with wixl and msibuild
2026-11-03 16:40:56 +00:00
mirkobrombin b1d5ffe0d8 feat: run the rollback and commit custom actions of a package
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: rollback and commit custom actions scheduled and run by the installer script, with tests
2026-11-03 16:01:17 +00:00
mirkobrombin 02b14ba717 fix: load the components the libraries beside a small launcher need
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: component loading for libraries beside a launcher, with the launcher test
2026-11-03 15:50:51 +00:00
mirkobrombin dc1f9c1c85 feat: answer what an updater bootstrapper asks of the system
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: registry, security, shell and system answers an updater bootstrapper needs, with its test client
2026-11-03 15:48:46 +00:00
mirkobrombin f14f6ac328 feat: report WinHTTP requests to the status callback of asynchronous sessions
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: WinHTTP status callback notifications for asynchronous requests and the client test
2026-11-03 15:48:09 +00:00
mirkobrombin 9dab1b9444 fix: word the system errors HRESULTs carry in FormatMessage
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: FormatMessage looks up the Win32 code inside a 0x8007 HRESULT, with a test check
2026-11-03 15:47:56 +00:00
mirkobrombin 5bf67ca148 fix: keep the temporary rows a custom action adds to the session's database
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: temporary rows inserted by a custom action forwarded to the session database over the action pipe, with the test package
2026-11-03 15:47:22 +00:00
mirkobrombin bde0a7b7d0 fix: keep the root of device and UNC paths in GetFullPathNameW
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: GetFullPathNameW keeps the device and UNC root, with test cases
2026-11-03 12:41:25 +00:00
mirkobrombin 85604c2ae5 feat: list processes and their threads through NtQuerySystemInformation
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: process and thread listing in NtQuerySystemInformation and its test client
2026-11-03 12:36:15 +00:00
mirkobrombin b6bbee7ee6 feat: add a background transfer manager that downloads through WinHTTP 2026-11-03 10:29:28 +00:00
mirkobrombin c2f3037e65 feat: add the C runtime entry points the .NET host and runtime import 2026-11-03 08:43:12 +00:00
mirkobrombin a5cd79e2a6 feat: report one processor group to the group affinity calls 2026-11-03 08:21:37 +00:00
mirkobrombin d39ad3a471 fix: free the pointers a structure holds before the structure itself 2026-11-03 06:49:21 +00:00
mirkobrombin 8f63493106 fix: leave blocks a server manager may replace off the stub's own list 2026-11-03 05:56:36 +00:00
mirkobrombin f38ae11815 fix: keep thread slot values per thread id, not per thread block 2026-11-03 04:10:44 +00:00
mirkobrombin 9f6e6cb86a fix: forget stale block records when the heap reuses an address 2026-11-03 03:47:54 +00:00
mirkobrombin 907eb4525d fix: accept MapUrlToZone flags in the security manager 2026-11-03 00:24:40 +00:00
mirkobrombin 8795757aeb fix: give LoadIcon the display's icon size 2026-11-03 00:04:47 +00:00
mirkobrombin a1216bf282 fix: treat decimal atom names as integer atoms 2026-11-02 23:15:20 +00:00
mirkobrombin 189bb61aa7 chore: merge pull request #121 from FrontMage 2026-11-02 19:05:43 +00:00
mirkobrombin 0d4c63d9ad chore: merge pull request #126 from rayzorben
Closes #123
2026-11-02 19:05:42 +00:00
Raymond Bennett 0714988e6d fix: answer NetWkstaGetInfo for the local workstation
Fixes #122.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: reproduction, patch and test: NetWkstaGetInfo levels 100-102 for the local computer, the 32-bit word count, and a fixture run as 32-bit and 64-bit
2026-11-02 11:58:44 -07:00
mirkobrombin 61a3c08744 fix: answer 32-bit heap calls in the guest
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: guest-side x86 HeapAlloc, HeapFree and GetProcessHeap paths and their test
2026-11-02 18:53:06 +00:00
mirkobrombin 52c35cea9c fix: let the .NET Framework 4.8 setup run its install
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: version layer for its setup, expanded service paths, seeded services, 64-bit packages in the native engine, dism KB4019990, missing shell and event log calls
2026-11-02 18:53:06 +00:00
Raymond Bennett e1fef47bd6 fix: redraw only the frame when the pointer crosses the caption
Every pointer move over a caption or border recalculated the client
area and erased and repainted the window and all its controls, so a
dialog flickered while the pointer moved over its title. Only a caption
button changes there, and only the frame is drawn again for it.

Fixes #123

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: reproduction under Xvfb, the fix to hover_frame, the native_frame_hover test and fixture
2026-11-02 11:25:54 -07:00
mirkobrombin 40de9e9c92 chore: merge pull request #96 from rayzorben 2026-11-02 14:59:46 +00:00
mirkobrombin 5df7d425db chore: merge pull request #95 from rayzorben 2026-11-02 14:59:30 +00:00
mirkobrombin f87f03d951 fix: convert long text between UTF-8 and UTF-16
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: raised the conversion limits and tested a long document through msxml3
2026-11-02 14:39:56 +00:00
mirkobrombin f9f2810f36 fix: pick a message table by the language asked for
Closes #107

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: language order of the message lookup and its test
2026-11-02 14:07:39 +00:00
mirkobrombin c9640709c6 chore: merge pull request #120 from clansty 2026-11-02 13:55:04 +00:00
mirkobrombin 3423768e9e chore: merge pull request #119 from clansty 2026-11-02 13:54:53 +00:00
mirkobrombin 9ae5ff35f5 chore: merge pull request #118 from clansty 2026-11-02 13:54:41 +00:00
mirkobrombin 8cd4da04d0 chore: merge pull request #116 from Shabirahmad427 2026-11-02 13:54:39 +00:00
mirkobrombin 0392e067f0 feat: complete the Windows Installer engine
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: patches, searches, feature and source list calls, administrative images and their tests
2026-11-02 12:42:18 +00:00
FrontMage 81c32152bc test: expect VerQueryValueA to convert StringFileInfo to ANSI
Assisted-by: Grok-Bot:TinFoilHead
AI-Scope: Updated native_x86_version test to cover the ANSI StringFileInfo conversion; human-reviewed and tested.
2026-11-02 19:13:02 +08:00
Clansty 244bbb8104 feat: report the host's interfaces in the MIB_IFROW calls
- GetIfEntry, GetIfTable and GetNumberOfInterfaces answer from the host's interfaces. GetIfEntry names one by the index the record handed in carries, GetIfTable puts the rows behind a count, and a table that does not fit is refused with ERROR_INSUFFICIENT_BUFFER and the size it needs.

- The interface walk moved out of host_api.cpp into interfaces.cpp, so the records GetAdaptersAddresses reports and the rows these calls report come from one enumeration of the host rather than two.

- interfaces_test checks the record against the MIB_IFROW offsets Windows declares and the cutting of a long name. The new guest fixture interface_client.c reads the tables through the runtime, in 64-bit and 32-bit builds: it checks that the count, the rows and GetIfEntry agree, that a sorted table lists the rows by index, and that an unknown index and a short table fail as Windows fails them.

Assisted-by: Claude Code:deepseek-v4.1-flash-1017

AI-Scope: Read the MIB_IFROW and MIB_IFTABLE layouts, moved the interface enumeration into interfaces.cpp, wrote the three handlers and both tests, and checked them with ctest (native_interface_table_contract, native_interface_table_client, native_interface_table_client_x32).
2026-11-02 12:03:56 +08:00
Clansty 68e2ab517b feat: add the avrt and mfplat guest components
- native/upstream/raven-media builds avrt.dll and mfplat.dll for both widths and the runtime ships them beside itself: a media library imports both, and without mfplat.dll such a library does not load at all. cri_ware_unity.dll is one, and the program that imports it stopped before its first frame.

- avrt.dll answers the multimedia task calls with a stand-in handle. Nothing here schedules threads, so a program that asks for a task is one that raises its own priority and keeps its own period; the calls made with the handle are answered as they would be for a granted task.

- mfplat.dll answers the four factories with E_NOTIMPL rather than an object with no implementation behind it, which would fail every later call far from the request that started it.

- The new guest fixture media_client.c imports both libraries the way a media library does, and checks the task handle, its priority, its responsiveness and that each factory reports the interface as unsupported. It is built for both widths.

Assisted-by: Claude Code:deepseek-v4.1-flash-1017

AI-Scope: Wrote the two guest components from the multimedia and Media Foundation interfaces they answer, wired them into the component build and the runtime component list, and checked them with ctest (native_media_x64, native_media_x32).
2026-11-02 12:00:02 +08:00
Clansty 24d09e747b feat: answer getprotobyname and getprotobynumber from the protocols database
- Both calls read the host's protocols database into one PROTOENT the process reuses, as Winsock reuses its per-thread one: the name, an empty list of aliases and the protocol number.

- The record keeps its pointers, so the 32-bit and 64-bit layouts are written apart; a protocol the database does not list answers NULL with WSANO_DATA, as the services calls beside them do.

- The new guest fixture protocol_client.c checks that both spellings of a protocol name the same record, that a second call reuses it, and that an unlisted name and an unlisted number are refused. It is built for 64-bit and 32-bit callers.

Assisted-by: Claude Code:deepseek-v4.1-flash-1017

AI-Scope: Wrote the two handlers next to the existing getservbyname ones, the PROTOENT writer for both pointer widths, and the guest fixture; checked with ctest (native_protocol_database_client, native_protocol_database_client_x32).
2026-11-02 11:59:35 +08:00