winui-svelte 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/API.md +390 -3
- package/README.md +4 -0
- package/dist/app/launch-command.d.ts +11 -6
- package/dist/app/launch-command.d.ts.map +1 -1
- package/dist/app/launch-command.js +16 -5
- package/dist/app/launch-command.js.map +1 -1
- package/dist/app/tray-instance.d.ts +4 -3
- package/dist/app/tray-instance.d.ts.map +1 -1
- package/dist/app/tray-instance.js +7 -5
- package/dist/app/tray-instance.js.map +1 -1
- package/dist/automation/backend.d.ts +51 -0
- package/dist/automation/backend.d.ts.map +1 -0
- package/dist/automation/backend.js +5 -0
- package/dist/automation/backend.js.map +1 -0
- package/dist/automation/client.d.ts +97 -0
- package/dist/automation/client.d.ts.map +1 -0
- package/dist/automation/client.js +203 -0
- package/dist/automation/client.js.map +1 -0
- package/dist/automation/ids.d.ts +90 -0
- package/dist/automation/ids.d.ts.map +1 -0
- package/dist/automation/ids.js +84 -0
- package/dist/automation/ids.js.map +1 -0
- package/dist/automation/index.d.ts +13 -0
- package/dist/automation/index.d.ts.map +1 -0
- package/dist/automation/index.js +8 -0
- package/dist/automation/index.js.map +1 -0
- package/dist/automation/native.d.ts +11 -0
- package/dist/automation/native.d.ts.map +1 -0
- package/dist/automation/native.js +595 -0
- package/dist/automation/native.js.map +1 -0
- package/dist/automation/text.d.ts +50 -0
- package/dist/automation/text.d.ts.map +1 -0
- package/dist/automation/text.js +110 -0
- package/dist/automation/text.js.map +1 -0
- package/dist/automation/with-client.d.ts +13 -0
- package/dist/automation/with-client.d.ts.map +1 -0
- package/dist/automation/with-client.js +19 -0
- package/dist/automation/with-client.js.map +1 -0
- package/dist/automation/worker-job.d.ts +32 -0
- package/dist/automation/worker-job.d.ts.map +1 -0
- package/dist/automation/worker-job.js +69 -0
- package/dist/automation/worker-job.js.map +1 -0
- package/dist/automation/worker.d.ts +44 -0
- package/dist/automation/worker.d.ts.map +1 -0
- package/dist/automation/worker.js +70 -0
- package/dist/automation/worker.js.map +1 -0
- package/dist/bindings/.dynwinrt-managed +1 -1
- package/dist/chrome/context-menus/context-menu-schema.d.ts +4 -4
- package/dist/chrome/notifications/notification-schema.d.ts +2 -2
- package/dist/components/hand-written/Window.svelte +2 -0
- package/dist/components/window-context.d.ts +14 -0
- package/dist/components/window-context.d.ts.map +1 -0
- package/dist/components/window-context.js +20 -0
- package/dist/components/window-context.js.map +1 -0
- package/dist/downloads/chrome-downloads.d.ts +8 -0
- package/dist/downloads/chrome-downloads.d.ts.map +1 -1
- package/dist/downloads/chrome-downloads.js +35 -6
- package/dist/downloads/chrome-downloads.js.map +1 -1
- package/dist/downloads/download-record.d.ts +3 -2
- package/dist/downloads/download-record.d.ts.map +1 -1
- package/dist/downloads/download-record.js.map +1 -1
- package/dist/downloads/download-transfer.d.ts.map +1 -1
- package/dist/downloads/download-transfer.js +3 -3
- package/dist/downloads/download-transfer.js.map +1 -1
- package/dist/downloads/download-types.d.ts +3 -1
- package/dist/downloads/download-types.d.ts.map +1 -1
- package/dist/downloads/download-types.js.map +1 -1
- package/dist/downloads/fetch-to-file.d.ts +11 -6
- package/dist/downloads/fetch-to-file.d.ts.map +1 -1
- package/dist/downloads/fetch-to-file.js +45 -16
- package/dist/downloads/fetch-to-file.js.map +1 -1
- package/dist/downloads/taskbar-progress.d.ts +3 -18
- package/dist/downloads/taskbar-progress.d.ts.map +1 -1
- package/dist/downloads/taskbar-progress.js +1 -38
- package/dist/downloads/taskbar-progress.js.map +1 -1
- package/dist/enums.d.ts +1 -0
- package/dist/enums.d.ts.map +1 -1
- package/dist/enums.js +1 -0
- package/dist/enums.js.map +1 -1
- package/dist/forms/form-field-props.d.ts +2 -2
- package/dist/progress/TaskbarProgress.d.svelte.ts +6 -0
- package/dist/progress/TaskbarProgress.svelte +32 -0
- package/dist/progress/aggregate.d.ts +23 -0
- package/dist/progress/aggregate.d.ts.map +1 -0
- package/dist/progress/aggregate.js +59 -0
- package/dist/progress/aggregate.js.map +1 -0
- package/dist/progress/core.d.ts +14 -0
- package/dist/progress/core.d.ts.map +1 -0
- package/dist/progress/core.js +8 -0
- package/dist/progress/core.js.map +1 -0
- package/dist/progress/index.d.ts +5 -0
- package/dist/progress/index.d.ts.map +1 -0
- package/dist/progress/index.js +4 -0
- package/dist/progress/index.js.map +1 -0
- package/dist/progress/progress-event.d.ts +18 -0
- package/dist/progress/progress-event.d.ts.map +1 -0
- package/dist/progress/progress-event.js +19 -0
- package/dist/progress/progress-event.js.map +1 -0
- package/dist/progress/progress-operation.d.ts +163 -0
- package/dist/progress/progress-operation.d.ts.map +1 -0
- package/dist/progress/progress-operation.js +356 -0
- package/dist/progress/progress-operation.js.map +1 -0
- package/dist/progress/progress-registry.d.ts +89 -0
- package/dist/progress/progress-registry.d.ts.map +1 -0
- package/dist/progress/progress-registry.js +187 -0
- package/dist/progress/progress-registry.js.map +1 -0
- package/dist/progress/progress-source.d.ts +46 -0
- package/dist/progress/progress-source.d.ts.map +1 -0
- package/dist/progress/progress-source.js +31 -0
- package/dist/progress/progress-source.js.map +1 -0
- package/dist/progress/progress-state.d.ts +54 -0
- package/dist/progress/progress-state.d.ts.map +1 -0
- package/dist/progress/progress-state.js +35 -0
- package/dist/progress/progress-state.js.map +1 -0
- package/dist/progress/progress-text.d.ts +10 -0
- package/dist/progress/progress-text.d.ts.map +1 -0
- package/dist/progress/progress-text.js +23 -0
- package/dist/progress/progress-text.js.map +1 -0
- package/dist/progress/scoped-source.d.ts +31 -0
- package/dist/progress/scoped-source.d.ts.map +1 -0
- package/dist/progress/scoped-source.js +46 -0
- package/dist/progress/scoped-source.js.map +1 -0
- package/dist/progress/taskbar-progress-props.d.ts +15 -0
- package/dist/progress/taskbar-progress-props.d.ts.map +1 -0
- package/dist/progress/taskbar-progress-props.js +2 -0
- package/dist/progress/taskbar-progress-props.js.map +1 -0
- package/dist/progress/taskbar-progress.d.ts +44 -0
- package/dist/progress/taskbar-progress.d.ts.map +1 -0
- package/dist/progress/taskbar-progress.js +62 -0
- package/dist/progress/taskbar-progress.js.map +1 -0
- package/dist/progress/track-operation.d.ts +36 -0
- package/dist/progress/track-operation.d.ts.map +1 -0
- package/dist/progress/track-operation.js +53 -0
- package/dist/progress/track-operation.js.map +1 -0
- package/dist/tray/menu-svelte/TrayMenuOperations.d.svelte.ts +6 -0
- package/dist/tray/menu-svelte/TrayMenuOperations.svelte +33 -0
- package/dist/tray/menu-svelte/TrayMenuProgress.d.svelte.ts +6 -0
- package/dist/tray/menu-svelte/TrayMenuProgress.svelte +28 -0
- package/dist/tray/menu-svelte/index.d.ts +3 -1
- package/dist/tray/menu-svelte/index.d.ts.map +1 -1
- package/dist/tray/menu-svelte/index.js +2 -0
- package/dist/tray/menu-svelte/index.js.map +1 -1
- package/dist/tray/menu-svelte/menu-node.d.ts +5 -5
- package/dist/tray/menu-svelte/menu-props.d.ts +16 -0
- package/dist/tray/menu-svelte/menu-props.d.ts.map +1 -1
- package/dist/tray/menu-svelte/operation-ids.d.ts +8 -0
- package/dist/tray/menu-svelte/operation-ids.d.ts.map +1 -0
- package/dist/tray/menu-svelte/operation-ids.js +20 -0
- package/dist/tray/menu-svelte/operation-ids.js.map +1 -0
- package/dist/tray/native.d.ts +6 -1
- package/dist/tray/native.d.ts.map +1 -1
- package/dist/tray/native.js +22 -32
- package/dist/tray/native.js.map +1 -1
- package/dist/tray/pointer-share.d.ts +27 -0
- package/dist/tray/pointer-share.d.ts.map +1 -0
- package/dist/tray/pointer-share.js +61 -0
- package/dist/tray/pointer-share.js.map +1 -0
- package/dist/tray/standalone/index.d.ts +1 -0
- package/dist/tray/standalone/index.d.ts.map +1 -1
- package/dist/tray/standalone/index.js +1 -0
- package/dist/tray/standalone/index.js.map +1 -1
- package/dist/tray/standalone/menu-theme.d.ts +38 -0
- package/dist/tray/standalone/menu-theme.d.ts.map +1 -0
- package/dist/tray/standalone/menu-theme.js +74 -0
- package/dist/tray/standalone/menu-theme.js.map +1 -0
- package/dist/tray/standalone/native.d.ts +5 -1
- package/dist/tray/standalone/native.d.ts.map +1 -1
- package/dist/tray/standalone/native.js +5 -1
- package/dist/tray/standalone/native.js.map +1 -1
- package/dist/tray/standalone/standalone-tray.d.ts +13 -0
- package/dist/tray/standalone/standalone-tray.d.ts.map +1 -1
- package/dist/tray/standalone/standalone-tray.js +23 -1
- package/dist/tray/standalone/standalone-tray.js.map +1 -1
- package/dist/tray/tray-core.d.ts.map +1 -1
- package/dist/tray/tray-core.js +1 -0
- package/dist/tray/tray-core.js.map +1 -1
- package/dist/tray/tray-manifest.d.ts +44 -4
- package/dist/tray/tray-manifest.d.ts.map +1 -1
- package/dist/tray/tray-manifest.js +48 -4
- package/dist/tray/tray-manifest.js.map +1 -1
- package/dist/vite/entrypoints/build-tray.d.ts +3 -1
- package/dist/vite/entrypoints/build-tray.d.ts.map +1 -1
- package/dist/vite/entrypoints/build-tray.js +22 -16
- package/dist/vite/entrypoints/build-tray.js.map +1 -1
- package/dist/vite/entrypoints/extract-tray.d.ts +7 -6
- package/dist/vite/entrypoints/extract-tray.d.ts.map +1 -1
- package/dist/vite/entrypoints/extract-tray.js +35 -15
- package/dist/vite/entrypoints/extract-tray.js.map +1 -1
- package/dist/vite/entrypoints/tray-module.d.ts +2 -1
- package/dist/vite/entrypoints/tray-module.d.ts.map +1 -1
- package/dist/vite/entrypoints/tray-module.js +8 -4
- package/dist/vite/entrypoints/tray-module.js.map +1 -1
- package/dist/web-apis/file-read.d.ts +14 -0
- package/dist/web-apis/file-read.d.ts.map +1 -0
- package/dist/web-apis/file-read.js +37 -0
- package/dist/web-apis/file-read.js.map +1 -0
- package/dist/web-apis/file-system.d.ts +9 -0
- package/dist/web-apis/file-system.d.ts.map +1 -1
- package/dist/web-apis/file-system.js +24 -0
- package/dist/web-apis/file-system.js.map +1 -1
- package/dist/win32-foreground.d.ts +14 -0
- package/dist/win32-foreground.d.ts.map +1 -0
- package/dist/win32-foreground.js +71 -0
- package/dist/win32-foreground.js.map +1 -0
- package/dist/window/create-window.d.ts +1 -1
- package/dist/window/create-window.d.ts.map +1 -1
- package/dist/window/create-window.js +1 -0
- package/dist/window/create-window.js.map +1 -1
- package/dist/window/foreground-filter.d.ts +71 -0
- package/dist/window/foreground-filter.d.ts.map +1 -0
- package/dist/window/foreground-filter.js +108 -0
- package/dist/window/foreground-filter.js.map +1 -0
- package/dist/window/foreground-native.d.ts +25 -0
- package/dist/window/foreground-native.d.ts.map +1 -0
- package/dist/window/foreground-native.js +88 -0
- package/dist/window/foreground-native.js.map +1 -0
- package/dist/window/foreground.d.ts +49 -0
- package/dist/window/foreground.d.ts.map +1 -0
- package/dist/window/foreground.js +78 -0
- package/dist/window/foreground.js.map +1 -0
- package/dist/window/window-host.svelte.d.ts +1 -1
- package/dist/window/window-host.svelte.d.ts.map +1 -1
- package/package.json +18 -1
- package/src/app/launch-command.ts +19 -5
- package/src/app/tray-instance.ts +7 -5
- package/src/automation/backend.ts +56 -0
- package/src/automation/client.ts +327 -0
- package/src/automation/ids.ts +97 -0
- package/src/automation/index.ts +23 -0
- package/src/automation/native.ts +689 -0
- package/src/automation/text.ts +174 -0
- package/src/automation/with-client.ts +20 -0
- package/src/automation/worker-job.ts +97 -0
- package/src/automation/worker.ts +116 -0
- package/src/components/window-context.ts +23 -0
- package/src/downloads/chrome-downloads.ts +46 -6
- package/src/downloads/download-record.ts +3 -2
- package/src/downloads/download-transfer.ts +3 -3
- package/src/downloads/download-types.ts +3 -0
- package/src/downloads/fetch-to-file.ts +47 -17
- package/src/downloads/taskbar-progress.ts +3 -49
- package/src/enums.ts +1 -0
- package/src/progress/TaskbarProgress.d.svelte.ts +6 -0
- package/src/progress/aggregate.ts +68 -0
- package/src/progress/core.ts +13 -0
- package/src/progress/index.ts +4 -0
- package/src/progress/progress-event.ts +25 -0
- package/src/progress/progress-operation.ts +469 -0
- package/src/progress/progress-registry.ts +224 -0
- package/src/progress/progress-source.ts +66 -0
- package/src/progress/progress-state.ts +72 -0
- package/src/progress/progress-text.ts +27 -0
- package/src/progress/scoped-source.ts +56 -0
- package/src/progress/taskbar-progress-props.ts +18 -0
- package/src/progress/taskbar-progress.ts +80 -0
- package/src/progress/track-operation.ts +81 -0
- package/src/tray/menu-svelte/TrayMenuOperations.d.svelte.ts +6 -0
- package/src/tray/menu-svelte/TrayMenuProgress.d.svelte.ts +6 -0
- package/src/tray/menu-svelte/index.ts +4 -0
- package/src/tray/menu-svelte/menu-props.ts +20 -0
- package/src/tray/menu-svelte/operation-ids.ts +21 -0
- package/src/tray/native.ts +29 -33
- package/src/tray/pointer-share.ts +71 -0
- package/src/tray/standalone/index.ts +1 -0
- package/src/tray/standalone/menu-theme.ts +90 -0
- package/src/tray/standalone/native.ts +5 -1
- package/src/tray/standalone/standalone-tray.ts +43 -1
- package/src/tray/tray-core.ts +1 -0
- package/src/tray/tray-manifest.ts +53 -4
- package/src/vite/entrypoints/build-tray.ts +23 -16
- package/src/vite/entrypoints/extract-tray.ts +41 -15
- package/src/vite/entrypoints/tray-module.ts +8 -4
- package/src/web-apis/file-read.ts +43 -0
- package/src/web-apis/file-system.ts +33 -0
- package/src/win32-foreground.ts +76 -0
- package/src/window/create-window.ts +2 -0
- package/src/window/foreground-filter.ts +167 -0
- package/src/window/foreground-native.ts +93 -0
- package/src/window/foreground.ts +106 -0
- package/src/window/window-host.svelte.ts +1 -1
- package/web-types.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/automation/native.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAsC,MAAM,cAAc,CAAC;AA6HnF;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,eA0iBrC"}
|
|
@@ -0,0 +1,595 @@
|
|
|
1
|
+
import { UiaElementUnavailableError } from "./backend.js";
|
|
2
|
+
import { HEADING_LEVEL_FIRST, HEADING_LEVEL_NONE, UiaPatternId, UiaPropertyId } from "./ids.js";
|
|
3
|
+
import { DynWinRtValue, WinGuid } from "@microsoft/dynwinrt";
|
|
4
|
+
import { DynCom, DynComMethodSig, DynComUnsafe } from "@microsoft/dynwinrt/com/unsafe";
|
|
5
|
+
import { DynComRawCleanup, DynComRawMemory, DynComRawPointer } from "@microsoft/dynwinrt/com/unsafe/raw";
|
|
6
|
+
// IUIAutomation and its neighbours (UIAutomationClient.h) have no WinRT form,
|
|
7
|
+
// so the methods are declared at their vtable slots, counted in the order the
|
|
8
|
+
// header declares them after IUnknown's three. Every argument crosses as a
|
|
9
|
+
// raw pointer or integer and every result comes back through memory this file
|
|
10
|
+
// owns, so no BSTR, VARIANT or SAFEARRAY marshalling is trusted: a BSTR is
|
|
11
|
+
// read through its length prefix and freed, a VARIANT is read at its value
|
|
12
|
+
// offset and cleared, and the two arrays are read through their own
|
|
13
|
+
// get_Length and GetElement.
|
|
14
|
+
const CLSID_UI_AUTOMATION = "ff48dba4-60ef-4201-aa87-54103eef594e";
|
|
15
|
+
const IID_AUTOMATION = WinGuid.parse("30cbe57d-d9d0-452a-ab13-7ac5ac4825ee");
|
|
16
|
+
const IID_ELEMENT = WinGuid.parse("d22108aa-8ac5-49a5-837b-37bbb3d7591e");
|
|
17
|
+
const IID_CACHE_REQUEST = WinGuid.parse("b32a92b5-bc25-4078-9c08-d7ee95c48e03");
|
|
18
|
+
const IID_ELEMENT_ARRAY = WinGuid.parse("14314595-b4bc-4055-95f2-58f2e42c9855");
|
|
19
|
+
const IID_TEXT_PATTERN = WinGuid.parse("32eba289-3583-42c9-9c59-3b6d9a1e9b6a");
|
|
20
|
+
const IID_TEXT_RANGE = WinGuid.parse("a543cc6a-f4ae-494b-8239-c814481187a8");
|
|
21
|
+
const IID_TEXT_RANGE_ARRAY = WinGuid.parse("ce4ae76a-e717-4c98-81ea-47371d028eb6");
|
|
22
|
+
const IID_VALUE_PATTERN = WinGuid.parse("a94cd8b1-0844-4cd6-9d2d-640537ab39e9");
|
|
23
|
+
const IID_CONDITION = WinGuid.parse("352ffba8-0973-437c-a61f-f64cafd81df9");
|
|
24
|
+
const AUTOMATION_ELEMENT_FROM_HANDLE_SLOT = 6;
|
|
25
|
+
const AUTOMATION_FOCUSED_ELEMENT_SLOT = 8;
|
|
26
|
+
const AUTOMATION_CONTROL_VIEW_CONDITION_SLOT = 18;
|
|
27
|
+
const AUTOMATION_CREATE_CACHE_REQUEST_SLOT = 20;
|
|
28
|
+
const ELEMENT_FIND_ALL_BUILD_CACHE_SLOT = 8;
|
|
29
|
+
const ELEMENT_GET_CURRENT_PATTERN_AS_SLOT = 14;
|
|
30
|
+
const ELEMENT_GET_CACHED_PROPERTY_VALUE_SLOT = 12;
|
|
31
|
+
const ELEMENT_GET_CURRENT_PROPERTY_VALUE_SLOT = 10;
|
|
32
|
+
const CACHE_REQUEST_ADD_PROPERTY_SLOT = 3;
|
|
33
|
+
const CACHE_REQUEST_PUT_TREE_FILTER_SLOT = 9;
|
|
34
|
+
const ARRAY_LENGTH_SLOT = 3;
|
|
35
|
+
const ARRAY_GET_ELEMENT_SLOT = 4;
|
|
36
|
+
const TEXT_PATTERN_VISIBLE_RANGES_SLOT = 6;
|
|
37
|
+
const TEXT_PATTERN_DOCUMENT_RANGE_SLOT = 7;
|
|
38
|
+
const TEXT_RANGE_GET_TEXT_SLOT = 12;
|
|
39
|
+
const VALUE_PATTERN_VALUE_SLOT = 4;
|
|
40
|
+
const CACHED_OFFSET = 32;
|
|
41
|
+
const ELEMENT_PROCESS_ID_SLOT = 20;
|
|
42
|
+
const ELEMENT_CONTROL_TYPE_SLOT = 21;
|
|
43
|
+
const ELEMENT_NAME_SLOT = 23;
|
|
44
|
+
const ELEMENT_AUTOMATION_ID_SLOT = 29;
|
|
45
|
+
const ELEMENT_CLASS_NAME_SLOT = 30;
|
|
46
|
+
const ELEMENT_IS_OFFSCREEN_SLOT = 38;
|
|
47
|
+
const ELEMENT_BOUNDING_RECTANGLE_SLOT = 43;
|
|
48
|
+
const GETTER_SLOTS = [
|
|
49
|
+
ELEMENT_PROCESS_ID_SLOT,
|
|
50
|
+
ELEMENT_CONTROL_TYPE_SLOT,
|
|
51
|
+
ELEMENT_NAME_SLOT,
|
|
52
|
+
ELEMENT_AUTOMATION_ID_SLOT,
|
|
53
|
+
ELEMENT_CLASS_NAME_SLOT,
|
|
54
|
+
ELEMENT_IS_OFFSCREEN_SLOT,
|
|
55
|
+
ELEMENT_BOUNDING_RECTANGLE_SLOT
|
|
56
|
+
];
|
|
57
|
+
const TREE_SCOPE_CHILDREN = 2;
|
|
58
|
+
const POINTER_BYTES = 8;
|
|
59
|
+
const RECT_BYTES = 16;
|
|
60
|
+
const RECT_TOP_OFFSET = 4;
|
|
61
|
+
const RECT_RIGHT_OFFSET = 8;
|
|
62
|
+
const RECT_BOTTOM_OFFSET = 12;
|
|
63
|
+
const VARIANT_BYTES = 24;
|
|
64
|
+
const VARIANT_VALUE_OFFSET = 8;
|
|
65
|
+
const BSTR_LENGTH_BYTES = 4;
|
|
66
|
+
const VT_I4 = 3;
|
|
67
|
+
const VT_BOOL = 11;
|
|
68
|
+
const VT_EMPTY = 0;
|
|
69
|
+
const NO_ADDRESS = 0n;
|
|
70
|
+
const UIA_E_ELEMENTNOTAVAILABLE = "80040201";
|
|
71
|
+
const UIA_E_ELEMENTNOTENABLED = "80040200";
|
|
72
|
+
const MAX_BSTR_BYTES = 0x7fffffff;
|
|
73
|
+
function signatureOf(steps) {
|
|
74
|
+
let signature = new DynComMethodSig();
|
|
75
|
+
for (const step of steps) {
|
|
76
|
+
signature = signature.addIn(step === "int" ? DynCom.i32Type() : DynComUnsafe.unclassifiedPointerType());
|
|
77
|
+
}
|
|
78
|
+
return signature;
|
|
79
|
+
}
|
|
80
|
+
function interfaceOf({ name, iid, slots }) {
|
|
81
|
+
let registered = DynComUnsafe.registerIUnknownInterface(name, iid);
|
|
82
|
+
for (const [slot, steps] of Object.entries(slots)) {
|
|
83
|
+
registered = registered.addMethodAt(Number(slot), `${name}${slot}`, signatureOf(steps));
|
|
84
|
+
}
|
|
85
|
+
return registered;
|
|
86
|
+
}
|
|
87
|
+
function isUnavailableMessage(message) {
|
|
88
|
+
const lower = message.toLowerCase();
|
|
89
|
+
return lower.includes(UIA_E_ELEMENTNOTAVAILABLE) || lower.includes(UIA_E_ELEMENTNOTENABLED);
|
|
90
|
+
}
|
|
91
|
+
function addressOf(memory) {
|
|
92
|
+
return DynComUnsafe.pointer(memory.pointer().address);
|
|
93
|
+
}
|
|
94
|
+
function describe(error) {
|
|
95
|
+
return error instanceof Error ? error.message : String(error);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* The real UI Automation calls, over `CUIAutomation`. The COM objects are made
|
|
99
|
+
* on the first call and every pointer is released by `dispose`; the thread
|
|
100
|
+
* that calls must already be in a COM apartment (a worker that called
|
|
101
|
+
* `DynCom.initialize`).
|
|
102
|
+
*
|
|
103
|
+
* @returns A backend for `runUiaClient`.
|
|
104
|
+
*/
|
|
105
|
+
export function createUiaNativeBackend() {
|
|
106
|
+
const automationInterface = interfaceOf({
|
|
107
|
+
name: "IUIAutomation",
|
|
108
|
+
iid: IID_AUTOMATION,
|
|
109
|
+
slots: {
|
|
110
|
+
[AUTOMATION_ELEMENT_FROM_HANDLE_SLOT]: ["pointer", "pointer"],
|
|
111
|
+
[AUTOMATION_FOCUSED_ELEMENT_SLOT]: ["pointer"],
|
|
112
|
+
[AUTOMATION_CONTROL_VIEW_CONDITION_SLOT]: ["pointer"],
|
|
113
|
+
[AUTOMATION_CREATE_CACHE_REQUEST_SLOT]: ["pointer"]
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
const elementSlots = {
|
|
117
|
+
[ELEMENT_FIND_ALL_BUILD_CACHE_SLOT]: ["int", "pointer", "pointer", "pointer"],
|
|
118
|
+
[ELEMENT_GET_CURRENT_PATTERN_AS_SLOT]: ["int", "pointer", "pointer"],
|
|
119
|
+
[ELEMENT_GET_CACHED_PROPERTY_VALUE_SLOT]: ["int", "pointer"],
|
|
120
|
+
[ELEMENT_GET_CURRENT_PROPERTY_VALUE_SLOT]: ["int", "pointer"]
|
|
121
|
+
};
|
|
122
|
+
for (const base of GETTER_SLOTS) {
|
|
123
|
+
elementSlots[base] = ["pointer"];
|
|
124
|
+
elementSlots[base + CACHED_OFFSET] = ["pointer"];
|
|
125
|
+
}
|
|
126
|
+
const elementInterface = interfaceOf({
|
|
127
|
+
name: "IUIAutomationElement",
|
|
128
|
+
iid: IID_ELEMENT,
|
|
129
|
+
slots: elementSlots
|
|
130
|
+
});
|
|
131
|
+
const cacheRequestInterface = interfaceOf({
|
|
132
|
+
name: "IUIAutomationCacheRequest",
|
|
133
|
+
iid: IID_CACHE_REQUEST,
|
|
134
|
+
slots: {
|
|
135
|
+
[CACHE_REQUEST_ADD_PROPERTY_SLOT]: ["int"],
|
|
136
|
+
[CACHE_REQUEST_PUT_TREE_FILTER_SLOT]: ["pointer"]
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
const arrayInterface = interfaceOf({
|
|
140
|
+
name: "IUIAutomationElementArray",
|
|
141
|
+
iid: IID_ELEMENT_ARRAY,
|
|
142
|
+
slots: {
|
|
143
|
+
[ARRAY_LENGTH_SLOT]: ["pointer"],
|
|
144
|
+
[ARRAY_GET_ELEMENT_SLOT]: ["int", "pointer"]
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
const rangeArrayInterface = interfaceOf({
|
|
148
|
+
name: "IUIAutomationTextRangeArray",
|
|
149
|
+
iid: IID_TEXT_RANGE_ARRAY,
|
|
150
|
+
slots: {
|
|
151
|
+
[ARRAY_LENGTH_SLOT]: ["pointer"],
|
|
152
|
+
[ARRAY_GET_ELEMENT_SLOT]: ["int", "pointer"]
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
const textPatternInterface = interfaceOf({
|
|
156
|
+
name: "IUIAutomationTextPattern",
|
|
157
|
+
iid: IID_TEXT_PATTERN,
|
|
158
|
+
slots: {
|
|
159
|
+
[TEXT_PATTERN_VISIBLE_RANGES_SLOT]: ["pointer"],
|
|
160
|
+
[TEXT_PATTERN_DOCUMENT_RANGE_SLOT]: ["pointer"]
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
const textRangeInterface = interfaceOf({
|
|
164
|
+
name: "IUIAutomationTextRange",
|
|
165
|
+
iid: IID_TEXT_RANGE,
|
|
166
|
+
slots: {
|
|
167
|
+
[TEXT_RANGE_GET_TEXT_SLOT]: ["int", "pointer"]
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
const valuePatternInterface = interfaceOf({
|
|
171
|
+
name: "IUIAutomationValuePattern",
|
|
172
|
+
iid: IID_VALUE_PATTERN,
|
|
173
|
+
slots: {
|
|
174
|
+
[VALUE_PATTERN_VALUE_SLOT]: ["pointer"]
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
const held = [];
|
|
178
|
+
const handles = [];
|
|
179
|
+
let automation = null;
|
|
180
|
+
let cacheRequest = null;
|
|
181
|
+
let conditionHeld = null;
|
|
182
|
+
function hold({ address, iid }) {
|
|
183
|
+
const value = DynComUnsafe.adoptOwnedComPointer(address, iid);
|
|
184
|
+
const entry = {
|
|
185
|
+
value,
|
|
186
|
+
address
|
|
187
|
+
};
|
|
188
|
+
held.push(entry);
|
|
189
|
+
return entry;
|
|
190
|
+
}
|
|
191
|
+
function outPointer(call) {
|
|
192
|
+
const memory = DynComRawMemory.allocate(POINTER_BYTES, POINTER_BYTES);
|
|
193
|
+
try {
|
|
194
|
+
call(addressOf(memory));
|
|
195
|
+
return memory.readU64(0);
|
|
196
|
+
}
|
|
197
|
+
finally {
|
|
198
|
+
memory.release();
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
function outMemory({ size, read }) {
|
|
202
|
+
const memory = DynComRawMemory.allocate(size, POINTER_BYTES);
|
|
203
|
+
try {
|
|
204
|
+
return read(memory);
|
|
205
|
+
}
|
|
206
|
+
finally {
|
|
207
|
+
memory.release();
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
function guard(call) {
|
|
211
|
+
try {
|
|
212
|
+
return call();
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
const message = describe(error);
|
|
216
|
+
const isUnavailable = isUnavailableMessage(message);
|
|
217
|
+
if (isUnavailable) {
|
|
218
|
+
throw new UiaElementUnavailableError(message);
|
|
219
|
+
}
|
|
220
|
+
throw error;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
function readBstr(address) {
|
|
224
|
+
const isAddressNOADDRESS = address === NO_ADDRESS;
|
|
225
|
+
if (isAddressNOADDRESS) {
|
|
226
|
+
return "";
|
|
227
|
+
}
|
|
228
|
+
const prefix = address - BigInt(BSTR_LENGTH_BYTES);
|
|
229
|
+
const length = DynComRawMemory.fromUnsafeAddress(prefix, BSTR_LENGTH_BYTES, 1).readU32(0);
|
|
230
|
+
const isSane = length <= MAX_BSTR_BYTES;
|
|
231
|
+
const isReadable = isSane && length > 0;
|
|
232
|
+
const text = isReadable
|
|
233
|
+
? DynComRawMemory.fromUnsafeAddress(address, length, 1).readBytes(0, length).toString("utf16le")
|
|
234
|
+
: "";
|
|
235
|
+
DynComRawCleanup.sysFreeString(DynComRawPointer.fromAddress(address));
|
|
236
|
+
return text;
|
|
237
|
+
}
|
|
238
|
+
function bstrOf({ object, interfaceType, slot, steps }) {
|
|
239
|
+
return guard(() => readBstr(outPointer(out => {
|
|
240
|
+
interfaceType.method(slot).invoke(object.value, [...steps ?? [], out]);
|
|
241
|
+
})));
|
|
242
|
+
}
|
|
243
|
+
function numberOut({ object, slot }) {
|
|
244
|
+
return guard(() => outMemory({
|
|
245
|
+
size: POINTER_BYTES,
|
|
246
|
+
read(memory) {
|
|
247
|
+
elementInterface.method(slot).invoke(object.value, [addressOf(memory)]);
|
|
248
|
+
return memory.readI32(0);
|
|
249
|
+
}
|
|
250
|
+
}));
|
|
251
|
+
}
|
|
252
|
+
function getAutomation() {
|
|
253
|
+
if (automation) {
|
|
254
|
+
return automation;
|
|
255
|
+
}
|
|
256
|
+
const created = DynComUnsafe.coCreateInstance(CLSID_UI_AUTOMATION, IID_AUTOMATION);
|
|
257
|
+
const address = DynComRawPointer.fromManagedBorrowed(created).address;
|
|
258
|
+
const entry = {
|
|
259
|
+
value: created,
|
|
260
|
+
address
|
|
261
|
+
};
|
|
262
|
+
held.push(entry);
|
|
263
|
+
automation = entry;
|
|
264
|
+
return entry;
|
|
265
|
+
}
|
|
266
|
+
function getCacheRequest() {
|
|
267
|
+
if (cacheRequest) {
|
|
268
|
+
return cacheRequest;
|
|
269
|
+
}
|
|
270
|
+
const root = getAutomation();
|
|
271
|
+
const request = hold({
|
|
272
|
+
address: outPointer(out => {
|
|
273
|
+
automationInterface.method(AUTOMATION_CREATE_CACHE_REQUEST_SLOT).invoke(root.value, [out]);
|
|
274
|
+
}),
|
|
275
|
+
iid: IID_CACHE_REQUEST
|
|
276
|
+
});
|
|
277
|
+
const condition = hold({
|
|
278
|
+
address: outPointer(out => {
|
|
279
|
+
automationInterface.method(AUTOMATION_CONTROL_VIEW_CONDITION_SLOT).invoke(root.value, [out]);
|
|
280
|
+
}),
|
|
281
|
+
iid: IID_CONDITION
|
|
282
|
+
});
|
|
283
|
+
const cached = [
|
|
284
|
+
UiaPropertyId.name, UiaPropertyId.className, UiaPropertyId.automationId, UiaPropertyId.controlType,
|
|
285
|
+
UiaPropertyId.processId, UiaPropertyId.isOffscreen, UiaPropertyId.boundingRectangle,
|
|
286
|
+
UiaPropertyId.headingLevel, UiaPropertyId.isTextPatternAvailable, UiaPropertyId.isValuePatternAvailable
|
|
287
|
+
];
|
|
288
|
+
for (const property of cached) {
|
|
289
|
+
cacheRequestInterface.method(CACHE_REQUEST_ADD_PROPERTY_SLOT).invoke(request.value, [
|
|
290
|
+
DynWinRtValue.i32(property)
|
|
291
|
+
]);
|
|
292
|
+
}
|
|
293
|
+
cacheRequestInterface.method(CACHE_REQUEST_PUT_TREE_FILTER_SLOT).invoke(request.value, [
|
|
294
|
+
DynComUnsafe.pointer(condition.address)
|
|
295
|
+
]);
|
|
296
|
+
cacheRequest = request;
|
|
297
|
+
conditionHeld = condition;
|
|
298
|
+
return request;
|
|
299
|
+
}
|
|
300
|
+
function register(entry) {
|
|
301
|
+
handles.push(entry);
|
|
302
|
+
return handles.length - 1;
|
|
303
|
+
}
|
|
304
|
+
function entryOf(handle) {
|
|
305
|
+
const entry = handles[handle];
|
|
306
|
+
const isEntryUndefined = entry === undefined;
|
|
307
|
+
if (isEntryUndefined) {
|
|
308
|
+
throw new UiaElementUnavailableError("the handle is not of this scope");
|
|
309
|
+
}
|
|
310
|
+
return entry;
|
|
311
|
+
}
|
|
312
|
+
function variantOf({ element, property, isCached }) {
|
|
313
|
+
return guard(() => outMemory({
|
|
314
|
+
size: VARIANT_BYTES,
|
|
315
|
+
read(memory) {
|
|
316
|
+
memory.writeBytes(0, Buffer.alloc(VARIANT_BYTES));
|
|
317
|
+
const slot = isCached ? ELEMENT_GET_CACHED_PROPERTY_VALUE_SLOT : ELEMENT_GET_CURRENT_PROPERTY_VALUE_SLOT;
|
|
318
|
+
elementInterface.method(slot).invoke(element.value, [DynWinRtValue.i32(property), addressOf(memory)]);
|
|
319
|
+
const type = memory.readU16(0);
|
|
320
|
+
const raw = memory.readI32(VARIANT_VALUE_OFFSET);
|
|
321
|
+
DynComRawCleanup.variantClear(memory, 0);
|
|
322
|
+
const isNumber = type === VT_I4;
|
|
323
|
+
const isBoolean = type === VT_BOOL;
|
|
324
|
+
const isEmpty = type === VT_EMPTY;
|
|
325
|
+
return {
|
|
326
|
+
number: isNumber ? raw : 0,
|
|
327
|
+
boolean: isBoolean ? memory.readI16(VARIANT_VALUE_OFFSET) !== 0 : false,
|
|
328
|
+
isEmpty
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
}));
|
|
332
|
+
}
|
|
333
|
+
function propertiesOf({ element, isCached }) {
|
|
334
|
+
const offset = isCached ? CACHED_OFFSET : 0;
|
|
335
|
+
const rectangle = guard(() => outMemory({
|
|
336
|
+
size: RECT_BYTES,
|
|
337
|
+
read(memory) {
|
|
338
|
+
elementInterface.method(ELEMENT_BOUNDING_RECTANGLE_SLOT + offset).invoke(element.value, [addressOf(memory)]);
|
|
339
|
+
const left = memory.readI32(0);
|
|
340
|
+
const top = memory.readI32(RECT_TOP_OFFSET);
|
|
341
|
+
return {
|
|
342
|
+
left,
|
|
343
|
+
top,
|
|
344
|
+
width: memory.readI32(RECT_RIGHT_OFFSET) - left,
|
|
345
|
+
height: memory.readI32(RECT_BOTTOM_OFFSET) - top
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
}));
|
|
349
|
+
const level = variantOf({
|
|
350
|
+
element,
|
|
351
|
+
property: UiaPropertyId.headingLevel,
|
|
352
|
+
isCached
|
|
353
|
+
}).number;
|
|
354
|
+
const isHeading = level > HEADING_LEVEL_NONE;
|
|
355
|
+
const properties = {
|
|
356
|
+
name: bstrOf({
|
|
357
|
+
object: element,
|
|
358
|
+
interfaceType: elementInterface,
|
|
359
|
+
slot: ELEMENT_NAME_SLOT + offset
|
|
360
|
+
}),
|
|
361
|
+
className: bstrOf({
|
|
362
|
+
object: element,
|
|
363
|
+
interfaceType: elementInterface,
|
|
364
|
+
slot: ELEMENT_CLASS_NAME_SLOT + offset
|
|
365
|
+
}),
|
|
366
|
+
automationId: bstrOf({
|
|
367
|
+
object: element,
|
|
368
|
+
interfaceType: elementInterface,
|
|
369
|
+
slot: ELEMENT_AUTOMATION_ID_SLOT + offset
|
|
370
|
+
}),
|
|
371
|
+
// oxlint-disable-next-line typescript/consistent-type-assertions -- the answer is a control type id of the header
|
|
372
|
+
controlType: numberOut({
|
|
373
|
+
object: element,
|
|
374
|
+
slot: ELEMENT_CONTROL_TYPE_SLOT + offset
|
|
375
|
+
}),
|
|
376
|
+
processId: numberOut({
|
|
377
|
+
object: element,
|
|
378
|
+
slot: ELEMENT_PROCESS_ID_SLOT + offset
|
|
379
|
+
}),
|
|
380
|
+
isOffscreen: numberOut({
|
|
381
|
+
object: element,
|
|
382
|
+
slot: ELEMENT_IS_OFFSCREEN_SLOT + offset
|
|
383
|
+
}) !== 0,
|
|
384
|
+
boundingRectangle: rectangle,
|
|
385
|
+
headingLevel: isHeading ? level - HEADING_LEVEL_FIRST + 1 : 0,
|
|
386
|
+
hasTextPattern: variantOf({
|
|
387
|
+
element,
|
|
388
|
+
property: UiaPropertyId.isTextPatternAvailable,
|
|
389
|
+
isCached
|
|
390
|
+
}).boolean,
|
|
391
|
+
hasValuePattern: variantOf({
|
|
392
|
+
element,
|
|
393
|
+
property: UiaPropertyId.isValuePatternAvailable,
|
|
394
|
+
isCached
|
|
395
|
+
}).boolean
|
|
396
|
+
};
|
|
397
|
+
return properties;
|
|
398
|
+
}
|
|
399
|
+
function patternOf({ element, pattern, iid }) {
|
|
400
|
+
const address = guard(() => outPointer(out => {
|
|
401
|
+
elementInterface.method(ELEMENT_GET_CURRENT_PATTERN_AS_SLOT).invoke(element.value, [
|
|
402
|
+
DynWinRtValue.i32(pattern),
|
|
403
|
+
DynComUnsafe.iidPointer(iid),
|
|
404
|
+
out
|
|
405
|
+
]);
|
|
406
|
+
}));
|
|
407
|
+
return address === NO_ADDRESS ? null : hold({
|
|
408
|
+
address,
|
|
409
|
+
iid
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
const backend = {
|
|
413
|
+
elementFromHandle(hwnd) {
|
|
414
|
+
const root = getAutomation();
|
|
415
|
+
const address = guard(() => outPointer(out => {
|
|
416
|
+
automationInterface.method(AUTOMATION_ELEMENT_FROM_HANDLE_SLOT).invoke(root.value, [
|
|
417
|
+
DynComUnsafe.pointer(hwnd),
|
|
418
|
+
out
|
|
419
|
+
]);
|
|
420
|
+
}));
|
|
421
|
+
return address === NO_ADDRESS ? null : register(hold({
|
|
422
|
+
address,
|
|
423
|
+
iid: IID_ELEMENT
|
|
424
|
+
}));
|
|
425
|
+
},
|
|
426
|
+
focusedElement() {
|
|
427
|
+
const root = getAutomation();
|
|
428
|
+
const address = guard(() => outPointer(out => {
|
|
429
|
+
automationInterface.method(AUTOMATION_FOCUSED_ELEMENT_SLOT).invoke(root.value, [out]);
|
|
430
|
+
}));
|
|
431
|
+
return address === NO_ADDRESS ? null : register(hold({
|
|
432
|
+
address,
|
|
433
|
+
iid: IID_ELEMENT
|
|
434
|
+
}));
|
|
435
|
+
},
|
|
436
|
+
properties(handle) {
|
|
437
|
+
return propertiesOf({
|
|
438
|
+
element: entryOf(handle),
|
|
439
|
+
isCached: false
|
|
440
|
+
});
|
|
441
|
+
},
|
|
442
|
+
children(handle) {
|
|
443
|
+
const parent = entryOf(handle);
|
|
444
|
+
const request = getCacheRequest();
|
|
445
|
+
const condition = conditionHeld;
|
|
446
|
+
const isConditionNull = condition === null;
|
|
447
|
+
if (isConditionNull) {
|
|
448
|
+
return [];
|
|
449
|
+
}
|
|
450
|
+
const arrayAddress = guard(() => outPointer(out => {
|
|
451
|
+
elementInterface.method(ELEMENT_FIND_ALL_BUILD_CACHE_SLOT).invoke(parent.value, [
|
|
452
|
+
DynWinRtValue.i32(TREE_SCOPE_CHILDREN),
|
|
453
|
+
DynComUnsafe.pointer(condition.address),
|
|
454
|
+
DynComUnsafe.pointer(request.address),
|
|
455
|
+
out
|
|
456
|
+
]);
|
|
457
|
+
}));
|
|
458
|
+
const isArrayAddressNOADDRESS = arrayAddress === NO_ADDRESS;
|
|
459
|
+
if (isArrayAddressNOADDRESS) {
|
|
460
|
+
return [];
|
|
461
|
+
}
|
|
462
|
+
const array = hold({
|
|
463
|
+
address: arrayAddress,
|
|
464
|
+
iid: IID_ELEMENT_ARRAY
|
|
465
|
+
});
|
|
466
|
+
const count = guard(() => outMemory({
|
|
467
|
+
size: POINTER_BYTES,
|
|
468
|
+
read(memory) {
|
|
469
|
+
arrayInterface.method(ARRAY_LENGTH_SLOT).invoke(array.value, [addressOf(memory)]);
|
|
470
|
+
return memory.readI32(0);
|
|
471
|
+
}
|
|
472
|
+
}));
|
|
473
|
+
const children = [];
|
|
474
|
+
for (let i = 0; i < count; i += 1) {
|
|
475
|
+
const childAddress = guard(() => outPointer(out => {
|
|
476
|
+
arrayInterface.method(ARRAY_GET_ELEMENT_SLOT).invoke(array.value, [DynWinRtValue.i32(i), out]);
|
|
477
|
+
}));
|
|
478
|
+
const child = hold({
|
|
479
|
+
address: childAddress,
|
|
480
|
+
iid: IID_ELEMENT
|
|
481
|
+
});
|
|
482
|
+
try {
|
|
483
|
+
children.push({
|
|
484
|
+
handle: register(child),
|
|
485
|
+
properties: propertiesOf({
|
|
486
|
+
element: child,
|
|
487
|
+
isCached: true
|
|
488
|
+
})
|
|
489
|
+
});
|
|
490
|
+
}
|
|
491
|
+
catch (error) {
|
|
492
|
+
const isUnavailable = error instanceof UiaElementUnavailableError;
|
|
493
|
+
if (!isUnavailable) {
|
|
494
|
+
throw error;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
return children;
|
|
499
|
+
},
|
|
500
|
+
visibleRanges(handle) {
|
|
501
|
+
const pattern = patternOf({
|
|
502
|
+
element: entryOf(handle),
|
|
503
|
+
pattern: UiaPatternId.text,
|
|
504
|
+
iid: IID_TEXT_PATTERN
|
|
505
|
+
});
|
|
506
|
+
const isPatternNull = pattern === null;
|
|
507
|
+
if (isPatternNull) {
|
|
508
|
+
return null;
|
|
509
|
+
}
|
|
510
|
+
const arrayAddress = guard(() => outPointer(out => {
|
|
511
|
+
textPatternInterface.method(TEXT_PATTERN_VISIBLE_RANGES_SLOT).invoke(pattern.value, [out]);
|
|
512
|
+
}));
|
|
513
|
+
const isArrayAddressNOADDRESS = arrayAddress === NO_ADDRESS;
|
|
514
|
+
if (isArrayAddressNOADDRESS) {
|
|
515
|
+
return [];
|
|
516
|
+
}
|
|
517
|
+
const array = hold({
|
|
518
|
+
address: arrayAddress,
|
|
519
|
+
iid: IID_TEXT_RANGE_ARRAY
|
|
520
|
+
});
|
|
521
|
+
const count = guard(() => outMemory({
|
|
522
|
+
size: POINTER_BYTES,
|
|
523
|
+
read(memory) {
|
|
524
|
+
rangeArrayInterface.method(ARRAY_LENGTH_SLOT).invoke(array.value, [addressOf(memory)]);
|
|
525
|
+
return memory.readI32(0);
|
|
526
|
+
}
|
|
527
|
+
}));
|
|
528
|
+
const ranges = [];
|
|
529
|
+
for (let i = 0; i < count; i += 1) {
|
|
530
|
+
const address = guard(() => outPointer(out => {
|
|
531
|
+
rangeArrayInterface.method(ARRAY_GET_ELEMENT_SLOT).invoke(array.value, [DynWinRtValue.i32(i), out]);
|
|
532
|
+
}));
|
|
533
|
+
ranges.push(register(hold({
|
|
534
|
+
address,
|
|
535
|
+
iid: IID_TEXT_RANGE
|
|
536
|
+
})));
|
|
537
|
+
}
|
|
538
|
+
return ranges;
|
|
539
|
+
},
|
|
540
|
+
documentRange(handle) {
|
|
541
|
+
const pattern = patternOf({
|
|
542
|
+
element: entryOf(handle),
|
|
543
|
+
pattern: UiaPatternId.text,
|
|
544
|
+
iid: IID_TEXT_PATTERN
|
|
545
|
+
});
|
|
546
|
+
const isPatternNull = pattern === null;
|
|
547
|
+
if (isPatternNull) {
|
|
548
|
+
return null;
|
|
549
|
+
}
|
|
550
|
+
const address = guard(() => outPointer(out => {
|
|
551
|
+
textPatternInterface.method(TEXT_PATTERN_DOCUMENT_RANGE_SLOT).invoke(pattern.value, [out]);
|
|
552
|
+
}));
|
|
553
|
+
return address === NO_ADDRESS ? null : register(hold({
|
|
554
|
+
address,
|
|
555
|
+
iid: IID_TEXT_RANGE
|
|
556
|
+
}));
|
|
557
|
+
},
|
|
558
|
+
rangeText({ range, maxLength }) {
|
|
559
|
+
return bstrOf({
|
|
560
|
+
object: entryOf(range),
|
|
561
|
+
interfaceType: textRangeInterface,
|
|
562
|
+
slot: TEXT_RANGE_GET_TEXT_SLOT,
|
|
563
|
+
steps: [DynWinRtValue.i32(maxLength)]
|
|
564
|
+
});
|
|
565
|
+
},
|
|
566
|
+
value(handle) {
|
|
567
|
+
const pattern = patternOf({
|
|
568
|
+
element: entryOf(handle),
|
|
569
|
+
pattern: UiaPatternId.value,
|
|
570
|
+
iid: IID_VALUE_PATTERN
|
|
571
|
+
});
|
|
572
|
+
const isPatternNull = pattern === null;
|
|
573
|
+
if (isPatternNull) {
|
|
574
|
+
return null;
|
|
575
|
+
}
|
|
576
|
+
return bstrOf({
|
|
577
|
+
object: pattern,
|
|
578
|
+
interfaceType: valuePatternInterface,
|
|
579
|
+
slot: VALUE_PATTERN_VALUE_SLOT
|
|
580
|
+
});
|
|
581
|
+
},
|
|
582
|
+
dispose() {
|
|
583
|
+
for (const entry of held.reverse()) {
|
|
584
|
+
entry.value.release();
|
|
585
|
+
}
|
|
586
|
+
held.length = 0;
|
|
587
|
+
handles.length = 0;
|
|
588
|
+
automation = null;
|
|
589
|
+
cacheRequest = null;
|
|
590
|
+
conditionHeld = null;
|
|
591
|
+
}
|
|
592
|
+
};
|
|
593
|
+
return backend;
|
|
594
|
+
}
|
|
595
|
+
//# sourceMappingURL=native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/automation/native.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { UiaClient, UiaElement, UiaWalkEnd } from "./client.js";
|
|
2
|
+
/** The control types that are window chrome, not content: their subtree is skipped. */
|
|
3
|
+
export declare const UIA_CHROME_CONTROL_TYPES: ReadonlySet<number>;
|
|
4
|
+
/** The kinds of block a window's text is made of. */
|
|
5
|
+
export declare const TextBlockKind: {
|
|
6
|
+
readonly heading: "heading";
|
|
7
|
+
readonly text: "text";
|
|
8
|
+
};
|
|
9
|
+
/** One kind of text block. */
|
|
10
|
+
export type TextBlockKind = typeof TextBlockKind[keyof typeof TextBlockKind];
|
|
11
|
+
/** A piece of the text of a window. */
|
|
12
|
+
export interface TextBlock {
|
|
13
|
+
readonly kind: TextBlockKind;
|
|
14
|
+
/** 1 to 9 for a heading, 0 for text. */
|
|
15
|
+
readonly level: number;
|
|
16
|
+
readonly text: string;
|
|
17
|
+
}
|
|
18
|
+
/** The text of a window as UI Automation reports it. */
|
|
19
|
+
export interface WindowText {
|
|
20
|
+
readonly title: string;
|
|
21
|
+
readonly blocks: readonly TextBlock[];
|
|
22
|
+
/** Sixteen characters that change when the title or a block changes. */
|
|
23
|
+
readonly version: string;
|
|
24
|
+
/** Why the walk ended; anything but `complete` means the text may be cut. */
|
|
25
|
+
readonly end: UiaWalkEnd;
|
|
26
|
+
}
|
|
27
|
+
/** The options of `readWindowText`. */
|
|
28
|
+
export interface ReadWindowTextOptions {
|
|
29
|
+
/** The most elements to visit; 400 by default. */
|
|
30
|
+
readonly maxElements?: number;
|
|
31
|
+
/** The soft deadline of the walk; 400 by default. */
|
|
32
|
+
readonly maxMilliseconds?: number;
|
|
33
|
+
/** The most characters of text in all; 12 000 by default. */
|
|
34
|
+
readonly maxCharacters?: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Reads the text of a window: headings and the exact copy of the text beneath
|
|
38
|
+
* the chrome, through the control view. Elements that are off screen and
|
|
39
|
+
* window chrome (buttons, menus, tool bars, tabs, scroll bars, status bars,
|
|
40
|
+
* images) are skipped; an element with a text pattern gives its visible
|
|
41
|
+
* ranges and its subtree is not walked again.
|
|
42
|
+
*
|
|
43
|
+
* @param options - `client`: the client of a `withUiaClient` call; `root`: the window's element; the limits.
|
|
44
|
+
* @returns The title, the blocks and a version that changes with the text.
|
|
45
|
+
*/
|
|
46
|
+
export declare function readWindowText({ client, root, maxElements, maxMilliseconds, maxCharacters }: ReadWindowTextOptions & {
|
|
47
|
+
readonly client: UiaClient;
|
|
48
|
+
readonly root: UiaElement;
|
|
49
|
+
}): WindowText;
|
|
50
|
+
//# sourceMappingURL=text.d.ts.map
|