Skip to content

v1.4.3

Choose a tag to compare

@ioa747 ioa747 released this 20 Jan 14:22
· 485 commits to main since this release
184c3a9

Version 1.4.3 - (2026-01-20)

COM Robustness & Performance

This update focuses on deepening COM compatibility and resolving assembly discovery issues in AutoIt, along with specialized scraping tools for the main showcase.

Fixed

  • COM Event Discovery (0x80028017): Resolved the "Field name not defined" error in AutoIt by explicitly requiring the 3rd parameter in ObjEvent for .NET-exported interfaces. Documented the necessity of interface names (e.g., IWebViewEvents) for reliable connection point binding.
  • Smart AutoResize (Dynamic Margins): Refined SetAutoResize to automatically calculate margins based on the width and height passed to Initialize. This allows users to request absolute sizes (e.g., leaving a specific gap for a status bar) and have those gaps preserved naturally as the parent window resizes.

Added

  • Additional Browser Arguments (DispId 100):
    • Added AdditionalBrowserArguments property. Allows passing command-line switches (e.g., --disable-gpu, --mute-audio, --proxy-server="...") to the Chromium engine. Note: This must be set before calling Initialize().
  • Advanced JSON Manipulation (JsonParser) (DispIds 225 - 228):
    • GetTokenCount(path): (225) Returns the count of array items or object properties.
    • GetKeys(path, delimiter): (226) Returns a delimited string of all property names for an object.
    • SortArray(path, key, desc): (227) Sorts a JSON array in-place based on a specific key.
    • SelectUnique(path, key): (228) Removes duplicates from a JSON array based on a key's value.
  • Advanced Export & PDF Management (DispIds 201 - 203):
    • ExportPageData(format, filePath): (201) Saves the current page as HTML (0) or MHTML (1). The MHTML snapshots are captured via CDP and parsed natively. Supports returning content as a string if filePath is empty.
    • PrintToPdfStream(): (202) Captures the page as a PDF and returns a Base64 string directly to AutoIt, eliminating temporary file requirements.
    • HiddenPdfToolbarItems: (203) [Property] Bitwise control for the PDF viewer's toolbar (e.g., hiding print/save buttons).

Changed

  • Interface Protocol (Dual Binding): Upgraded IWebViewActions and IJsonParser to InterfaceIsDual. This enables support for both Early Binding (performance) and Late Binding (flexibility) simultaneously, improving overall stability in diverse COM environments.
  • SetTokenValue (JsonParser) Upgrade: Now supports Deep Creation (automatic creation of parent objects) and Smart Typing (automatic conversion of "true", "false", "null" and numbers, while preserving leading zeros in strings like "0123").
  • WebViewManager.cs Reorganization: Completely restructured the 1500+ line class into 17 logical regions for better IDE maintainability and code folding.
  • GetArrayLength (JsonParser): Refactored to internally use the more robust GetTokenCount logic.