GetForUser static method

UserDataPaths GetForUser(
  1. Pointer<NativeType> user
)

Implementation

static UserDataPaths GetForUser(Pointer user) {
  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.GetForUser(user.cast());
    if (FAILED(hr)) {
      throw WindowsException(hr);
    }
    return UserDataPaths(userDataDefaults);
  } finally {
    WindowsDeleteString(hClassName);
    free(pIID);
    free(activationFactory);
    free(userDataDefaults);
  }
}