|
@@ -156,7 +156,7 @@ begin
|
|
|
varVariant : Variant(VargDest):=Variant(PVarData(VPointer)^);
|
|
|
varOleStr : CopyAsWideString(VargDest.VOleStr,PVarData(VPointer)^.VoleStr);
|
|
|
varDispatch,
|
|
|
- varUnknown : NoInterfaces;
|
|
|
+ varUnknown : IInterface(VargDest.vUnknown):=IInterface(PInterface(VargSrc.VPointer)^);
|
|
|
else
|
|
|
Exit(VAR_BADVARTYPE);
|
|
|
end;
|
|
@@ -737,9 +737,11 @@ begin
|
|
|
vatNormal:
|
|
|
Move(P^, Data^, psa^.ElementSize);
|
|
|
vatInterface:
|
|
|
- NoInterfaces; // Just assign...
|
|
|
+ IInterface(PInterface(Data)^) := IInterface(PInterface(P)^);
|
|
|
vatWideString:
|
|
|
CopyAsWideString(PWideChar(Data^), PWideChar(P^));
|
|
|
+ vatVariant:
|
|
|
+ VariantCopy(PVarData(Data)^, PVarData(P)^);
|
|
|
end;
|
|
|
except
|
|
|
On E : Exception do
|
|
@@ -762,9 +764,11 @@ begin
|
|
|
vatNormal:
|
|
|
Move(Data^,P^,psa^.ElementSize);
|
|
|
vatInterface:
|
|
|
- NoInterfaces;
|
|
|
+ IInterface(PInterface(P)^):=IInterface(Data);
|
|
|
vatWideString:
|
|
|
CopyAsWideString(PWideChar(P^), PWideChar(Data));
|
|
|
+ vatVariant:
|
|
|
+ VariantCopy(PVarData(P)^, PVarData(Data)^); // !! Untested
|
|
|
end;
|
|
|
except
|
|
|
On E : Exception do
|