getFrameAsync method
Implementation
Future<BitmapFrame?> getFrameAsync(int frameIndex) {
final asyncInfo = calloc<COMObject>();
final hr =
ptr.ref.vtable
.elementAt(10)
.cast<
Pointer<
NativeFunction<
HRESULT Function(
VTablePointer lpVtbl,
Uint32 frameIndex,
Pointer<COMObject> asyncInfo)>>>()
.value
.asFunction<
int Function(VTablePointer lpVtbl, int frameIndex,
Pointer<COMObject> asyncInfo)>()(
ptr.ref.lpVtbl, frameIndex, asyncInfo);
if (FAILED(hr)) {
free(asyncInfo);
throwWindowsException(hr);
}
final asyncOperation = IAsyncOperation<BitmapFrame?>.fromPtr(asyncInfo,
creator: BitmapFrame.fromPtr);
return asyncOperation.toFuture(asyncOperation.getResults);
}