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.

Nota vlvResp representa una estructura ADS_VLV previamente devuelta por el 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 compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Encabezado iads.h

Consulte también

ADS_SEARCHPREF_ENUM

Cómo buscar mediante VLV

IDirectorySearch