IVsSimpleObjectList2.GetCategoryField2(UInt32, Int32, UInt32) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает значение указанной категории для данного элемента списка.
public:
int GetCategoryField2(System::UInt32 index, int Category, [Runtime::InteropServices::Out] System::UInt32 % pfCatField);
int GetCategoryField2(unsigned int index, int Category, [Runtime::InteropServices::Out] unsigned int & pfCatField);
public int GetCategoryField2 (uint index, int Category, out uint pfCatField);
abstract member GetCategoryField2 : uint32 * int * uint32 -> int
Public Function GetCategoryField2 (index As UInteger, Category As Integer, ByRef pfCatField As UInteger) As Integer
Параметры
- index
- UInt32
[in] Определяет индекс представляющего интерес элемента списка.
- Category
- Int32
[in] Указывает соответствующую категорию. Значения берутся из перечисления LIB_CATEGORY.
- pfCatField
- UInt32
[out] Указатель на переменную, содержащую возвращенное значение.
Возвращаемое значение
Если метод завершается успешно, возвращает значение S_OK. В противном случае функция возвращает код ошибки.
Комментарии
Подпись COM
Из vsshell80. IDL:
HRESULT IVsSimpleObjectList2::GetCategoryField2(
[in] ULONG Index,
[in] LIB_CATEGORY2 Category,
[out,retval] DWORD *pfCatField
);
Диспетчер объектов среды вызывает этот метод для получения данных категории для элементов списка. Необходимо вернуть pField значение параметра перечислителя из перечисления LIB_ *, соответствующего категории, указанной в Category параметре. Категории и связанные с ними перечисления полей перечислены в следующей таблице.
| Категория из LIB_CATEGORY | Перечисление LIBCAT_ |
|---|---|
| LC_MEMBERTYPE | _LIBCAT_MEMBERTYPE |
| LC_MEMBERACCESS | _LIBCAT_MEMBERACCESS |
| LC_CLASSTYPE | _LIBCAT_CLASSTYPE |
| LC_CLASSACCESS | _LIBCAT_CLASSACCESS |
| LC_ACTIVEPROJECT | Не используется. |
| LC_LISTTYPE (специальное, см. ниже) | LIBCAT_LISTTYPE (typedef класса _LIB_LISTTYPE ) |
| LC_VISIBILITY | _LIBCAT_VISIBILITY |
| LC_MODIFIER | _LIBCAT_MODIFIERTYPE |
| LC_NODETYPE (специальное, см. ниже) | _LIBCAT_NODETYPE |
Если index параметр имеет значение нулиндекс, то Category параметр имеет значение LC_LISTTYPE и запрос для списка в целом, а не для конкретного элемента списка. При этом запрашиваются типы дочерних списков, поддерживаемые в этом списке. В этом случае необходимо назначить pField одно или несколько значений из _LIB_LISTTYPE перечисления. Например, LC_CLASSES список может вернуть LC_CLASSES | LC_MEMBERS , чтобы указать, что он поддерживает классы и списки элементов. Однако это не означает, что каждый элемент списка в этом списке поддерживает как дочерние списки, так и.
Вызов GetCategoryField метода с LC_LISTTYPE категорией — это один из способов, которым среда определяет, является ли узел расширяемым, чтобы он мог указать, что символ "+" должен отображаться в обозревателе объектов или в инструментах представления классов. Так как вычислительные возможности узла могут быть дорогостоящими для вашей библиотеки, среда сначала вызывает GetExpandable3 . В случае сбоя этого метода среда вызывает GetCategoryField . Используйте GetExpandable3 , если можно определить расширяемое состояние элемента списка гораздо быстрее, чем полное перечисление всех поддерживаемых списков в данном элементе.
Не реализуйте LC_NODETYPE для не являющихся LLT_HIERARCHY списками. Однако можно вернуться LCNT_SYMBOL к LLT_HIERARCHY спискам, которые фактически являются списками символов.