getSizeArray method

List<Size> getSizeArray()

Implementation

List<Size> getSizeArray() {
  final valueSize = calloc<Uint32>();
  final value = calloc<Pointer<NativeSize>>();

  try {
    final hr = ptr.ref.vtable
            .elementAt(43)
            .cast<
                Pointer<
                    NativeFunction<
                        HRESULT Function(
                            VTablePointer lpVtbl,
                            Pointer<Uint32> valueSize,
                            Pointer<Pointer<NativeSize>> value)>>>()
            .value
            .asFunction<
                int Function(VTablePointer lpVtbl, Pointer<Uint32> valueSize,
                    Pointer<Pointer<NativeSize>> value)>()(
        ptr.ref.lpVtbl, valueSize, value);

    if (FAILED(hr)) throwWindowsException(hr);

    return value.value.toList(length: valueSize.value);
  } finally {
    free(valueSize);
    free(value);
  }
}