Metodi di proprietà Interface
Molte interfacce ADSI sono progettate per supportare Automazione e quindi sono due interfacce in cui supportano l'accesso client tramite interfacce IUnknown e IDispatch . I client non di automazione, ad esempio quelli scritti in C/C++, risolvono direttamente la chiamata al metodo, usando il metodo IUnknown::QueryInterface e chiamano direttamente il metodo. I client di automazione, noti anche come client associati al nome, ad esempio quelli scritti in Visual Basic o Visual Basic Scripting Edition (VBScript), devono risolvere indirettamente la chiamata al metodo usando il metodo dispinterface .
Un'interfaccia ADSI che supporta Automazione definisce i metodi di proprietà per il recupero e la modifica delle proprietà di un oggetto che implementa l'interfaccia. I metodi di proprietà hanno nomi che hanno get_ e put_ prepended ai nomi di proprietà appropriati, ad esempio get_User e put_Name.
Ogni get_ metodo accetta un singolo parametro come output. Questo parametro è un indirizzo allocato dal metodo di una variabile del tipo di dati della proprietà. In caso di restituzione, questa variabile presuppone il valore corrente della proprietà richiesta. Il chiamante deve rilasciare la memoria allocata della variabile quando la proprietà non è più necessaria.
Ogni metodo put_ accetta un singolo parametro come input per il tipo di dati della proprietà corrispondente. Il parametro contiene un nuovo valore della proprietà.
Nell'esempio di codice seguente viene illustrata la chiamata dei metodi di proprietà che seguono la routine consueta per chiamare la funzione membro di un oggetto.
IADs *pADs;
BSTR bstrName;
pADs->get_Name(&bstrName);
Nell'esempio di codice seguente viene illustrata la chiamata dei metodi di proprietà nei client di automazione, che possono essere leggermente diversi. Ad esempio, Visual Basic usa la notazione dei punti.
Dim Obj As IADs
Dim objName As String
objName = Obj.Name
Tutti i parametri e i tipi restituiti devono essere di quelli definiti dal tipo di dati VARIANT. Tutti i metodi in un'interfaccia doppia restituiscono un valore HRESULT per indicare l'esito positivo o negativo.
Per altre informazioni su come ottenere e impostare le proprietà sugli oggetti ADSI, vedere Cache delle proprietà.