moveNext method

bool moveNext()

Advances the iterator to the next item in the collection.

Implementation

bool moveNext() {
  final retValuePtr = calloc<Bool>();

  try {
    final hr = ptr.ref.lpVtbl.value
        .elementAt(8)
        .cast<
            Pointer<
                NativeFunction<HRESULT Function(Pointer, Pointer<Bool>)>>>()
        .value
        .asFunction<
            int Function(
                Pointer, Pointer<Bool>)>()(ptr.ref.lpVtbl, retValuePtr);

    if (FAILED(hr)) throw WindowsException(hr);

    return retValuePtr.value;
  } finally {
    free(retValuePtr);
  }
}