Table of Contents

Class StdLibModuleAttribute

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

Marks an interface as the internal representation of one of the standard library's predefined procedural modules (MS-VBAL §6.1.2).

[AttributeUsage(AttributeTargets.Interface)]
public sealed class StdLibModuleAttribute : Attribute
Inheritance
StdLibModuleAttribute
Inherited Members

Remarks

A predefined procedural module is a standard module, so its members are promoted to the project scope and resolve unqualified: IsNumeric(x) without naming Information first.

The marker is what makes the module discoverable - every VBA project has the standard library whether or not anything references it (RD-VBAL §6.1), so nothing declares the set of modules a workspace gets, and the set is read off the SDK itself.

Constructors

StdLibModuleAttribute(string?)

Marks an interface as the internal representation of one of the standard library's predefined procedural modules (MS-VBAL §6.1.2).

public StdLibModuleAttribute(string? name = null)

Parameters

name string

The module's name in VBA source, when it differs from the conventional one.

Remarks

A predefined procedural module is a standard module, so its members are promoted to the project scope and resolve unqualified: IsNumeric(x) without naming Information first.

The marker is what makes the module discoverable - every VBA project has the standard library whether or not anything references it (RD-VBAL §6.1), so nothing declares the set of modules a workspace gets, and the set is read off the SDK itself.

Properties

IsHidden

Whether the module is hidden: its members resolve like any other standard module's, and are left out of a completion list.

public bool IsHidden { get; init; }

Property Value

bool

Remarks

What a library's type library calls hidden - the VBA library's own _HiddenModule is one - carried as the hidden flag of MemberFlags on each of the module's members.

Name

The module's name in VBA source, or null for the conventional one: the declaring interface's name without its IStd prefix and Module suffix, so IStdInformationModule is Information.

public string? Name { get; }

Property Value

string