fe2a6db786
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>
651 lines
33 KiB
C#
651 lines
33 KiB
C#
using System;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace Interop.Lmx;
|
|
|
|
[ComImport]
|
|
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
[Guid("F2163BB1-3AE9-4B81-8C32-6ED9AA609F7E")]
|
|
[ComConversionLoss]
|
|
public interface IPrimitiveRuntimeSite5 : IPrimitiveRuntimeSite3
|
|
{
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void GetAttributeValues(out int count, [Out] IntPtr values);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void GetAttributeValuesById([In] short primitiveId, out int count, [Out] IntPtr values);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void NotifySubscriptionChange([In] ref PrimitiveAttributeTableEntry tableEntry, [In] short primitiveId, [In] short attributeId, [In] short propertyId);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void NotifyCheckpointChange([In] ref PrimitiveAttributeTableEntry tableEntry, [In] short primitiveId, [In] short attributeId, [In] short propertyId);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void GetPrimitiveAttributeSite([In] short primitiveId, [MarshalAs(UnmanagedType.Interface)] out IPrimitiveRuntimeSite2 ppSite);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void CheckpointAttribute([In] short attributeId, [In] bool checkpoint);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void GetType([In] short attributeId, out MxDataType value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void GetLockStatus([In] short attributeId, out MxPropertyLockedEnum pLockStatus);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new int GetNumElements([In] short attributeId);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void SetNumElements([In] short attributeId, [In] int numelements);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new bool GetBoolean([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutBoolean([In] short id, [In] bool value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new bool GetBooleanVQ([In] short id, out short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutBooleanVQ([In] short id, [In] short quality, [In] bool value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new bool GetBooleanArrayItem([In] short id, [In] int index);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutBooleanArrayItem([In] short id, [In] int index, [In] bool value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutBooleanArrayQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutBooleanQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetBooleanQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetBooleanArrayQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new int GetInteger([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutInteger([In] short id, [In] int value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new int GetIntegerVQ([In] short id, out short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutIntegerVQ([In] short id, [In] short quality, [In] int value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new int GetIntegerArrayItem([In] short id, [In] int index);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutIntegerArrayItem([In] short id, [In] int index, [In] int value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutIntegerArrayQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutIntegerQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetIntegerQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetIntegerArrayQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new float GetFloat([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutFloat([In] short id, [In] float value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new float GetFloatVQ([In] short id, out short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutFloatVQ([In] short id, [In] short quality, [In] float value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new float GetFloatArrayItem([In] short id, [In] int index);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutFloatArrayItem([In] short id, [In] int index, [In] float value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutFloatArrayQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutFloatQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetFloatQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetFloatArrayQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new double GetDouble([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutDouble([In] short id, [In] double value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new double GetDoubleVQ([In] short id, out short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutDoubleVQ([In] short id, [In] short quality, [In] double value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new double GetDoubleArrayItem([In] short id, [In] int index);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutDoubleArrayItem([In] short id, [In] int index, [In] double value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutDoubleArrayQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutDoubleQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetDoubleQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetDoubleArrayQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new VB_LARGE_INTEGER GetElapsedTime([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutElapsedTime([In] short id, [In] ref VB_LARGE_INTEGER value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new VB_LARGE_INTEGER GetElapsedTimeVQ([In] short id, out short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutElapsedTimeVQ([In] short id, [In] short quality, [In] ref VB_LARGE_INTEGER value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new VB_LARGE_INTEGER GetElapsedTimeArrayItem([In] short id, [In] int index);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutElapsedTimeArrayItem([In] short id, [In] int index, [In] ref VB_LARGE_INTEGER value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutElapsedTimeArrayQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutElapsedTimeQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetElapsedTimeQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetElapsedTimeArrayQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
[return: MarshalAs(UnmanagedType.BStr)]
|
|
new string GetString([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutString([In] short id, [In][MarshalAs(UnmanagedType.LPWStr)] string value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
[return: MarshalAs(UnmanagedType.BStr)]
|
|
new string GetStringVQ([In] short id, out short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutStringVQ([In] short id, [In] short quality, [In][MarshalAs(UnmanagedType.LPWStr)] string value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
[return: MarshalAs(UnmanagedType.BStr)]
|
|
new string GetStringArrayItem([In] short id, [In] int index);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutStringArrayItem([In] short id, [In] int index, [In][MarshalAs(UnmanagedType.LPWStr)] string value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutStringArrayQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutStringQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetStringQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetStringArrayQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void GetTime([In] short id, out VBFILETIME value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutTime([In] short id, [In] ref VBFILETIME value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void GetTimeVQ([In] short id, out short quality, out VBFILETIME value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutTimeVQ([In] short id, [In] short quality, [In] ref VBFILETIME value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void GetTimeArrayItem([In] short id, [In] int index, out VBFILETIME value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutTimeArrayItem([In] short id, [In] int index, [In] ref VBFILETIME value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutTimeArrayQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutTimeQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetTimeQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetTimeArrayQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetCustomEnum([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutCustomEnum([In] short id, [In] short value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetCustomEnumVQ([In] short id, out short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutCustomEnumVQ([In] short id, [In] short quality, [In] short value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetCustomEnumArrayItem([In] short id, [In] int index);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutCustomEnumArrayItem([In] short id, [In] int index, [In] short value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutCustomEnumArrayQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutCustomEnumQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetCustomEnumQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetCustomEnumArrayQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
[return: MarshalAs(UnmanagedType.Interface)]
|
|
new MxReference GetReference([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutReference([In] short id, [In][MarshalAs(UnmanagedType.Interface)] MxReference value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
[return: MarshalAs(UnmanagedType.Interface)]
|
|
new MxReference GetReferenceVQ([In] short id, out short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutReferenceVQ([In] short id, [In] short quality, [In][MarshalAs(UnmanagedType.Interface)] MxReference value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
[return: MarshalAs(UnmanagedType.Interface)]
|
|
new MxReference GetReferenceArrayItem([In] short id, [In] int index);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutReferenceArrayItem([In] short id, [In] int index, [In][MarshalAs(UnmanagedType.Interface)] MxReference value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutReferenceArrayQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutReferenceQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetReferenceQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetReferenceArrayQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new MxStatus GetMxStatus([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutMxStatus([In] short id, [In] MxStatus value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new MxStatus GetMxStatusVQ([In] short id, out short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutMxStatusVQ([In] short id, [In] short quality, [In] MxStatus value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new MxStatus GetMxStatusArrayItem([In] short id, [In] int index);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutMxStatusArrayItem([In] short id, [In] int index, [In] MxStatus value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutMxStatusArrayQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutMxStatusQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetMxStatusQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetMxStatusArrayQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new MxDataType GetMxDataType([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutMxDataType([In] short id, [In] MxDataType value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new MxDataType GetMxDataTypeVQ([In] short id, out short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutMxDataTypeVQ([In] short id, [In] short quality, [In] MxDataType value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new MxDataType GetMxDataTypeArrayItem([In] short id, [In] int index);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutMxDataTypeArrayItem([In] short id, [In] int index, [In] MxDataType value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutMxDataTypeArrayQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutMxDataTypeQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetMxDataTypeQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetMxDataTypeArrayQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void GetCustomStruct([In] short id, out int guid, out int length, [Out] IntPtr value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutCustomStruct([In] short id, [In] int guid, [In] int length, [In] ref byte value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void GetCustomStructVQ([In] short id, out short quality, out int guid, out int length, [Out] IntPtr value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutCustomStructVQ([In] short id, [In] short quality, [In] int guid, [In] int length, [In] ref byte value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void GetCustomStructArrayItem([In] short id, [In] int index, out int guid, out int length, [Out] IntPtr value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutCustomStructArrayItem([In] short id, [In] int index, [In] int guid, [In] int length, [In] ref byte value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutCustomStructArrayQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutCustomStructQ([In] short id, [In] short quality);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetCustomStructQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetCustomStructArrayQ([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void NotifyBROProxyOfAttributeChangeEx([In] ref PrimitiveAttributeTableEntry tableEntry, [In] short primitiveId, [In] short attributeId, [In] short propertyId, [In][MarshalAs(UnmanagedType.Interface)] MxValue pMxValue, out int writeToAttribute);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new bool GetBooleanVTQ([In] short id, out short quality, out _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutBooleanVTQ([In] short id, [In] short quality, [In] _FILETIME timeStamp, [In] bool value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetBooleanT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutBooleanT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetBooleanArrayT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutBooleanArrayT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new int GetIntegerVTQ([In] short id, out short quality, out _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutIntegerVTQ([In] short id, [In] short quality, [In] _FILETIME timeStamp, [In] int value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetIntegerT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutIntegerT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetIntegerArrayT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutIntegerArrayT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new float GetFloatVTQ([In] short id, out short quality, out _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutFloatVTQ([In] short id, [In] short quality, [In] _FILETIME timeStamp, [In] float value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetFloatT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutFloatT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetFloatArrayT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutFloatArrayT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new double GetDoubleVTQ([In] short id, out short quality, out _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutDoubleVTQ([In] short id, [In] short quality, [In] _FILETIME timeStamp, [In] double value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetDoubleT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutDoubleT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetDoubleArrayT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutDoubleArrayT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new VB_LARGE_INTEGER GetElapsedTimeVTQ([In] short id, out short quality, out _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutElapsedTimeVTQ([In] short id, [In] short quality, [In] _FILETIME timeStamp, [In] ref VB_LARGE_INTEGER value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetElapsedTimeT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutElapsedTimeT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetElapsedTimeArrayT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutElapsedTimeArrayT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
[return: MarshalAs(UnmanagedType.BStr)]
|
|
new string GetStringVTQ([In] short id, out short quality, out _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutStringVTQ([In] short id, [In] short quality, [In] _FILETIME timeStamp, [In][MarshalAs(UnmanagedType.LPWStr)] string value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetStringT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutStringT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetStringArrayT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutStringArrayT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void GetTimeVTQ([In] short id, out short quality, out _FILETIME timeStamp, out VBFILETIME value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutTimeVTQ([In] short id, [In] short quality, [In] _FILETIME timeStamp, [In] ref VBFILETIME value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetTimeT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutTimeT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetTimeArrayT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutTimeArrayT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new short GetCustomEnumVTQ([In] short id, out short quality, out _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutCustomEnumVTQ([In] short id, [In] short quality, [In] _FILETIME timeStamp, [In] short value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetCustomEnumT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutCustomEnumT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetCustomEnumArrayT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutCustomEnumArrayT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
[return: MarshalAs(UnmanagedType.Interface)]
|
|
new MxReference GetReferenceVTQ([In] short id, out short quality, out _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutReferenceVTQ([In] short id, [In] short quality, [In] _FILETIME timeStamp, [In][MarshalAs(UnmanagedType.Interface)] MxReference value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetReferenceT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutReferenceT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetReferenceArrayT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutReferenceArrayT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new MxStatus GetMxStatusVTQ([In] short id, out short quality, out _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutMxStatusVTQ([In] short id, [In] short quality, [In] _FILETIME timeStamp, [In] MxStatus value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetMxStatusT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutMxStatusT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetMxStatusArrayT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutMxStatusArrayT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new MxDataType GetMxDataTypeVTQ([In] short id, out short quality, out _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutMxDataTypeVTQ([In] short id, [In] short quality, [In] _FILETIME timeStamp, [In] MxDataType value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetMxDataTypeT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutMxDataTypeT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetMxDataTypeArrayT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutMxDataTypeArrayT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void GetCustomStructVTQ([In] short id, out short quality, out _FILETIME timeStamp, out int guid, out int length, [Out] IntPtr value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutCustomStructVTQ([In] short id, [In] short quality, [In] _FILETIME timeStamp, [In] int guid, [In] int length, [In] ref byte value);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetCustomStructT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutCustomStructT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new _FILETIME GetCustomStructArrayT([In] short id);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void PutCustomStructArrayT([In] short id, [In] _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void GetAttributeSupportedProperties([In] short attrId, out int SupportedProperties);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
new void GetDefaultTimestamp(out _FILETIME timeStamp);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetHasBuffer([In] short attributeId, out bool hasBuffer);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetBuffer([In] short attributeId, out int length, [Out] IntPtr buffer);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void PutBuffer([In] short attributeId, [In] int length, [In] ref byte buffer);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetAttributeBuffers([In] short primitiveId, [Out] IntPtr buffers);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetAttributeBufferById([In] short primitiveId, [In] short attributeId, [Out] IntPtr buffer);
|
|
}
|