ADS_VLV-Struktur (iads.h)
Die ADS_VLV-Struktur enthält Metadaten, die zum Durchführen von VLV-Suchvorgängen (Virtual List View) verwendet werden. Diese Struktur erfüllt zwei Rollen. Zunächst werden die Sucheinstellungen angegeben, die an den Server gesendet werden. Zweitens werden die VLV-Metadaten vom Server zurückgegeben.
Syntax
typedef struct _ads_vlv {
DWORD dwBeforeCount;
DWORD dwAfterCount;
DWORD dwOffset;
DWORD dwContentCount;
LPWSTR pszTarget;
DWORD dwContextIDLength;
LPBYTE lpContextID;
} ADS_VLV, *PADS_VLV;
Members
dwBeforeCount
Gibt die Anzahl der Einträge vor dem Zieleintrag an, die der Client vom Server anfordert.
dwAfterCount
Gibt die Anzahl der Einträge nach dem Zieleintrag an, die der Client vom Server anfordert.
dwOffset
Gibt bei der Eingabe den angeforderten Offset des Zieleintrags innerhalb der Liste an. Wenn der Client einen Offset angibt, der der vom Client angenommenen Inhaltsanzahl entspricht, ist das Ziel der letzte Eintrag in der Liste. Gibt bei der Ausgabe die beste Schätzung des Servers für den tatsächlichen Offset der Position des zurückgegebenen Zieleintrags in der Liste an.
dwContentCount
Der Eingabewert stellt den geschätzten Wert des Clients für die Inhaltsanzahl dar. Der Ausgabewert ist die Schätzung der Inhaltsanzahl des Servers. Wenn der Client eine Inhaltsanzahl von 0 sendet, bedeutet dies, dass der Server seine Schätzung der Inhaltsanzahl anstelle des Clients verwenden muss.
pszTarget
Optional. Unicode-Zeichenfolge mit Null-Endung, die den vom Client angeforderten gewünschten Zieleintrag angibt. Wenn dieser Parameter einen Wert ohne NULL enthält, ignoriert der Server den in dwOffset angegebenen Wert und sucht nach dem ersten Zieleintrag, dessen Wert für den primären Sortierschlüssel größer oder gleich der angegebenen Zeichenfolge ist, basierend auf der Sortierreihenfolge der Liste.
dwContextIDLength
Optional. Parameter, der die Länge des Kontextbezeichners angibt. Wenn Sie bei der Eingabe einen Kontextbezeichner in lpContextID übergeben, muss dies auf die Größe des Bezeichners in Bytes festgelegt werden. Andernfalls muss er gleich 0 festgelegt werden. Wenn lpContextID in der Ausgabe einen Wert ohne NULL enthält, gibt dies die Länge der vom Server zurückgegebenen Kontext-ID in Bytes an.
lpContextID
Optional. Gibt den vom Server generierten Kontextbezeichner an. Dieser Parameter kann an Clients gesendet werden. Wenn ein Client diesen Parameter empfängt, sollte er ihn unverändert in einer nachfolgenden Anforderung zurückgeben, die sich auf dieselbe Liste bezieht. Diese Interaktion kann die Leistung und Effektivität der Server verbessern. Wenn kein Kontextbezeichner an den Server übergeben wird, muss dieser Member auf NULL-Wert festgelegt werden. Wenn dieses Element in der Ausgabe einen Wert ohne NULL enthält, verweist dies auf die vom Server zurückgegebene Kontext-ID.
Hinweise
Um die VLV nach dwContentCount und dwOffset festzulegen, müssen Sie auch pszTarget auf einen NULL-Wert festlegen. Wenn pszTarget einen Nicht-NULL-Wert enthält, wird er als Offset verwendet, andernfalls wird lOffset als Offset verwendet. Es wird empfohlen, die Struktur auf Null zu initialisieren.
Beispiele
Im folgenden Codebeispiel wird gezeigt, wie die ersten 30 Einträge in einem Resultset abgerufen werden.
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);
Das folgende Codebeispiel zeigt, wie die ersten 50 Einträge in einem Resultset abgerufen werden, die mit den Buchstaben "Ha" beginnen.
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.
Im folgenden Codebeispiel wird veranschaulicht, wie die ersten 100 Einträge am ungefähren Ziel von 60 % abgerufen werden, vorausgesetzt, der Server hat dwContentCount zuvor als 4294 zurückgegeben.
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;
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Kopfzeile | iads.h |