GetDefault static method

UserDataPaths GetDefault()

Implementation

static UserDataPaths GetDefault() {
  final hClassName = convertToHString(_className);

  final pIID = calloc<GUID>()..ref.setGUID(IID_IUserDataPathsStatics);
  final activationFactory = calloc<COMObject>();
  final userDataDefaults = calloc<COMObject>();

  try {
    final hr =
        RoGetActivationFactory(hClassName, pIID, activationFactory.cast());
    if (FAILED(hr)) {
      throw WindowsException(hr);
    }
    final userDataStatics = IUserDataPathsStatics(activationFactory);
    final userDataDefaults = userDataStatics.GetDefault();
    if (FAILED(hr)) {
      throw WindowsException(hr);
    }
    return UserDataPaths(userDataDefaults);
  } finally {
    WindowsDeleteString(hClassName);
    free(pIID);
    free(activationFactory);
    free(userDataDefaults);
  }
}