Interfaz IADsClass (iads.h)
La interfaz IADsClass está diseñada para administrar objetos de clase de esquema que proporcionan definiciones de clase para cualquier objeto ADSI. Otras interfaces de administración de esquemas incluyen IADsProperty para definiciones de atributos e IADsSyntax para la sintaxis de atributos.
La interfaz IADsClass hereda de IDispatch e IAD. IADsClass también tiene estos tipos de miembros:
La interfaz IADsClass tiene estos métodos.
IADsClass::Qualifiers Devuelve una colección de objetos ADSI que describen calificadores adicionales para esta clase de esquema. |
Los objetos de esquema se organizan en el contenedor de esquema de un directorio determinado. Para tener acceso a la clase de esquema de un objeto, utilice la propiedad Schema del objeto (es decir, llame al método de propiedad IADs::get_Schema ) para obtener la cadena de ADsPath y use esa cadena para enlazar a su objeto de clase de esquema.
En el ejemplo de código siguiente se muestra cómo implementar la interfaz IADsClass .
Dim obj As IADs
Dim cls As IADsClass
On Error GoTo Cleanup
Set obj = GetObject("WinNT://myMachine,computer")
Set cls = GetObject(obj.Schema)
' Inspecting mandatory and optional properties.
For Each p In cls.MandatoryProperties
MsgBox "Must-have: " & p
Next
For Each p In cls.OptionalProperties
MsgBox "May-have: " & p
Next
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set obj = Nothing
Set cls = Nothing
En el ejemplo de código siguiente se muestra cómo implementar la interfaz IADsClass .
HRESULT hr = S_OK;
IADsClass *pCls = NULL;
IADs *pADs;
BSTR bstrSchema;
VARIANT var;
hr = CoInitialize(NULL);
hr = ADsGetObject(L"WinNT://myComputer,computer",
IID_IADs,
(void**)&pADs);
if (FAILED(hr)) { goto Cleanup;}
hr = pADs->get_Schema(&bstrSchema);
pADs->Release();
if(FAILED(hr)) { goto Cleanup; }
hr = ADsGetObject(bstrSchema, IID_IADsClass, (void**)&pCls);
if(FAILED(hr)) { goto Cleanup; }
VariantInit(&var);
pCls->get_MandatoryProperties(&var);
hr = printVarArray(var);
VariantClear(&var);
pCls->get_OptionalProperties(&var);
hr = printVarArray(var);
Cleanup:
if(pCls)
pCls->Release();
if(pADs)
pADs->Release();
SysFreeString(bstrSchema);
VariantClear(&var);
CoUninitialize();
return hr;
En el ejemplo de código siguiente se muestra cómo implementar la función printVarArray .
HRESULT printVarArray(VARIANT var)
{
LONG lstart, lend;
VARIANT varItem;
HRESULT hr;
SAFEARRAY *sa = V_ARRAY( &var );
hr = SafeArrayGetLBound( sa, 1, &lstart );
hr = SafeArrayGetUBound( sa, 1, &lend );
VariantInit(&varItem);
for ( long idx=lstart; idx <= lend; idx++ ) {
hr = SafeArrayGetElement( sa, &idx, &varItem );
printf(" %S \n", V_BSTR(&varItem));
VariantClear(&varItem);
}
printf("\n");
return S_OK;
}
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista |
Servidor mínimo compatible | Windows Server 2008 |
Plataforma de destino | Windows |
Encabezado | iads.h |