Méthodes de propriété d’interface

De nombreuses interfaces ADSI sont conçues pour prendre en charge l’automatisation et sont donc des interfaces doubles, car elles prennent en charge l’accès au client via les interfaces IUnknown et IDispatch . Les clients non Automation, tels que ceux écrits en C/C++, résolvent directement l’appel de méthode à l’aide de la méthode IUnknown::QueryInterface et appellent la méthode directement. Les clients Automation, également appelés clients liés au nom, tels que ceux écrits en Visual Basic ou Visual Basic Scripting Edition (VBScript), doivent résoudre indirectement l’appel de méthode à l’aide de la méthode dispinterface .

Une interface ADSI prenant en charge Automation définit des méthodes de propriété pour récupérer et modifier les propriétés d’un objet implémentant l’interface. Les méthodes de propriété ont des noms qui ont des noms get_ et put_ ajoutés aux noms de propriétés appropriés, par exemple , get_User et put_Name.

Chaque méthode get_ prend un seul paramètre comme sortie. Ce paramètre est une adresse allouée par méthode d’une variable du type de données de propriété. En retour, cette variable suppose la valeur actuelle de la propriété demandée. L’appelant doit libérer la mémoire allouée de la variable lorsque la propriété n’est plus nécessaire.

Chaque méthode put_ prend un paramètre unique comme entrée pour le type de données de la propriété correspondante. Le paramètre contient une nouvelle valeur de la propriété .

L’exemple de code suivant montre l’appel des méthodes de propriété qui suivent la procédure habituelle pour appeler la fonction membre d’un objet.

IADs *pADs;
BSTR bstrName;
pADs->get_Name(&bstrName);

L’exemple de code suivant montre l’appel des méthodes de propriété dans les clients Automation, qui peuvent être quelque peu différents. Par exemple, Visual Basic utilise la notation par points.

Dim Obj As IADs
Dim objName As String
objName = Obj.Name

Tous les paramètres et types de retour doivent être de ceux définis par le type de données VARIANT. Toutes les méthodes d’une interface double retournent une valeur HRESULT pour indiquer la réussite ou l’échec.

Pour plus d’informations sur l’obtention et la définition de propriétés sur des objets ADSI, consultez Cache de propriétés.