Использование Delphi, мне нужно получить доступ к OleVariant, содержащему одну или несколько записей в массиве.Доступ к OleVariant, содержащий VT_ARRAY из VT_RECORD из Delphi
Метод I вызов возвращает VT_ARRAY из VT_RECORD, а сами записи определяются как:
struct StreamTimeInfo {
unsigned int PID;
LONGLONG PTS;
LONGLONG TimeStamp;
};
Мой код выглядит так:
procedure Test;
type
TStreamInfo = record
PID: Cardinal;
PTS: Int64;
TimeStamp: Int64;
end;
var
Value: OleVariant
StreamTime: TStreamInfo;
begin
GetValue(Value); // Value holds a VT_ARRAY of VT_RECORD
// How should I access the array of records in Delphi?
// I've tried this to get to the first element:
StreamTime := TStreamInfo(TVarData(Value).VPointer^);
end;
Я не понимаю, как получить доступ к записи из Delphi.
Любой ввод очень ценится.
Я пробовал как упакованный/не упакованную запись, никакой разницы. Кроме того, код 32-разрядный (Delphi и DLL, я звоню). – TomRay74
Исходный код не использует #pragma pack 1, поэтому я удалил упакованный. – TomRay74