IVsObjectList2.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] Указатель на переменную, содержащую возвращенное значение.

Возвращаемое значение

Int32

Если метод завершается успешно, возвращает значение S_OK. В противном случае функция возвращает код ошибки.

Комментарии

Подпись COM

Из vsshell80. IDL:

[C++]

HRESULT IVsObjectList2::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 спискам, которые фактически являются списками символов.

Применяется к