SafeArrayCopy function oleaut32
Creates a copy of an existing safe array.
Throws a WindowsException on failure.
To learn more, see learn.microsoft.com/windows/win32/api/oleauto/nf-oleauto-safearraycopy.
Implementation
Pointer<SAFEARRAY> SafeArrayCopy(Pointer<SAFEARRAY> psa) {
final ppsaOut = adaptiveCalloc<Pointer<SAFEARRAY>>();
final hr$ = HRESULT(_SafeArrayCopy(psa, ppsaOut));
if (hr$.isError) {
free(ppsaOut);
throw WindowsException(hr$);
}
final result$ = ppsaOut.value;
free(ppsaOut);
return result$;
}