userStrings property

List<String> userStrings

Get an enumerated list of all hard-coded strings in this scope.

Implementation

List<String> get userStrings {
  if (_userStrings.isEmpty) {
    using((Arena arena) {
      final phEnum = arena<HCORENUM>();
      final rgStrings = arena<mdString>();
      final pcStrings = arena<ULONG>();
      final szString = arena<WCHAR>(MAX_STRING_SIZE).cast<Utf16>();
      final pchString = arena<ULONG>();

      var hr = reader.EnumUserStrings(phEnum, rgStrings, 1, pcStrings);
      while (hr == S_OK) {
        final stringToken = rgStrings.value;
        hr = reader.GetUserString(
            stringToken, szString, MAX_STRING_SIZE, pchString);
        if (hr == S_OK) {
          _userStrings.add(szString.toDartString());
        }
        hr = reader.EnumUserStrings(phEnum, rgStrings, 1, pcStrings);
      }
      reader.CloseEnum(phEnum.value);
    });
  }

  return _userStrings;
}