Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ruft eine spezielle Eigenschaft ab, die mehrere Eigenschaften über mehrere Bereiche auflisten kann.
Syntax
HRESULT TrackProperties(
[in] const GUID **prgProp,
[in] ULONG cProp,
[in] const GUID **prgAppProp,
[in] ULONG cAppProp,
[out] ITfReadOnlyProperty **ppProperty
);
Parameter
[in] prgProp
Enthält ein Array von Eigenschaftenbezeichnern, die die zu verfolgenden Eigenschaften angeben.
[in] cProp
Enthält die Anzahl der Eigenschaftsbezeichner im prgProp-Array .
[in] prgAppProp
Enthält ein Array von Anwendungseigenschaftenbezeichnern, die die nachzuverfolgenden Anwendungseigenschaften angeben.
[in] cAppProp
Enthält die Anzahl der Anwendungseigenschaftenbezeichner im prgAppProp-Array .
[out] ppProperty
Zeiger auf einen ITfReadOnlyProperty-Schnittstellenzeiger , der die Nachverfolgungseigenschaft empfängt.
Rückgabewert
Diese Methode kann einen dieser Werte zurückgeben.
Wert | BESCHREIBUNG |
---|---|
|
Die Methode war erfolgreich. |
|
Das Kontextobjekt befindet sich nicht in einem Dokumentstapel. |
|
Ein Fehler bei der Speicherzuordnung ist aufgetreten. |
|
Mindestens ein Parameter ist ungültig. |
Hinweise
Diese Methode wird verwendet, um Bereiche mit konsistenten Eigenschaftenwerten für mehrere Eigenschaften schnell zu identifizieren. Obwohl diese Methode nur mit der ITfContext::GetProperty-Methode dupliziert werden konnte, kann der TSF-Manager diese Aufgabe schneller erledigen.
Die von dieser Methode abgerufene Eigenschaft ist ein VT_UNKNOWN Typ. Diese Eigenschaft kann verwendet werden, um einen IEnumTfPropertyValue-Enumerator abzurufen, indem die QueryInterface-Methode mit IID_IEnumTfPropertyValue aufgerufen wird. Dieser Enumerator enthält Eigenschaftswerte, die von prgProp und prgAppProp angegeben werden.
Beispiele
const GUID *rgGuids[2] = { &GUID_PROP_COMPOSING,
&GUID_PROP_ATTRIBUTE };
HRESULT hr;
ITfReadOnlyProperty *pTrackProperty;
TF_SELECTION sel;
IEnumTfRanges *pEnumRanges;
ITfRange *pRangeValue;
// Get the tracking property.
hr = pContext->TrackProperties(NULL, 0, rgGuids, 2, &pTrackProperty);
// Get the selection range.
hr = pContext->GetSelection(ec, TF_DEFAULT_SELECTION, 1, &sel, &cFetched);
// Use the property from TrackProperties to get an enumeration of the ranges
// within the selection range that have the same property values.
hr = pTrackProperty->EnumRanges(ec, &pEnumRanges, sel.range);
// Enumerate the ranges of text.
while(pEnumRanges->Next(1, &pRangeValue, NULL) == S_OK)
{
VARIANT varTrackerValue;
TF_PROPERTYVAL tfPropertyVal;
IEnumTfPropertyValue *pEnumPropVal;
// Get the values for this range of text.
hr = pTrackProperty->GetValue(ec, pRangeValue, &varTrackerValue);
// Because pTrackProperties originates from TrackProperties,
// varTrackerValue can be identified as a VT_UNKNOWN/IEnumTfPropertyValue.
varTrackerValue.punkVal->QueryInterface( IID_IEnumTfPropertyValue,
(void **)&pEnumPropVal);
while(pEnumPropVal->Next(1, &tfPropertyVal, NULL) == S_OK)
{
BOOL fComposingValue;
TfGuidAtom gaDispAttrValue;
// Is this the composition property?
if (IsEqualGUID(tfPropertyVal.guidId, GUID_PROP_COMPOSING))
{
fComposingValue = (BOOL)tfPropertyVal.varValue.lVal;
}
// Or is this the attribute property?
else if (IsEqualGUID(tfPropertyVal.guidId, GUID_PROP_ATTRIBUTE))
{
gaDispAttrValue = (TfGuidAtom)tfPropertyVal.varValue.lVal;
}
// Clear the property.
VariantClear(&tfPropertyVal.varValue);
}
// Clear the tracker property.
VariantClear(&varTrackerValue);
// Release the property enumerator.
pEnumPropVal->Release();
// Release the range.
pRangeValue->Release();
}
// Release the selection range.
sel.range->Release();
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | msctf.h |
DLL | Msctf.dll |
Verteilbare Komponente | TSF 1.0 unter Windows 2000 Professional |