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.
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 |