estructura de ADS_VLV (iads.h)
La estructura de ADS_VLV contiene metadatos usados para realizar búsquedas en la vista de lista virtual (VLV). Esta estructura sirve a dos roles. En primer lugar, especifica las preferencias de búsqueda enviadas al servidor. En segundo lugar, devuelve los metadatos de VLV del servidor.
Sintaxis
typedef struct _ads_vlv {
DWORD dwBeforeCount;
DWORD dwAfterCount;
DWORD dwOffset;
DWORD dwContentCount;
LPWSTR pszTarget;
DWORD dwContextIDLength;
LPBYTE lpContextID;
} ADS_VLV, *PADS_VLV;
Members
dwBeforeCount
Indica el número de entradas, antes de la entrada de destino, que el cliente solicita desde el servidor.
dwAfterCount
Indica el número de entradas, después de la entrada de destino, que el cliente solicita desde el servidor.
dwOffset
En la entrada, indica el desplazamiento solicitado de la entrada de destino dentro de la lista. Si el cliente especifica un desplazamiento que equivale al recuento de contenido asumido del cliente, el destino es la última entrada de la lista. En la salida, indica la mejor estimación del servidor en cuanto al desplazamiento real de la posición de la entrada de destino devuelta en la lista.
dwContentCount
El valor de entrada representa el valor estimado del cliente para el recuento de contenido. El valor de salida es la estimación del servidor del recuento de contenido. Si el cliente envía un recuento de contenido de cero, significa que el servidor debe usar su estimación del recuento de contenido en lugar del del cliente.
pszTarget
Opcional. Cadena Unicode terminada en NULL que indica la entrada de destino deseada solicitada por el cliente. Si este parámetro contiene un valor distinto de NULL , el servidor omite el valor especificado en dwOffset y busca la primera entrada de destino cuyo valor para la clave de ordenación principal es mayor o igual que la cadena especificada, en función del criterio de ordenación de la lista.
dwContextIDLength
Opcional. Parámetro que indica la longitud del identificador de contexto. En la entrada, si se pasa un identificador de contexto en lpContextID, debe establecerse en el tamaño del identificador en bytes. De lo contrario, debe establecerse igual a cero. En la salida, si lpContextID contiene un valor distinto de NULL , indica la longitud, en bytes, del identificador de contexto devuelto por el servidor.
lpContextID
Opcional. Indica el identificador de contexto generado por el servidor. Este parámetro se puede enviar a los clientes. Si un cliente recibe este parámetro, debe devolverlo sin cambios en una solicitud posterior relacionada con la misma lista. Esta interacción puede mejorar el rendimiento y la eficacia de los servidores. Si no se pasa un identificador de contexto al servidor, este miembro debe establecerse en valor NULL . En la salida, si este miembro contiene un valor distinto de NULL , apunta al identificador de contexto devuelto por el servidor.
Comentarios
Para establecer VLV by dwContentCount y dwOffset, también debe establecer pszTarget en un valor NULL . Si pszTarget contiene un valor distinto de NULL , se usa como desplazamiento; de lo contrario, se usa lOffset como desplazamiento. Se recomienda inicializar la estructura en cero.
Ejemplos
En el ejemplo de código siguiente se muestra cómo recuperar las primeras 30 entradas de un 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);
En el ejemplo de código siguiente se muestra cómo recuperar las primeras 50 entradas de un conjunto de resultados que comienzan con las 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.
En el ejemplo de código siguiente se muestra cómo recuperar las primeras 100 entradas en el destino aproximado del 60 %, suponiendo que el servidor devolvió previamente dwContentCount 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 compatible | Windows Vista |
Servidor mínimo compatible | Windows Server 2008 |
Encabezado | iads.h |