Table of Contents

Interface IRuntimeEnvironmentProfile

Namespace
RDCore.SDK.Runtime.Abstract.Execution
Assembly
RDCore.SDK.dll

An immutable description of the host environment an execution session runs in — the facts VBA semantics depend on that are neither in the source nor derivable from it.

public interface IRuntimeEnvironmentProfile

Remarks

Supplied by the environment host (from appsettings.json, overridable by the host). Design- time and tests use Default.

Properties

AllowAutomation

🎯 Whether a program may create and call the objects of a referenced library - a host application's object model among them (Excel, Word, Scripting). true unless an administrator said otherwise.

bool AllowAutomation { get; }

Property Value

bool

Remarks

Its own switch, apart from AllowDllImports: automating a spreadsheet and calling an arbitrary export are not the same risk, and one switch for both would be of no use to anyone who needs one and not the other.

AllowDllImports

🎯 Whether a Declare'd library import may actually be called. true unless an administrator said otherwise.

bool AllowDllImports { get; }

Property Value

bool

AnsiCodePage

The ANSI code page: what a character is as a single byte or two outside a String's own data — the text of a file, and the non-Unicode behaviour of Chr / Asc.

int AnsiCodePage { get; }

Property Value

int

Remarks

👉 Not Byte() ↔ String, which reinterprets the string's own UTF-16 data (MS-VBAL §5.5.1.2.6) and needs no code page at all.

AnsiEncoding

The Encoding of AnsiCodePage: the one encoding the session's files and the standard library's character codes share, so that the two cannot disagree about what a byte is.

Encoding AnsiEncoding { get; }

Property Value

Encoding

Culture

The CultureInfo for Lcid — drives Option Compare Text, Like, case conversion, and Format$ given a format.

CultureInfo Culture { get; }

Property Value

CultureInfo

Remarks

👉 Not how a value is Let-coerced to or from a String: a number or a date is written and read by Regional, which is the platform's and not the culture's, so that what CStr writes, CDbl and CDate read back.

DatabaseCompare

The comparison mode Option Compare Database stands for in this environment: Text or Binary.

OptionCompare DatabaseCompare { get; }

Property Value

OptionCompare

Remarks

👉 MS-VBAL leaves Option Compare Database unspecified (§5.2.1.1); a module that declares it compares strings as this says.

ErlLineNumbering

🎯 What Erl counts as the line a run-time error was raised at. DocumentLine unless a workspace asks for MS-VBA's own behaviour.

VBErlLineNumbering ErlLineNumbering { get; }

Property Value

VBErlLineNumbering

Is64Bit

true for a 64-bit environment. Determines LongPtr width and the value of the #If Win64 / #If VBA7 pre-compiler directives.

bool Is64Bit { get; }

Property Value

bool

Language

The language the code is written in: what the environment is a dialect of, and so which symbols and statements exist at all.

SupportedLanguage Language { get; }

Property Value

SupportedLanguage

Remarks

👉 RD-VBA unless the workspace says otherwise. It is not derivable from the source, which is why it is a fact of the environment.

Lcid

The environment locale identifier (LCID). 0 means the invariant locale.

int Lcid { get; }

Property Value

int

LegacyRegistrySettings

🎯 Whether the legacy settings members (SaveSetting, GetSetting, GetAllSettings, DeleteSetting) use the Windows Registry, as MS-VBA does. false unless the workspace asks for it: they use the workspace application settings.

bool LegacyRegistrySettings { get; }

Property Value

bool

Remarks

👉 Only Windows has a registry. Elsewhere the workspace application settings are used whatever this says (RD-VBAL §2.1.1).

Regional

🎯 The regional settings of Let-coercion to and from String (MS-VBAL §5.5.1.2.4): a number or a date is written by them, and a String read by them as a number or a date. The decimal, digit grouping and currency symbols, the Short Date and Long Time formats, and the window two-digit years are in; en-US unless the platform's configuration says otherwise.

RegionalSettings Regional { get; }

Property Value

RegionalSettings

Remarks

One source for both directions, as MS-VBA's is the machine's regional settings: a value written as text reads back as the same value.

SupportsOptionCompareDatabase

true when the host supports the Option Compare Database directive (Microsoft Access).

bool SupportsOptionCompareDatabase { get; }

Property Value

bool