estrutura ADS_VLV (iads.h)

A estrutura ADS_VLV contém metadados usados para realizar pesquisas de VLV (exibição de lista virtual). Essa estrutura atende a duas funções. Primeiro, ele especifica as preferências de pesquisa enviadas ao servidor. Em segundo lugar, ele retorna os metadados VLV do servidor.

Sintaxe

typedef struct _ads_vlv {
  DWORD  dwBeforeCount;
  DWORD  dwAfterCount;
  DWORD  dwOffset;
  DWORD  dwContentCount;
  LPWSTR pszTarget;
  DWORD  dwContextIDLength;
  LPBYTE lpContextID;
} ADS_VLV, *PADS_VLV;

Membros

dwBeforeCount

Indica o número de entradas, antes da entrada de destino, que o cliente solicita do servidor.

dwAfterCount

Indica o número de entradas, após a entrada de destino, que o cliente solicita do servidor.

dwOffset

Na entrada, indica o deslocamento solicitado da entrada de destino dentro da lista. Se o cliente especificar um deslocamento que é igual à contagem de conteúdo presumida do cliente, o destino será a última entrada na lista. Na saída, indica a melhor estimativa do servidor quanto ao deslocamento real da posição da entrada de destino retornada na lista.

dwContentCount

O valor de entrada representa o valor estimado do cliente para a contagem de conteúdo. O valor de saída é a estimativa do servidor da contagem de conteúdo. Se o cliente enviar uma contagem de conteúdo igual a zero, isso significa que o servidor deve usar sua estimativa da contagem de conteúdo no lugar da do cliente.

pszTarget

Opcional. Cadeia de caracteres Unicode terminada em nulo que indica a entrada de destino desejada solicitada pelo cliente. Se esse parâmetro contiver um valor não NULL , o servidor ignorará o valor especificado em dwOffset e procurará a primeira entrada de destino cujo valor para a chave de classificação primária seja maior ou igual à cadeia de caracteres especificada, com base na ordem de classificação da lista.

dwContextIDLength

Opcional. Parâmetro que indica o comprimento do identificador de contexto. Na entrada, se passar um identificador de contexto em lpContextID, isso deverá ser definido como o tamanho do identificador em bytes. Caso contrário, ele deverá ser definido como zero. Na saída, se lpContextID contiver um valor não NULL , isso indicará o comprimento, em bytes, da ID de contexto retornada pelo servidor.

lpContextID

Opcional. Indica o identificador de contexto gerado pelo servidor. Esse parâmetro pode ser enviado aos clientes. Se um cliente receber esse parâmetro, ele deverá retorná-lo inalterado em uma solicitação subsequente relacionada à mesma lista. Essa interação pode melhorar o desempenho e a eficácia dos servidores. Se não passar um identificador de contexto para o servidor, esse membro deverá ser definido como valor NULL . Na saída, se esse membro contiver um valor não NULL , isso apontará para a ID de contexto retornada pelo servidor.

Comentários

Para definir o VLV por dwContentCount e dwOffset, você também deve definir o pszTarget como um valor NULL . Se pszTarget contiver um valor não NULL , ele será usado como o deslocamento; caso contrário, lOffset será usado como o deslocamento. É recomendável que você inicialize a estrutura como zero.

Exemplos

O exemplo de código a seguir mostra como recuperar as primeiras 30 entradas em um conjunto de resultados.

ADS_SEARCHPREF_INFO prefInfo[2];
ADS_VLV vlv;

vlv.dwBeforeCount=0;
vlv.dwAfterCount=30;
vlv.dwOffset=1;
vlv.dwContentCount=0;
vlv.pszTarget = NULL; 
vlv.dwContextIDLength = 0;
vlv.lpContextID = NULL;

// VLV set preferences.
prefInfo[0].dwSearchPref = ADS_SEARCHPREF_VLV;
prefInfo[0].vValue.dwType = ADSTYPE_PROV_SPECIFIC;
prefInfo[0].vValue.ProviderSpecific.dwLength = sizeof(ADS_VLV);
prefInfo[0].vValue.ProviderSpecific.lpValue = (LPBYTE) &vlv;

// Sort key set preferences.
prefInfo[1].dwSearchPref = ADS_SEARCHPREF_SORT_ON;
prefInfo[1].vValue.dwType = ADSTYPE_PROV_SPECIFIC;
prefInfo[1].vValue.ProviderSpecific.dwLength = sizeof(ADS_SORTKEY);
prefInfo[1].vValue.ProviderSpecific.lpValue = (LPBYTE) pSortKey;

hr = m_pSearch->SetSearchPreference(prefInfo, 2);

O exemplo de código a seguir mostra como recuperar as primeiras 50 entradas em um conjunto de resultados que começam com as letras "Ha".

ADS_VLV vlv;

vlv.dwBeforeCount=0;
vlv.dwAfterCount=50;
vlv.pszTarget= L"Ha";
vlv.lpContextID = NULL; 
vlv.dwContextIDLength = 0;

// For more information about how to set the preference, see the previous code example.

O exemplo de código a seguir mostra como recuperar as primeiras 100 entradas no destino aproximado de 60%, supondo que o servidor tenha retornado dwContentCount anteriormente como 4294.

Observe que vlvResp representa uma estrutura ADS_VLV retornada anteriormente pelo servidor.
 
ADS_VLV vlv;

vlv.dwBeforeCount=50;
vlv.dwAfterCount=50;
vlv.dwOffset=2577;  
vlv.dwContentCount=4294;
vlv.pszTarget = NULL;
vlv.dwContextIDLength = vlvResp.dwContextIDLength; 
vlv.lpContextID = vlvResp.lpContextID;

Requisitos

   
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Cabeçalho iads.h

Confira também

ADS_SEARCHPREF_ENUM

Como pesquisar usando o VLV

Idirectorysearch