バッファ(pByte)とサイズからコピーせずにVarArray OleVariantを作成できますか?
function GetVarArrayFromBuffer(ABuffer : pByte; ASizeInBytes: Cardinal) : OleVariant;
var
LVarArrayPtr: Pointer;
begin
Result := VarArrayCreate([0, ASizeInBytes - 1], varByte);
LVarArrayPtr := VarArrayLock(Result);
try
Move(ABuffer^, LVarArrayPtr^, ASizeInBytes);
finally
VarArrayUnLock(Result);
end;
end;
に従いますが、直接メモリをコピーせずにvarArray
タイプOleVariant
に私のポインタとサイズを渡す方法があるように私は安全な配列に、バッファからメモリをコピーすることができますか?
TVarArray
、設定の値を取り込むことにより、これを行う方法があるはずのようにそれはそうので、私は、OleVariant
内部の配列は、(PVarArray = ^TVarArray
として定義)SAFEARRAY
であることがわかります
[編集] OleVariant
のVType
とVArray
の値です。
ありがとうございました。 –