Einzelnen Beitrag anzeigen

Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.145 Beiträge
 
Delphi 10.3 Rio
 
#1

Fehler bei SafeArry Destroy - Wer kann helfen...

  Alt 12. Apr 2006, 17:20
Hallo Zusammen...

Folgene Routinen liefert leider immer einen Fehler
"EVariantBadVarTypeError"

Wer hat eine Idee?

Delphi-Quellcode:
procedure TMainform.SpeedButton14Click(Sender: TObject);
var
  ValOut : OLEVariant;
  Val : PSafeArray;
  sBuffer: WideString;
  T : TVarType;
  i,
  iMin,
  iMax: integer;
begin
  Combobox1.Items.Clear;
  TVariantArg(ValOUT).VT := VT_BYREF or VT_ARRAY;
  TVariantArg(ValOUT).ppArray := nil;
  TargetCommando(2233,EmptyParam,ValOut); // IDM_GETBLOCKFMTS
  Val := PSafeArray(TVariantArg(ValOUT).ppArray);

   // Die Anzahl der Elemente im Array bestimmen
  ActiveX.SafeArrayGetLBound(Val, 1, iMin);
  ActiveX.SafeArrayGetUBound(Val, 1, iMax);

  // Die einzelnen Strings auslesen
  for i := iMin to iMax do
    begin
      ActiveX.SafeArrayGetElement(Val, i, sBuffer);
      Combobox1.Items.Add(SBuffer);
    end;
   // Vorsicht, Leak...
a-> ActiveX.SafeArrayDestroyData(Val); // EVariantBadVarTypeError
b-> ActiveX.SafeArrayDestroy(Val); // EVariantBadVarTypeError
end;
Sowohl Lösung a als auch b...

Danke im voraus

Frank

PS.: Die Anleitung zu diesem Kommando gibt es hier (msdn)
  Mit Zitat antworten Zitat