getElementById method

XmlElement? getElementById(
  1. String elementId
)

Implementation

XmlElement? getElementById(String elementId) {
  final element = calloc<COMObject>();

  final hr = ptr.ref.vtable
          .elementAt(21)
          .cast<
              Pointer<
                  NativeFunction<
                      HRESULT Function(VTablePointer lpVtbl, IntPtr elementId,
                          Pointer<COMObject> element)>>>()
          .value
          .asFunction<
              int Function(VTablePointer lpVtbl, int elementId,
                  Pointer<COMObject> element)>()(
      ptr.ref.lpVtbl, elementId.toHString(), element);

  if (FAILED(hr)) {
    free(element);
    throwWindowsException(hr);
  }

  if (element.isNull) {
    free(element);
    return null;
  }

  return XmlElement.fromPtr(element);
}