ソースを参照

* (modified) patch by Do-wan Kim to resolve #27354

git-svn-id: trunk@29645 -
florian 10 年 前
コミット
9ebc092ade
1 ファイル変更5 行追加1 行削除
  1. 5 1
      packages/rtl-objpas/src/inc/variants.pp

+ 5 - 1
packages/rtl-objpas/src/inc/variants.pp

@@ -2255,12 +2255,16 @@ begin
       Dest.vType := varString;
       Dest.vString := nil;
       AnsiString(Dest.vString) := AnsiString(vString);
+    end else if vType = varOleStr then begin
+      Dest.vType := varOleStr;
+      Dest.vOleStr := nil;
+      WideString(Pointer(Dest.vOleStr)) := WideString(Pointer(vOleStr));
     end else if vType = varAny then begin
       Dest := Source;
       RefAnyProc(Dest);
     end else if vType and varArray <> 0 then
       DoVarCopyArray(Dest, Source, @DoVarCopy)
-    else if (vType and varByRef <> 0) and (vType xor varByRef = varString) then
+    else if (vType and varByRef <> 0) and ((vType xor varByRef) in [varString,varOleStr]) then
       Dest := Source
     else if FindCustomVariantType(vType, Handler) then
       Handler.Copy(Dest, Source, False)