Métodos da propriedade IADsContainer
Os métodos de propriedade da interface IADsContainer obtêm ou definem as propriedades descritas na tabela a seguir. Para obter mais informações e uma discussão geral sobre métodos de propriedade, consulte Métodos de propriedade de interface.
Propriedades
-
Count
-
-
Tipo de acesso: Somente leitura
-
Tipo de dados de script: LONG
-
// C++ method syntax HRESULT get_Count( [out] LONG* plCount );
Recupera o número de itens no contêiner. Quando Filter é definido, Count retorna apenas o número de itens filtrados.
-
-
Filter
-
-
Tipo de acesso: leitura/gravação
-
Tipo de dados de script: VARIANT
-
// C++ method syntax HRESULT get_Filter( [out] VARIANT* pvFilter ); HRESULT put_Filter( [in] VARIANT vFilter );
Recupera ou define o filtro usado para selecionar classes de objeto em uma determinada enumeração. Essa é uma matriz variante, cujo elemento é o nome de uma classe de esquema. Se Filter não estiver definido como vazio, todos os objetos de todas as classes serão recuperados pelo enumerador .
-
-
Dicas
-
-
Tipo de acesso: leitura/gravação
-
Tipo de dados de script: VARIANT
-
// C++ method syntax HRESULT get_Hints( [out] VARIANT* pvHints ); HRESULT put_Hints( [in] VARIANT vHints );
Uma matriz variante de cadeias de caracteres BSTR . Cada elemento identifica o nome de uma propriedade encontrada na definição de esquema. O parâmetro vHints permite que o cliente indique quais atributos carregar para cada objeto enumerado. Esses dados podem ser usados para otimizar o acesso à rede. A implementação exata, no entanto, é específica do provedor e atualmente não é usada pelo provedor WinNT.
-
Comentários
Os processos de enumeração em IADsContainer::get__NewEnum e IADsContainer::get_Count são executados nos objetos contidos no cache. Quando um contêiner contém um grande número de objetos, o desempenho pode ser afetado. Para melhorar o desempenho, desative o cache, configure um tamanho de página apropriado e use a interface IDirectorySearch . Por esse motivo, não há suporte para a propriedade get_Count no provedor LDAP da Microsoft.
Exemplos
O exemplo de código do Visual Basic a seguir mostra como os métodos de propriedade de IADsContainer podem ser usados.
Dim cont As IADsContainer
Dim usr As IADsUser
On Error GoTo Cleanup
Set cont = GetObject("LDAP://OU=Sales, DC=Fabrikam, DC=COM")
cont.Hints = Array("adminDescription") ' Load this attribute. Optional.
Debug.Print cont.Get("adminDescription")
' Filter users.
cont.Filter = Array("user")
For Each usr In cont
Debug.Print usr.Name
Next
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set cont = Nothing
Set usr = Nothing
O exemplo de código C++ a seguir mostra como os métodos de propriedade de IADsContainer podem ser usados. Para resumir, a verificação de erros é omitida.
IADsContainer *pCont;
IADs *pChild;
IADs *pADs;
HRESULT hr = ADsGetObject(L"LDAP://OU=Sales,DC=Fabrikam,DC=COM",
IID_IADsContainer,
(void**)&pCont);
if(FAILED(hr)){goto Cleanup;}
LPWSTR pszArray[] = { L"adminDescription" };
DWORD dwNumber = sizeof(pszArray)/sizeof(LPWSTR);
hr = ADsBuildVarArrayStr( pszArray, dwNumber, &var);
if(FAILED(hr)){goto Cleanup;}
hr = pCont->put_Hints( var );
if(FAILED(hr)){goto Cleanup;}
VariantClear(&var);
hr = pCont->QueryInterface(IID_IADs, (void**)pADs);
if(FAILED(hr)){goto Cleanup;}
hr = pADs->Get(CComBSTR("adminDescription"), var);
LPWSTR pszUsers = {L"user"};
dwNumber = sizeof(pszUsers)/sizeof(LPWSTR);
hr = ADsBuildVarArrayStr(pszUsers, dwNumber, &var);
hr = pCont->put_Filter( var );
VariantClear(&var);
// Enumerate user objects in the container.
IEnumVARIANT *pEnum = NULL;
hr = ADsBuildEnumerator(pCont, &pEnum);
pCont->Release(); // Not required when users are enumerated.
ULONG lFetch;
VariantClear(&var);
while (SUCCEEDED(ADsEnumerateNext(pEnum, 1, &var, &lFetch)) &&
lFetch==1) {
hr = V_DISPATCH(&var)->QueryInterface(IID_IADs, (void**)&pChild)
if(SUCCEEDED(hr)) {
BSTR bstrName;
pChild->get_Name(&bstrName);
printf(" %S\n", bstrName);
SysFreeString(bstrName);
pChild->Release();
}
VariantClear(&var);
}
Cleanup:
if(pADs)
pADs->Release();
if(pCont)
pCont->Release();
if(pChild)
pChild->Release();
VariantClear(&var);
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows Vista |
Servidor mínimo com suporte |
Windows Server 2008 |
Cabeçalho |
|
DLL |
|
IID |
IID_IADsContainer é definido como 001677D0-FD16-11CE-ABC4-02608C9E7553 |