Thema: Delphi [COM] out PSafeArray

Einzelnen Beitrag anzeigen

Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: [COM] out PSafeArray

  Alt 20. Okt 2009, 07: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
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat