Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
Delphi 10.1 Berlin Professional
|
Re: [COM] out PSafeArray
20. Okt 2009, 08:12
Hi,
Hier ein Beispiel, wie du ein SafeArray in ein Array of Byte wandelst... alle Anderen Arraytypen sollten analog funktionieren:
Delphi-Quellcode:
function SafeArrayToBytes(const si: PSafeArray): TBytes;
var
nLow, nHigh, nSize: integer;
pData: Pointer;
begin
//Copy from Variant Array to Delphi array
SafeArrayGetLBound(si, 1, nLow);
SafeArrayGetUBound(si, 1, nHigh);
nSize := SafeArrayGetElemsize(si);
SetLength(Result, nSize * (nHigh - nLow + 1));
SafeArrayAccessData(si, pData);
CopyMemory(@Result[1], pData, Length(Result));
SafeArrayUnaccessData(si);
end;
Gruß
Marco
|
|
Zitat
|