Initial project state: .NET reference, design, Rust port (M0+M1), evidence
rust / build / test / clippy / fmt (push) Has been cancelled

Layout:
- src/                    .NET 10 x64 reference: MxNativeCodec, MxNativeClient,
                          MxAsbClient, probes, tests, harnesses. Executable spec.
- design/                 Architectural plan for the Rust port (M0–M6), error
                          model, protocol invariants, risks (R1–R16), adversarial
                          review log (review.md).
- rust/                   Rust workspace. M0 skeleton + M1 codec parity.
                          mxaccess-codec: 215 unit tests + 2 cross-implementation
                          parity tests (byte-identical against .NET reference).
                          Other crates are M0 stubs awaiting M2+.
- captures/               Frida + netsh + pcap evidence per CLAUDE.md
                          ("captures are evidence, not throwaway logs").
- analysis/               Decompiled C# (frida/proxy/decompiled-*),
                          Ghidra exports for native DLLs (`exports/` only —
                          working state at `projects/` and AVEVA's input
                          binaries at `input/` are gitignored).
- docs/                   Reverse-engineering reference docs.
- tools/                  Setup-LiveProbeEnv.ps1 (Infisical credential fetcher),
                          Compute-Crc.ps1 (.NET parity helper).
- .github/workflows/      Rust CI: fmt + build + test + clippy on Windows.
- LICENSE                 MIT (Joseph Doherty, 2026).

Verified:
- cargo test --workspace → 217 passed (215 unit + 2 .NET parity), 0 failed
- cargo clippy --workspace -- -D warnings → clean
- cargo fmt --all -- --check → clean
- cargo publish --dry-run -p mxaccess-codec → packages cleanly

Excluded from history (see .gitignore):
- **/bin, **/obj, **/target — build artifacts
- analysis/ghidra/projects/ — Ghidra working state (regenerable)
- analysis/ghidra/input/ — AVEVA proprietary DLLs (vendor IP)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Joseph Doherty
2026-05-05 06:21:00 -04:00
parent 43733699b0
commit fe2a6db786
3849 changed files with 352975 additions and 0 deletions
+49
View File
@@ -0,0 +1,49 @@
name: rust
on:
push:
branches: [master, main]
paths: ['rust/**', '.github/workflows/rust.yml']
pull_request:
paths: ['rust/**', '.github/workflows/rust.yml']
defaults:
run:
shell: pwsh
working-directory: rust
jobs:
build:
name: build / test / clippy / fmt
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: '1.85'
components: rustfmt, clippy
- name: Cache cargo
uses: Swatinem/rust-cache@v2
with:
workspaces: rust
- name: cargo fmt --check
run: cargo fmt --all -- --check
- name: cargo build --workspace
run: cargo build --workspace --all-targets
- name: cargo test --workspace
run: cargo test --workspace --no-fail-fast
env:
# MX_LIVE is intentionally NOT set — live tests require an AVEVA
# install + Galaxy DB which CI cannot provide. See design/60-roadmap.md
# validation strategy: live probes run on the maintainer's workstation,
# gated by `MX_LIVE=1` via `tools/Setup-LiveProbeEnv.ps1`.
MX_LIVE: ''
- name: cargo clippy --workspace -- -D warnings
run: cargo clippy --workspace --all-targets -- -D warnings
+67
View File
@@ -0,0 +1,67 @@
# ---- .NET build artifacts ----
**/bin/
**/obj/
*.user
*.userprefs
*.suo
*.userosscache
*.sln.docstates
[Dd]ebug/
[Rr]elease/
.vs/
# ---- Rust build artifacts (rust/ has its own .gitignore too) ----
**/target/
**/*.rs.bk
Cargo.lock.bak
# rust/Cargo.lock IS committed for workspace reproducibility.
# ---- IDE / editor ----
.idea/
.vscode/
*.swp
*~
*.bak
*.tmp
# ---- OS ----
Thumbs.db
Desktop.ini
.DS_Store
# ---- Local credential / state caches ----
# (We never inline secrets — credentials live in Infisical via
# tools/Setup-LiveProbeEnv.ps1. Anything in these patterns is
# definitionally never tracked.)
**/*.secret
**/.env
**/.env.local
**/credentials.json
# ---- Frida-generated test fixture symlinks ----
# rust/tests/fixtures/ is populated at test time from captures/ per
# design/60-roadmap.md M0; the actual symlink tree is not checked in.
/rust/tests/fixtures/
# ---- Plan files (project-local Claude Code plan staging) ----
# These live under the user's ~/.claude/plans/ scope but appear at the
# project root if accidentally created.
/zazzy-napping-sketch.md
# ---- Reverse-engineering working state ----
# `analysis/ghidra/projects/` is Ghidra's transient project database
# (~178 MB). It is regenerated by re-loading the binaries in
# `analysis/ghidra/input/` and re-running the headless decompile scripts
# under `analysis/ghidra/scripts/`. The actual evidence — the decompiled
# C/C++ pseudo-source — lives under `analysis/ghidra/exports/` and IS
# committed.
/analysis/ghidra/projects/
# `analysis/ghidra/input/` contains AVEVA's proprietary DLLs (Lmx.dll,
# NmxSvc.exe, NmxAdptr.dll, NmxSvcps.dll, LmxProxy.dll, aaMxDataConsumer.dll,
# WWProxyStub.dll) copied from a System Platform install. These are vendor
# binaries; they are not ours to redistribute. The decompiled exports under
# `analysis/ghidra/exports/` ARE committed (they are our analysis, not the
# vendor binaries). To repopulate `input/` for a re-decompile, copy the
# matching DLLs from a local AVEVA install and rerun the Ghidra scripts.
/analysis/ghidra/input/
+125
View File
@@ -0,0 +1,125 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project goal
Build a **native Rust interface that replaces the AVEVA/Wonderware MXAccess library**, giving Rust applications an MXAccess-equivalent API for talking to the AVEVA System Platform. When COM bindings are needed, use [microsoft/windows-rs](https://github.com/microsoft/windows-rs).
**Two-layer delivery target:**
1. **Raw MXAccess replacement is key.** The first deliverable is a faithful, byte-accurate Rust reimplementation of the MXAccess surface (register/advise/write/read/subscribe/callback dispatch) over the proven x64 transports. Parity with native MXAccess wire behavior comes before ergonomics — every operation must round-trip the same bytes and surface the same status as the captured native stack.
2. **High-level safe async via Tokio is the end goal.** Above the raw layer, expose an idiomatic Rust API: `async`/`await` on Tokio, `Send + Sync` handles, typed errors instead of `HRESULT`, no `unsafe` in the public surface, structured subscription streams (e.g. `Stream<Item = DataChange>`), and cancellation via `CancellationToken`/drop. The raw layer should be usable on its own for power users; the Tokio layer is what most consumers should reach for.
The Rust port does not yet exist in this tree. What lives here today is the **reverse-engineering reference**: a working .NET 10 x64 managed implementation of the same protocol stack, plus the captures, decompiled artifacts, and wire-format docs that justify every byte of it. Treat the .NET code as the executable spec — do not invent protocol behavior; port what is already proven.
## High-level architecture
The real MXAccess runtime is a **32-bit COM/native stack**. The .NET assembly `ArchestrA.MXAccess.dll` is just an interop shim around `LMXPROXYLib`:
```
ArchestrA.MXAccess.dll -> LmxProxy.dll -> Lmx.dll / NmxAdptr.dll -> NmxSvc.exe
```
Two viable replacement paths have been proven from x64 (relevant to the Rust port):
1. **Managed DCOM/NDR directly to `NmxSvc.exe`** — full MXAccess-compatible LMX/NMX behavior. Bypasses the x86-only `NmxSvcps.dll` proxy/stub by speaking ORPC + NTLM packet-integrity on the wire. This is what `src/MxNativeClient` does. The Rust port should follow the same approach using `windows-rs` for COM activation/RPCSS bootstrap and a hand-rolled DCE/RPC + NDR codec for the service interfaces.
2. **ASB (`IASBIDataV2`) over `net.tcp` to MxDataProvider** — a higher-level data-service path that handles register/read/write/complete/subscribe without going through NMX at all. This is what `src/MxAsbClient` does. Useful as a regular-tag data-plane behind a compatibility router; does not cover callback-only MXAccess semantics.
`docs/ASB-Native-Integration-Decision.md` records the decision to use ASB as the preferred data-plane and reserve NMX for callback-only semantics that ASB cannot reach.
### Layering inside the .NET reference
- **`src/MxNativeCodec`** — pure protocol codec, no I/O. Handles `MxReferenceHandle` (the 20-byte LMX automation/attribute handle, including CRC-16/IBM signatures over lowercase UTF-16LE names), the NMX `TransferData` envelope, item-control (advise/unadvise) bodies, normal/secured write bodies, `Write2` timestamped variants, subscription/status callback decoders (`0x32`, `0x33`), reference-registration (`0x10`/`0x11`), and the `MxStatus`/`MxValueKind`/`MxDataType` model. **This is the layer most directly equivalent to what the Rust port needs to reproduce first.**
- **`src/MxNativeClient`** — DCOM transport + session façade. Implements managed NTLMv2 (`ManagedNtlmClientContext`), DCE/RPC PDU framing (`DceRpcPdu`, `DceRpcTcpClient`), `IObjectExporter::ResolveOxid`, `IRemUnknown::RemQueryInterface`, the `INmxService2` client (`ManagedNmxService2Client`), a managed callback exporter that serves `INmxSvcCallback`/`IRemUnknown` from a managed RPC endpoint, plus the high-level `MxNativeSession` and the MXAccess-shaped `MxNativeCompatibilityServer`. Talks SQL directly to the Galaxy Repository (`GalaxyRepositoryTagResolver`, `GalaxyRepositoryUserResolver`) instead of calling the x86 LMX resolver.
- **`src/MxAsbClient`** — ASB/WCF data client (`MxAsbDataClient`) plus an MXAccess-shaped facade (`MxAsbCompatibilityServer`). Self-contained from NMX.
- **`src/*.Probe`** — runnable diagnostic CLIs that exercise individual protocol slices end-to-end against the live local AVEVA install. They are how new behavior gets validated; their CLI flags double as documentation of the supported operations.
- **`src/*.Tests`** — assertion-style runners (each is a console `Program.cs`, not a framework test project). Run them with `dotnet run --project ...`.
- **`src/MxTraceHarness`** (net481/x86) and **`src/NmxComHarness`** — instrumented harnesses that load the real x86 stack to capture ground-truth wire bytes.
### Reverse-engineering artifacts (the spec, in priority order)
When in doubt about wire format, these are authoritative — read before guessing:
- `docs/MXAccess-Reverse-Engineering.md`, `docs/MXAccess-Public-API.md` — overall map and the public surface to replicate.
- `docs/Loopback-Protocol-Findings.md`, `docs/NMX-COM-Contracts.md`, `docs/Transport-Correlation.md` — DCE/RPC interfaces, opnums, and how Frida-observed native calls map to TCP frames.
- `docs/ASB-Variant-Wire-Format.md` — ASB variant layout, scalar/array, timestamps, durations, quality/status.
- `docs/DotNet10-Native-Library-Plan.md` — current parity matrix vs. `ILMXProxyServer5`, what's proven, what's blocked.
- `docs/MxNativeSession-API.md` — the consumer-facing API surface the Rust port should converge on.
- `analysis/frida/write-body-matrix.tsv`, `write-array-body-matrix.tsv`, `write-mode-matrix.tsv` — per-type captured write bodies.
- `analysis/proxy/nmxsvcps-procedures.tsv` — decoded MIDL procedure table.
- `analysis/decompiled-mxaccess/`, `analysis/decompiled-interop/`, `analysis/decompiled/` — decompiled C# of the real assemblies. `analysis/ghidra/` and `analysis/native/` for native code.
- `captures/0NN-frida-*` — controlled Frida captures, one per write/subscribe scenario. `frida-to-tcp-map.tsv` inside a capture correlates native calls to the wire.
- `work_remain.md` — current status of what's done vs. open across both managed paths.
## Common commands
All .NET projects target **net10.0-windows / x64** (except the x86 `MxTraceHarness`, which is net481).
```powershell
# Build the protocol layers
dotnet build src\MxNativeCodec\MxNativeCodec.csproj
dotnet build src\MxNativeClient\MxNativeClient.csproj
dotnet build src\MxAsbClient\MxAsbClient.csproj
# Run the assertion-style test programs
dotnet run --project src\MxNativeCodec.Tests\MxNativeCodec.Tests.csproj
dotnet run --project src\MxNativeClient.Tests\MxNativeClient.Tests.csproj
dotnet run --project src\MxAsbClient.Tests\MxAsbClient.Tests.csproj
# Live probes against the local AVEVA install (require NTLM env + Galaxy SQL access)
dotnet run --project src\MxNativeClient.Probe\MxNativeClient.Probe.csproj -c Release -- --probe-session-write --tag=TestChildObject.TestInt --value=123 --objref-only
dotnet run --project src\MxNativeClient.Probe\MxNativeClient.Probe.csproj -c Release -- --probe-session-subscribe --tag=TestChildObject.TestInt --subscribe-hold-seconds=5 --objref-only
# Populate live-probe env vars from Infisical (via wwtools/secrets/Get-Secret.ps1).
# Sets MX_LIVE, MX_NMX_HOST, MX_GALAXY_DB, MX_TEST_USER, MX_TEST_DOMAIN,
# MX_TEST_PASSWORD, and (when configured) MX_ASB_SHARED_SECRET. Dot-source so
# the env vars persist in the calling session. Never inline plaintext.
. .\tools\Setup-LiveProbeEnv.ps1
. .\tools\Setup-LiveProbeEnv.ps1 -SkipAsbSecret # if ASB secret not yet in Infisical
.\tools\Setup-LiveProbeEnv.ps1 -DryRun # print what would be set
```
There is no solution file or workspace runner — build/test each project explicitly. There is no lint config; the projects use `Nullable` and `ImplicitUsings` enabled and rely on the compiler.
### Rust workspace (M0 onwards)
The Rust port lives under `rust/` (sibling of `src/`). Toolchain pinned to 1.85 stable via `rust/rust-toolchain.toml`; edition 2024; license MIT.
```powershell
# All commands run from the rust/ workspace root
cd rust
# Workspace-wide
cargo build --workspace --all-targets
cargo test --workspace --no-fail-fast
cargo clippy --workspace --all-targets -- -D warnings
cargo fmt --all -- --check
# Single crate
cargo build -p mxaccess-codec
cargo test -p mxaccess-codec
# Examples (live under crates/mxaccess/examples/, invoke with -p mxaccess)
cargo run -p mxaccess --example connect-write-read
cargo run -p mxaccess --example subscribe -- --tag TestChildObject.TestInt
cargo run -p mxaccess --example asb-subscribe -- --tag TestChildObject.TestInt
# Live integration tests (require AVEVA + Galaxy DB; gated by MX_LIVE)
. ..\tools\Setup-LiveProbeEnv.ps1 # dot-source — fetches creds from Infisical
cargo test -p mxaccess --features live -- --ignored
# Publish-check (M0 DoD)
cargo publish --dry-run -p mxaccess-codec
```
CI: `.github/workflows/rust.yml` runs `fmt --check`, `build`, `test`, `clippy -D warnings` on Windows.
## Working rules specific to this project
- **Do not fabricate protocol behavior.** Every wire shape in the .NET reference is backed by a Frida capture, decompiled source, or live probe. When extending the Rust port, point to the same evidence — capture a new fixture if one doesn't exist.
- **Preserve unknown bytes.** The codecs in `MxNativeCodec` deliberately round-trip unknown tag/session/quality fields rather than zeroing them. Mirror this in Rust; consumers depend on byte-for-byte parity with native MXAccess for some flows.
- **x64 only for the replacement.** The whole point is to escape the 32-bit `NmxSvcps.dll` proxy/stub. Do not introduce a dependency on the x86 stack from any replacement code; if x86 is unavoidable for capture/validation, isolate it in `MxTraceHarness`/`NmxComHarness`.
- **COM in Rust → use `windows-rs`.** For COM activation, `IUnknown`, OBJREF marshaling, and registered type-library callback paths, prefer `windows`/`windows-rs` types over hand-rolled FFI.
- **Galaxy Repository access is direct SQL** (see `GalaxyRepositoryTagResolver.cs`), not LMX. The Rust port should do the same — query the `dbo.gobject` / `dbo.instance` / `dbo.dynamic_attribute` / `dbo.attribute_definition` / `dbo.primitive_instance` / `dbo.package` tables, then walk the package-inheritance chain via `package.derived_from_package_id` (the recursive CTE in `GalaxyRepositoryTagResolver.cs:209-293`, named `deployed_package_chain`). Combine with CRC-16/IBM signature computation locally to reproduce the native handle without touching x86 LMX. Verified against `wwtools/grdb/` (the sibling Galaxy SQL exploration repo) and `wwtools/grdb/queries/attributes.sql`. Resolver input is `tag_name`-form (e.g. `DelmiaReceiver_001`), NOT `contained_name`-form (e.g. `TestMachine_001.DelmiaReceiver`) — the two are asymmetric in the schema. Earlier drafts of this file listed `aa_attribute` / `aa_object` / `mx_attribute_category` as the surface; those names do not exist as tables in the Galaxy DB and have been corrected.
- **Captures and probe outputs in `captures/`, `analysis/frida/`, `analysis/proxy/` are evidence, not throwaway logs.** Don't delete or rewrite them when refactoring.
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2026 Joseph Doherty
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+313
View File
@@ -0,0 +1,313 @@
# AVEVA MXAccess reverse-engineering notes
This folder documents the local AVEVA/Wonderware MXAccess stack installed on this
machine, using the primary runtime DLL:
`C:\Program Files (x86)\ArchestrA\Framework\Bin\ArchestrA.MXAccess.dll`
Primary documentation:
- [docs/MXAccess-Reverse-Engineering.md](docs/MXAccess-Reverse-Engineering.md)
- [docs/MXAccess-Public-API.md](docs/MXAccess-Public-API.md)
- [docs/Managed-LMX-NMX-Capture-Plan.md](docs/Managed-LMX-NMX-Capture-Plan.md)
- [docs/Capture-Run-2026-04-25.md](docs/Capture-Run-2026-04-25.md)
- [docs/Loopback-Protocol-Findings.md](docs/Loopback-Protocol-Findings.md)
- [docs/NMX-COM-Contracts.md](docs/NMX-COM-Contracts.md)
- [docs/DotNet10-Native-Library-Plan.md](docs/DotNet10-Native-Library-Plan.md)
- [docs/Ghidra-Headless-Analysis.md](docs/Ghidra-Headless-Analysis.md)
- [docs/Transport-Correlation.md](docs/Transport-Correlation.md)
Current executable capture harness:
`src\MxTraceHarness\bin\Release\net481\MxTraceHarness.exe`
Managed codec work-in-progress:
`src\MxNativeCodec\MxNativeCodec.csproj`
.NET 10 x64 NMX client/probe scaffold:
`src\MxNativeClient\MxNativeClient.csproj`
`src\MxNativeClient.Probe\MxNativeClient.Probe.csproj`
`src\MxNativeClient.Tests\MxNativeClient.Tests.csproj`
This .NET 10 library currently implements a template-based encoder/decoder for
the observed `CNmxAdapter::PutRequest` write bodies. It preserves unknown
tag/session fields from a captured body and replaces the typed value slot plus
write index. The companion console test project round-trips the real Frida
bytes for bool, int, float, double, string, datetime, and the observed
int/bool/float/double/string array bodies. It also includes the first observed
`INmxService2.TransferData` envelope codec (`46-byte header + PutRequest body`).
The client scaffold now includes managed OBJREF parsing, NMX procedure metadata,
ORPC structures, `IRemUnknown::RemQueryInterface` message composition, and
DCE/RPC PDU primitives tested against captured bytes. It also has a managed
unauthenticated `IObjectExporter::ResolveOxid` probe that reaches RPCSS and
currently confirms the expected `ERROR_ACCESS_DENIED` auth blocker. A reference
Impacket probe now proves the packet-private DCOM path end to end: it activates
`NmxSvc.NmxService`, receives an `INmxService2` IPID, and calls
`GetPartnerVersion` successfully from a 64-bit process without loading the
AVEVA x86 proxy. The managed scaffold now goes further: it implements managed
NTLMv2 packet-integrity signing, resolves the OXID, performs
`IRemUnknown::RemQueryInterface`, and calls `INmxService2.GetPartnerVersion`
successfully from .NET 10 x64. The first service-specific scalar codec is in
`src\MxNativeClient\NmxService2Messages.cs`.
Generated static-analysis artifacts are under `analysis/`:
- `analysis/decompiled-mxaccess/` - decompiled C# for `ArchestrA.MXAccess.dll`.
- `analysis/interop/` - imported interop assemblies generated from native type libraries.
- `analysis/decompiled-interop/` - decompiled type-library imports for `Lmx.dll`, `LmxProxy.dll`,
`NmxAdptr.dll`, `NmxSvc.exe`, and `MXAccess32.tlb`.
The main finding is that `ArchestrA.MXAccess.dll` is not the implementation of
the LMX/NMX protocol. It is a .NET COM interop assembly imported from
`LMXPROXYLib`. The real runtime path is a 32-bit COM/native stack:
`ArchestrA.MXAccess.dll` -> `LmxProxy.dll` -> `Lmx.dll` / `NmxAdptr.dll` -> `NmxSvc.exe`
That explains the current `net48`/x86 constraint and shapes the possible paths
to a modern .NET or Rust interface.
Current loopback captures show that the native path uses DCE/RPC on
`::1:49704` plus at least one separate compact localhost binary stream around
write/write-complete activity. See `docs/Loopback-Protocol-Findings.md` for the
captured interface UUIDs, opnum shape, and write-window correlation.
Latest controlled captures:
`captures\021-loopback-write-test-int-sequence-103-105`
`captures\023-frida-write-test-int-sequence-109-111`
`captures\024-frida-write-test-bool-sequence`
`captures\025-frida-write-test-float-sequence`
`captures\026-frida-write-test-double-sequence`
`captures\027-frida-write-test-string-sequence`
`captures\028-frida-write-test-datetime-sequence`
`captures\029-frida-write-test-int-array`
`captures\030-frida-write-test-bool-array`
`captures\031-frida-write-test-float-array`
`captures\032-frida-write-test-double-array`
`captures\033-frida-write-test-string-array`
`captures\035-frida-write-test-datetime-array-full`
`captures\040-frida-write-normal-secured-protectedvalue`
`captures\041-frida-write-normal-verified-protectedvalue1`
`captures\042-frida-write2-test-int-timestamp`
`captures\043-frida-loopback-write-test-int-115`
`captures\044-frida-loopback-write-test-int-123456789`
`captures\045-service-boundary-write-test-int-123456790`
`captures\046-service-boundary-write-test-int-123456791`
The loopback int sequence writes `TestChildObject.TestInt` to `103`, `104`, and
`105` in one advised session. The local stream framing is stable, but the
requested int values are not isolated as plain int32 payloads in the decoded
write-window pcap records. The Frida traces then find the values at the native
boundary: `CLMXProxyServer` receives the COM `VARIANT`, `CNmxAdapter::PutRequest`
carries the typed body, and `CNmxAdapter::TransferData` wraps that body.
The current scalar write matrix is saved at:
`analysis\frida\write-body-matrix.tsv`
The current array write matrix is saved at:
`analysis\frida\write-array-body-matrix.tsv`
The current write-mode matrix is saved at:
`analysis\frida\write-mode-matrix.tsv`
The decoded `NmxSvcps.dll` MIDL procedure table is saved at:
`analysis\proxy\nmxsvcps-procedures.tsv`
The .NET 10 x64 remote-style `IUnknown` OBJREF probe output is saved at:
`analysis\proxy\nmxservice-objref-context2.txt`
The reference DCOM activation and `INmxService2.GetPartnerVersion` probe output
is saved at:
`analysis\proxy\dcom-inmxservice2-getpartner-probe.txt`
The managed OXID, RemQueryInterface, and `INmxService2.GetPartnerVersion` probe
output is saved at:
`analysis\proxy\managed-remqi-and-getpartner-probe.txt`
The first Frida-to-TCP correlation output is:
`captures\043-frida-loopback-write-test-int-115\frida-to-tcp-map.tsv`
The non-ambiguous correlation capture is:
`captures\044-frida-loopback-write-test-int-123456789\frida-to-tcp-map.tsv`
The matrices cover bool, int, float, double, string, datetime, and the matching
array forms, plus timestamped `Write2` and secured/verified public write
behavior. Capture `046` proves the same 86-byte write body reaches
`CNmxService.TransferData` inside `NmxSvc.exe`, but the .NET 10 x64 probe proves
ordinary COM interop fails on first method call because the only installed MIDL
proxy/stub is 32-bit (`NmxSvcps.dll`). The latest managed probe proves the
service can still be reached through managed packet-integrity ORPC. The next
blocker for the full managed x64 library is callback/interface-pointer
marshaling for `RegisterEngine2`, the `TransferData` byte-array method, then
status/error, add-item, advise, remove-item, and general tag metadata synthesis.
The `TransferData` byte-array method is now encoded and live-probed. The
service returns an NMX application HRESULT for the unregistered control probe,
which means the ORPC/NDR call shape is accepted. The callback marshal probe
confirms Windows cannot export `INmxSvcCallback` from x64 on this machine
because the proxy/stub is not registered for 64-bit; a managed callback object
exporter is required. The callback method codecs for `DataReceived` and
`StatusReceived` are now in `src\MxNativeClient\NmxSvcCallbackMessages.cs`; the
remaining callback work is the managed object endpoint/OBJREF exporter.
`RegisterEngine2` marshaling is now decoded far enough for a managed .NET 10
x64 null-callback registration lifecycle. The x86 direct harness and Frida
captures show the required `0x72657355` BSTR user-marshal marker, the BSTR wire
format, and the callback MInterfacePointer wrapper. The live managed probe is:
`analysis\proxy\managed-registerengine2-null-callback-probe.txt`
It returns non-failing COM success codes for both register and unregister. The
remaining `RegisterEngine2` work is generating a managed callback OBJREF and
serving `INmxSvcCallback`/`IRemUnknown` from a managed DCE/RPC endpoint.
A synthetic managed callback OBJREF currently fails before `NmxSvc.exe` connects
to the advertised listener, which points to missing RPCSS/OXID registration.
A COM-runtime-registered x64 `IUnknown` OBJREF patched to the callback IID is
accepted for non-null `RegisterEngine2`:
`analysis\proxy\managed-registerengine2-callback-com-iunknown-objref-probe.txt`
That proves the non-null callback argument can be accepted in .NET 10 x64, but
it does not yet prove callback method dispatch without the missing x64
`NmxSvcps.dll` stub.
The x64 callback marshal issue can be solved with a registered type library and
the Windows standard automation proxy/stub:
`analysis\scripts\register_x64_callback_typelib.ps1`
After that setup, `CoMarshalInterface(INmxSvcCallback)` succeeds from .NET 10
x64 and `NmxSvc.exe` accepts the real marshaled callback OBJREF:
`analysis\proxy\managed-registerengine2-callback-com-real-probe.txt`
The same synthetic self-transfer path produces no callback in the x86 direct
harness, so the next blocker is the NMX add/advise/session message bodies that
actually trigger data/status callbacks.
That next layer is now being decoded from focused subscription capture:
`captures\058-frida-subscribe-testint`
The capture shows `AdviseSupervisory` sending a 39-byte `CNmxAdapter.PutRequest`
body wrapped in an 85-byte `TransferData` body. The corresponding unadvise body
uses the same item-control shape with command byte `0x21` instead of `0x1f`,
wrapped in an 83-byte `TransferData` body whose envelope kind is `3`. Incoming
`ProcessDataReceived` bodies use a related length-prefixed service-to-adapter
shape and carry status/data commands including `0x32` and `0x33`. The generic
frame classifier is now checked into:
`src\MxNativeCodec\NmxObservedFrame.cs`
The callback codec now accepts both observed service-to-adapter forms: the
4-byte length-prefixed buffers and the direct 46-byte-header buffers seen in
the Write2 callback capture. It decodes `0x32` subscription status records and
`0x33` data update records into typed status/detail, quality, FILETIME
timestamps, wire kind, correlation IDs, and scalar values for the observed bool,
int, float, double, string, scalar arrays, datetime arrays, and multi-record
date/status updates:
`src\MxNativeCodec\NmxSubscriptionMessage.cs`
The generated envelope encoder now reproduces the captured advise and unadvise
`TransferData` bodies exactly:
`src\MxNativeCodec\NmxTransferEnvelope.cs`
Follow-up captures for `TestBool`, `TestString`, and the array attributes show
that the item-control body contains an `MxHandle` projection. The
parser/encoder is:
`src\MxNativeCodec\NmxItemControlMessage.cs`
Capture `061` hooks `Lmx.dll` around `IMxReference.GetMxHandle` and
`AccessManager.FixUpMxHandle`. It proves the resolved `TestInt` handle is a
20-byte structure:
`01 00 01 00 02 00 05 00 36 d7 02 00 9b 00 0a 00 3e da 00 00`
The LMX typelib names this as `MxAutomationObjectHandle` followed by
`MxAttributeHandle`:
| Offset | Field | Value for `TestChildObject.TestInt` |
| ---: | --- | ---: |
| 0 | `galaxy` | `1` |
| 2 | `platform` | `1` |
| 4 | `engine` | `2` |
| 6 | `object` | `5` |
| 8 | object signature | `0xd736` |
| 10 | primitive id | `2` |
| 12 | attribute id | `155` |
| 14 | property/category id | `10` |
| 16 | attribute signature | `0xda3e` |
| 18 | attribute index | `0` (`-1` for arrays) |
The NMX item-control request projects bytes 6 through 19 of this handle, then
appends tail `0x00000003`. The signatures are reproducible in managed code:
CRC-16/IBM over the lowercase UTF-16LE object or attribute name
(`testchildobject -> 0xd736`, `testint -> 0xda3e`). The managed handle type and
synthesizer are:
`src\MxNativeCodec\MxReferenceHandle.cs`
Normal write bodies are also generated from the same handle projection plus
the GR data type. The generator reproduces the observed normal bool, int,
float, double, string, datetime, and array write bodies, plus the captured
timestamped int `Write2` body. The GR resolver and generator also cover the
captured secured/verified test tags (`security_classification` 2 and 3);
their public route is still the normal write body shape:
`src\MxNativeCodec\NmxWriteMessage.cs`
The Galaxy Repository resolver is now live-tested against the local `ZB`
database and reproduces that same handle for `TestChildObject.TestInt` without
calling the x86 LMX resolver:
`src\MxNativeClient\GalaxyRepositoryTagResolver.cs`
The reusable .NET 10 x64 managed service client is now checked into:
`src\MxNativeClient\ManagedNmxService2Client.cs`
A first consumer-facing session facade now wraps the low-level pieces:
`src\MxNativeClient\MxNativeSession.cs`
It opens/registers a managed callback engine, resolves Galaxy Repository tag
metadata, exposes `WriteAsync`, timestamped `Write2Async`,
metadata browse, transient subscription `ReadAsync`,
`SubscribeAsync`/`Unsubscribe`, and raises typed callback records decoded by
`NmxSubscriptionMessage`.
The facade usage notes and probe commands are documented in:
`docs\MxNativeSession-API.md`
The remaining parity gaps against the full `ILMXProxyServer5` MXAccess surface
are tracked method-by-method in:
`docs\DotNet10-Native-Library-Plan.md`
It moves the proven managed DCOM path out of the probe and exposes activation,
OXID resolution, `IRemUnknown::RemQueryInterface`, `RegisterEngine2`, `Connect`,
subscriber engine calls, `TransferData`, generated `AdviseSupervisory` and
`UnAdvise` bodies, generated normal `Write` and timestamped `Write2` bodies,
`GetPartnerVersion`, and
unregister without loading the
AVEVA x86 proxy/stub. The probe now has a guarded managed subscribe path; SSPI
auth faults at `ResolveOxid` with `0x00000721`, so the valid end-to-end
subscription probe remains the managed NTLM runtime-auth path. When callbacks
arrive, the probe prints the typed subscription records using the same managed
callback decoder.
+126
View File
@@ -0,0 +1,126 @@
candidate_set full_tag_reference data_type_name mx_data_type is_array array_dimension security_classification security_name is_historized is_alarm attribute_source
------------- ------------------ -------------- ------------ -------- --------------- ----------------------- ------------- ------------- -------- ----------------
read_capture DevTestObject.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestArea.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestArea2.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestChildObject.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_001.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_002.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_003.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_004.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_005.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_006.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_007.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_008.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_009.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_010.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_011.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_012.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_013.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_014.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_015.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_016.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_017.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_018.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_019.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture TestMachine_020.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture DelmiaReceiver_001.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture DelmiaReceiver_002.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture DelmiaReceiver_003.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture DelmiaReceiver_004.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture DelmiaReceiver_005.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture DelmiaReceiver_006.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture DelmiaReceiver_007.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture DelmiaReceiver_008.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture DelmiaReceiver_009.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture DelmiaReceiver_010.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture DelmiaReceiver_020.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture DEV.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture DevAppEngine.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture DevPlatform.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture MESReceiver_001.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
read_capture MESReceiver_002.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
candidate_set full_tag_reference data_type_name mx_data_type is_array array_dimension security_classification security_name is_historized is_alarm attribute_source
------------- ------------------ -------------- ------------ -------- --------------- ----------------------- ------------- ------------- -------- ----------------
array_read_capture DevTestObject.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestArea.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestArea2.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestChildObject.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_001.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_002.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_003.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_004.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_005.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_006.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_007.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_008.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_009.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_010.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_011.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_012.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_013.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_014.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_015.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_016.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_017.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_018.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_019.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestMachine_020.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
array_read_capture TestChildObject.TestBoolArray[] Boolean 1 1 10 1 Operate 0 0 dynamic
array_read_capture TestChildObject.TestDateTimeArray[] Time 6 1 10 1 Operate 0 0 dynamic
array_read_capture TestChildObject.TestDoubleArray[] Double 4 1 10 1 Operate 0 0 dynamic
array_read_capture TestChildObject.TestFloatArray[] Float 3 1 10 1 Operate 0 0 dynamic
array_read_capture TestChildObject.TestIntArray[] Integer 2 1 10 1 Operate 0 0 dynamic
array_read_capture TestChildObject.TestStringArray[] String 5 1 10 1 Operate 0 0 dynamic
array_read_capture DevTestObject.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
array_read_capture TestArea.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
array_read_capture TestArea2.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
array_read_capture TestChildObject.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
array_read_capture TestMachine_001.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
array_read_capture TestMachine_001.TestAlarm001.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
array_read_capture TestMachine_001.TestAlarm002.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
array_read_capture TestMachine_001.TestAlarm003.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
array_read_capture TestMachine_002.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
array_read_capture TestMachine_002.TestAlarm001.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
candidate_set full_tag_reference data_type_name mx_data_type is_array array_dimension security_classification security_name is_historized is_alarm attribute_source
------------- ------------------ -------------- ------------ -------- --------------- ----------------------- ------------- ------------- -------- ----------------
possible_write_capture TestChildObject.TestBool Boolean 1 0 NULL 1 Operate 0 0 dynamic
possible_write_capture TestChildObject.TestDateTime Time 6 0 NULL 1 Operate 0 0 dynamic
possible_write_capture TestChildObject.TestDouble Double 4 0 NULL 1 Operate 0 0 dynamic
possible_write_capture TestChildObject.TestFloat Float 3 0 NULL 1 Operate 0 0 dynamic
possible_write_capture TestChildObject.TestInt Integer 2 0 NULL 1 Operate 0 0 dynamic
possible_write_capture TestChildObject.TestString String 5 0 NULL 1 Operate 0 0 dynamic
possible_write_capture TestMachine_001.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_002.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_003.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_004.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_005.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_006.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_007.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_008.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_009.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_010.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_011.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_012.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_013.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_014.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_015.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_016.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_017.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_018.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_019.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestMachine_020.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
possible_write_capture TestArea.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
possible_write_capture TestArea.PlantState String 5 0 NULL 0 FreeAccess 0 0 primitive
possible_write_capture TestArea2.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
possible_write_capture TestArea2.PlantState String 5 0 NULL 0 FreeAccess 0 0 primitive
possible_write_capture TestChildObject.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
possible_write_capture TestMachine_001.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
possible_write_capture TestMachine_001.TestAlarm001.AckMsg String 5 0 NULL 0 FreeAccess 0 0 primitive
possible_write_capture TestMachine_001.TestAlarm001.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
possible_write_capture TestMachine_001.TestAlarm001.AlarmShelveCmd String 5 0 NULL 0 FreeAccess 0 0 primitive
possible_write_capture TestMachine_001.TestAlarm001.DescAttrName String 5 0 NULL 0 FreeAccess 0 0 primitive
possible_write_capture TestMachine_001.TestAlarm002.AckMsg String 5 0 NULL 0 FreeAccess 0 0 primitive
possible_write_capture TestMachine_001.TestAlarm002.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
possible_write_capture TestMachine_001.TestAlarm002.AlarmShelveCmd String 5 0 NULL 0 FreeAccess 0 0 primitive
possible_write_capture TestMachine_001.TestAlarm002.DescAttrName String 5 0 NULL 0 FreeAccess 0 0 primitive
1 candidate_set full_tag_reference data_type_name mx_data_type is_array array_dimension security_classification security_name is_historized is_alarm attribute_source
2 ------------- ------------------ -------------- ------------ -------- --------------- ----------------------- ------------- ------------- -------- ----------------
3 read_capture DevTestObject.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
4 read_capture TestArea.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
5 read_capture TestArea2.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
6 read_capture TestChildObject.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
7 read_capture TestMachine_001.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
8 read_capture TestMachine_002.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
9 read_capture TestMachine_003.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
10 read_capture TestMachine_004.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
11 read_capture TestMachine_005.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
12 read_capture TestMachine_006.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
13 read_capture TestMachine_007.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
14 read_capture TestMachine_008.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
15 read_capture TestMachine_009.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
16 read_capture TestMachine_010.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
17 read_capture TestMachine_011.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
18 read_capture TestMachine_012.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
19 read_capture TestMachine_013.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
20 read_capture TestMachine_014.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
21 read_capture TestMachine_015.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
22 read_capture TestMachine_016.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
23 read_capture TestMachine_017.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
24 read_capture TestMachine_018.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
25 read_capture TestMachine_019.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
26 read_capture TestMachine_020.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
27 read_capture DelmiaReceiver_001.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
28 read_capture DelmiaReceiver_002.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
29 read_capture DelmiaReceiver_003.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
30 read_capture DelmiaReceiver_004.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
31 read_capture DelmiaReceiver_005.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
32 read_capture DelmiaReceiver_006.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
33 read_capture DelmiaReceiver_007.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
34 read_capture DelmiaReceiver_008.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
35 read_capture DelmiaReceiver_009.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
36 read_capture DelmiaReceiver_010.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
37 read_capture DelmiaReceiver_020.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
38 read_capture DEV.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
39 read_capture DevAppEngine.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
40 read_capture DevPlatform.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
41 read_capture MESReceiver_001.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
42 read_capture MESReceiver_002.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
43 candidate_set full_tag_reference data_type_name mx_data_type is_array array_dimension security_classification security_name is_historized is_alarm attribute_source
44 ------------- ------------------ -------------- ------------ -------- --------------- ----------------------- ------------- ------------- -------- ----------------
45 array_read_capture DevTestObject.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
46 array_read_capture TestArea.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
47 array_read_capture TestArea2.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
48 array_read_capture TestChildObject.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
49 array_read_capture TestMachine_001.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
50 array_read_capture TestMachine_002.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
51 array_read_capture TestMachine_003.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
52 array_read_capture TestMachine_004.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
53 array_read_capture TestMachine_005.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
54 array_read_capture TestMachine_006.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
55 array_read_capture TestMachine_007.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
56 array_read_capture TestMachine_008.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
57 array_read_capture TestMachine_009.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
58 array_read_capture TestMachine_010.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
59 array_read_capture TestMachine_011.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
60 array_read_capture TestMachine_012.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
61 array_read_capture TestMachine_013.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
62 array_read_capture TestMachine_014.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
63 array_read_capture TestMachine_015.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
64 array_read_capture TestMachine_016.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
65 array_read_capture TestMachine_017.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
66 array_read_capture TestMachine_018.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
67 array_read_capture TestMachine_019.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
68 array_read_capture TestMachine_020.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
69 array_read_capture TestChildObject.TestBoolArray[] Boolean 1 1 10 1 Operate 0 0 dynamic
70 array_read_capture TestChildObject.TestDateTimeArray[] Time 6 1 10 1 Operate 0 0 dynamic
71 array_read_capture TestChildObject.TestDoubleArray[] Double 4 1 10 1 Operate 0 0 dynamic
72 array_read_capture TestChildObject.TestFloatArray[] Float 3 1 10 1 Operate 0 0 dynamic
73 array_read_capture TestChildObject.TestIntArray[] Integer 2 1 10 1 Operate 0 0 dynamic
74 array_read_capture TestChildObject.TestStringArray[] String 5 1 10 1 Operate 0 0 dynamic
75 array_read_capture DevTestObject.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
76 array_read_capture TestArea.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
77 array_read_capture TestArea2.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
78 array_read_capture TestChildObject.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
79 array_read_capture TestMachine_001.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
80 array_read_capture TestMachine_001.TestAlarm001.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
81 array_read_capture TestMachine_001.TestAlarm002.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
82 array_read_capture TestMachine_001.TestAlarm003.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
83 array_read_capture TestMachine_002.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
84 array_read_capture TestMachine_002.TestAlarm001.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
85 candidate_set full_tag_reference data_type_name mx_data_type is_array array_dimension security_classification security_name is_historized is_alarm attribute_source
86 ------------- ------------------ -------------- ------------ -------- --------------- ----------------------- ------------- ------------- -------- ----------------
87 possible_write_capture TestChildObject.TestBool Boolean 1 0 NULL 1 Operate 0 0 dynamic
88 possible_write_capture TestChildObject.TestDateTime Time 6 0 NULL 1 Operate 0 0 dynamic
89 possible_write_capture TestChildObject.TestDouble Double 4 0 NULL 1 Operate 0 0 dynamic
90 possible_write_capture TestChildObject.TestFloat Float 3 0 NULL 1 Operate 0 0 dynamic
91 possible_write_capture TestChildObject.TestInt Integer 2 0 NULL 1 Operate 0 0 dynamic
92 possible_write_capture TestChildObject.TestString String 5 0 NULL 1 Operate 0 0 dynamic
93 possible_write_capture TestMachine_001.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
94 possible_write_capture TestMachine_002.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
95 possible_write_capture TestMachine_003.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
96 possible_write_capture TestMachine_004.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
97 possible_write_capture TestMachine_005.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
98 possible_write_capture TestMachine_006.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
99 possible_write_capture TestMachine_007.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
100 possible_write_capture TestMachine_008.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
101 possible_write_capture TestMachine_009.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
102 possible_write_capture TestMachine_010.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
103 possible_write_capture TestMachine_011.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
104 possible_write_capture TestMachine_012.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
105 possible_write_capture TestMachine_013.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
106 possible_write_capture TestMachine_014.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
107 possible_write_capture TestMachine_015.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
108 possible_write_capture TestMachine_016.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
109 possible_write_capture TestMachine_017.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
110 possible_write_capture TestMachine_018.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
111 possible_write_capture TestMachine_019.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
112 possible_write_capture TestMachine_020.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
113 possible_write_capture TestArea.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
114 possible_write_capture TestArea.PlantState String 5 0 NULL 0 FreeAccess 0 0 primitive
115 possible_write_capture TestArea2.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
116 possible_write_capture TestArea2.PlantState String 5 0 NULL 0 FreeAccess 0 0 primitive
117 possible_write_capture TestChildObject.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
118 possible_write_capture TestMachine_001.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
119 possible_write_capture TestMachine_001.TestAlarm001.AckMsg String 5 0 NULL 0 FreeAccess 0 0 primitive
120 possible_write_capture TestMachine_001.TestAlarm001.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
121 possible_write_capture TestMachine_001.TestAlarm001.AlarmShelveCmd String 5 0 NULL 0 FreeAccess 0 0 primitive
122 possible_write_capture TestMachine_001.TestAlarm001.DescAttrName String 5 0 NULL 0 FreeAccess 0 0 primitive
123 possible_write_capture TestMachine_001.TestAlarm002.AckMsg String 5 0 NULL 0 FreeAccess 0 0 primitive
124 possible_write_capture TestMachine_001.TestAlarm002.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
125 possible_write_capture TestMachine_001.TestAlarm002.AlarmShelveCmd String 5 0 NULL 0 FreeAccess 0 0 primitive
126 possible_write_capture TestMachine_001.TestAlarm002.DescAttrName String 5 0 NULL 0 FreeAccess 0 0 primitive
+42
View File
@@ -0,0 +1,42 @@
full_tag_reference data_type_name mx_data_type is_array array_dimension security_classification security_name mx_attribute_category attribute_source
------------------ -------------- ------------ -------- --------------- ----------------------- ------------- --------------------- ----------------
TestMachine_001.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_002.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_003.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_004.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_005.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_006.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_007.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_008.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_009.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_010.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_011.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_012.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_013.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_014.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_015.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_016.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_017.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_018.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_019.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_020.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
TestMachine_001.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_002.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_003.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_004.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_005.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_006.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_007.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_008.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_009.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_010.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_011.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_012.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_013.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_014.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_015.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_016.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_017.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_018.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_019.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
TestMachine_020.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
1 full_tag_reference data_type_name mx_data_type is_array array_dimension security_classification security_name mx_attribute_category attribute_source
2 ------------------ -------------- ------------ -------- --------------- ----------------------- ------------- --------------------- ----------------
3 TestMachine_001.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
4 TestMachine_002.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
5 TestMachine_003.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
6 TestMachine_004.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
7 TestMachine_005.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
8 TestMachine_006.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
9 TestMachine_007.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
10 TestMachine_008.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
11 TestMachine_009.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
12 TestMachine_010.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
13 TestMachine_011.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
14 TestMachine_012.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
15 TestMachine_013.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
16 TestMachine_014.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
17 TestMachine_015.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
18 TestMachine_016.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
19 TestMachine_017.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
20 TestMachine_018.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
21 TestMachine_019.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
22 TestMachine_020.ProtectedValue Boolean 1 0 NULL 2 SecuredWrite 10 dynamic
23 TestMachine_001.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
24 TestMachine_002.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
25 TestMachine_003.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
26 TestMachine_004.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
27 TestMachine_005.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
28 TestMachine_006.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
29 TestMachine_007.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
30 TestMachine_008.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
31 TestMachine_009.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
32 TestMachine_010.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
33 TestMachine_011.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
34 TestMachine_012.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
35 TestMachine_013.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
36 TestMachine_014.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
37 TestMachine_015.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
38 TestMachine_016.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
39 TestMachine_017.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
40 TestMachine_018.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
41 TestMachine_019.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
42 TestMachine_020.ProtectedValue1 Boolean 1 0 NULL 3 VerifiedWrite 10 dynamic
@@ -0,0 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<AssemblyName>Interop.Lmx</AssemblyName>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<TargetFramework>net40</TargetFramework>
</PropertyGroup>
<PropertyGroup>
<LangVersion>14.0</LangVersion>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
</PropertyGroup>
<PropertyGroup />
<ItemGroup />
<ItemGroup />
</Project>
@@ -0,0 +1,17 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[StructLayout(LayoutKind.Sequential, Pack = 8)]
[Guid("C826B0C8-F2AE-4032-BDF4-B74C189087BD")]
public struct ASBResultCode
{
public ulong ItemId;
[MarshalAs(UnmanagedType.Error)]
public int ERRORCODE;
public uint WriteCapability;
public uint WriteHandle;
}
@@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("96469CD1-8EF4-11D2-BF61-00104B5F96A7")]
[CoClass(typeof(AccessManagerClass))]
public interface AccessManager : IAccessManagerHost
{
}
@@ -0,0 +1,123 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[TypeLibType(TypeLibTypeFlags.FCanCreate)]
[Guid("26014181-4FF7-11D2-8FA6-00A0C937AF60")]
[ClassInterface(ClassInterfaceType.None)]
public class AccessManagerClass : IAccessManagerHost, AccessManager, IAccessManagerHost2, IAccessManagerHost3, IAccessManagerHost4, IAccessManagerClient
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void InitializeAnonymous();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetEngineId(out int engineId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ProcessOutputs();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ProcessInput(out bool queueWasEmpty, out int messageSize);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ProcessMiscellaneous();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ProcessMessages();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost2_InitializeAnonymous();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost2_GetEngineId(out int engineId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost2_ProcessOutputs();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost2_ProcessInput(out bool queueWasEmpty, out int messageSize);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost2_ProcessMiscellaneous();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost2_ProcessMessages();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ProcessDataChange([In] int lMode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ProcessInputEx([In] int lMode, out bool queueWasEmpty, out int messageSize);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ProcessOutputsEx([In] int lMode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost3_InitializeAnonymous();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost3_GetEngineId(out int engineId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost3_ProcessOutputs();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost3_ProcessInput(out bool queueWasEmpty, out int messageSize);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost3_ProcessMiscellaneous();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost3_ProcessMessages();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost3_ProcessDataChange([In] int lMode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost3_ProcessInputEx([In] int lMode, out bool queueWasEmpty, out int messageSize);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost3_ProcessOutputsEx([In] int lMode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void SwapDataBuffers();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost4_InitializeAnonymous();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost4_GetEngineId(out int engineId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost4_ProcessOutputs();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost4_ProcessInput(out bool queueWasEmpty, out int messageSize);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost4_ProcessMiscellaneous();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost4_ProcessMessages();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost4_ProcessDataChange([In] int lMode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost4_ProcessInputEx([In] int lMode, out bool queueWasEmpty, out int messageSize);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost4_ProcessOutputsEx([In] int lMode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAccessManagerHost4_SwapDataBuffers();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ShutdownMxConsumer();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.IUnknown)]
public virtual extern object CreateMxConnection();
}
@@ -0,0 +1,55 @@
namespace Interop.Lmx;
public enum ActionTypes
{
OPENCONNECTION = 0,
FMCACCEPTEDCONN = 1,
SECURE_OPEN_CONNECTION = 256,
NewConnectionReq = 257,
CheckpointData = 258,
FMTYPE_PLATFORM_INFO_REQ = 4096,
FMTYPE_PLATFORM_INFO_RESP = 4097,
FMTYPE_SUBSCRIBE_HEARTBEAT_REQ = 4098,
FMTYPE_SUBSCRIBE_HEARTBEAT_RESP = 4099,
FMTYPE_PLATFORM_HEARTBEAT = 4112,
FMTYPE_GET_PARTNER_ENGINE_INFO_REQ = 4352,
FMTYPE_GET_PARTNER_ENGINE_INFO_RESP = 4353,
FMTYPE_SET_HEARTBEAT_REQ = 4354,
FMTYPE_SET_HEARTBEAT_RESP = 4355,
FMTYPE_SET_PARTNER_HEARTBEAT_REQ = 4356,
FMTYPE_SET_PARTNER_HEARTBEAT_RESP = 4357,
FMTYPE_SET_PARTNER_INDIRECT_DETECT_TIMEOUT_REQ = 4358,
FMTYPE_SET_PARTNER_INDIRECT_DETECT_TIMEOUT_RESP = 4359,
FMTYPE_SUBSCRIBE_STATUS_RESQ = 4360,
FMTYPE_SUBSCRIBE_STATUS_RESP = 4361,
FMTYPE_UNSUBSCRIBE_STATUS_RESQ = 4362,
FMTYPE_UNSUBSCRIBE_STATUS_RESP = 4363,
FMTYPE_REFRESH_STATUS_RESQ = 4364,
FMTYPE_REFRESH_STATUS_RESP = 4365,
FMTYPE_REDUNDANCY_STATUS_REQ = 4366,
FMTYPE_REDUNDANCY_STATUS_RESP = 4367,
FMTYPE_PLATFORM_STATUS_REQ = 4368,
FMTYPE_PLATFORM_STATUS_RESP = 4369,
FMTYPE_REDUNDANCY_ENGINE_INFO_REQ = 4370,
FMTYPE_REDUNDANCY_ENGINE_INFO_RESP = 4371,
FMTYPE_ENGINE_FAILOVER_OPERATION_REQ = 4372,
FMTYPE_ENGINE_FAILOVER_OPERATION_RESP = 4373,
FMTYPE_ENGINE_SWITCHING_TO_ACTIVE_NOTIFICATION_REQ = 4374,
FMTYPE_ENGINE_FAILOVER_DATA = 4416,
FMTYPE_ENGINE_FAILOVER_DATA_ACK = 4417,
FMTYPE_ENGINE_SUBSCRIBER_LIST = 4418,
FMTYPE_ENGINE_SUBSCRIBER_LIST_ACK = 4419,
FMTYPE_ENGINE_FAILOVER_STATUS = 4480,
FMTYPE_ENGINE_FAILOVER_STATUS_ACK = 4481,
FMTYPE_ENGINE_PROCESS_STATUS = 4482,
FMTYPE_ENGINE_PROCESS_STATUS_ACK = 4483,
FMTYPE_PLATFORM_STATUS = 4484,
NMXMTYPE_ENGINE_DATA = 4608,
NMXMTYPE_SET_HEARTBEAT_RATE = 4609,
NMXMTYPE_PLATFORM_HEARTBEAT = 4610,
NMXMTYPE_GET_HEARTBEAT_RATE = 4611,
NMXMTYPE_HEARTBEAT_DISCONNECT_REQ = 4612,
NMXMTYPE_CONNECT_INFO = 4613,
NMXMTYPE_CONNECT_INFO_REQ = 4614,
NMXMTYPE_VERSION_ERROR = 4615
}
@@ -0,0 +1,16 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("1E8D6971-00DB-461D-A8F9-42733B889966")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface AsyncIBootstrapStatusCallback
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Begin_NotifyPlatformStatus([In] int lPlatformId, [In][MarshalAs(UnmanagedType.BStr)] string bstrPlatformName, [In] tagPlatformStatus lPlatformStatus, [In] int lPlatformEngineStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Finish_NotifyPlatformStatus();
}
@@ -0,0 +1,16 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("4AB54264-3B7A-49C1-8765-B6F905EAD0C3")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface AsyncIPlatformStatusCallback
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Begin_NotifyPlatformStatus([In] int lPlatformId, [In][MarshalAs(UnmanagedType.BStr)] string bstrPlatformName, [In] tagPlatformStatus lPlatformStatus, [In] int lPlatformEngineStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Finish_NotifyPlatformStatus();
}
@@ -0,0 +1,16 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("B82F0BEA-08FC-47A1-9873-402BAF7600E3")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface AsyncIProcessStatusCallback
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Begin_NotifyProcessStatus([In] int lPlatformId, [In][MarshalAs(UnmanagedType.BStr)] string bstrProcessIdentity, [In] int lPrivateData, [In] tagPlatformProcessStatus lProcessStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Finish_NotifyProcessStatus();
}
@@ -0,0 +1,16 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("2B63D630-A693-4D8A-ABF5-3EF9FF7E304B")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface AsyncIRedundancyMessageSink
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Begin_MessageStatusUpdate([In] int lEngineId, [In] int lType, [In] int lReference, [In][ComAliasName("Interop.Lmx.RedundancyMsgStatus")] RedundancyMsgStatus eStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Finish_MessageStatusUpdate();
}
@@ -0,0 +1,46 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("40467D04-81C0-4FD1-821A-27FC4158130E")]
public interface AsyncIRedundancyNotify
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Begin_NotifyRedundancyStatusChange([In] int lPlatformId, [In] int lEngineId, [In] int lPartnerPlatformId, [In] int lPartnerEngineId, [In][MarshalAs(UnmanagedType.BStr)] string bstrEngineName, [In] tagRedundancyIdentity eIdentity, [In] tagRedundancyStatus eStatus, [In] tagRedundancySubStatus eSubStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Finish_NotifyRedundancyStatusChange();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Begin_NotifyRedundancyEvent([In] int lEngineId, [In] int lPartnerPlatformId, [In] int lPartnerEngineId, [In] tagRedundancyEvent eEvent);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Finish_NotifyRedundancyEvent();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Begin_NotifyRedundancyOperation([In] int lEngineId, [In] tagRedundancyOperation eOperation);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Finish_NotifyRedundancyOperation();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Begin_NotifyData([In] int lEngineId, [In] int lType, [In] int lReference, [In] int lLength, [In] ref byte pBuffer);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Finish_NotifyData();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Begin_NotifyDataAck([In] int lEngineId, [In] int lType, [In] int lReference, [In] int lAckCode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Finish_NotifyDataAck();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Begin_NotifyEngineSwitchingToActive([In] int engineThatWasActive, [In] int platformOfEngineThatWasActive, [In] int newActiveEngineId, [In] int newActiveEnginePlatformId, [In] int forceFailoverMaxTimeAllowed);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Finish_NotifyEngineSwitchingToActive();
}
@@ -0,0 +1,15 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[StructLayout(LayoutKind.Sequential, Pack = 2)]
public struct AttributeHandle
{
public short shPrimitiveId;
public short shAttributeId;
public short shPropertyId;
public short shIndex1;
}
@@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("F14886F9-7426-4A85-93F2-734D8950EB20")]
[CoClass(typeof(BootstrapObjectClass))]
public interface BootstrapObject : IBootstrapController4
{
}
@@ -0,0 +1,390 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[ComConversionLoss]
[ClassInterface(ClassInterfaceType.None)]
[Guid("22595C0C-28B9-11D3-87E0-00A0C982C01C")]
[TypeLibType(TypeLibTypeFlags.FCanCreate)]
public class BootstrapObjectClass : IBootstrapController4, BootstrapObject, IBootstrapRegister, IBootstrapRegister2, IBootstrapRegister3, IBootstrapRegister4, IBootstrapRegister5, IBootstrapRegister6, IBootstrapProcessController, IVersionInformation2
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void StartPlatform([In] int platformId, [In][MarshalAs(UnmanagedType.LPWStr)] string szStartupOptions);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ShutDownPlatform([In] int platformId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetPlatformStatus([In] int platformId, out tagPlatformStatus pPlatformStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void SetLocalPlatformEngineStatus([In] int lPlatformEngineStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void InformOtherPlatformStatus([In] int platformId, [In] tagPlatformStatus platformStatus, [In] int lPlatformEngineStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void SetPlatformStartupState([In] int platformId, [In] tagPlatformStartupSetting flag);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetPlatformIdentity([In] int platformId, out tagPlatformRegistrationInformation pPlatformIdentity);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void SubscribePlatformStatusService([In][MarshalAs(UnmanagedType.Interface)] IPlatformStatusCallback pIPlatformStatusCallback, out int plToken);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void SubscribeProcessStatusService([In][MarshalAs(UnmanagedType.Interface)] IProcessStatusCallback pIProcessStatusCallback, out int plToken);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void SubscribeBootstrapStatusService([In][MarshalAs(UnmanagedType.Interface)] IBootstrapStatusCallback pIBootstrapStatusCallback, out int plToken);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void UnSubscribePlatformStatusService([In] int lToken);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void UnSubscribeProcessStatusService([In] int lToken);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void UnSubscribeBootstrapStatusService([In] int lToken);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ShutDownPlatformSynchronous([In] int platformId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetPlatformMappingTableTimeStamp(out _FILETIME pmtTimeStamp);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void SubscribeBootstrapStatusService2([In] Guid bootstrapInstance, [In] int platformId, [In][MarshalAs(UnmanagedType.Interface)] IBootstrapStatusCallback pIBootstrapStatusCallback, out int plToken);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void SwitchoverPlatform([In] int lDestinationPlatform, [In] int lStagedEngineId, [In] bool bRestartHostedEngines);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetRestartHostedEnginesStatus([In] int lLocalPlatformId, out bool bRestartHostedEngines);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void RegisterClusterInformation([In] tagRegistrationSource regSource, [In] int lPlatformId, [In] tagClusterRegistrationInformation clusterInformation);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void UnregisterClusterInformation([In] tagRegistrationSource regSource, [In] int platformId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetClusterInformation([In] int platformId, out tagClusterRegistrationInformation pClusterInformation);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void RegisterPlatform([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void UnregisterPlatform([In] tagRegistrationSource regSource, [In] int platformId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetPlatformList(out int plTotalPlatforms, [Out] IntPtr ppPlatformList);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void RegisterPlatformEngine([In] int platformId, [In][MarshalAs(UnmanagedType.LPWStr)] string szVendor, [In][MarshalAs(UnmanagedType.LPWStr)] string szEngineName, [In][MarshalAs(UnmanagedType.LPWStr)] string szStartupOptions, [In][MarshalAs(UnmanagedType.LPWStr)] string szConfigOptions);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void SetPlatformCmdStartOptions([In][MarshalAs(UnmanagedType.LPWStr)] string szCmdOption);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetPlatformCmdStartOptions([MarshalAs(UnmanagedType.BStr)] out string pszCmdOption);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetRemotePlatformList([In][MarshalAs(UnmanagedType.LPWStr)] string szNodeName, out int plTotalPlatforms, [Out] IntPtr ppPlatformList);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void RegisterFolderOrFile([In][MarshalAs(UnmanagedType.LPWStr)] string szFolderOrFilePath, [In] bool bRemoveOnUninstall);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void SetPlatformStatus([In] int platformId, [In] tagPlatformStatus status, [In] int engineStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister2_RegisterClusterInformation([In] tagRegistrationSource regSource, [In] int lPlatformId, [In] tagClusterRegistrationInformation clusterInformation);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister2_UnregisterClusterInformation([In] tagRegistrationSource regSource, [In] int platformId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister2_GetClusterInformation([In] int platformId, out tagClusterRegistrationInformation pClusterInformation);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister2_RegisterPlatform([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister2_UnregisterPlatform([In] tagRegistrationSource regSource, [In] int platformId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister2_GetPlatformList(out int plTotalPlatforms, [Out] IntPtr ppPlatformList);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister2_RegisterPlatformEngine([In] int platformId, [In][MarshalAs(UnmanagedType.LPWStr)] string szVendor, [In][MarshalAs(UnmanagedType.LPWStr)] string szEngineName, [In][MarshalAs(UnmanagedType.LPWStr)] string szStartupOptions, [In][MarshalAs(UnmanagedType.LPWStr)] string szConfigOptions);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister2_SetPlatformCmdStartOptions([In][MarshalAs(UnmanagedType.LPWStr)] string szCmdOption);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister2_GetPlatformCmdStartOptions([MarshalAs(UnmanagedType.BStr)] out string pszCmdOption);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister2_GetRemotePlatformList([In][MarshalAs(UnmanagedType.LPWStr)] string szNodeName, out int plTotalPlatforms, [Out] IntPtr ppPlatformList);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister2_RegisterFolderOrFile([In][MarshalAs(UnmanagedType.LPWStr)] string szFolderOrFilePath, [In] bool bRemoveOnUninstall);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister2_SetPlatformStatus([In] int platformId, [In] tagPlatformStatus status, [In] int engineStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void RegisterPlatform2([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation2 platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister3_RegisterClusterInformation([In] tagRegistrationSource regSource, [In] int lPlatformId, [In] tagClusterRegistrationInformation clusterInformation);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister3_UnregisterClusterInformation([In] tagRegistrationSource regSource, [In] int platformId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister3_GetClusterInformation([In] int platformId, out tagClusterRegistrationInformation pClusterInformation);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister3_RegisterPlatform([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister3_UnregisterPlatform([In] tagRegistrationSource regSource, [In] int platformId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister3_GetPlatformList(out int plTotalPlatforms, [Out] IntPtr ppPlatformList);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister3_RegisterPlatformEngine([In] int platformId, [In][MarshalAs(UnmanagedType.LPWStr)] string szVendor, [In][MarshalAs(UnmanagedType.LPWStr)] string szEngineName, [In][MarshalAs(UnmanagedType.LPWStr)] string szStartupOptions, [In][MarshalAs(UnmanagedType.LPWStr)] string szConfigOptions);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister3_SetPlatformCmdStartOptions([In][MarshalAs(UnmanagedType.LPWStr)] string szCmdOption);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister3_GetPlatformCmdStartOptions([MarshalAs(UnmanagedType.BStr)] out string pszCmdOption);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister3_GetRemotePlatformList([In][MarshalAs(UnmanagedType.LPWStr)] string szNodeName, out int plTotalPlatforms, [Out] IntPtr ppPlatformList);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister3_RegisterFolderOrFile([In][MarshalAs(UnmanagedType.LPWStr)] string szFolderOrFilePath, [In] bool bRemoveOnUninstall);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister3_SetPlatformStatus([In] int platformId, [In] tagPlatformStatus status, [In] int engineStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister3_RegisterPlatform2([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation2 platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void RegisterPlatform3([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation3 platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void MarkPlatformUndeployed([In][MarshalAs(UnmanagedType.BStr)] string bstrgalaxyName, [In] int lPlatformId, [In][MarshalAs(UnmanagedType.BStr)] string bstrPlatformName);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister4_RegisterClusterInformation([In] tagRegistrationSource regSource, [In] int lPlatformId, [In] tagClusterRegistrationInformation clusterInformation);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister4_UnregisterClusterInformation([In] tagRegistrationSource regSource, [In] int platformId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister4_GetClusterInformation([In] int platformId, out tagClusterRegistrationInformation pClusterInformation);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister4_RegisterPlatform([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister4_UnregisterPlatform([In] tagRegistrationSource regSource, [In] int platformId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister4_GetPlatformList(out int plTotalPlatforms, [Out] IntPtr ppPlatformList);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister4_RegisterPlatformEngine([In] int platformId, [In][MarshalAs(UnmanagedType.LPWStr)] string szVendor, [In][MarshalAs(UnmanagedType.LPWStr)] string szEngineName, [In][MarshalAs(UnmanagedType.LPWStr)] string szStartupOptions, [In][MarshalAs(UnmanagedType.LPWStr)] string szConfigOptions);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister4_SetPlatformCmdStartOptions([In][MarshalAs(UnmanagedType.LPWStr)] string szCmdOption);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister4_GetPlatformCmdStartOptions([MarshalAs(UnmanagedType.BStr)] out string pszCmdOption);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister4_GetRemotePlatformList([In][MarshalAs(UnmanagedType.LPWStr)] string szNodeName, out int plTotalPlatforms, [Out] IntPtr ppPlatformList);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister4_RegisterFolderOrFile([In][MarshalAs(UnmanagedType.LPWStr)] string szFolderOrFilePath, [In] bool bRemoveOnUninstall);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister4_SetPlatformStatus([In] int platformId, [In] tagPlatformStatus status, [In] int engineStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister4_RegisterPlatform2([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation2 platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister4_RegisterPlatform3([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation3 platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister4_MarkPlatformUndeployed([In][MarshalAs(UnmanagedType.BStr)] string bstrgalaxyName, [In] int lPlatformId, [In][MarshalAs(UnmanagedType.BStr)] string bstrPlatformName);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void RegisterPlatform4([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation4 platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister5_RegisterClusterInformation([In] tagRegistrationSource regSource, [In] int lPlatformId, [In] tagClusterRegistrationInformation clusterInformation);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister5_UnregisterClusterInformation([In] tagRegistrationSource regSource, [In] int platformId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister5_GetClusterInformation([In] int platformId, out tagClusterRegistrationInformation pClusterInformation);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister5_RegisterPlatform([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister5_UnregisterPlatform([In] tagRegistrationSource regSource, [In] int platformId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister5_GetPlatformList(out int plTotalPlatforms, [Out] IntPtr ppPlatformList);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister5_RegisterPlatformEngine([In] int platformId, [In][MarshalAs(UnmanagedType.LPWStr)] string szVendor, [In][MarshalAs(UnmanagedType.LPWStr)] string szEngineName, [In][MarshalAs(UnmanagedType.LPWStr)] string szStartupOptions, [In][MarshalAs(UnmanagedType.LPWStr)] string szConfigOptions);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister5_SetPlatformCmdStartOptions([In][MarshalAs(UnmanagedType.LPWStr)] string szCmdOption);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister5_GetPlatformCmdStartOptions([MarshalAs(UnmanagedType.BStr)] out string pszCmdOption);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister5_GetRemotePlatformList([In][MarshalAs(UnmanagedType.LPWStr)] string szNodeName, out int plTotalPlatforms, [Out] IntPtr ppPlatformList);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister5_RegisterFolderOrFile([In][MarshalAs(UnmanagedType.LPWStr)] string szFolderOrFilePath, [In] bool bRemoveOnUninstall);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister5_SetPlatformStatus([In] int platformId, [In] tagPlatformStatus status, [In] int engineStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister5_RegisterPlatform2([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation2 platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister5_RegisterPlatform3([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation3 platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister5_MarkPlatformUndeployed([In][MarshalAs(UnmanagedType.BStr)] string bstrgalaxyName, [In] int lPlatformId, [In][MarshalAs(UnmanagedType.BStr)] string bstrPlatformName);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister5_RegisterPlatform4([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation4 platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void RegisterNodeWithASBSolution([In][MarshalAs(UnmanagedType.LPWStr)] string NodeToPairWith);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister6_RegisterClusterInformation([In] tagRegistrationSource regSource, [In] int lPlatformId, [In] tagClusterRegistrationInformation clusterInformation);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister6_UnregisterClusterInformation([In] tagRegistrationSource regSource, [In] int platformId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister6_GetClusterInformation([In] int platformId, out tagClusterRegistrationInformation pClusterInformation);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister6_RegisterPlatform([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister6_UnregisterPlatform([In] tagRegistrationSource regSource, [In] int platformId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister6_GetPlatformList(out int plTotalPlatforms, [Out] IntPtr ppPlatformList);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister6_RegisterPlatformEngine([In] int platformId, [In][MarshalAs(UnmanagedType.LPWStr)] string szVendor, [In][MarshalAs(UnmanagedType.LPWStr)] string szEngineName, [In][MarshalAs(UnmanagedType.LPWStr)] string szStartupOptions, [In][MarshalAs(UnmanagedType.LPWStr)] string szConfigOptions);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister6_SetPlatformCmdStartOptions([In][MarshalAs(UnmanagedType.LPWStr)] string szCmdOption);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister6_GetPlatformCmdStartOptions([MarshalAs(UnmanagedType.BStr)] out string pszCmdOption);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister6_GetRemotePlatformList([In][MarshalAs(UnmanagedType.LPWStr)] string szNodeName, out int plTotalPlatforms, [Out] IntPtr ppPlatformList);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister6_RegisterFolderOrFile([In][MarshalAs(UnmanagedType.LPWStr)] string szFolderOrFilePath, [In] bool bRemoveOnUninstall);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister6_SetPlatformStatus([In] int platformId, [In] tagPlatformStatus status, [In] int engineStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister6_RegisterPlatform2([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation2 platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister6_RegisterPlatform3([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation3 platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister6_MarkPlatformUndeployed([In][MarshalAs(UnmanagedType.BStr)] string bstrgalaxyName, [In] int lPlatformId, [In][MarshalAs(UnmanagedType.BStr)] string bstrPlatformName);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister6_RegisterPlatform4([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation4 platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IBootstrapRegister6_RegisterNodeWithASBSolution([In][MarshalAs(UnmanagedType.LPWStr)] string NodeToPairWith);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void RegisterPlatform6([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation4 platformRegInfo, [In][MarshalAs(UnmanagedType.BStr)] string bstrOtherNodeCERTIssuer, [MarshalAs(UnmanagedType.BStr)] out string bstrGRcertIssuer, [MarshalAs(UnmanagedType.BStr)] out string bstrRTcertIssuer);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void StartPlatformProcess([In] int lPrivateData, [In][MarshalAs(UnmanagedType.LPWStr)] string szVendor, [In][MarshalAs(UnmanagedType.LPWStr)] string szExecutable, [In][MarshalAs(UnmanagedType.LPWStr)] string szCmdLnArgs, [In][MarshalAs(UnmanagedType.LPWStr)] string szProcessCtrlArgs, [MarshalAs(UnmanagedType.BStr)] out string pszProcessId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ShutdownPlatformProcess([In][MarshalAs(UnmanagedType.LPWStr)] string szProcessId, [In] int lmsShutdownTimeout);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetPlatformProcessStatus([In][MarshalAs(UnmanagedType.LPWStr)] string szProcessId, out tagPlatformProcessStatus pProcessRunState);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ShutdownAllPlatformProcesses();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetPlatformProcessList(out int plTotalProcesses, [Out] IntPtr ppPlatformProcessList);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void SetCmdStartOptions([In] int lProcessId, [In][MarshalAs(UnmanagedType.LPWStr)] string szCmdOption);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetCmdStartOptions([In] int lProcessId, [MarshalAs(UnmanagedType.BStr)] out string pszCmdOption);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.BStr)]
public virtual extern string GetProductInternalName();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.BStr)]
public virtual extern string GetComponentInternalName();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern int GetMasterBuildNumber();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern int GetMasterBuildComponentVersion();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern int GetMaintenanceBuildNumber();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern int GetMaintenanceBuildComponentVersion();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetBuildNumsAndComponentVers(out int masterBuildNumber, out int masterBuildComponentVersion, out int maintenanceBuildNumber, out int maintenanceBuildComponentVersion);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetFileVersionNumbers([In] int platformId, [In] MxFileLocationEnum fileLocation, [In][MarshalAs(UnmanagedType.LPWStr)] string fileName, out int masterBuildNumber, out int masterBuildComponentVersion, out int maintenanceBuildNumber, out int maintenanceBuildComponentVersion);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetAllFileVersionNumbers([In] int platformId, [In][MarshalAs(UnmanagedType.LPWStr)] string fileName, out int lVersionCount, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_I4)] out int[] ppMasterBuildNumber, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_I4)] out int[] ppMasterBuildComponentVersion, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_I4)] out int[] ppMaintenanceBuildNumber, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_I4)] out int[] ppMaintenanceBuildComponentVersion);
}
@@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[CoClass(typeof(BootstrapProcessControllerObjectClass))]
[Guid("22595C0F-28B9-11D3-87E0-00A0C982C01C")]
public interface BootstrapProcessControllerObject : IBootstrapProcessController
{
}
@@ -0,0 +1,34 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[ComConversionLoss]
[TypeLibType(TypeLibTypeFlags.FCanCreate)]
[Guid("22595C10-28B9-11D3-87E0-00A0C982C01C")]
[ClassInterface(ClassInterfaceType.None)]
public class BootstrapProcessControllerObjectClass : IBootstrapProcessController, BootstrapProcessControllerObject
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void StartPlatformProcess([In] int lPrivateData, [In][MarshalAs(UnmanagedType.LPWStr)] string szVendor, [In][MarshalAs(UnmanagedType.LPWStr)] string szExecutable, [In][MarshalAs(UnmanagedType.LPWStr)] string szCmdLnArgs, [In][MarshalAs(UnmanagedType.LPWStr)] string szProcessCtrlArgs, [MarshalAs(UnmanagedType.BStr)] out string pszProcessId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ShutdownPlatformProcess([In][MarshalAs(UnmanagedType.LPWStr)] string szProcessId, [In] int lmsShutdownTimeout);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetPlatformProcessStatus([In][MarshalAs(UnmanagedType.LPWStr)] string szProcessId, out tagPlatformProcessStatus pProcessRunState);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ShutdownAllPlatformProcesses();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetPlatformProcessList(out int plTotalProcesses, [Out] IntPtr ppPlatformProcessList);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void SetCmdStartOptions([In] int lProcessId, [In][MarshalAs(UnmanagedType.LPWStr)] string szCmdOption);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetCmdStartOptions([In] int lProcessId, [MarshalAs(UnmanagedType.BStr)] out string pszCmdOption);
}
@@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("E42D2692-4B57-4E97-B99C-2829D60A4D2F")]
[CoClass(typeof(BootstrapRegisterObjectClass))]
public interface BootstrapRegisterObject : IBootstrapRegister3
{
}
@@ -0,0 +1,57 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("22595C0E-28B9-11D3-87E0-00A0C982C01C")]
[ClassInterface(ClassInterfaceType.None)]
[TypeLibType(TypeLibTypeFlags.FCanCreate)]
public class BootstrapRegisterObjectClass : IBootstrapRegister3, BootstrapRegisterObject
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void RegisterClusterInformation([In] tagRegistrationSource regSource, [In] int lPlatformId, [In] tagClusterRegistrationInformation clusterInformation);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void UnregisterClusterInformation([In] tagRegistrationSource regSource, [In] int platformId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetClusterInformation([In] int platformId, out tagClusterRegistrationInformation pClusterInformation);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void RegisterPlatform([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void UnregisterPlatform([In] tagRegistrationSource regSource, [In] int platformId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetPlatformList(out int plTotalPlatforms, [Out] IntPtr ppPlatformList);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void RegisterPlatformEngine([In] int platformId, [In][MarshalAs(UnmanagedType.LPWStr)] string szVendor, [In][MarshalAs(UnmanagedType.LPWStr)] string szEngineName, [In][MarshalAs(UnmanagedType.LPWStr)] string szStartupOptions, [In][MarshalAs(UnmanagedType.LPWStr)] string szConfigOptions);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void SetPlatformCmdStartOptions([In][MarshalAs(UnmanagedType.LPWStr)] string szCmdOption);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetPlatformCmdStartOptions([MarshalAs(UnmanagedType.BStr)] out string pszCmdOption);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetRemotePlatformList([In][MarshalAs(UnmanagedType.LPWStr)] string szNodeName, out int plTotalPlatforms, [Out] IntPtr ppPlatformList);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void RegisterFolderOrFile([In][MarshalAs(UnmanagedType.LPWStr)] string szFolderOrFilePath, [In] bool bRemoveOnUninstall);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void SetPlatformStatus([In] int platformId, [In] tagPlatformStatus status, [In] int engineStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void RegisterPlatform2([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation2 platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void RegisterPlatform3([In][MarshalAs(UnmanagedType.LPWStr)] string szGalaxyName, [In] tagRegistrationSource regSource, [In] tagPlatformRegistrationInformation3 platformRegInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void MarkPlatformUndeployed([In][MarshalAs(UnmanagedType.BStr)] string bstrgalaxyName, [In] int lPlatformId, [In][MarshalAs(UnmanagedType.BStr)] string bstrPlatformName);
}
@@ -0,0 +1,8 @@
namespace Interop.Lmx;
public enum CONNECTING_STATUS
{
CONNECTION_FAILED,
CONNECTION_ACCEPTED,
CONNECTION_ESTABLISHED
}
@@ -0,0 +1,7 @@
namespace Interop.Lmx;
public enum CheckPointerFactoryFlags
{
DONT_RESTORE_STATE,
RESTORE_STATE
}
@@ -0,0 +1,10 @@
namespace Interop.Lmx;
public enum CheckpointFileCreationResult
{
eCreationUndefined,
eCreationOK,
eCreationFailed,
eCreationRestoredFromBackup,
eCreationRestoredFromConfig
}
@@ -0,0 +1,7 @@
namespace Interop.Lmx;
public enum CheckpointOperationResult
{
CheckpointOk,
CheckpointFailure
}
@@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("E9A9DA2F-E017-11D3-937B-00C04FA04C92")]
[CoClass(typeof(CheckpointerFactoryClass))]
public interface CheckpointerFactory : ICheckpointerFactory
{
}
@@ -0,0 +1,15 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[TypeLibType(TypeLibTypeFlags.FCanCreate)]
[Guid("B80620CE-D909-11D3-9378-00C04FA04C92")]
[ClassInterface(ClassInterfaceType.None)]
public class CheckpointerFactoryClass : ICheckpointerFactory, CheckpointerFactory
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.Interface)]
public virtual extern ICheckpointer CreateCheckpointFile([In][MarshalAs(UnmanagedType.LPWStr)] string CheckPointFileName, [In] CheckPointerFactoryFlags Flags, [In] CheckpointerFileCreationDisposition CreateDisp, [In][MarshalAs(UnmanagedType.IUnknown)] object objectSyncMgr, [In][MarshalAs(UnmanagedType.IUnknown)] object accessMangerHost, out CheckpointFileCreationResult resultCode);
}
@@ -0,0 +1,7 @@
namespace Interop.Lmx;
public enum CheckpointerFileCreationDisposition
{
CHK_POINT_FILE_CREATE_ALWAYS,
CHK_POINT_FILE_OPEN_EXISTING
}
@@ -0,0 +1,8 @@
namespace Interop.Lmx;
public enum CheckpointerStatus
{
CheckpointerIdle,
CheckpointerBusy,
NoCheckpointFile
}
@@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[CoClass(typeof(CoBaseRuntimeObjectClass))]
[Guid("FA5DE931-208A-11D4-82B8-00104B5F96A7")]
public interface CoBaseRuntimeObject : IAutomationObject
{
}
@@ -0,0 +1,114 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("BE4A11B6-86C2-49C6-883E-ABA501A6BCC7")]
[TypeLibType(TypeLibTypeFlags.FCanCreate)]
[ClassInterface(ClassInterfaceType.None)]
[ComConversionLoss]
public class CoBaseRuntimeObjectClass : CoBaseRuntimeObject, IAutomationObject, IAttributeNameProvider, IAttributeNameProvider2, IDebugBRO
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void Initialize([In][MarshalAs(UnmanagedType.LPWStr)] string Name, [In] int ObjectID, [In][MarshalAs(UnmanagedType.IUnknown)] object pAccessManager, [In][MarshalAs(UnmanagedType.IUnknown)] object pScheduler, [In][MarshalAs(UnmanagedType.Interface)] ICheckpointer pCheckpointer, [In][MarshalAs(UnmanagedType.Interface)] IAutomationObjectCheckpoint pAutomationObjectCheckpoint, [In][MarshalAs(UnmanagedType.Interface)] IDeployCompleteNotification pDeployCompleteNotification, [In][MarshalAs(UnmanagedType.Interface)] ISecurityChecker pSecurityChecker, [In][MarshalAs(UnmanagedType.Interface)] IUserAuthenticator pUserAuthenticator, [In][MarshalAs(UnmanagedType.Interface)] IEventPublisher pEventPublisher, [In][MarshalAs(UnmanagedType.IUnknown)] object objectSyncMgr);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void Startup([In] ESTARTUPCONTEXT startupContext);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void Shutdown();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void Execute();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetAccessRights([In] ref VBGUID userId, [In] ref VBGUID userIdVerifier, [In] bool verifiedByUser, [In] ref MxAttributeHandle AttributeHandle, [ComAliasName("Interop.Lmx.MxAccessRights")] out MxAccessRights accessRights);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetAttribute([In][ComAliasName("Interop.Lmx.MxOperationContext")] MxOperationContext Context, [In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pMxValue, out short pQuality, out MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void SystemSetAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In][MarshalAs(UnmanagedType.Interface)] MxValue pDataOut, out MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void UserSetAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] ref VBGUID userId, [In] ref VBGUID verifier, [In] bool verifiedByUser, [In][MarshalAs(UnmanagedType.LPWStr)] string engineName, out MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void SupervisorySetAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] int callbackAttributeId, out MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void Subscribe([In] ref MxAttributeHandle pMxAttributeHandle, [In] int index, out bool isDynamic);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void Unsubscribe([In] ref MxAttributeHandle pMxAttributeHandle);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetSubscriptionChanges([In][MarshalAs(UnmanagedType.Interface)] IAccessManagerProvider pAccessManagerProvider);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetCheckpointChanges();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void OnHostScanStateChange([In] bool bEngineOnScan);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetStatusDescription([In] ref MxAttributeHandle pMxAttributeHandle, [In] ref MxStatus pStatus, [MarshalAs(UnmanagedType.BStr)] out string pDescription);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern IntPtr GetAttributeCollection([In] ref _RequestAttributeInfo pRequestAttributeInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void NoReferencesOutstanding([In] ref MxAttributeHandle pMxAttributeHandle);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetAttributeData([In] ref MxAttributeHandle AttributeHandle, [Out] IntPtr attributeData);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetState(out ObjectStateEnum state);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void UpdateAndCheckpointAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] ref MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetVersionIndependentCodebase([MarshalAs(UnmanagedType.BStr)] out string codeBase);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetRequiredHostFeature(out Guid hostFeature);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void GetObjectCategory(out int category);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void HasChangesToCheckpoint(out bool __MIDL__IAutomationObject0000);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ResolvePrimitiveReference([In][MarshalAs(UnmanagedType.BStr)] string AutomationObjectName, [In][MarshalAs(UnmanagedType.BStr)] string primitiveName, [In][Out] ref short pPrimitiveId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ResolveAttributeReference([In][MarshalAs(UnmanagedType.BStr)] string AutomationObjectName, [In][MarshalAs(UnmanagedType.BStr)] string primitiveName, [In][MarshalAs(UnmanagedType.BStr)] string attributeName, [In][Out] ref short pPrimitiveId, [In][Out] ref short pAttributeId, out bool isDynamic);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAttributeNameProvider2_ResolvePrimitiveReference([In][MarshalAs(UnmanagedType.BStr)] string AutomationObjectName, [In][MarshalAs(UnmanagedType.BStr)] string primitiveName, [In][Out] ref short pPrimitiveId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IAttributeNameProvider2_ResolveAttributeReference([In][MarshalAs(UnmanagedType.BStr)] string AutomationObjectName, [In][MarshalAs(UnmanagedType.BStr)] string primitiveName, [In][MarshalAs(UnmanagedType.BStr)] string attributeName, [In][Out] ref short pPrimitiveId, [In][Out] ref short pAttributeId, out bool isDynamic);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ResolveAttributeReference2([In][MarshalAs(UnmanagedType.BStr)] string AutomationObjectName, [In][MarshalAs(UnmanagedType.BStr)] string primitiveName, [In][MarshalAs(UnmanagedType.BStr)] string attributeName, [In][Out] ref short pPrimitiveId, [In][Out] ref short pAttributeId, out bool isDynamic, out bool HasQuality, out bool HasTimestamp);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern uint GetProcessId();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern int GetObjectId();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.BStr)]
public virtual extern string GetCategory();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.BStr)]
public virtual extern string GetHost();
}
@@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("63022ACC-281B-4B5D-99AE-C2FC9345FCB8")]
[CoClass(typeof(CoObjectStgClass))]
public interface CoObjectStg : IObjectStg
{
}
@@ -0,0 +1,23 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("50DEBB44-A6A3-4FEF-A06A-635B51DE8716")]
[ClassInterface(ClassInterfaceType.None)]
[TypeLibType(TypeLibTypeFlags.FCanCreate)]
public class CoObjectStgClass : CoObjectStg, IObjectStg
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.Interface)]
public virtual extern IAutomationObjectDefinition CreateAutomationObject();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.Interface)]
public virtual extern IPrimitiveDefinition CreatePrimitive();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.IUnknown)]
public virtual extern object Open([In][MarshalAs(UnmanagedType.Struct)] object xmlSource);
}
@@ -0,0 +1,20 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[StructLayout(LayoutKind.Sequential, Pack = 8)]
[Guid("4C6219B2-BE72-4EB4-9722-2D14F2B1D94E")]
public struct DataChangeUpdate
{
public ulong ItemId;
public int StatusCode;
public uint HighDateTime;
public uint LowDateTime;
public int quality;
public IDataVariant value;
}
@@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("D55C14E8-FB22-48F8-A092-EF9BC452A083")]
[CoClass(typeof(DataClientClass))]
public interface DataClient : IDataClient
{
}
@@ -0,0 +1,124 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[ClassInterface(ClassInterfaceType.None)]
[TypeLibType(TypeLibTypeFlags.FCanCreate)]
[ComConversionLoss]
[Guid("73BC4121-FF89-4762-901C-206E2BD9FE87")]
public class DataClientClass : IDataClient, DataClient
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void Initialize([In][MarshalAs(UnmanagedType.BStr)] string bstrNamespace);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.BStr)]
public virtual extern string GetLastError();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ResetHeap();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern IntPtr Connect([In][MarshalAs(UnmanagedType.BStr)] string endPointUri, [In] ulong timeout, [In] ref _IUserToken userToken, out uint clientId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)]
public virtual extern IArchestrAResult[] Connect2([In][MarshalAs(UnmanagedType.BStr)] string endPointUri, [In] ulong timeout, [In] ref _IUserToken userToken, out uint clientId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern IntPtr DisConnect();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)]
public virtual extern IArchestrAResult[] Disconnect2();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern int IsIDataClientConnected();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern IntPtr CreateSubscription([In] long MaxQueueSize, [In] ulong SampleInterval, [In] int ActiveState, out long SubscriptionId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)]
public virtual extern IArchestrAResult[] CreateSubscription2([In] long MaxQueueSize, [In] ulong SampleInterval, [In] int ActiveState, out long SubscriptionId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern IntPtr ChangeSubscription([In] long SubscriptionId, [In] int ActiveState);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)]
public virtual extern IArchestrAResult[] ChangeSubscription2([In] long SubscriptionId, [In] int ActiveState);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern IntPtr DeleteSubscription([In] long SubscriptionId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)]
public virtual extern IArchestrAResult[] DeleteSubscription2([In] long SubscriptionId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern IntPtr AddMonitoredItems([In] long SubscriptionId, [In] ref _IMonitoredItem MonItems, [In] uint ItemsCount, [Out] IntPtr pResultCode, out uint ResultCount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)]
public virtual extern IArchestrAResult[] AddMonitoredItems2([In] long SubscriptionId, [In][MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] IMonitoredItem2[] MonItems, [In] uint ItemsCount, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ASBResultCode[] pResultCode, out uint ResultCount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern IntPtr ChangeMonitoredItems([In] long SubscriptionId, [In] ref _IMonitoredItem MonItems, [In] uint ItemsCount, [Out] IntPtr pResultCode, out uint ResultCount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)]
public virtual extern IArchestrAResult[] ChangeMonitoredItems2([In] long SubscriptionId, [In][MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] IMonitoredItem2[] MonItems, [In] uint ItemsCount, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ASBResultCode[] pResultCode, out uint ResultCount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern IntPtr DeleteMonitoredItems([In] long SubscriptionId, [In] ref ulong ItemIds, [In] uint ItemsCount, [Out] IntPtr pResultCode, out uint ResultCount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)]
public virtual extern IArchestrAResult[] DeleteMonitoredItems2([In] long SubscriptionId, [In][MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_UI8)] ulong[] ItemIds, [In] uint ItemsCount, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ASBResultCode[] pResultCode, out uint ResultCount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern IntPtr RegisterItems([In] ref _IItemIdentity IdItems, [In] uint ItemsCount, [Out] IntPtr pResultCode, out uint ResultCount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)]
public virtual extern IArchestrAResult[] RegisterItems2([In][MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] IItemIdentity2[] IdItems, [In] uint ItemsCount, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ASBResultCode[] pResultCode, out uint ResultCount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern IntPtr UnregisterItems([In] ref ulong varItems, [In] uint ItemsCount, [Out] IntPtr pResultCode, out uint ResultCount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)]
public virtual extern IArchestrAResult[] UnregisterItems2([In][MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_UI8)] ulong[] varItems, [In] uint ItemsCount, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ASBResultCode[] pResultCode, out uint ResultCount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern IntPtr Write([In] ref _WriteRequest pWriteRequests, [In] uint RequestsCount, [In] uint WriteHandle, [In] ref _IUserToken User, [In] ref _IUserToken userToken, [Out] IntPtr pResultCode, out uint ResultCount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)]
public virtual extern IArchestrAResult[] Write2([In][MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] WriteRequest2[] pWriteRequests, [In] uint RequestsCount, [In] uint WriteHandle, [In] ref _IUserToken User, [In] ref _IUserToken userToken, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ASBResultCode[] pResultCode, out uint ResultCount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern IntPtr Publish([In] long SubscriptionId, [Out] IntPtr pDataUpdates, out uint UpdatesCount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)]
public virtual extern IArchestrAResult[] Publish2([In] long SubscriptionId, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out DataChangeUpdate[] pDataUpdates, out uint ResultCount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern IntPtr PublishWriteComplete([Out] IntPtr pResultCode, out uint ResultCount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)]
public virtual extern IArchestrAResult[] PublishWriteComplete2([MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ASBResultCode[] pResultCode, out uint ResultCount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern IntPtr Read([In] ref _IItemIdentity IdItems, [In] uint ItemsCount, [Out] IntPtr pDataUpdates, out uint UpdatesCount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)]
public virtual extern IArchestrAResult[] Read2([In][MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] IItemIdentity2[] IdItems, [In] uint ItemsCount, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out DataChangeUpdate[] pDataUpdates, out uint UpdatesCount);
}
@@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("8948FFF4-4529-4447-9115-C69041A49B00")]
[CoClass(typeof(DataConsumerClass))]
public interface DataConsumer : IDataConsumer1
{
}
@@ -0,0 +1,87 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[ClassInterface(ClassInterfaceType.None)]
[TypeLibType(TypeLibTypeFlags.FCanCreate)]
[Guid("85209FB2-0BA1-4594-BBC4-59D3DDAB823D")]
public class DataConsumerClass : IDataConsumer1, DataConsumer
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void RegisterCallback([In][MarshalAs(UnmanagedType.Interface)] IDataConsumerCallback pCallback);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void UnregisterCallback();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern int ResolveNamespace([In][MarshalAs(UnmanagedType.BStr)] string bstrNamespace);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ResolveReference([In] int lNamespaceId, [In][MarshalAs(UnmanagedType.BStr)] string bstrName, [In][MarshalAs(UnmanagedType.BStr)] string bstrContext, [In] int lItemId, [In] ulong ulUserData);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void Subscribe([In] int lNamespaceId, [In] int lItemId, [In] ulong ulUserData, [In] int bActive);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void UnregisterReference([In] int lNamespaceId, [In] int lItemId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void ActivateSuspend([In] int lNamespaceId, [In] int lItemId, [In] ulong ulUserData, [In] int bActive);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void Write([In] int lNamespaceId, [In] int lItemId, [In] ulong ulUserData, [In] ref Guid userId, [In] ref Guid verifierId, [In] bool bUserVerified, [In] _FILETIME ItemTimestamp, [In] uint ItemQuality, [In] ref _IVariant ItemValue, [In] uint MxOperationType, [In] int arrayIndex, [In] bool bArrayIndexValid);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void Write2([In] int lNamespaceId, [In] int lItemId, [In] ulong ulUserData, [In] ref Guid userId, [In] ref Guid verifierId, [In] bool bUserVerified, [In] uint ItemQuality, [In][MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] IDataVariant[] ItemValue, [In] uint MxOperationType, [In] int arrayIndex, [In] bool bArrayIndexValid);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void WriteWithReasonDesc([In] int lNamespaceId, [In] int lItemId, [In] ulong ulUserData, [In] ref Guid userId, [In] ref Guid verifierId, [In] bool bUserVerified, [In] _FILETIME ItemTimestamp, [In] short ItemQuality, [In] ref _IVariant ItemValue, [In][MarshalAs(UnmanagedType.LPWStr)] string reasonDescription, [In] uint MxOperationType, [In] int arrayIndex, [In] bool bArrayIndexValid);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern uint ProcessMessages(out int lSize, [Out] IntPtr updates, [Out] IntPtr pResultCode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern uint ProcessMessages2(out int lSize, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ItemDataUpdate2[] updates, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out MxResultCode[] pResultCode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern uint ProcessRegistration(out int lSize, [Out] IntPtr responses, [Out] IntPtr pResultCode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern uint ProcessRegistration2(out int lSize, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ItemRegistrationResponse[] responses, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out MxResultCode[] pResultCode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern uint ProcessSubscription(out int lSize, [Out] IntPtr responses, [Out] IntPtr pResultCode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern uint ProcessSubscription2(out int lSize, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ItemSubscriptionResponse[] responses, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out MxResultCode[] pResultCode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern uint ProcessUnregister(out int lSize, [Out] IntPtr responses, [Out] IntPtr pResultCode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern uint ProcessUnregister2(out int lSize, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ItemUnregisterResponse[] responses, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out MxResultCode[] pResultCode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern uint ProcessWriteComplete(out int lSize, [Out] IntPtr responses, [Out] IntPtr pResultCode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern uint ProcessWriteComplete2(out int lSize, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ItemWriteResponse[] responses, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out MxResultCode[] pResultCode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern uint ProcessActivateSuspend(out int lSize, [Out] IntPtr responses, [Out] IntPtr pResultCode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern uint ProcessActivateSuspend2(out int lSize, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ItemActiveResponse[] responses, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out MxResultCode[] pResultCode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void IsConnected([In] int namespaceId, out int connected);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void Shutdown();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void UnregisterReferenceEx([In] int lNamespaceId, [In] int lItemId, [In] int isSubscribed);
}
@@ -0,0 +1,10 @@
namespace Interop.Lmx;
public enum DataQuality
{
DataQualityUnknown = -1,
DataQualityGood,
DataQualityUncertain,
DataQualityInitializing,
DataQualityBad
}
@@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("FB91DD91-83C2-413C-BEB0-95338B522B14")]
[CoClass(typeof(DictionaryClass))]
public interface Dictionary : IDictionary
{
}
@@ -0,0 +1,25 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[ClassInterface(ClassInterfaceType.None)]
[TypeLibType(TypeLibTypeFlags.FCanCreate)]
[Guid("FB55EF60-8D1F-11D4-A9A3-0060976445E9")]
public class DictionaryClass : IDictionary, Dictionary
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void Initialize([In][MarshalAs(UnmanagedType.LPWStr)] string vendorName, [In][MarshalAs(UnmanagedType.LPWStr)] string groupID, [In][MarshalAs(UnmanagedType.LPWStr)] string dictionaryFileName);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
public virtual extern void SetLocaleOverride([In] int localeId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.BStr)]
public virtual extern string GetText([In] int index);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.BStr)]
public virtual extern string GetTextWithPhraseKey([In][MarshalAs(UnmanagedType.BStr)] string key);
}
@@ -0,0 +1,57 @@
namespace Interop.Lmx;
public enum EATTRIBUTEPROPERTY
{
idxAttribPropUndefined = -1,
idxAttribPropName = 0,
idxAttribPropAttributeCategory = 1,
idxAttribPropCfgSethandler = 2,
idxAttribPropRtSethandler = 3,
idxAttribPropType = 4,
idxAttribPropUpperBoundDim1 = 5,
idxAttribPropValue = 10,
idxAttribPropSecurityClassification = 11,
idxAttribPropLocked = 12,
idxAttribPropQuality = 13,
idxAttribPropBit00 = 14,
idxAttribPropBit01 = 15,
idxAttribPropBit02 = 16,
idxAttribPropBit03 = 17,
idxAttribPropBit04 = 18,
idxAttribPropBit05 = 19,
idxAttribPropBit06 = 20,
idxAttribPropBit07 = 21,
idxAttribPropBit08 = 22,
idxAttribPropBit09 = 23,
idxAttribPropBit10 = 24,
idxAttribPropBit11 = 25,
idxAttribPropBit12 = 26,
idxAttribPropBit13 = 27,
idxAttribPropBit14 = 28,
idxAttribPropBit15 = 29,
idxAttribPropBit16 = 30,
idxAttribPropBit17 = 31,
idxAttribPropBit18 = 32,
idxAttribPropBit19 = 33,
idxAttribPropBit20 = 34,
idxAttribPropBit21 = 35,
idxAttribPropBit22 = 36,
idxAttribPropBit23 = 37,
idxAttribPropBit24 = 38,
idxAttribPropBit25 = 39,
idxAttribPropBit26 = 40,
idxAttribPropBit27 = 41,
idxAttribPropBit28 = 42,
idxAttribPropBit29 = 43,
idxAttribPropBit30 = 44,
idxAttribPropBit31 = 45,
idxAttribPropValueReadOnly = 46,
idxAttribPropSecurityClassificationReadOnly = 47,
idxAttribPropLockedReadOnly = 48,
idxAttribPropTime = 49,
idxAttribPropBuffer = 50,
idxAttribPropHasBuffer = 51,
idxAttribPropEnumStrings = 52,
idxAttribPropReasonDesc = 53,
idxAttribPropEND = 54
}
@@ -0,0 +1,9 @@
namespace Interop.Lmx;
public enum EAUTHMODE
{
eNone,
eGalaxyOnly,
eOSUserBased,
eOSGroupBased
}
@@ -0,0 +1,11 @@
namespace Interop.Lmx;
public enum EBASERUNTIMEOBJECT
{
idxBROAttributeUndefined = -1,
idxBROPrimitiveList = 100,
idxBRODeployComplete = 101,
idxBROCreateDynamicAttributes = 102,
idxBRODumpState = 103,
idxBROSetAttributeProperties = 104
}
@@ -0,0 +1,10 @@
namespace Interop.Lmx;
public enum ECALLCONTEXTFLAG
{
eCallingContextUnknown,
eSupervisorySetAttribute,
eSystemSetAttribute,
eUserSetAttribute,
eInternalSetAttribute
}
@@ -0,0 +1,34 @@
namespace Interop.Lmx;
public enum ECATEGORY
{
idxCategoryUndefined,
idxCategoryPlatformEngine,
idxCategoryClusterEngine,
idxCategoryApplicationEngine,
idxCategoryViewEngine,
idxCategoryProductEngine,
idxCategoryHistoryEngine,
idxCategoryPrintEngine,
idxCategoryOutpost,
idxCategoryQueryEngine,
idxCategoryApplicationObject,
idxCategoryIONetwork,
idxCategoryIODevice,
idxCategoryArea,
idxCategoryUserProfile,
idxCategoryDisplay,
idxCategorySymbol,
idxCategoryViewApp,
idxCategoryProductionObject,
idxCategoryReport,
idxCategorySharedProcedure,
idxCategoryInsertablePrimitive,
idxCategoryIDEMacro,
idxCategoryGalaxy,
idxCategoryPostIO,
idxCategoryCustom,
idxCategoryInTouchViewApp,
idxCategoryVisualElement,
idxCategoryWidget
}
@@ -0,0 +1,8 @@
namespace Interop.Lmx;
public enum ECOMMONATTRIBUTES
{
idxComAttUnknown = -1,
idxComAttExternalName = 1,
idxComAttInternalName = 2
}
@@ -0,0 +1,62 @@
namespace Interop.Lmx;
public enum ECOMMONPRIMITIVE
{
idxCommonUndefined = -1,
idxCommonExternalName = 1,
idxCommonInternalName = 2,
idxCommonTagname = 100,
idxCommonShortDescription = 101,
idxCommonCategoryIDEnum = 102,
idxCommonAttributes = 103,
idxCommonCmdScanState = 104,
idxCommonScanState = 105,
idxCommonSecurityGroup = 106,
idxCommonError = 107,
idxCommonRelativeOrderEnum = 108,
idxCommonArea = 109,
idxCommonContainer = 110,
idxCommonHost = 111,
idxCommonAlarmModeEnum = 112,
idxCommonAlarmMode = 113,
idxCommonAlarmModeCmd = 114,
idxCommonAlarmInhibit = 115,
idxCommonInAlarm = 116,
idxCommonBasedOn = 117,
idxCommonIsTemplate = 118,
idxCommonCodeBase = 119,
idxCommonUDAs = 120,
idxCommon_InheritedUDAs = 121,
idxCommonExtensions = 122,
idxCommon_InheritedExtensions = 123,
idxCommon_Category = 124,
idxCommon_ConfigVersion = 125,
idxCommon_Warnings = 126,
idxCommonContainedName = 127,
idxCommonExecutionRelatedObject = 128,
idxCommonExecutionRelativeOrder = 129,
idxCommonHierachicalName = 130,
idxCommonMinorVersion = 131,
idxCommon_CmdAdd = 132,
idxCommon_CmdRemove = 133,
idxCommonCmdData = 134,
idxCommon_InheritedCmdData = 135,
idxCommon_AdviseOnlyActiveEnabled = 136,
idxCommonAlarmMostUrgentSeverity = 137,
idxCommonAlarmMostUrgentMode = 138,
idxCommonAlarmMostUrgentAcked = 139,
idxCommonAlarmCntsBySeverity = 140,
idxCommon_AlarmMostUrgentInit = 141,
idxCommon_TempMostUrgentSeverity = 142,
idxCommon_TempMostUrgentMode = 143,
idxCommon_TempMostUrgentAcked = 144,
idxCommon_TempCntsBySeverity = 145,
idxCommon_TempMostUrgentInit = 146,
idxCommon_AggAlarmUpdate = 147,
idxCommonAlarmMostUrgentInAlarm = 148,
idxCommon_TempMostUrgentInAlarm = 149,
idxCommonAlarmMostUrgentShelved = 150,
idxCommonAlarmCntsBySeverityEnableShelved = 151,
idxCommon_TempMostUrgentShelved = 152,
idxCommon_TempCntsBySeverityEnableShelved = 153
}
@@ -0,0 +1,26 @@
namespace Interop.Lmx;
public enum EEXECUTIONGROUP
{
idxExeGroupUnknown = -1,
idxExeGroupCommon,
idxExeGroupInput,
idxExeGroupPreScript,
idxExeGroupCustom,
idxExeGroupCustom1,
idxExeGroupCustom2,
idxExeGroupCustom3,
idxExeGroupCustom4,
idxExeGroupCustom5,
idxExeGroupCustom6,
idxExeGroupCustom7,
idxExeGroupCustom8,
idxExeGroupCustom9,
idxExeGroupCustom10,
idxExeGroupExpression,
idxExeGroupScript,
idxExeGroupPostScript,
idxExeGroupOutput,
idxExeGroupHistory,
idxExeGroupAlarm
}
@@ -0,0 +1,8 @@
namespace Interop.Lmx;
public enum EExecutionOrder
{
NONE = 1,
BEFORE,
AFTER
}
@@ -0,0 +1,16 @@
namespace Interop.Lmx;
public enum EFileType
{
eUndefinedFileType,
eNormal,
eComDLL,
eComEXE,
eNTService,
eMergeRegistryScript,
eForHTMLEditor,
eDictionary,
eMsiMergeModule,
eNETFrameworkAssembly,
eSimpleNETAssembly
}
@@ -0,0 +1,7 @@
namespace Interop.Lmx;
public enum EGRAPHICTYPE
{
eDisplay = 1,
eSymbol
}
@@ -0,0 +1,9 @@
namespace Interop.Lmx;
public enum EIMPORTACTION
{
eCancelImport,
eOverwriteDuplicate,
eSkipOnError,
eImportWithNewName
}
@@ -0,0 +1,8 @@
namespace Interop.Lmx;
public enum EIMPORTCONFLICT
{
eImportedObjectIsNewer,
eImportedObjectIsOlder,
eImportedDiffObjectSameName
}
@@ -0,0 +1,8 @@
namespace Interop.Lmx;
public enum EIMPORTSTATUS
{
eImportHasError,
eImportHasAborted,
eImportHasNoError
}
@@ -0,0 +1,9 @@
namespace Interop.Lmx;
public enum EIMPORTTYPE
{
eNormalImport,
eMinorVersionImport,
eMajorVersionImport,
eAbortImport
}
@@ -0,0 +1,11 @@
namespace Interop.Lmx;
public enum ELOGIN
{
eInvalidUser = 1,
eInvalidPassword,
ePwdChangeInvalid,
ePwdCahngeSuccess,
eLoginOK,
eSecurityNotEnabled
}
@@ -0,0 +1,7 @@
namespace Interop.Lmx;
public enum EMULTIDEPLOYTYPE
{
eStart = 1,
eEnd
}
@@ -0,0 +1,224 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[Guid("D57DCACA-E4C9-4AC6-8739-8E58955B2571")]
public enum EOPCUAStatusCode
{
OPCUA_STATUSCODE_Good = 0,
OPCUA_STATUSCODE_Uncertain = 1073741824,
OPCUA_STATUSCODE_Bad = int.MinValue,
OPCUA_STATUSCODE_BadUnexpectedError = -2147418112,
OPCUA_STATUSCODE_BadInternalError = -2147352576,
OPCUA_STATUSCODE_BadOutOfMemory = -2147287040,
OPCUA_STATUSCODE_BadResourceUnavailable = -2147221504,
OPCUA_STATUSCODE_BadCommunicationError = -2147155968,
OPCUA_STATUSCODE_BadEncodingError = -2147090432,
OPCUA_STATUSCODE_BadDecodingError = -2147024896,
OPCUA_STATUSCODE_BadEncodingLimitsExceeded = -2146959360,
OPCUA_STATUSCODE_BadRequestTooLarge = -2135425024,
OPCUA_STATUSCODE_BadResponseTooLarge = -2135359488,
OPCUA_STATUSCODE_BadUnknownResponse = -2146893824,
OPCUA_STATUSCODE_BadTimeout = -2146828288,
OPCUA_STATUSCODE_BadServiceUnsupported = -2146762752,
OPCUA_STATUSCODE_BadShutdown = -2146697216,
OPCUA_STATUSCODE_BadServerNotConnected = -2146631680,
OPCUA_STATUSCODE_BadServerHalted = -2146566144,
OPCUA_STATUSCODE_BadNothingToDo = -2146500608,
OPCUA_STATUSCODE_BadTooManyOperations = -2146435072,
OPCUA_STATUSCODE_BadDataTypeIdUnknown = -2146369536,
OPCUA_STATUSCODE_BadCertificateInvalid = -2146304000,
OPCUA_STATUSCODE_BadSecurityChecksFailed = -2146238464,
OPCUA_STATUSCODE_BadCertificateTimeInvalid = -2146172928,
OPCUA_STATUSCODE_BadCertificateIssuerTimeInvalid = -2146107392,
OPCUA_STATUSCODE_BadCertificateHostNameInvalid = -2146041856,
OPCUA_STATUSCODE_BadCertificateUriInvalid = -2145976320,
OPCUA_STATUSCODE_BadCertificateUseNotAllowed = -2145910784,
OPCUA_STATUSCODE_BadCertificateIssuerUseNotAllowed = -2145845248,
OPCUA_STATUSCODE_BadCertificateUntrusted = -2145779712,
OPCUA_STATUSCODE_BadCertificateRevocationUnknown = -2145714176,
OPCUA_STATUSCODE_BadCertificateIssuerRevocationUnknown = -2145648640,
OPCUA_STATUSCODE_BadCertificateRevoked = -2145583104,
OPCUA_STATUSCODE_BadCertificateIssuerRevoked = -2145517568,
OPCUA_STATUSCODE_BadUserAccessDenied = -2145452032,
OPCUA_STATUSCODE_BadIdentityTokenInvalid = -2145386496,
OPCUA_STATUSCODE_BadIdentityTokenRejected = -2145320960,
OPCUA_STATUSCODE_BadSecureChannelIdInvalid = -2145255424,
OPCUA_STATUSCODE_BadInvalidTimestamp = -2145189888,
OPCUA_STATUSCODE_BadNonceInvalid = -2145124352,
OPCUA_STATUSCODE_BadSessionIdInvalid = -2145058816,
OPCUA_STATUSCODE_BadSessionClosed = -2144993280,
OPCUA_STATUSCODE_BadSessionNotActivated = -2144927744,
OPCUA_STATUSCODE_BadSubscriptionIdInvalid = -2144862208,
OPCUA_STATUSCODE_BadRequestHeaderInvalid = -2144731136,
OPCUA_STATUSCODE_BadTimestampsToReturnInvalid = -2144665600,
OPCUA_STATUSCODE_BadRequestCanceledByClient = -2144600064,
OPCUA_STATUSCODE_GoodSubscriptionTransferred = 2949120,
OPCUA_STATUSCODE_GoodCompletesAsynchronously = 3014656,
OPCUA_STATUSCODE_GoodOverload = 3080192,
OPCUA_STATUSCODE_GoodClamped = 3145728,
OPCUA_STATUSCODE_BadNoCommunication = -2144272384,
OPCUA_STATUSCODE_BadWaitingForInitialData = -2144206848,
OPCUA_STATUSCODE_BadNodeIdInvalid = -2144141312,
OPCUA_STATUSCODE_BadNodeIdUnknown = -2144075776,
OPCUA_STATUSCODE_BadAttributeIdInvalid = -2144010240,
OPCUA_STATUSCODE_BadIndexRangeInvalid = -2143944704,
OPCUA_STATUSCODE_BadIndexRangeNoData = -2143879168,
OPCUA_STATUSCODE_BadDataEncodingInvalid = -2143813632,
OPCUA_STATUSCODE_BadDataEncodingUnsupported = -2143748096,
OPCUA_STATUSCODE_BadNotReadable = -2143682560,
OPCUA_STATUSCODE_BadNotWritable = -2143617024,
OPCUA_STATUSCODE_BadOutOfRange = -2143551488,
OPCUA_STATUSCODE_BadNotSupported = -2143485952,
OPCUA_STATUSCODE_BadNotFound = -2143420416,
OPCUA_STATUSCODE_BadObjectDeleted = -2143354880,
OPCUA_STATUSCODE_BadNotImplemented = -2143289344,
OPCUA_STATUSCODE_BadMonitoringModeInvalid = -2143223808,
OPCUA_STATUSCODE_BadMonitoredItemIdInvalid = -2143158272,
OPCUA_STATUSCODE_BadMonitoredItemFilterInvalid = -2143092736,
OPCUA_STATUSCODE_BadMonitoredItemFilterUnsupported = -2143027200,
OPCUA_STATUSCODE_BadFilterNotAllowed = -2142961664,
OPCUA_STATUSCODE_BadStructureMissing = -2142896128,
OPCUA_STATUSCODE_BadEventFilterInvalid = -2142830592,
OPCUA_STATUSCODE_BadContentFilterInvalid = -2142765056,
OPCUA_STATUSCODE_BadFilterOperatorInvalid = -2134835200,
OPCUA_STATUSCODE_BadFilterOperatorUnsupported = -2134769664,
OPCUA_STATUSCODE_BadFilterOperandCountMismatch = -2134704128,
OPCUA_STATUSCODE_BadFilterOperandInvalid = -2142699520,
OPCUA_STATUSCODE_BadFilterElementInvalid = -2134638592,
OPCUA_STATUSCODE_BadFilterLiteralInvalid = -2134573056,
OPCUA_STATUSCODE_BadContinuationPointInvalid = -2142633984,
OPCUA_STATUSCODE_BadNoContinuationPoints = -2142568448,
OPCUA_STATUSCODE_BadReferenceTypeIdInvalid = -2142502912,
OPCUA_STATUSCODE_BadBrowseDirectionInvalid = -2142437376,
OPCUA_STATUSCODE_BadNodeNotInView = -2142371840,
OPCUA_STATUSCODE_BadServerUriInvalid = -2142306304,
OPCUA_STATUSCODE_BadServerNameMissing = -2142240768,
OPCUA_STATUSCODE_BadDiscoveryUrlMissing = -2142175232,
OPCUA_STATUSCODE_BadSemaphoreFileMissing = -2142109696,
OPCUA_STATUSCODE_BadRequestTypeInvalid = -2142044160,
OPCUA_STATUSCODE_BadSecurityModeRejected = -2141978624,
OPCUA_STATUSCODE_BadSecurityPolicyRejected = -2141913088,
OPCUA_STATUSCODE_BadTooManySessions = -2141847552,
OPCUA_STATUSCODE_BadUserSignatureInvalid = -2141782016,
OPCUA_STATUSCODE_BadApplicationSignatureInvalid = -2141716480,
OPCUA_STATUSCODE_BadNoValidCertificates = -2141650944,
OPCUA_STATUSCODE_BadIdentityChangeNotSupported = -2134507520,
OPCUA_STATUSCODE_BadRequestCanceledByRequest = -2141585408,
OPCUA_STATUSCODE_BadParentNodeIdInvalid = -2141519872,
OPCUA_STATUSCODE_BadReferenceNotAllowed = -2141454336,
OPCUA_STATUSCODE_BadNodeIdRejected = -2141388800,
OPCUA_STATUSCODE_BadNodeIdExists = -2141323264,
OPCUA_STATUSCODE_BadNodeClassInvalid = -2141257728,
OPCUA_STATUSCODE_BadBrowseNameInvalid = -2141192192,
OPCUA_STATUSCODE_BadBrowseNameDuplicated = -2141126656,
OPCUA_STATUSCODE_BadNodeAttributesInvalid = -2141061120,
OPCUA_STATUSCODE_BadTypeDefinitionInvalid = -2140995584,
OPCUA_STATUSCODE_BadSourceNodeIdInvalid = -2140930048,
OPCUA_STATUSCODE_BadTargetNodeIdInvalid = -2140864512,
OPCUA_STATUSCODE_BadDuplicateReferenceNotAllowed = -2140798976,
OPCUA_STATUSCODE_BadInvalidSelfReference = -2140733440,
OPCUA_STATUSCODE_BadReferenceLocalOnly = -2140667904,
OPCUA_STATUSCODE_BadNoDeleteRights = -2140602368,
OPCUA_STATUSCODE_UncertainReferenceNotDeleted = 1086062592,
OPCUA_STATUSCODE_BadServerIndexInvalid = -2140536832,
OPCUA_STATUSCODE_BadViewIdUnknown = -2140471296,
OPCUA_STATUSCODE_BadViewTimestampInvalid = -2134310912,
OPCUA_STATUSCODE_BadViewParameterMismatch = -2134245376,
OPCUA_STATUSCODE_BadViewVersionInvalid = -2134179840,
OPCUA_STATUSCODE_UncertainNotAllNodesAvailable = 1086324736,
OPCUA_STATUSCODE_GoodResultsMayBeIncomplete = 12189696,
OPCUA_STATUSCODE_BadNotTypeDefinition = -2134376448,
OPCUA_STATUSCODE_UncertainReferenceOutOfServer = 1080819712,
OPCUA_STATUSCODE_BadTooManyMatches = -2140340224,
OPCUA_STATUSCODE_BadQueryTooComplex = -2140274688,
OPCUA_STATUSCODE_BadNoMatch = -2140209152,
OPCUA_STATUSCODE_BadMaxAgeInvalid = -2140143616,
OPCUA_STATUSCODE_BadHistoryOperationInvalid = -2140078080,
OPCUA_STATUSCODE_BadHistoryOperationUnsupported = -2140012544,
OPCUA_STATUSCODE_BadInvalidTimestampArgument = -2135097344,
OPCUA_STATUSCODE_BadWriteNotSupported = -2139947008,
OPCUA_STATUSCODE_BadTypeMismatch = -2139881472,
OPCUA_STATUSCODE_BadMethodInvalid = -2139815936,
OPCUA_STATUSCODE_BadArgumentsMissing = -2139750400,
OPCUA_STATUSCODE_BadTooManySubscriptions = -2139684864,
OPCUA_STATUSCODE_BadTooManyPublishRequests = -2139619328,
OPCUA_STATUSCODE_BadNoSubscription = -2139553792,
OPCUA_STATUSCODE_BadSequenceNumberUnknown = -2139488256,
OPCUA_STATUSCODE_BadMessageNotAvailable = -2139422720,
OPCUA_STATUSCODE_BadInsufficientClientProfile = -2139357184,
OPCUA_STATUSCODE_BadStateNotActive = -2134966272,
OPCUA_STATUSCODE_BadTcpServerTooBusy = -2139291648,
OPCUA_STATUSCODE_BadTcpMessageTypeInvalid = -2139226112,
OPCUA_STATUSCODE_BadTcpSecureChannelUnknown = -2139160576,
OPCUA_STATUSCODE_BadTcpMessageTooLarge = -2139095040,
OPCUA_STATUSCODE_BadTcpNotEnoughResources = -2139029504,
OPCUA_STATUSCODE_BadTcpInternalError = -2138963968,
OPCUA_STATUSCODE_BadTcpEndpointUrlInvalid = -2138898432,
OPCUA_STATUSCODE_BadRequestInterrupted = -2138832896,
OPCUA_STATUSCODE_BadRequestTimeout = -2138767360,
OPCUA_STATUSCODE_BadSecureChannelClosed = -2138701824,
OPCUA_STATUSCODE_BadSecureChannelTokenUnknown = -2138636288,
OPCUA_STATUSCODE_BadSequenceNumberInvalid = -2138570752,
OPCUA_STATUSCODE_BadProtocolVersionUnsupported = -2135031808,
OPCUA_STATUSCODE_BadConfigurationError = -2138505216,
OPCUA_STATUSCODE_BadNotConnected = -2138439680,
OPCUA_STATUSCODE_BadDeviceFailure = -2138374144,
OPCUA_STATUSCODE_BadSensorFailure = -2138308608,
OPCUA_STATUSCODE_BadOutOfService = -2138243072,
OPCUA_STATUSCODE_BadDeadbandFilterInvalid = -2138177536,
OPCUA_STATUSCODE_UncertainNoCommunicationLastUsableValue = 1083113472,
OPCUA_STATUSCODE_UncertainLastUsableValue = 1083179008,
OPCUA_STATUSCODE_UncertainSubstituteValue = 1083244544,
OPCUA_STATUSCODE_UncertainInitialValue = 1083310080,
OPCUA_STATUSCODE_UncertainSensorNotAccurate = 1083375616,
OPCUA_STATUSCODE_UncertainEngineeringUnitsExceeded = 1083441152,
OPCUA_STATUSCODE_UncertainSubNormal = 1083506688,
OPCUA_STATUSCODE_GoodLocalOverride = 9830400,
OPCUA_STATUSCODE_BadRefreshInProgress = -2137587712,
OPCUA_STATUSCODE_BadConditionAlreadyDisabled = -2137522176,
OPCUA_STATUSCODE_BadConditionAlreadyEnabled = -2134114304,
OPCUA_STATUSCODE_BadConditionDisabled = -2137456640,
OPCUA_STATUSCODE_BadEventIdUnknown = -2137391104,
OPCUA_STATUSCODE_BadEventNotAcknowledgeable = -2135228416,
OPCUA_STATUSCODE_BadDialogNotActive = -2134048768,
OPCUA_STATUSCODE_BadDialogResponseInvalid = -2133983232,
OPCUA_STATUSCODE_BadConditionBranchAlreadyAcked = -2133917696,
OPCUA_STATUSCODE_BadConditionBranchAlreadyConfirmed = -2133852160,
OPCUA_STATUSCODE_BadConditionAlreadyShelved = -2133786624,
OPCUA_STATUSCODE_BadConditionNotShelved = -2133721088,
OPCUA_STATUSCODE_BadShelvingTimeoutOfRange = -2133655552,
OPCUA_STATUSCODE_BadNoData = -2137325568,
OPCUA_STATUSCODE_BadBoundNotFound = -2133393408,
OPCUA_STATUSCODE_BadBoundNotSupported = -2133327872,
OPCUA_STATUSCODE_BadDataLost = -2137194496,
OPCUA_STATUSCODE_BadDataUnavailable = -2137128960,
OPCUA_STATUSCODE_BadEntryExists = -2137063424,
OPCUA_STATUSCODE_BadNoEntryExists = -2136997888,
OPCUA_STATUSCODE_BadTimestampNotSupported = -2136932352,
OPCUA_STATUSCODE_GoodEntryInserted = 10616832,
OPCUA_STATUSCODE_GoodEntryReplaced = 10682368,
OPCUA_STATUSCODE_UncertainDataSubNormal = 1084489728,
OPCUA_STATUSCODE_GoodNoData = 10813440,
OPCUA_STATUSCODE_GoodMoreData = 10878976,
OPCUA_STATUSCODE_BadAggregateListMismatch = -2133590016,
OPCUA_STATUSCODE_BadAggregateNotSupported = -2133524480,
OPCUA_STATUSCODE_BadAggregateInvalidInputs = -2133458944,
OPCUA_STATUSCODE_GoodCommunicationEvent = 10944512,
OPCUA_STATUSCODE_GoodShutdownEvent = 11010048,
OPCUA_STATUSCODE_GoodCallAgain = 11075584,
OPCUA_STATUSCODE_GoodNonCriticalTimeout = 11141120,
OPCUA_STATUSCODE_BadInvalidArgument = -2136276992,
OPCUA_STATUSCODE_BadConnectionRejected = -2136211456,
OPCUA_STATUSCODE_BadDisconnect = -2136145920,
OPCUA_STATUSCODE_BadConnectionClosed = -2136080384,
OPCUA_STATUSCODE_BadInvalidState = -2136014848,
OPCUA_STATUSCODE_BadEndOfStream = -2135949312,
OPCUA_STATUSCODE_BadNoDataAvailable = -2135883776,
OPCUA_STATUSCODE_BadWaitingForResponse = -2135818240,
OPCUA_STATUSCODE_BadOperationAbandoned = -2135752704,
OPCUA_STATUSCODE_BadExpectedStreamToBlock = -2135687168,
OPCUA_STATUSCODE_BadWouldBlock = -2135621632,
OPCUA_STATUSCODE_BadSyntaxError = -2135556096,
OPCUA_STATUSCODE_BadMaxConnectionsReached = -2135490560
}
@@ -0,0 +1,9 @@
namespace Interop.Lmx;
public enum EPACKAGESTATUS
{
ePackageUnknownStatus = -1,
ePackageGood,
ePackageBad,
ePackageWarning
}
@@ -0,0 +1,7 @@
namespace Interop.Lmx;
public enum EPERMISSION_ACCESS
{
eAccessOK = 1,
eAccessdeny
}
@@ -0,0 +1,8 @@
namespace Interop.Lmx;
public enum EPREFERENCETYPE
{
eUndefinedPreference,
eIde,
eAttributeBrowser
}
@@ -0,0 +1,7 @@
namespace Interop.Lmx;
public enum EQUEUETYPE
{
eExpressQueue,
eGuarantyQueue
}
@@ -0,0 +1,9 @@
namespace Interop.Lmx;
public enum ERESERVEDPRIMITIVEIDS
{
eReservedPrimitiveIdUndefined = -1,
eBaseRuntimeObjectId = 1,
eCommonPrimitiveId = 2,
eTopLevelCustomPrimitiveId = 100
}
@@ -0,0 +1,59 @@
namespace Interop.Lmx;
public enum ERRORCODE
{
eNoError,
eFailureOnScan,
eDatabaseMismatch,
eUnProcessed,
eObjectInUse,
eObjectDoesNotExist,
eObjectCheckedIn,
eObjectInPendingUpdateState,
eObjectCheckedOutToCurrentUser,
eObjectCheckedOutToAnotherUser,
eObjectDeployTransitionState,
eEngineDoesNotExist,
ePlatformDoesNotExist,
ePlatformCommunicationError,
eObjectAlreadyDeployed,
eEngineCommunicationError,
eFsObjectAlreadyDeletedError,
eFsObjectEditedByOtherUserError,
eCascadeToDerivedObjectsError,
eCheckOutError,
eObjectNotDeployed,
eObjectUndoCheckoutError,
eLicenseUnAvailable,
eObjectIdMismatchDetected,
eSignatureMismatch,
ePermissionDenied,
eUserIdPasswordInvalid,
ePlatformStartupFailed,
eGRNodePlatformNotDeployed,
eUndeployFailed,
eDeployFailed,
eObjectHasChilds,
eInvalidForCurrentObjectState,
eProgressNotify,
eObjectInSufficientPermissions,
eInvalidInstallationVersion,
eBackupAppEngineIsDeployed,
ePlatformNotConfiguredForFailOver,
eObjectsExceedLimit,
eEnginesExceedLimit,
eFailToCreateBackupEngine,
ePrimaryAppEngineIsDeployed,
eObjectIsBackupEngine,
eUnDefined,
eFSDevLicenseUnAvailable,
eSufficientIOUnAvailable,
eSufficientUserConnectionUnAvailable,
eDeployedFileTransfering,
eLocaleNotSupported,
eFailToExportAlarmComments,
eFailToImportAlarmComments,
eDeployChangeFailed,
eRequestTimedOut,
eGalaxyObjectLocked
}
@@ -0,0 +1,62 @@
namespace Interop.Lmx;
public enum ESECURITY_PERMISSION
{
eImport = 1,
eGrLoadGrDump,
eExport,
eModDeployInst,
eModTemplates,
eCanDisableChangeComments,
eStartStopPE,
eOverrideCheckOut,
eUploadRuntime,
eModifySODSetting,
eCMDSysobjTemp,
eCMDSysobjInst,
eCMDDeviceTemp,
eCMDDeviceInst,
eCMDAppobjTemp,
eCMDAppobjInst,
eCMDUIobjTemp,
eCMDUIobjInst,
eModSecModel,
eCMDFrameObjs,
eModLocalSetting,
eModTimeSyncSetting,
eCMDUserPTemp,
eMOwnUserProfile,
eDepUnDepSysobj,
eDepUnDepFraobj,
eDepUnDepAppobj,
eRedeployObjects,
eDepUnDepDeviceInt,
eMarkObjUndeployed,
eWritegObjAttrinObjVw,
eWritegObjAttrinSupMode,
eWritegObjAttrinSystemMode,
eManageLicense,
eBackUpHistData,
eArchResHistData,
eAckAlarams,
eCanManageFormulaStore,
eCanManageFormulaTemplate,
eCanManageFormulaInstance,
eImportGrpahics,
eExportGrpahics,
eCMDGrpahics,
eCMDAttachedGraphicsInTemplate,
eCMDViewApp,
eDepUndepViewApp,
eCMDAttachedGraphicsInInstance,
eCanEditQualityStatus,
eAccessIDE,
eAccessSMC,
eAccessVEW,
eAccessINT,
eSecurityVerifiedWrite,
eCanShelveAlarms,
eCanModifyAlarmSeverity,
eCanModifyAlarmModes,
eCanModifyPlantState
}
@@ -0,0 +1,10 @@
namespace Interop.Lmx;
public enum ESTARTUPCONTEXT
{
eStartupContextUnknown,
eStartingAfterDeployment,
eStartingFromCheckpoint,
eStartingFromStandby,
eStartingAfterDeployChange
}
@@ -0,0 +1,7 @@
namespace Interop.Lmx;
public enum EWHICHVERSIONTODEPLOY
{
eDeployLastDeployedVersion,
eDeployCheckedinVersion
}
@@ -0,0 +1,9 @@
namespace Interop.Lmx;
public enum EngineExitStatus
{
eEngineNotRunning,
eEngineShuttingDown,
eEngineSwitchingToStandby,
eEngineSwitchingToActive
}
@@ -0,0 +1,25 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[StructLayout(LayoutKind.Sequential, Pack = 4)]
public struct EnginePrimitiveInternalCnt
{
public int extRefCnt;
public int extRefCntUnbound;
public int issuedInternalGetsCnt;
public int issuedInternalSetsCnt;
public int issuedExternalGetsCnt;
public int issuedExternalSetsCnt;
public int receivedExternalGetsCnt;
public int receivedExternalSetsCnt;
public int lHeartbeat;
}
@@ -0,0 +1,13 @@
namespace Interop.Lmx;
public enum EngineStates
{
Uninitialized,
Initialized,
Starting,
Deploying,
StartingHostedObjects,
Running,
ShuttingDown,
AboutToShutDown
}
@@ -0,0 +1,19 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[StructLayout(LayoutKind.Sequential, Pack = 4)]
[Guid("1871FC50-634B-11D8-9867-0007E978B186")]
public struct FileInstallInfo
{
[MarshalAs(UnmanagedType.BStr)]
public string szFilename;
[MarshalAs(UnmanagedType.BStr)]
public string szVendorname;
[MarshalAs(UnmanagedType.BStr)]
public string szGroupID;
public EFileType FileType;
}
@@ -0,0 +1,22 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[StructLayout(LayoutKind.Sequential, Pack = 4)]
[Guid("1871FC53-634B-11D8-9867-0007E978B186")]
public struct FileInstallInfo2
{
[MarshalAs(UnmanagedType.BStr)]
public string szFilename;
[MarshalAs(UnmanagedType.BStr)]
public string szVendorname;
[MarshalAs(UnmanagedType.BStr)]
public string szGroupID;
public EFileType FileType;
[MarshalAs(UnmanagedType.BStr)]
public string szLocation;
}
@@ -0,0 +1,7 @@
namespace Interop.Lmx;
public enum GLOBAL_CONSTS
{
MAX_TAGNAME_LENGTH = 32,
MAX_ATTRIBUTE_NAME_LENGTH = 329
}
@@ -0,0 +1,24 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[StructLayout(LayoutKind.Sequential, Pack = 4)]
[Guid("1031E230-67F6-11D8-9872-0007E978B186")]
public struct GalaxyStatusInfo
{
public int totalNumberOfInstances;
public int totalNumberOfTemplates;
public int numberOfObjectsWithErrors;
public int numberOfObjectsWithWarnings;
public int numberOfInstancesNotDeployed;
public int numberofObjectsWithChanges;
public int numberofObjectsCheckedOut;
public int numberofObjectsCheckedOutToLoggedinUser;
}
@@ -0,0 +1,23 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[StructLayout(LayoutKind.Sequential, Pack = 4)]
[Guid("1031E231-67F6-11D8-9872-0007E978B186")]
public struct GalaxyVersionInfo
{
public int versionNumber;
[MarshalAs(UnmanagedType.BStr)]
public string versionString;
[MarshalAs(UnmanagedType.BStr)]
public string cdiVersionString;
public short bMigrateRequired;
public short bMigrateSupported;
[MarshalAs(UnmanagedType.BStr)]
public string reason;
}
@@ -0,0 +1,20 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[StructLayout(LayoutKind.Sequential, Pack = 4)]
public struct GetTagNameInInfo
{
public int hRef;
[MarshalAs(UnmanagedType.LPWStr)]
public string pReferenceString;
[MarshalAs(UnmanagedType.LPWStr)]
public string pContextString;
[MarshalAs(UnmanagedType.Interface)]
public IMxCallback2 pMxCallback2;
public int CallbackID;
}
@@ -0,0 +1,21 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[StructLayout(LayoutKind.Sequential, Pack = 4)]
[Guid("EBACE03A-2963-433D-A11E-825C52923F31")]
public struct GetTagNameInInfoCS
{
public int hRef;
[MarshalAs(UnmanagedType.LPWStr)]
public string pReferenceString;
[MarshalAs(UnmanagedType.LPWStr)]
public string pContextString;
[MarshalAs(UnmanagedType.Interface)]
public IMxCallback2 pMxCallback2;
public int CallbackID;
}
@@ -0,0 +1,21 @@
using System;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[StructLayout(LayoutKind.Sequential, Pack = 4)]
[ComConversionLoss]
public struct GetTagNameOutInfo
{
[ComConversionLoss]
public IntPtr pGalaxyNameString;
[ComConversionLoss]
public IntPtr pObjectNameString;
[ComConversionLoss]
public IntPtr pAttributeNameString;
[ComConversionLoss]
public IntPtr pStatus;
}
@@ -0,0 +1,19 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[StructLayout(LayoutKind.Sequential, Pack = 4)]
[Guid("4B81976C-90BB-4098-A1BB-F6D85F11E496")]
public struct GetTagNameOutInfoCS
{
[MarshalAs(UnmanagedType.BStr)]
public string pGalaxyNameString;
[MarshalAs(UnmanagedType.BStr)]
public string pObjectNameString;
[MarshalAs(UnmanagedType.BStr)]
public string pAttributeNameString;
public MxStatus pStatus;
}
@@ -0,0 +1,14 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("F2B877E1-1DBE-11D3-80AD-00104B5F96A7")]
public interface IAccessManagerClient
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.IUnknown)]
object CreateMxConnection();
}
@@ -0,0 +1,28 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("96469CD1-8EF4-11D2-BF61-00104B5F96A7")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IAccessManagerHost
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void InitializeAnonymous();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void GetEngineId(out int engineId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void ProcessOutputs();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void ProcessInput(out bool queueWasEmpty, out int messageSize);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void ProcessMiscellaneous();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void ProcessMessages();
}
@@ -0,0 +1,37 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("02FB8CDD-C214-479C-B9FB-CF7BCC01BB14")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IAccessManagerHost2 : IAccessManagerHost
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void InitializeAnonymous();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetEngineId(out int engineId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessOutputs();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessInput(out bool queueWasEmpty, out int messageSize);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessMiscellaneous();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessMessages();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void ProcessDataChange([In] int lMode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void ProcessInputEx([In] int lMode, out bool queueWasEmpty, out int messageSize);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void ProcessOutputsEx([In] int lMode);
}
@@ -0,0 +1,40 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("EB84CFA8-9CF3-49CB-AFC8-5EFE8D664C81")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IAccessManagerHost3 : IAccessManagerHost2
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void InitializeAnonymous();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetEngineId(out int engineId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessOutputs();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessInput(out bool queueWasEmpty, out int messageSize);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessMiscellaneous();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessMessages();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessDataChange([In] int lMode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessInputEx([In] int lMode, out bool queueWasEmpty, out int messageSize);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessOutputsEx([In] int lMode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void SwapDataBuffers();
}
@@ -0,0 +1,43 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("964EBB72-56D3-48C7-BB75-17646B4D4950")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IAccessManagerHost4 : IAccessManagerHost3
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void InitializeAnonymous();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetEngineId(out int engineId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessOutputs();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessInput(out bool queueWasEmpty, out int messageSize);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessMiscellaneous();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessMessages();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessDataChange([In] int lMode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessInputEx([In] int lMode, out bool queueWasEmpty, out int messageSize);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ProcessOutputsEx([In] int lMode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void SwapDataBuffers();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void ShutdownMxConsumer();
}
@@ -0,0 +1,34 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("96469CD2-8EF4-11D2-BF61-00104B5F96A7")]
public interface IAccessManagerProvider
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void RegisterAutomationObject([In][MarshalAs(UnmanagedType.Interface)] CoBaseRuntimeObject pAutomationObject, [In] int AutomationObjectId, [In][MarshalAs(UnmanagedType.LPWStr)] string AutomationObjectName, [In] int AutomationObjectSignature);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void UnRegisterAutomationObject([In] int AutomationObjectId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void CancelAllSubscriptions();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void NotifySubscriptionChange([In] int index, [In][MarshalAs(UnmanagedType.Interface)] MxValue pMxValue, [In] ref short quality);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void InvalidateSubscription([In] int index);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void ObjectRestored([In][MarshalAs(UnmanagedType.Interface)] CoBaseRuntimeObject pAutomationObject, [In] int AutomationObjectId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void UnregisterAutomationObjectNoUpdate([In] int AutomationObjectId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void UpdateObjectsAttribute();
}
@@ -0,0 +1,37 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("5DDF5C87-5A7A-41D6-B689-C170CD37CC00")]
public interface IAccessManagerProvider2 : IAccessManagerProvider
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void RegisterAutomationObject([In][MarshalAs(UnmanagedType.Interface)] CoBaseRuntimeObject pAutomationObject, [In] int AutomationObjectId, [In][MarshalAs(UnmanagedType.LPWStr)] string AutomationObjectName, [In] int AutomationObjectSignature);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void UnRegisterAutomationObject([In] int AutomationObjectId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void CancelAllSubscriptions();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void NotifySubscriptionChange([In] int index, [In][MarshalAs(UnmanagedType.Interface)] MxValue pMxValue, [In] ref short quality);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void InvalidateSubscription([In] int index);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ObjectRestored([In][MarshalAs(UnmanagedType.Interface)] CoBaseRuntimeObject pAutomationObject, [In] int AutomationObjectId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void UnregisterAutomationObjectNoUpdate([In] int AutomationObjectId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void UpdateObjectsAttribute();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void NotifySubscriptionChange2([In] int index, [In][MarshalAs(UnmanagedType.Interface)] MxValue pMxValue, [In] ref short quality, [In] ref _FILETIME timeStamp);
}
@@ -0,0 +1,29 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[Guid("90F6EA33-C670-4285-887E-74EB765CA422")]
public enum IArchestrAError
{
ArchestrAErrorSuccess = 0,
ArchestrAErrorInvalidConnectionId = 1,
ArchestrAErrorApplicationAuthenticationError = 2,
ArchestrAErrorUserAuthenticationError = 3,
ArchestrAErrorUserAuthorizationError = 4,
ArchestrAErrorNotSupportedOperation = 5,
ArchestrAErrorMonitoredItemsNotFound = 6,
ArchestrAErrorInvalidSubscriptionID = 7,
ArchestrAErrorItemAlreadyRegistered = 8,
ArchestrAErrorItemAlreadyDeletedOrDoesNotExist = 9,
ArchestrAErrorInvalidMonitoredItems = 10,
ArchestrAErrorOperationFailed = 11,
ArchestrAErrorSpecificError = 12,
ArchestrAErrorBadNoCommunication = 13,
ArchestrAErrorBad_NothingToDo = 14,
ArchestrAErrorBad_TooManyOperations = 15,
ArchestrAErrorBad_NodeIdInvalid = 16,
ArchestrAErrorBrowseFailed = 17,
ArchestrAErrorWriteFailed_BadOutOfRange = 18,
ArchestrAErrorWriteFailed_BadTypeMismatch = 19,
ArchestrAErrorUnknown = 65535
}
@@ -0,0 +1,14 @@
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[StructLayout(LayoutKind.Sequential, Pack = 4)]
[Guid("8830ECEF-F8A7-4897-9048-83CD085B8EB5")]
public struct IArchestrAResult
{
public IArchestrAError ERRORCODE;
public uint SpecificErrorCode;
public uint status;
}
@@ -0,0 +1,34 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("5C3A62E1-DCBB-11D3-8B23-000000000000")]
public interface IAttributeCheckpoint
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void CreatePropertyCheckpoint([In] int propertyId, [In] short index1, [In][MarshalAs(UnmanagedType.Interface)] MxValue pMxValue);
[DispId(1)]
int id
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
get;
}
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void GetPropertyCheckpointValue([In] int propertyId, [In][MarshalAs(UnmanagedType.Interface)] MxValue ppMxValue);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void SetPropertyCheckpointValue([In] int propertyId, [In][MarshalAs(UnmanagedType.Interface)] MxValue ppMxValue);
[DispId(3)]
IEnumPropertyCheckpoint PropertyCheckpoints
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
}
@@ -0,0 +1,158 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("8E03A706-ECA8-45F7-9D72-3EADAA4FF2F5")]
[TypeLibType(TypeLibTypeFlags.FDispatchable)]
public interface IAttributeDefinition
{
[DispId(1)]
string Name
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[param: In]
[param: MarshalAs(UnmanagedType.BStr)]
set;
}
[DispId(2)]
MxAttributeCategory category
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
get;
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[param: In]
set;
}
[DispId(3)]
MxDataType type
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
get;
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[param: In]
set;
}
[DispId(4)]
MxValue value
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[param: In]
[param: MarshalAs(UnmanagedType.Interface)]
set;
}
[DispId(5)]
MxValue Min
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[param: In]
[param: MarshalAs(UnmanagedType.Interface)]
set;
}
[DispId(6)]
MxValue Max
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[param: In]
[param: MarshalAs(UnmanagedType.Interface)]
set;
}
[DispId(7)]
bool CfgSethandler
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
get;
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[param: In]
set;
}
[DispId(8)]
bool RtSetHandler
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
get;
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[param: In]
set;
}
[DispId(9)]
MxSecurityClassification SecurityClassification
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
get;
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[param: In]
set;
}
[DispId(10)]
int UpperBoundDim1
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
get;
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[param: In]
set;
}
[DispId(11)]
int UpperBoundDim2
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
get;
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[param: In]
set;
}
[DispId(12)]
int UpperBoundDim3
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
get;
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[param: In]
set;
}
[DispId(13)]
MxPropertyLockedEnum Locked
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
get;
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[param: In]
set;
}
[DispId(14)]
short attributeId
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
get;
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[param: In]
set;
}
}
@@ -0,0 +1,37 @@
using System.Collections;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[TypeLibType(TypeLibTypeFlags.FDispatchable)]
[Guid("31ED8996-8368-47E2-A48B-0A07FFE6983B")]
public interface IAttributeDefinitions : IEnumerable
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.Interface)]
IAttributeDefinition AddAttribute();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void RemoveAttribute([In] int nAttributeId);
[DispId(3)]
int count
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
get;
}
[DispId(0)]
IAttributeDefinition this[[In] int nIndex]
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "System.Runtime.InteropServices.CustomMarshalers.EnumeratorToEnumVariantMarshaler, CustomMarshalers, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
new IEnumerator GetEnumerator();
}
@@ -0,0 +1,16 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("F2B877E6-1DBE-11D3-80AD-00104B5F96A7")]
public interface IAttributeNameProvider
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void ResolvePrimitiveReference([In][MarshalAs(UnmanagedType.BStr)] string AutomationObjectName, [In][MarshalAs(UnmanagedType.BStr)] string primitiveName, [In][Out] ref short pPrimitiveId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void ResolveAttributeReference([In][MarshalAs(UnmanagedType.BStr)] string AutomationObjectName, [In][MarshalAs(UnmanagedType.BStr)] string primitiveName, [In][MarshalAs(UnmanagedType.BStr)] string attributeName, [In][Out] ref short pPrimitiveId, [In][Out] ref short pAttributeId, out bool isDynamic);
}
@@ -0,0 +1,19 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("05329473-F0DE-4C3C-ADAA-C11E484296EF")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IAttributeNameProvider2 : IAttributeNameProvider
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ResolvePrimitiveReference([In][MarshalAs(UnmanagedType.BStr)] string AutomationObjectName, [In][MarshalAs(UnmanagedType.BStr)] string primitiveName, [In][Out] ref short pPrimitiveId);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ResolveAttributeReference([In][MarshalAs(UnmanagedType.BStr)] string AutomationObjectName, [In][MarshalAs(UnmanagedType.BStr)] string primitiveName, [In][MarshalAs(UnmanagedType.BStr)] string attributeName, [In][Out] ref short pPrimitiveId, [In][Out] ref short pAttributeId, out bool isDynamic);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void ResolveAttributeReference2([In][MarshalAs(UnmanagedType.BStr)] string AutomationObjectName, [In][MarshalAs(UnmanagedType.BStr)] string primitiveName, [In][MarshalAs(UnmanagedType.BStr)] string attributeName, [In][Out] ref short pPrimitiveId, [In][Out] ref short pAttributeId, out bool isDynamic, out bool HasQuality, out bool HasTimestamp);
}
@@ -0,0 +1,84 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[Guid("FA5DE931-208A-11D4-82B8-00104B5F96A7")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[ComConversionLoss]
public interface IAutomationObject
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Initialize([In][MarshalAs(UnmanagedType.LPWStr)] string Name, [In] int ObjectID, [In][MarshalAs(UnmanagedType.IUnknown)] object pAccessManager, [In][MarshalAs(UnmanagedType.IUnknown)] object pScheduler, [In][MarshalAs(UnmanagedType.Interface)] ICheckpointer pCheckpointer, [In][MarshalAs(UnmanagedType.Interface)] IAutomationObjectCheckpoint pAutomationObjectCheckpoint, [In][MarshalAs(UnmanagedType.Interface)] IDeployCompleteNotification pDeployCompleteNotification, [In][MarshalAs(UnmanagedType.Interface)] ISecurityChecker pSecurityChecker, [In][MarshalAs(UnmanagedType.Interface)] IUserAuthenticator pUserAuthenticator, [In][MarshalAs(UnmanagedType.Interface)] IEventPublisher pEventPublisher, [In][MarshalAs(UnmanagedType.IUnknown)] object objectSyncMgr);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Startup([In] ESTARTUPCONTEXT startupContext);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Shutdown();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Execute();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void GetAccessRights([In] ref VBGUID userId, [In] ref VBGUID userIdVerifier, [In] bool verifiedByUser, [In] ref MxAttributeHandle AttributeHandle, [ComAliasName("Interop.Lmx.MxAccessRights")] out MxAccessRights accessRights);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void GetAttribute([In][ComAliasName("Interop.Lmx.MxOperationContext")] MxOperationContext Context, [In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pMxValue, out short pQuality, out MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void SystemSetAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In][MarshalAs(UnmanagedType.Interface)] MxValue pDataOut, out MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void UserSetAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] ref VBGUID userId, [In] ref VBGUID verifier, [In] bool verifiedByUser, [In][MarshalAs(UnmanagedType.LPWStr)] string engineName, out MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void SupervisorySetAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] int callbackAttributeId, out MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Subscribe([In] ref MxAttributeHandle pMxAttributeHandle, [In] int index, out bool isDynamic);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Unsubscribe([In] ref MxAttributeHandle pMxAttributeHandle);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void GetSubscriptionChanges([In][MarshalAs(UnmanagedType.Interface)] IAccessManagerProvider pAccessManagerProvider);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void GetCheckpointChanges();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void OnHostScanStateChange([In] bool bEngineOnScan);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void GetStatusDescription([In] ref MxAttributeHandle pMxAttributeHandle, [In] ref MxStatus pStatus, [MarshalAs(UnmanagedType.BStr)] out string pDescription);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
IntPtr GetAttributeCollection([In] ref _RequestAttributeInfo pRequestAttributeInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void NoReferencesOutstanding([In] ref MxAttributeHandle pMxAttributeHandle);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void GetAttributeData([In] ref MxAttributeHandle AttributeHandle, [Out] IntPtr attributeData);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void GetState(out ObjectStateEnum state);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void UpdateAndCheckpointAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] ref MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void GetVersionIndependentCodebase([MarshalAs(UnmanagedType.BStr)] out string codeBase);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void GetRequiredHostFeature(out Guid hostFeature);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void GetObjectCategory(out int category);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void HasChangesToCheckpoint(out bool __MIDL__IAutomationObject0000);
}
@@ -0,0 +1,110 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("CF9A3A29-CA03-406D-971C-44D799F6E72B")]
public interface IAutomationObject2 : IAutomationObject
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void Initialize([In][MarshalAs(UnmanagedType.LPWStr)] string Name, [In] int ObjectID, [In][MarshalAs(UnmanagedType.IUnknown)] object pAccessManager, [In][MarshalAs(UnmanagedType.IUnknown)] object pScheduler, [In][MarshalAs(UnmanagedType.Interface)] ICheckpointer pCheckpointer, [In][MarshalAs(UnmanagedType.Interface)] IAutomationObjectCheckpoint pAutomationObjectCheckpoint, [In][MarshalAs(UnmanagedType.Interface)] IDeployCompleteNotification pDeployCompleteNotification, [In][MarshalAs(UnmanagedType.Interface)] ISecurityChecker pSecurityChecker, [In][MarshalAs(UnmanagedType.Interface)] IUserAuthenticator pUserAuthenticator, [In][MarshalAs(UnmanagedType.Interface)] IEventPublisher pEventPublisher, [In][MarshalAs(UnmanagedType.IUnknown)] object objectSyncMgr);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void Startup([In] ESTARTUPCONTEXT startupContext);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void Shutdown();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void Execute();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetAccessRights([In] ref VBGUID userId, [In] ref VBGUID userIdVerifier, [In] bool verifiedByUser, [In] ref MxAttributeHandle AttributeHandle, [ComAliasName("Interop.Lmx.MxAccessRights")] out MxAccessRights accessRights);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetAttribute([In][ComAliasName("Interop.Lmx.MxOperationContext")] MxOperationContext Context, [In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pMxValue, out short pQuality, out MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void SystemSetAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In][MarshalAs(UnmanagedType.Interface)] MxValue pDataOut, out MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void UserSetAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] ref VBGUID userId, [In] ref VBGUID verifier, [In] bool verifiedByUser, [In][MarshalAs(UnmanagedType.LPWStr)] string engineName, out MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void SupervisorySetAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] int callbackAttributeId, out MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void Subscribe([In] ref MxAttributeHandle pMxAttributeHandle, [In] int index, out bool isDynamic);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void Unsubscribe([In] ref MxAttributeHandle pMxAttributeHandle);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetSubscriptionChanges([In][MarshalAs(UnmanagedType.Interface)] IAccessManagerProvider pAccessManagerProvider);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetCheckpointChanges();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void OnHostScanStateChange([In] bool bEngineOnScan);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetStatusDescription([In] ref MxAttributeHandle pMxAttributeHandle, [In] ref MxStatus pStatus, [MarshalAs(UnmanagedType.BStr)] out string pDescription);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new IntPtr GetAttributeCollection([In] ref _RequestAttributeInfo pRequestAttributeInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void NoReferencesOutstanding([In] ref MxAttributeHandle pMxAttributeHandle);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetAttributeData([In] ref MxAttributeHandle AttributeHandle, [Out] IntPtr attributeData);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetState(out ObjectStateEnum state);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void UpdateAndCheckpointAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] ref MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetVersionIndependentCodebase([MarshalAs(UnmanagedType.BStr)] out string codeBase);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetRequiredHostFeature(out Guid hostFeature);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetObjectCategory(out int category);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void HasChangesToCheckpoint(out bool __MIDL__IAutomationObject0000);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void SystemSetAttributeEx([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In][MarshalAs(UnmanagedType.Interface)] MxValue pDataOut, out MxStatus pStatus, int CallbackID);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void UserSetAttributeEx([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] ref VBGUID userId, [In] ref VBGUID verifier, [In] bool verifiedByUser, [In][MarshalAs(UnmanagedType.LPWStr)] string engineName, out MxStatus pStatus, int CallbackID);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void GetAttributeEx([In][ComAliasName("Interop.Lmx.MxOperationContext")] MxOperationContext Context, [In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pMxValue, out short pQuality, out MxStatus pStatus, out uint GetAttributeStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void SetState([In] ObjectStateEnum state);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void ShutdownCachedObject();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void PrepareCachedObjectForStartup();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void UpdateAttributesFromRuntimeCheckpoint([In] int primitive, [In] uint bufSize, [In] ref byte buffer);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void GetPrimitiveCheckpointChanges([In] int primitive, [In][MarshalAs(UnmanagedType.Interface)] IStream stream);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void GetObjectId(out int ObjectID);
}
@@ -0,0 +1,113 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Interop.Lmx;
[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("BA83493C-3C8C-4C47-88D7-028FA880C42F")]
public interface IAutomationObject3 : IAutomationObject2
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void Initialize([In][MarshalAs(UnmanagedType.LPWStr)] string Name, [In] int ObjectID, [In][MarshalAs(UnmanagedType.IUnknown)] object pAccessManager, [In][MarshalAs(UnmanagedType.IUnknown)] object pScheduler, [In][MarshalAs(UnmanagedType.Interface)] ICheckpointer pCheckpointer, [In][MarshalAs(UnmanagedType.Interface)] IAutomationObjectCheckpoint pAutomationObjectCheckpoint, [In][MarshalAs(UnmanagedType.Interface)] IDeployCompleteNotification pDeployCompleteNotification, [In][MarshalAs(UnmanagedType.Interface)] ISecurityChecker pSecurityChecker, [In][MarshalAs(UnmanagedType.Interface)] IUserAuthenticator pUserAuthenticator, [In][MarshalAs(UnmanagedType.Interface)] IEventPublisher pEventPublisher, [In][MarshalAs(UnmanagedType.IUnknown)] object objectSyncMgr);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void Startup([In] ESTARTUPCONTEXT startupContext);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void Shutdown();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void Execute();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetAccessRights([In] ref VBGUID userId, [In] ref VBGUID userIdVerifier, [In] bool verifiedByUser, [In] ref MxAttributeHandle AttributeHandle, [ComAliasName("Interop.Lmx.MxAccessRights")] out MxAccessRights accessRights);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetAttribute([In][ComAliasName("Interop.Lmx.MxOperationContext")] MxOperationContext Context, [In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pMxValue, out short pQuality, out MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void SystemSetAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In][MarshalAs(UnmanagedType.Interface)] MxValue pDataOut, out MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void UserSetAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] ref VBGUID userId, [In] ref VBGUID verifier, [In] bool verifiedByUser, [In][MarshalAs(UnmanagedType.LPWStr)] string engineName, out MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void SupervisorySetAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] int callbackAttributeId, out MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void Subscribe([In] ref MxAttributeHandle pMxAttributeHandle, [In] int index, out bool isDynamic);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void Unsubscribe([In] ref MxAttributeHandle pMxAttributeHandle);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetSubscriptionChanges([In][MarshalAs(UnmanagedType.Interface)] IAccessManagerProvider pAccessManagerProvider);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetCheckpointChanges();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void OnHostScanStateChange([In] bool bEngineOnScan);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetStatusDescription([In] ref MxAttributeHandle pMxAttributeHandle, [In] ref MxStatus pStatus, [MarshalAs(UnmanagedType.BStr)] out string pDescription);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new IntPtr GetAttributeCollection([In] ref _RequestAttributeInfo pRequestAttributeInfo);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void NoReferencesOutstanding([In] ref MxAttributeHandle pMxAttributeHandle);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetAttributeData([In] ref MxAttributeHandle AttributeHandle, [Out] IntPtr attributeData);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetState(out ObjectStateEnum state);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void UpdateAndCheckpointAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] ref MxStatus pStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetVersionIndependentCodebase([MarshalAs(UnmanagedType.BStr)] out string codeBase);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetRequiredHostFeature(out Guid hostFeature);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetObjectCategory(out int category);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void HasChangesToCheckpoint(out bool __MIDL__IAutomationObject0000);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void SystemSetAttributeEx([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In][MarshalAs(UnmanagedType.Interface)] MxValue pDataOut, out MxStatus pStatus, int CallbackID);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void UserSetAttributeEx([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] ref VBGUID userId, [In] ref VBGUID verifier, [In] bool verifiedByUser, [In][MarshalAs(UnmanagedType.LPWStr)] string engineName, out MxStatus pStatus, int CallbackID);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetAttributeEx([In][ComAliasName("Interop.Lmx.MxOperationContext")] MxOperationContext Context, [In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pMxValue, out short pQuality, out MxStatus pStatus, out uint GetAttributeStatus);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void SetState([In] ObjectStateEnum state);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void ShutdownCachedObject();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void PrepareCachedObjectForStartup();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void UpdateAttributesFromRuntimeCheckpoint([In] int primitive, [In] uint bufSize, [In] ref byte buffer);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetPrimitiveCheckpointChanges([In] int primitive, [In][MarshalAs(UnmanagedType.Interface)] IStream stream);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
new void GetObjectId(out int ObjectID);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Invoke([In] int lMode, [In][MarshalAs(UnmanagedType.Struct)] ref object vPara);
}

Some files were not shown because too many files have changed in this diff Show More