Initial project state: .NET reference, design, Rust port (M0+M1), evidence
rust / build / test / clippy / fmt (push) Has been cancelled
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:
@@ -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
@@ -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/
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
}
|
||||
+10
@@ -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
|
||||
{
|
||||
}
|
||||
+34
@@ -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);
|
||||
}
|
||||
+7
@@ -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
Reference in New Issue
Block a user