createElement method

XmlElement? createElement(
  1. String tagName
)

Implementation

XmlElement? createElement(String tagName) {
  final newElement = calloc<COMObject>();

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

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

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

  return XmlElement.fromPtr(newElement);
}