---
title: "Интерфейс ILibHPObject1"
type: interface
api: [api7]
tags: [interface, api7, ilibhpobject1]
sources:
  - ilibhpobject1.html
---

*API экспортных функций > Функции работы с графическим документом  > Создание графических объектов  > Работа с макроэлементами и библиотечными макроэлементами  > Работа с характерными точками *


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

Интерфейс для работы с характерными точками.
Иерархия:
IKompasAPIObject
ILibHPObject1
Описание:
Дополнительный интерфейс управления характерными точками библиотечного элемента 2d. Является обработчиком событий, которые генерируются системой КОМПАС при селектировании библиотечного элемента 2d.
Интерфейс должен быть реализован на стороне библиотеки разработчиком приложения в том же классе, который реализует интерфейс ILibHPObject, если необходимо обеспечить управление характерными точками библиотечного элемента.
Данный интерфейс можно получить у объекта ILibHPObject посредством вызова метода IUnknown::QueryInterface (const GUID far& IID, void** pif).
Интерфейс позволяет выполнить следующие действия.
– Сформировать отображение характерных точек, задав идентификаторы битмапов.
– Задать тексты характерных точек в расширенном представлении.
– Изменить отображение характерной точки и текст у курсора при попадании указателя мыши в габарит точки.
– Получить выпадающее меню, ассоциированное с данным библиотечным элементом или с данной hot-точкой.
– Установить состояния команд из библиотечного меню.
– Отработать события селектирования\расселектирования характерных точек.


## LibHotPnt_GetCursorTextEx - Задать текст для отображения рядом с курсором

Синтаксис COM:
```
LPOLESTR LibHotPnt_GetCursorTextEx(int index );
Входной параметр:
index    - номер характерной точки.
Выходной параметр:
text    - текст для отображения рядом с курсором.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
1. Метод вызывается при попадании мыши в габарит hot point. При помощи метода можно указать текст, который будет выдан рядом с курсором. Текст выдается для UNICODE вместо ILibHPObject::LibHotPnt_GetCursorText.
2. С присланной строки снимается копия, сама исходная строка не удаляется.


## LibHotPnt_GetEx - Получить текущее описание характерной точки

Синтаксис COM:
```
BOOL LibHotPnt_GetEx(HotPointDescription1* point, int index);
Входной параметр:
index    - номер характерной точки.
Выходной параметр:
point    - структура параметров характерной точки HotPointDescription1.
Возвращаемое значение:
TRUE    - в случае удачного завершения.
```
Примечания:
1. Метод вызывается в цикле для каждой точки (увеличивая номер точки), пока не вернет FALSE.
2. Значения координат характерной точки необходимо устанавливать в собственной системе координат объекта.


## LibHotPnt_GetMenuEx - Получить popup-меню, ассоциированное с данным библиотечным элементом и ассоциированное с данной hot-точкой, если index > -1

Синтаксис COM:
```
int LibHotPnt_GetMenuEx( int index );
Входной параметр:
index    - номер характерной точки.
Возвращаемое значение:
Идентификатор меню (HMENU) или 0, если меню не определено.    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
1. Метод будет вызван при нажатии правой кнопки мыши на выделенном библиотечном элементе или его характерной точке.
2. Метод позволяет получить выпадающее меню, ассоциированное с данным библиотечным элементом, если index = -1 и ассоциированное с данной hot-точкой, если index > -1.
3. Присланное меню будет модифицировано в системе.
4. Идентификаторы команд должны быть уникальны на уровне приложения.
5. При модификации меню идентификаторы команд становятся уникальными на уровне КОМПАС.
6. Меню будет добавлено в конец системного выпадающего меню для библиотечного элемента.
7. При выборе команды из меню будет вызван метод ILibHPObject::LibHotPnt_ExecuteCommand.
8. Метод является расширением возможностей метода ILibHPObject::LibHotPnt_GetMenu.
9. Присланное меню будет уничтожено вызовом функции DestroyMenu().


## LibHotPnt_Select - Выделить характерную точку

Синтаксис COM:
```
BOOL LibHotPnt_Select( int index );
Входной параметр:
index    - номер характерной точки.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Выделение характерной точки происходит при нажатии левой кнопки мыши на характерной точке. При этом генерируется событие.
Этот метод является обработчиком события выделения характерной точки библиотечного элемента 2d.
Библиотека может изменить отображение библиотечного элемента или выполнить другие действия, связанные с этим событием.


## LibHotPnt_Unselect - Отменить выделение характерной точки

Синтаксис COM:
```
BOOL LibHotPnt_Unselect( int index );
Входной параметр:
index    - номер характерной точки.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод вызывается при снятии выделения характерной точки. Метод является обработчиком события снятия выделения (расселектирования) характерной точки библиотечного элемента 2d. Это событие происходит при нажатии левой кнопки мыши вне выделенной характерной точки или после окончания перетаскивания характерной точки с нажатой левой кнопкой мыши.
Библиотека может изменить отображение библиотечного элемента или выполнить другие действия, связанные с этим событием.


## LibHotPnt_UpdateCommand - Установить состояния команд из меню

Синтаксис COM:
```
BOOL LibHotPnt_UpdateCommand( int commandId );
Входной параметр:
commandId    - идентификатор команды.
Возвращаемое значение:
TRUE    - команда доступна,
FALSE    - команда недоступна.
```
Примечание:
Метод позволяет установить состояния команд из меню, присланного по ILibHPObject::LibHotPnt_GetMenu или ILibHPObject1::LibHotPnt_GetMenuEx.
