getNamedValueOrDefault method
Implementation
JsonValue? getNamedValueOrDefault(String name, JsonValue? defaultValue) {
final retValuePtr = calloc<COMObject>();
final nameHstring = convertToHString(name);
final hr = ptr.ref.vtable
.elementAt(6)
.cast<
Pointer<
NativeFunction<
HRESULT Function(
Pointer,
IntPtr name,
Pointer<COMObject> defaultValue,
Pointer<COMObject>)>>>()
.value
.asFunction<
int Function(Pointer, int name, Pointer<COMObject> defaultValue,
Pointer<COMObject>)>()(
ptr.ref.lpVtbl,
nameHstring,
defaultValue == null
? nullptr
: defaultValue.ptr.cast<Pointer<COMObject>>().value,
retValuePtr);
if (FAILED(hr)) {
free(retValuePtr);
throw WindowsException(hr);
}
WindowsDeleteString(nameHstring);
if (retValuePtr.ref.lpVtbl == nullptr) {
free(retValuePtr);
return null;
}
return JsonValue.fromRawPointer(retValuePtr);
}