moduleRefs property

List<ModuleRef> moduleRefs

Get an enumerated list of modules in this scope.

Implementation

List<ModuleRef> get moduleRefs {
  if (_modules.isEmpty) {
    using((Arena arena) {
      final phEnum = arena<HCORENUM>();
      final rgModuleRefs = arena<mdModuleRef>();
      final pcModuleRefs = arena<ULONG>();

      var hr = reader.EnumModuleRefs(phEnum, rgModuleRefs, 1, pcModuleRefs);
      while (hr == S_OK) {
        final moduleToken = rgModuleRefs.value;
        _modules.add(ModuleRef.fromToken(this, moduleToken));
        hr = reader.EnumModuleRefs(phEnum, rgModuleRefs, 1, pcModuleRefs);
      }
      reader.CloseEnum(phEnum.value);
    });
  }

  return _modules;
}