createDocumentFragment method

XmlDocumentFragment? createDocumentFragment()

Implementation

XmlDocumentFragment? createDocumentFragment() {
  final newDocumentFragment = calloc<COMObject>();

  final hr = ptr.ref.vtable
          .elementAt(10)
          .cast<
              Pointer<
                  NativeFunction<
                      HRESULT Function(VTablePointer lpVtbl,
                          Pointer<COMObject> newDocumentFragment)>>>()
          .value
          .asFunction<
              int Function(VTablePointer lpVtbl,
                  Pointer<COMObject> newDocumentFragment)>()(
      ptr.ref.lpVtbl, newDocumentFragment);

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

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

  return XmlDocumentFragment.fromPtr(newDocumentFragment);
}