Métodos de propiedad interface
Muchas interfaces ADSI están diseñadas para admitir automatización y, por tanto, son interfaces duales en las que admiten el acceso de cliente a través de interfaces IUnknown e IDispatch . Los clientes que no son de Automatización, como los escritos en C/C++, resuelven la invocación de método directamente, mediante el método IUnknown::QueryInterface y llaman directamente al método . Los clientes de Automation, también conocidos como clientes enlazados a nombres, como los escritos en Visual Basic o Visual Basic Scripting Edition (VBScript), deben resolver la invocación de método indirectamente mediante el método dispinterface .
Una interfaz ADSI compatible con Automation define métodos de propiedad para recuperar y modificar propiedades de un objeto que implementa la interfaz. Los métodos de propiedad tienen nombres que tienen get_ y put_ anteended a los nombres de propiedad adecuados, por ejemplo, get_User y put_Name.
Cada método get_ toma un único parámetro como salida. Este parámetro es una dirección asignada por métodos de una variable del tipo de datos de propiedad. En la devolución, esta variable supone el valor actual de la propiedad solicitada. El autor de la llamada debe liberar la memoria asignada de la variable cuando la propiedad ya no es necesaria.
Cada método put_ toma un único parámetro como entrada para el tipo de datos de la propiedad correspondiente. El parámetro contiene un nuevo valor de la propiedad .
En el ejemplo de código siguiente se muestra la invocación de los métodos de propiedad que siguen el procedimiento habitual para llamar a la función miembro de un objeto.
IADs *pADs;
BSTR bstrName;
pADs->get_Name(&bstrName);
En el ejemplo de código siguiente se muestra la invocación de los métodos de propiedad en los clientes de automatización, que pueden ser algo diferentes. Por ejemplo, Visual Basic usa la notación de puntos.
Dim Obj As IADs
Dim objName As String
objName = Obj.Name
Todos los parámetros y tipos de valor devuelto deben ser de los que define el tipo de datos VARIANT. Todos los métodos de una interfaz dual devuelven un valor HRESULT para indicar éxito o error.
Para obtener más información sobre cómo obtener y establecer propiedades en objetos ADSI, vea Caché de propiedades.