---
title: "Работа с контекстной панелью и меню"
type: interface
api: [api7]
tags: [interface, api7, ap2038597]
sources:
  - ap2038597.html
  - icontextpanel.html
  - iprocesscontextpanel.html
  - iprocesscontexticonmenu.html
---

*API интерфейсов. Версия 7 > Приложение*




## Интерфейс IContextPanel

Интерфейс всплывающей контекстной панели.
Иерархия:
IDispatch
IContextPanel
Описание:
Интерфейс используется для создания всплывающей панели для библиотечных элементов.
Для использования всплывающих панелей в библиотеке требуется реализовать функцию:
int WINAPI FillContextPanel( LPUNKNOWN contextPanel );
Версия: Компас v20


## Fill - Наполнить контекстную панель по описанию в манифесте библиотеки

Синтаксис Automation:
```
BOOL Fill( BSTR ContextPanelID );
```
Синтаксис COM:
```
HRESULT Fill( BSTR ContextPanelID, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
ContextPanelID    - Строковый идентификатор панели в манифесте библиотеки.
```


## FillComboBoxImage - Заполнить комбобокс иконок по идентификатору группы команд в манифесте

Синтаксис Automation:
```
BOOL FillComboBoxImage( BSTR ComboBoxID, BSTR CommandsGroupID, VARIANT FilterCommands, long CurrentCommand );
```
Синтаксис COM:
```
HRESULT FillComboBoxImage( BSTR ComboBoxID, BSTR CommandsGroupID, VARIANT FilterCommands, long CurrentCommand, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
ComboBoxID    - строковый идентификатор комбобокса,
CommandsGroupID    - строковый идентификатор группы в манифесте библиотеки,
FilterCommands    - фильтр команд,
CurrentCommand    - текущая команда.
```
Примечание:
Если в комбобокс требуется добавить только часть команд из группы, можно задать список SafeArray VT_ARRAY | VT_I4 команд, которые требуется добавить в список.


## FillComboBoxStyle - Заполнить комбобокс стилей по идентификатору группы команд в манифесте

Синтаксис Automation:
```
BOOL FillComboBoxStyle( BSTR ComboBoxID, ControlTypeEnum StyleType, VARIANT Styles, long CurrentStyleId );
```
Синтаксис COM:
```
HRESULT FillComboBoxStyle( BSTR ComboBoxID, ControlTypeEnum StyleType, VARIANT Styles, long CurrentStyleId, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
ComboBoxID    - строковый идентификатор комбобокса,
StyleType    - тип стилевого комбобокса,
Styles    - список стилей,
CurrentStyleId    - номер текущего стиля.
```


## Интерфейс IProcessContextPanel

Интерфейс контекстной панели процесса.
Иерархия:
IDispatch
IProcessContextPanel
Примечание:
Интерфейс используется в событии ksPropertyManagerNotify::FillContextPanel
Интерфейс позволяет заменить обычное меню процесса на панель которая может содержать контролы Панели свойств.
Для использования контекстной панели в процессе нужно в событии ksPropertyManagerNotify::GetContextMenuType вернуть константу ksProcessContextPanel из перечисления ksProcessContextMenuType.


## AddAdditionalButtonsFromControl - Добавить группу дополнительных кнопок

Синтаксис Automation:
```
BOOL AddAdditionalButtonsFromControl( IPropertyControl * PVal, BSTR Title );
```
Синтаксис COM:
```
HRESULT AddAdditionalButtonsFromControl( IPropertyControl * PVal, BSTR Title, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
PVal    - указатель на интерфейс добавляемого контрола,
Title    - заголовок.
```


## AddControl - Добавить контрол

Синтаксис Automation:
```
BOOL AddControl( IPropertyControl * PVal );
```
Синтаксис COM:
```
HRESULT AddControl( IPropertyControl * PVal, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
PVal    - указатель на интерфейс добавляемого контрола.
```


## AddGeomCalculatorCommands - Добавить команды меню геометрического калькулятора

Синтаксис Automation:
```
BOOL AddGeomCalculatorCommands( IPropertyControl * PVal );
```
Синтаксис COM:
```
HRESULT AddGeomCalculatorCommands( IPropertyControl * PVal, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
PVal    - указатель на интерфейс контрола.
```


## AddGroupBegin - Добавить начало подгруппы

Синтаксис Automation:
```
BOOL AddGroupBegin( BSTR Title );
```
Синтаксис COM:
```
HRESULT AddGroupBegin( BSTR Title, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
Title    - заголовок.
```


## AddGroupEnd - Добавить конец подгруппы

Синтаксис Automation:
```
BOOL AddGroupEnd();
```
Синтаксис COM:
```
HRESULT AddGroupEnd( BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


## AddLinkContentButton - Добавить кнопку ссылочного содержимого регистратора

Синтаксис Automation:
```
BOOL AddLinkContentButton( IPropertyControl * PVal, BSTR Title );
```
Синтаксис COM:
```
HRESULT AddLinkContentButton( IPropertyControl * PVal, BSTR Title, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
PVal    - указатель на интерфейс добавляемого контрола,
Title    - заголовок.
```


## AddNewSearchButton - Добавить кнопку перебор объектов

Синтаксис Automation:
```
BOOL AddNewSearchButton();
```
Синтаксис COM:
```
HRESULT AddNewSearchButton( BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


## AddSeparator - Добавить разделитель

Синтаксис Automation:
```
BOOL AddSeparator();
```
Синтаксис COM:
```
HRESULT AddSeparator( BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


## AddSnapCommands - Добавить команды привязок

Синтаксис Automation:
```
BOOL AddSnapCommands();
```
Синтаксис COM:
```
HRESULT AddSnapCommands( BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


## Интерфейс IProcessContextIconMenu

Интерфейс контекстного меню процесса с иконками.
Иерархия:
IDispatch
IProcessContextIconMenu


## AddMenuCommand - Добавить пункт меню

Синтаксис Automation:
```
BOOL AddMenuCommand( long Id, BSTR Title, long Icon, BSTR IconFont );
```
Синтаксис COM:
```
HRESULT AddMenuCommand( long Id, BSTR Title, long Icon, BSTR IconFont, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
Id    - идентификатор команды,
Title    - заголовок,
Icon    - идентификатор иконки из шрифта,
IconFont    - имя библиотечного шрифта или пустая строка для шрифта Компас.
```
