Bonjour

J'ai un objet com .net installé dans un projet delphi7

Une des fonctions de cette objet retourne un tableau de String

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
   [DispId(0x00000002)]
        string[] GetPluggedReaderInfo();

En installant cet objet dans delphi 7, j'obtient pour cette fonction la declaration suivante

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
IComOjbect = interface(IDispatch)
    ['{4B3AE7D8-FB6A-4558-8A96-BF82B54F329C}']
    procedure ReleaseDevice; safecall;
    function GetPluggedReaderInfo: PSafeArray; safecall;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
IComOjbectDisp = dispinterface
    ['{4B3AE7D8-FB6A-4558-8A96-BF82B54F329C}']
    procedure ReleaseDevice; dispid 1;
    function GetPluggedReaderInfo: {??PSafeArray}OleVariant; dispid 2;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
function TSC_ComObject.GetPluggedReaderInfo: PSafeArray;
begin
  Result := DefaultInterface.GetPluggedReaderInfo;
end;

j'essaye donc de créer une variable mais je ne sais pas comment la déclarer,
j'ai essayer un array en direct, psafeArray tout seul sans resultat

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
procedure TForm1.btGetDeviceClick(Sender: TObject);
var
ret : ??????? ;
List: TStrings;
begin

ret := device.GetPluggedReaderInfo();

et comment après lire les données du tableau

cordialement