---
title: "Приложение"
type: interface
api: [api7]
tags: [interface, api7, ap1782828]
sources:
  - ap1782828.html
  - ikompasapiobject.html
  - ikompascollection.html
  - iapplication.html
  - imanipulators.html
  - ibasemanipulator.html
  - ieditdoublemanipulator.html
  - iplacement3dmanipulator.html
  - imouseenterleaveparameters7.html
  - isavetopreviusparam7.html
---

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

Менеджер лицензий
Коллекция документов
Информация об ошибках
Параметры процесса
Работа с Панелью свойств
Работа с контекстной панелью и меню


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

Базовый объект КОМПАС API
Примечание:
Данный интерфейс является базовым для всех интерфейсов КОМПАС API, кроме интерфейсов событий и некоторых вспомогательных интерфейсов.


## Application - Ссылка на приложение

Тип данных: указатель на интерфейс IApplication.
Синтаксис Automation:
```
Application = iObject.Application    Получить свойство(* )
Application = iObject.GetApplication()    Получить свойство(**)
```
Синтаксис COM:
```
iObject->get_Application (&Application)    Получить свойство.
```
Примечание:
Свойство доступно только для чтения. Возвращает указатель на интерфейс приложения КОМПАС.


## Parent - Ссылка на владельца

Тип данных: указатель на интерфейс IKompasAPIObject.
Синтаксис Automation:
```
Parent = iObject.Parent    Получить свойство(* )
Parent = iObject.GetParent()    Получить свойство(**)
```
Синтаксис COM:
```
iObject->get_Parent (&Parent)    Получить свойство
```
Примечание:
Свойство доступно только для чтения. Возвращает указатель на интерфейс, у которого был взят данный объект.


## Reference - Уникальный идентификатор объекта

Тип данных: long.
Синтаксис Automation:
```
Reference = iObject.Reference    Получить свойство(* )
Reference = iObject.GetReference()    Получить свойство(**)
```
Синтаксис COM:
```
iObject->get_Reference (&Reference)    Получить свойство.
```
Примечание:
Свойство доступно только для чтения. Является скрытым; недоступно в таких языках как VB и т.п.


## Type - Тип объекта

Тип данных: тип объекта из перечисления KompasAPIObjectTypeEnum.
Синтаксис Automation:
```
Type = iObject.Type    Получить свойство(* )
Type = iObject.GetType()    Получить свойство(**)
```
Синтаксис COM:
```
iObject->get_Type (&Type)    Получить свойство
```
Примечание:
Свойство доступно только для чтения. Позволяет определить тип объекта и его интерфейс.


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

Базовая коллекция КОМПАС API
Иерархия:
IKompasAPIObject
IKompasCollection
Примечание:
Данный интерфейс является базовым для всех интерфейсов коллекций КОМПАС API.
Индекс первого элемента коллекции 0.


## Count - Количество элементов в коллекции

Тип данных: long.
Синтаксис Automation:
```
Count = iObject.Count    Получить свойство(* )
Count = iObject.GetCount()    Получить свойство(**)
```
Синтаксис COM:
```
iObject->get_Count (&Count)    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## _NewEnum - Возвращает коллекцию (в VB циклы:For Each)

Тип данных: указатель на интерфейс IUnknown объекта-перечислителя.
Примечание:
Данное свойство позволяет реализовывать циклический проход по коллекции с помощью специальных операторов цикла, таких как оператор For Each в Visual Basic.


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

Интерфейс приложения КОМПАС-3D.
Иерархия:
IKompasAPIObject
IApplication
IAttrTypeMng
IPropertyMng
Примечание:
1. Приложение КОМПАС-3D регистрируется с ProgID «KOMPAS.Application.7».
2. После запуска приложения из-под внешнего контроллера оно работает в слепом режиме. Чтобы оно стало видимым, нужно установить свойству IApplication::Visible значение TRUE.
3. Данный интерфейс приложения можно получить у любого объекта с помощью свойства IKompasAPIObject::Application.
4. Интерфейс приложения может быть создан следующими способами:
•в С с помощью функций HINSTANCE LoadLibrary(LibFileName), GetProcAddress, CreateKompasApplication(), пример создания интерфейса реализован в функции GetNewKompasAPI() - SDK\VisualC: Gayka1, Step12, Cube;
•в Delphi с помощью функции CreateKompasApplication, пример создания интерфейса реализован в функции GetNewKompasAPI() - SDK\Pascal\Delphi: Gayka1, Step12, Cube;
•в VBasic с помощью функции ksGetApplication7, пример создания интерфейса реализован в SDK\Basic: Gayka1, events.
5. Посредством вызова метода IUnknown::QueryInterface (const GUID far& iid, void** pif) у данного интерфейса можно получить дополнительные интерфейсы IAttrTypeMng,IPropertyMng и IApplicationLicenseManager.


## ActiveDocument - Получить текущий активный документ

Тип данных: указатель на интерфейс IKompasDocument.
Синтаксис Automation:
```
ActiveDocument = iObject.ActiveDocument    Получить свойство (* )
iObject.ActiveDocument = ActiveDocument    Установить свойство (* )
ActiveDocument = iObject.GetActiveDocument()    Получить свойство(**)
iObject.SetActiveDocument (ActiveDocument)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_ActiveDocument (&ActiveDocument)    Получить свойство
iObject->put_ActiveDocument (ActiveDocument)    Установить свойство
```
Примечание:
Свойство позволяет получить или установить текущий документ, если ни один документ не открыт.


## ApplicationName - Имя приложения

Тип данных: BOOL.
Синтаксис Automation:
```
ApplicationName = Object.ApplicationName( FullName )    Получить свойство(* )
ApplicationName = Object.GetApplicationName( FullName )    Получить свойство(**)
```
Синтаксис COM:
```
Object.get_ApplicationName( FullName, &ApplicationName )    Получить свойство
Входные параметры:
BOOL    - FullName - полное имя,
TRUE    - полное отображаемое имя приложения в заголовке окна Компас,
FALSE    - нелокализованное английское имя.
```


## BuildNumber - Номер сборки внутри версии

Тип данных: long
Синтаксис Automation:
```
BuildNumber = Object.BuildNumber    Получить свойство(* )
BuildNumber = Object.GetBuildNumber()    Получить свойство(**)
```
Синтаксис COM:
```
Object.get_BuildNumber( &BuildNumber )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия Компас v23


## CheckSum - Интерфейс контрольной суммы

Тип данных: Указатель на интерфейс ICheckSum.
Синтаксис Automation:
```
ICheckSum * CheckSum = Application.CheckSum    Получить свойство(* )
ICheckSum * CheckSum = Application.GetCheckSum()    Получить свойство(**)
```
Синтаксис COM:
```
HRESULT get_CheckSum (ICheckSum ** pRes)    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## Converter - Конвертация документов КОМПАС

Тип данных: указатель на интерфейс IConverter конвертера файлов КОМПАС.
Синтаксис Automation:
```
Converter = iObject.Converter (Library)    Получить свойство(* )
Converter = iObject.GetConverter (Library)    Получить свойство(**)
```
Синтаксис COM:
```
iObject->get_Converter (Library, &Converter)    Получить свойство
Входные параметры:
Library    - полный путь к библиотеке, тип VARIANT.
```
Примечание:
Свойство доступно только для чтения.


## CreateProcessParam - Получить интерфейс параметров процесса

Синтаксис Automation:
```
LPDISPATCH CreateProcessParam();
```
Синтаксис COM:
```
HRESULT CreateProcessParam([out, retval] IProcessParam** processParam);
Возвращаемое значение:
указатель на интерфейс IProcessParam    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Данный метод создает новые параметры процесса и возвращает их. Параметры будут удалены после их освобождения библиотекой, поэтому библиотека должна держать ссылку на параметры все время от начала до завершения их использования. При повторном вызове этого метода будут созданы новые параметры.


## CreatePropertyManager - Создать Панель свойств

Синтаксис Automation:
```
LPDISPATCH CreatePropertyManager (BOOL newManager);
```
Синтаксис COM:
```
HRESULT CreatePropertyManager([in, defaultvalue(FALSE)] VARIANT_BOOL newManager, [out, retval] IPropertyManager** propertyManager);
Входные параметры:
newManager    - тип создаваемой Панели свойств: TRUE - библиотечная (создаваемая библиотекой) панель свойств, FALSE - панель свойств процесса системы КОМПАС-3D.
Возвращаемое значение:
указатель на интерфейс IPropertyManager Панели свойств.
```
Примечание:
1. При получении интерфейса доступа к панели свойств процесса системы КОМПАС-3D будет возможно добавление собственных вкладок с элементами управления. Все остальные вкладки и их элементы управления будут недоступны.
2. Библиотечная (создаваемая библиотекой) панель свойств и/или создаваемые библиотекой вкладки на панели свойств процесса системы КОМПАС-3D будут удалены после освобождения библиотекой их интерфейса, поэтому библиотека должна держать ссылку на интерфейс панели свойств все время от начала до завершения ее использования.
3. При повторном вызове этого метода будет будет создана новая библиотечная (создаваемая библиотекой) панель свойств и/или создаваемые библиотекой вкладки на панели свойств процесса системы КОМПАС-3D.


## CurrentDirectory - Текущий каталог

Тип данных: BSTR
Синтаксис Automation:
```
CurrentDirectory = Object.CurrentDirectory    Получить свойство (* )
Object.CurrentDirectory = CurrentDirectory    Установить свойство (* )
CurrentDirectory = Object.GetCurrentDirectory()    Получить свойство(**)
Object.SetCurrentDirectory( CurrentDirectory )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_CurrentDirectory( &CurrentDirectory )    Получить свойство,
Object.put_CurrentDirectory( CurrentDirectory )    Установить свойство.
```
Примечание
При работе функций КОМПАС может изменяться текущий рабочий каталог приложения.
Свойство позволяет получить/установить текущий рабочий каталог.
Версия: Компас v20


## Dictionary - Словарь

Тип данных: указатель на интерфейс коллекции документов IKompasDictionary
Синтаксис Automation:
```
Dictionary = Object.Dictionary    Получить свойство(* )
Dictionary = Object.GetDictionary()    Получить свойство(**)
```
Синтаксис COM:
```
Object.get_Dictionary( &Dictionary )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Версия Компас v23


## Documents - Коллекция открытых документов в приложении

Тип данных: указатель на интерфейс коллекции документов IDocuments.
Синтаксис Automation:
```
Documents = iObject.Documents    Получить свойство(* )
Documents = iObject.GetDocuments()    Получить свойство(**)
```
Синтаксис COM:
```
iObject->get_Documents (&Documents)    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## EnableTaskAccess - Разрешить или запретить доступ к задаче со стороны пользователя

Тип данных: BOOL
Синтаксис Automation:
```
EnableTaskAccess = Object.EnableTaskAccess    Получить свойство (* )
Object.EnableTaskAccess = EnableTaskAccess    Установить свойство (* )
EnableTaskAccess = Object.GetEnableTaskAccess()    Получить свойство(**)
Object.SetEnableTaskAccess( EnableTaskAccess )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_EnableTaskAccess( &EnableTaskAccess )    Получить свойство,
Object.put_EnableTaskAccess( EnableTaskAccess )    Установить свойство.
Версия Компас v23
```


## ExecuteKompasCommand - Выполнить команду системы КОМПАС

Синтаксис Automation:
```
BOOL ExecuteKompasCommand (long commandID, BOOL post);
```
Синтаксис COM:
```
HRESULT ExecuteKompasCommand (long commandID, BOOL post, BOOL * retval);
Входные параметры:
commandID    - константа из перечисления ProcessTypeEnum или ksKompasCommandEnum.
post    - true - запуск команды через PostMessage, - false - через SendMessage.
Возвращаемое значение:
TRUE    - в случае удачи,
FALSE    - в случае ошибки.
```
Примечание:
1. Проверить доступность команды можно с помощью функции IApplication::IsKompasCommandEnable.
2. Проверить, нажата ли в данный момент кнопка команды, можно с помощью IApplication::IsKompasCommandCheck.


## ExtensionProgressBar - Интерфейс индикатора процесса

Тип данных: Указатель на интерфейс IProgressBarIndicator
Синтаксис Automation:
```
ExtensionProgressBar = Object.ExtensionProgressBar( Header, Description )    Получить свойство (* )
ExtensionProgressBar = Object.GetExtensionProgressBar( Header, Description )    Получить свойство(**)
```
Синтаксис COM:
```
Object.get_ExtensionProgressBar( Header, Description, &ExtensionProgressBar )    Получить свойство,
```
Примечание:
Свойство доступно только для чтения.
Данный прогрессбар имеет кнопку отмены, при нажатии на которую посылаются события ksKompasObjectNotify::KeyDown и ksKompasObjectNotify::KeyUp.
КOMPAS v24


## GetSystemVersion - Получить версию системы

Синтаксис Automation:
```
BOOL IsKompasCommandEnable (long commandID);
```
Синтаксис COM:
```
HRESULT GetSystemVersion( long * Major, long * Minor, long * Release, long * Build, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
iMajor    - старшее слово версии,
iMinor    - младшее слово версии,
iRelease    - номер выпуска внутри одной версии,
iBuild    - номер сборки внутри одного выпуска.
Версия КОМПАС v22
```


## HideMessage - Скрывать/показывать сообщения

Тип данных: константа из перечисления ksHideMessageEnum.
Синтаксис Automation:
```
ksHideMessageEnum HideMessage = Application.HideMessage    Получить свойство (* )
Application.HideMessage = HideMessage    Установить свойство (* )
ksHideMessageEnum HideMessage = Application.GetHideMessage()    Получить свойство(**)
Application.SetHideMessage (HideMessage)    Установить свойство (**)
```
Синтаксис COM:
```
HRESULT get_HideMessage (ksHideMessageEnum * pRes)    Получить свойство,
Application->put_HideMessage (HideMessage)    Установить свойство.
```
Примечание:
1. После использования флагов ksHideMessageYes или ksHideMessageNo в прикладной библиотеке необходимо предусматривать взведение флага ksShowMessage по завершении работы библиотеки или команды библиотеки. В противном случае сообщения останутся подавленными в визуальном режиме работы с системой КОМПАС.
2. Константа ksHideMessageYes позволяет выполнять перестроения документа, скрывая все запросы на перестроение.
3. Константа ksHideMessageNo позволяет не выполнять перестроения документа, скрывая все запросы на перестроение.
4. Для всех сообщений с одной кнопкой ОК константы ksHideMessageYes и ksHideMessageNo одинаковым образом скрывают сообщения с обработкой нажатия ОК.
5. Для всех запросов с выбором ДА и НЕТ константа ksHideMessageYes позволяет скрыть запрос с обработкой выбора варианта ДА, константа ksHideMessageNo позволяет скрыть запрос с обработкой выбора варианта НЕТ.
6. При открытии спецификации, когда отсутствует файл graphic.lyt, константы ksHideMessageYes и ksHideMessageNo позволяют скрыть запрос на выбор нового стиля с отказом от выбора нового стиля.
7. При открытии спецификации, когда имеется рассогласование с объектами, константа ksHideMessageYes позволяет скрыть запрос Обнаружено рассогласование между спецификацией и сборкой с выбором варианта Взять объект из сборки и скрыть запрос В сборке отсутствует объект с выбором варианта Восстановить в сборке. Константа ksHideMessageNo позволяет скрыть запрос Обнаружено рассогласование между спецификацией и сборкой с выбором варианта Взять объект из спецификации, и скрыть запрос В сборке отсутствует объект с выбором варианта Удалить из спецификации.
8. При открытии спецификации, когда отсутствует файл чертежа, связанного со спецификацией, константа ksHideMessageYes позволяет скрыть сообщение с удалением чертежа из спецификации, константа ksHideMessageNo позволяет скрыть сообщение без удаления чертежа из спецификации.
9. При открытии чертежа со вставкой внешних фрагментов, когда фрагменты отсутствуют, константа ksHideMessageYes позволяет скрыть запрос с обработкой выбора варианта удаления из чертежа отсутствующих фрагментов, константа ksHideMessageNo позволяет скрыть запрос с обработкой выбора варианта игнорировать отсутствующие фрагменты.
10. При открытии ассоциативного чертежа, когда файл модели, связанной с чертежом, отсутствует, константа ksHideMessageYes позволяет скрыть запрос с обработкой выбора варианта удаления из чертежа видов, связанных с отсутствующими моделями, константа ksHideMessageNo позволяет скрыть запрос с обработкой выбора варианта игнорировать отсутствующие модели.


## IsKompasCommandCheck - Проверить, нажата ли кнопка команды

Синтаксис Automation:
```
long IsKompasCommandCheck (long commandID);
```
Синтаксис COM:
```
HRESULT IsKompasCommandCheck (long commandID, long * retVal);
Входные параметры:
commandID    - константа из перечисления ProcessTypeEnum или ksKompasCommandEnum.
Возвращаемое значение:
1    - кнопка нажата,
0    - кнопка отжата.
```


## IsKompasCommandEnable - Проверить доступность выполнения команды

Синтаксис Automation:
```
BOOL IsKompasCommandEnable (long commandID);
```
Синтаксис COM:
```
HRESULT IsKompasCommandEnable (long commandID, BOOL * retVal);
Входные параметры:
commandID    - константа из перечисления ProcessTypeEnum или ksKompasCommandEnum.
Возвращаемое значение:
TRUE    - команда доступна,
FALSE    - команда недоступна.
```


## KompasError - Информация об ошибке системы КОМПАС

Тип данных: указатель на интерфейс IKompasError информации о ошибке системы КОМПАС.
Синтаксис Automation:
```
KompasError = iObject.KompasError    Получить свойство(* )
KompasError = iObject.GetKompasError()    Получить свойство(**)
```
Синтаксис COM:
```
iObject->get_KompasError (&KompasError)    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## LibraryManager - Менеджер библиотек

Тип данных: указатель на интерфейс ILibraryManager менеджера библиотек.
Синтаксис Automation:
```
LibraryManager = iObject.LibraryManager    Получить свойство(* )
LibraryManager = iObject.GetLibraryManager()    Получить свойство(**)
```
Синтаксис COM:
```
iObject->get_LibraryManager (&LibraryManager)    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## LibraryStyles - Стили из библиотеки

Тип данных: Указатель на интерфейс IStyles
Синтаксис Automation:
```
LibraryStyles = Object.LibraryStyles( Path, StylesType )    Получить свойство(* )
LibraryStyles = Object.GetLibraryStyles( Path, StylesType )    Получить свойство(**)
```
Синтаксис COM:
```
Object.get_LibraryStyles( Path, StylesType, &LibraryStyles )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## LockPumpMessages - Запретить прокачку сообщений

Тип данных: BOOL
Синтаксис Automation:
```
LockPumpMessages = Object.LockPumpMessages    Получить свойство (* )
Object.LockPumpMessages = LockPumpMessages    Установить свойство (* )
LockPumpMessages = Object.GetLockPumpMessages()    Получить свойство(**)
Object.SetLockPumpMessages( LockPumpMessages )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_LockPumpMessages( &LockPumpMessages )    Получить свойство,
Object.put_LockPumpMessages( LockPumpMessages )    Установить свойство.
Версия Компас v23
```


## MainWindowHandle - Возвращается дескриптор главного окна

Тип данных: OLE_HANDLE
Синтаксис Automation:
```
MainWindowHandle = Object.MainWindowHandle    Получить свойство(* )
MainWindowHandle = Object.GetMainWindowHandle()    Получить свойство(**)
```
Синтаксис COM:
```
Object.get_MainWindowHandle( &MainWindowHandle )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Свойство возвращает дескриптор главного окна, который используется функциями WINDOWS для работы с окнами.
Версия Компас v23


## Math2D - Интерфейс 2D математики

Тип данных: указатель на интерфейс IMath2D.
Синтаксис Automation:
```
Math2D = Object.Math2D    Получить свойство(* )
Math2D = Object.GetMath2D()    Получить свойство(**)
```
Синтаксис COM:
```
Object.get_Math2D( &Math2D )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## MessageBoxEx - Выдать всплывающее сообщение

Синтаксис Automation:
```
long MessageBoxEx( BSTR Text, BSTR Caption, long Flags )
```
Синтаксис COM:
```
HRESULT MessageBoxEx( BSTR Text, BSTR Caption, long Flags, long * Result );
Входные параметры:
Text    - текст сообщения,
Caption    - заголовок сообщения,
Flags    - флаги.
```
Примечание:
Параметр Flags и возвращаемое значение соответствует аналогичной функции WinApi MessageBox.
Дополнительно функция позволяет выдать всплывающее сообщение если в настройках Компас установлен признак Сервис->Параметры->Система->Общее->Всплывающие сообщения->Использовать всплывающие сообщения вместо информационных диалогов.
Сообщение выдается всплывающим, если используется комбинация флагов MB_OK | MB_ICONINFORMATION или MB_OK | MB_ICONWARNING.
Если установлены какие-либо другие флаги, то сообщение выдается как обычное сообщение типа MessageBox.
Если не задан заголовок сообщения, выдается умолчательный заголовок - «Сообщение библиотеки».
Если не задан текст сообщения, выдается сообщение о текущей ошибке аналогично функции MessageBoxResult.


## MessageDlg - Выдать модельное сообщение

Синтаксис Automation:
```
long MessageDlg( OLE_HANDLE Parent, BSTR Text, BSTR Caption, BSTR Explanation, long Flags, BSTR PositiveButton, BSTR NegativeButton, BSTR CancelButton, long HelpId, BSTR HelpFileName );
```
Синтаксис COM:
```
HRESULT MessageDlg( OLE_HANDLE Parent, BSTR Text, BSTR Caption, BSTR Explanation, long Flags, BSTR PositiveButton, BSTR NegativeButton, BSTR CancelButton, long HelpId, BSTR HelpFileName, long * Result );
Возвращаемое значение:
- идентификатор нажатой в диалоге кнопки.
Входные параметры:
Parent    - дескриптор родительского окна,
Text    - текст сообщения,
Caption    - заголовок,
Explanation    - дополнительный текст сообщения,
Flags    - флаги,
PositiveButton    - текст кнопки для позитивного результата,
NegativeButton    - текст кнопки для негативного результата,
CancelButton    - текст кнопки для отмены,
HelpId    - идентификатор справки,
HelpFileName    - имя файла справки.
```
Примечание:
1. Параметр Flags и возвращаемое значение соответствует аналогичной функции WinApi MessageBox.
2. Тексты кнопок не обязательные параметры.
3. Если тексты не заданы, используются названия кнопок по умолчанию.
4. Наличие кнопок в диалоге зависит от параметра Flags.


## PrintJob - Интерфейс задания на печать

Тип данных: указатель на интерфейс IPrintJob
Синтаксис Automation:
```
PrintJob = Object.PrintJob    Получить свойство(* )
PrintJob = Object.GetPrintJob()    Получить свойство(**)
```
Синтаксис COM:
```
Object.get_PrintJob( &PrintJob )    Получить свойство
Свойство позволяет получать интерфейс задания на печать.
```
Примечание:
Свойство доступно только для чтения.


## ProgressBarIndicator - Интерфейс индикатора прогресса

Тип данных: указатель на интерфейс IProgressBarIndicator.
Синтаксис Automation:
```
IProgressBarIndicator * ProgressBarIndicator = Application.ProgressBarIndicator    Получить свойство(* )
IProgressBarIndicator * ProgressBarIndicator = Application.GetProgressBarIndicator()    Получить свойство(**)
```
Синтаксис COM:
```
HRESULT get_ProgressBarIndicator (IProgressBarIndicator ** pRes)    Получить свойство
```


## PumpWaitingMessages - Обработать все сообщения

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


## Quit - Закрыть приложение

Синтаксис Automation:
```
void Quit();
```
Синтаксис COM:
```
HRESULT Quit();
```
Примечание:
Используется при работе из под внешнего контроллера.


## StopCurrentProcess - Остановить текущий процесс в документе

Синтаксис Automation:
```
void StopCurrentProcess (BOOL postMessage, LPDISPATCH pDoc);
```
Синтаксис COM:
```
HRESULT StopCurrentProcess([in, defaultvalue(FALSE)]VARIANT_BOOL postMessage, [in, defaultvalue(0)] IKompasDocument* pDoc);
Входные параметры:
postMessage    - способ остановки процесса,
pDoc    - указатель на интерфейс IKompasDocument, в котором требуется остановить процесс.
```
Примечание:
1. Если процесс требуется остановить немедленно, то параметр postMessage должен иметь значение FALSE, однако такая остановка не всегда возможна, например, остановка из обработчика события. В этом случае результат обработки события должен быть обработан процессом; процессу надо сообщить, чтобы он остановился после обработки события. Для этого параметру postMessage нужно установить значение TRUE.
2. Если параметру pDoc установлено значение 0, то процесс будет остановлен в текущем документе.


## SystemSettings - Интерфейс параметров системы

Тип данных: указатель на интерфейс ISystemSettings.
Синтаксис Automation:
```
ISystemSettings * SystemSettings = Application.SystemSettings    Получить свойство(* )
ISystemSettings * SystemSettings = Application.GetSystemSettings()    Получить свойство(**)
```
Синтаксис COM:
```
HRESULT get_SystemSettings (ISystemSettings ** pRes)    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## Visible - Видимость приложения

Тип данных: BOOL
Синтаксис Automation:
```
Visible = iObject.Visible    Получить свойство (* )
iObject.Visible = Visible    Установить свойство (* )
Visible = iObject.GetVisible()    Получить свойство(**)
iObject.SetVisible (Visible)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_Visible (&Visible)    Получить свойство,
iObject->put_Visible (Visible)    Установить свойство.
```
Примечание:
Позволяет получить и установить свойство видимости приложения КОМПАС-3D.


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

Интерфейс коллекции манипуляторов.
Иерархия:
IDispatch
IKompasAPIObject
IKompasCollection
IManipulators
Событие ksProcess3DManipulatorsNotify
Примечание
Получить интерфейс коллекции манипуляторов можно, используя свойство процесса 3D IProcess3D::Manipulators.
KOMPAS v19


## Add - Создать манипулятор (добавляет контрол в коллекцию)

Синтаксис Automation:
```
LPDISPATCH Add( ksManipulatorTypeEnum Type );
```
Синтаксис COM:
```
HRESULT Add( ksManipulatorTypeEnum Type, IBaseManipulator * * Result );
Возвращаемое значение:
- Указатель на интерфейс IBaseManipulator.
Входные параметры:
Type    - Способ разбиения зоны из перечисления ksManipulatorTypeEnum.
```
Примечания:
Метод позволяет создать новый базовый интерфейс манипулятора.


## Item - Возвращает манипулятор, заданный по индексу

Тип данных: Указатель на интерфейс IBaseManipulator
Синтаксис Automation:
```
Item = Object.Item( Index )    Получить свойство(* )
Item = Object.GetItem( Index )    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Item( Index, &Item )    Получить свойство
Входные параметры:
Index    - Идентификатор манипулятора.
```
Примечание:
Свойство доступно только для чтения.


## Manipulator - Возвращает манипулятор с заданным идентификатором

Тип данных: Указатель на интерфейс IBaseManipulator
Синтаксис Automation:
```
Manipulator = Object.Manipulator( Id )    Получить свойство(* )
Manipulator = Object.GetManipulator( Id )    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Manipulator( Id, &Manipulator )    Получить свойство
Входные параметры:
Id    - Идентификатор манипулятора.
```
Примечание:
Свойство доступно только для чтения.


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

Базовый интерфейс манипулятора.
Иерархия:
IDispatch
IBaseManipulator
Примечание:
Интерфейс можно получить с помощью метода коллекции манипуляторов IManipulators::Add
KOMPAS v19


## Active - Активный манипулятор

Тип данных: BOOL
Синтаксис Automation:
```
Active = Object.Active    Получить свойство(* )
Object.Active = Active    Установить свойство (* )
Active = Object.GetActive()    Получить свойство (**)
Object.SetActive( Active )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Active( &Active )    Получить свойство
Object.put_Active( Active )    Установить свойство
```


## Create - Создать манипулятор

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


## Delete - Удалить манипулятор

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


## Id - Идентификатор манипулятора

Тип данных: long
Синтаксис Automation:
```
Id = Object.Id    Получить свойство(* )
Object.Id = Id    Установить свойство (* )
Id = Object.GetId()    Получить свойство (**)
Object.SetId( Id )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Id( &Id )    Получить свойство
Object.put_Id( Id )    Установить свойство
```
Примечание:
Для корректной рассылки событий манипуляторов каждому манипулятору требуется задать уникальный ненулевой номер.


## ManipulatorType - Тип манипулятора

Тип данных: из перечисления ksManipulatorTypeEnum
Синтаксис Automation:
```
ManipulatorType = Object.ManipulatorType    Получить свойство(* )
ManipulatorType = Object.GetManipulatorType()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_ManipulatorType( &ManipulatorType )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## Placement - Получить локальную систему координат

Тип данных: Указатель на интерфейс IPlacement3D
Синтаксис Automation:
```
Placement = Object.Placement    Получить свойство(* )
Placement = Object.GetPlacement()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Placement( &Placement )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## UpdatePlacement - Установить локальную систему координат

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


## Visible - Свойство видимости манипулятора

Тип данных: BOOL
Синтаксис Automation:
```
Visible = Object.Visible    Получить свойство(* )
Object.Visible = Visible    Установить свойство (* )
Visible = Object.GetVisible()    Получить свойство (**)
Object.SetVisible( Visible )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Visible( &Visible )    Получить свойство
Object.put_Visible( Visible )    Установить свойство
```


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

Интерфейс манипулятора - редактора вещественного значения.
Иерархия:
IDispatch
IBaseManipulator
IEditDoubleManipulator
Примечание
•Манипулятор позволяет вводить вещественное значение в 3D процессе.
•Интерфейс можно получить, добавив манипулятор через коллекцию манипуляторов IManipulators::Add.
•Интерфейс является дополнительным для IBaseManipulator.
Версия: KOMPAS v19


## EditValue - Текущее значение в редакторе

Тип данных: double
Синтаксис Automation:
```
EditValue = Object.EditValue    Получить свойство (* )
Object.EditValue = EditValue    Установить свойство (* )
EditValue = Object.GetEditValue()    Получить свойство (**)
Object.SetEditValue( EditValue )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_EditValue( &EditValue )    Получить свойство
Object.put_EditValue( EditValue )    Установить свойство
```


## IsEditCreated - Создан редактор с установленным фокусом

Тип данных: BOOL
Синтаксис Automation:
```
IsEditCreated = Object.IsEditCreated    Получить свойство (* )
IsEditCreated = Object.GetIsEditCreated()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsEditCreated( &IsEditCreated )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## SetValueRange - Установить новые ограничения на значение

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


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

Интерфейс манипулятора системы координат.
Иерархия:
IDispatch
IBaseManipulator
IPlacement3DManipulator
Примечание
Манипулятор позволяет указать положение при работе в 3D.
Интерфейс можно получить, добавив манипулятор через коллекцию манипуляторов IManipulators::Add.
Интерфейс является дополнительным для IBaseManipulator.
Версия: KOMPAS v19


## EditValue - Текущее значение в редакторе

Тип данных: double
Синтаксис Automation:
```
EditValue = Object.EditValue    Получить свойство (* )
Object.EditValue = EditValue    Установить свойство (* )
EditValue = Object.GetEditValue()    Получить свойство (**)
Object.SetEditValue( EditValue )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_EditValue( &EditValue )    Получить свойство
Object.put_EditValue( EditValue )    Установить свойство
```


## IsEditCreated - Создан редактор с установленным фокусом

Тип данных: BOOL
Синтаксис Automation:
```
IsEditCreated = Object.IsEditCreated    Получить свойство (* )
IsEditCreated = Object.GetIsEditCreated()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsEditCreated( &IsEditCreated )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## Mode - Режим работы манипулятора

Тип данных: long
Синтаксис Automation:
```
Mode = Object.Mode    Получить свойство (* )
Object.Mode = Mode    Установить свойство (* )
Mode = Object.GetMode()    Получить свойство (**)
Object.SetMode( Mode )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Mode( &Mode )    Получить свойство
Object.put_Mode( Mode )    Установить свойство
```


## PrimitiveDisabled - Запрет изменения

Тип данных: BOOL
Синтаксис Automation:
```
PrimitiveDisabled = Object.PrimitiveDisabled( Primitive )    Получить свойство (* )
Object.PrimitiveDisabled( Primitive ) = PrimitiveDisabled    Установить свойство (* )
PrimitiveDisabled = Object.GetPrimitiveDisabled( Primitive )    Получить свойство (**)
Object.SetPrimitiveDisabled( Primitive, PrimitiveDisabled )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_PrimitiveDisabled( Primitive, &PrimitiveDisabled )    Получить свойство
Object.put_PrimitiveDisabled( Primitive, PrimitiveDisabled )    Установить свойство
Входные параметры:
ksManipulatorPrimitiveEnum Primitive    - тип примитива манипулятора.
```


## PrimitiveSelected - Селектированный элемент манипулятора

Тип данных: из перечисления ksManipulatorPrimitiveEnum
Синтаксис Automation:
```
PrimitiveSelected = Object.PrimitiveSelected    Получить свойство (* )
Object.PrimitiveSelected = PrimitiveSelected    Установить свойство (* )
PrimitiveSelected = Object.GetPrimitiveSelected    Получить свойство (**)
Object.SetPrimitiveSelected( PrimitiveSelected )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_PrimitiveSelected( &PrimitiveSelected )    Получить свойство
Object.put_PrimitiveSelected( PrimitiveSelected )    Установить свойство
```


## PrimitiveVisible - Свойство видимости элементов манипулятора

Тип данных: BOOL
Синтаксис Automation:
```
PrimitiveVisible = Object.PrimitiveVisible( Primitive )    Получить свойство (* )
Object.PrimitiveVisible( Primitive ) = PrimitiveVisible    Установить свойство (* )
PrimitiveVisible = Object.GetPrimitiveVisible( Primitive )    Получить свойство (**)
Object.SetPrimitiveVisible( Primitive, PrimitiveVisible )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_PrimitiveVisible( Primitive, &PrimitiveVisible )    Получить свойство
Object.put_PrimitiveVisible( Primitive, PrimitiveVisible )    Установить свойство
Входные параметры:
ksManipulatorPrimitiveEnum Primitive    - тип примитива манипулятора.
```


## ReadOnly - Запрет изменений

Тип данных: BOOL
Синтаксис Automation:
```
ReadOnly = Object.ReadOnly    Получить свойство (* )
Object.ReadOnly = ReadOnly    Установить свойство (* )
ReadOnly = Object.GetReadOnly()    Получить свойство (**)
Object.SetReadOnly( ReadOnly )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_ReadOnly( &ReadOnly )    Получить свойство
Object.put_ReadOnly( ReadOnly )    Установить свойство
```


## RotateStep - Шаг поворота манипулятора вокруг оси

Тип данных: double
Синтаксис Automation:
```
RotateStep = Object.RotateStep    Получить свойство (* )
Object.RotateStep = RotateStep    Установить свойство (* )
RotateStep = Object.GetRotateStep()    Получить свойство (**)
Object.SetRotateStep( RotateStep )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_RotateStep( &RotateStep )    Получить свойство
Object.put_RotateStep( RotateStep )    Установить свойство
```


## SetRotateRange - Установить диапазон для поворота манипулятора

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


## SetShiftRange - Установить диапазон для сдвига манипулятора

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


## ShiftStep - Шаг сдвига манипулятора

Тип данных: double
Синтаксис Automation:
```
ShiftStep = Object.ShiftStep    Получить свойство (* )
Object.ShiftStep = ShiftStep    Установить свойство (* )
ShiftStep = Object.GetShiftStep()    Получить свойство (**)
Object.SetShiftStep( ShiftStep )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_ShiftStep( &ShiftStep )    Получить свойство
Object.put_ShiftStep( ShiftStep )    Установить свойство
```


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

Параметры отображения точки, позволяющей определить место применения контрола.
Иерархия:
IDispatch
IKompasAPIObject
IMouseEnterLeaveParameters7
Примечание:
Интерфейс параметров используется в событии ksProcess2DNotify::GetMouseEnterLeavePoint.
Версия: KOMPAS v19


## Offset - Смещение символа относительно точки

Тип данных: double
Синтаксис Automation:
```
Offset = Object.Offset    Получить свойство (* )
Object.Offset = Offset    Установить свойство (* )
Offset = Object.GetOffset()    Получить свойство (**)
Object.SetOffset(Offset)    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Offset( &Offset )    Получить свойство
Object.put_Offset(Offset)    Установить свойство
```


## OffsetAngle - Направление смещения символа относительно точки (угол радианах)

Тип данных: double
Синтаксис Automation:
```
OffsetAngle = Object.OffsetAngle    Получить свойство (* )
Object.OffsetAngle = OffsetAngle    Установить свойство (* )
OffsetAngle = Object.GetOffsetAngle()    Получить свойство (**)
Object.SetOffsetAngle(OffsetAngle)    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_OffsetAngle( &OffsetAngle )    Получить свойство
Object.put_OffsetAngle(OffsetAngle)    Установить свойство
```


## Symbol - Символ, отображаемый в поле документа, при наведении на контрол

Тип данных: long
Синтаксис Automation:
```
Symbol = Object.Symbol    Получить свойство (* )
Object.Symbol = Symbol    Установить свойство (* )
Symbol = Object.GetSymbol()    Получить свойство (**)
Object.SetSymbol(Symbol)    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Symbol( &Symbol )    Получить свойство
Object.put_Symbol(Symbol)    Установить свойство
```


## SymbolColor - Цвет символа, отображаемого в поле документа, при наведении на контрол

Тип данных: long
Синтаксис Automation:
```
SymbolColor = Object.SymbolColor    Получить свойство (* )
Object.SymbolColor = SymbolColor    Установить свойство (* )
SymbolColor = Object.GetSymbolColor ()    Получить свойство (**)
Object.SetSymbolColor (SymbolColor )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_SymbolColor ( &SymbolColor )    Получить свойство
Object.put_SymbolColor (SymbolColor )    Установить свойство
```


## SymbolFont - Шрифт символа, отображаемого в поле документа, при наведении на контрол

Тип данных: BSTR
Синтаксис Automation:
```
SymbolFont = Object.SymbolFont    Получить свойство (* )
Object.SymbolFont = SymbolFont    Установить свойство (* )
SymbolFont = Object.GetSymbolFont ()    Получить свойство (**)
Object.SetSymbolFont (SymbolFont )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_SymbolFont ( &SymbolFont )    Получить свойство
Object.put_SymbolFont (SymbolFont )    Установить свойство
```


## SymbolScale - Увеличение высоты символа, отображаемого в поле документа, при наведении на контрол

Тип данных: double
| SymbolScale = Object.SymbolScale | Получить свойство (* ) |
| --- | --- |
| Object.SymbolScale = SymbolScale | Установить свойство (* ) |
| SymbolScale = Object.GetSymbolScale () | Получить свойство (**) |
| Object.SetSymbolScale (SymbolScale ) | Установить свойство (**) |
Синтаксис COM:
```
Object.get_SymbolScale ( &SymbolScale )    Получить свойство
Object.put_SymbolScale (SymbolScale )    Установить свойство
```


## X - Координата X

Тип данных: double
Синтаксис Automation:
```
X = Object.X    Получить свойство (* )
Object.X = X    Установить свойство (* )
X = Object.GetX()    Получить свойство (**)
Object.SetX(X)    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_X( &X )    Получить свойство
Object.put_X( X )    Установить свойство
```


## Y - Координата Y

Тип данных: double
Синтаксис Automation:
```
Y = Object.Y    Получить свойство (* )
Object.Y = Y    Установить свойство (* )
Y = Object.GetY()    Получить свойство (**)
Object.SetY(Y)    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Y( &Y )    Получить свойство
Object.put_Y( Y )    Установить свойство
```


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

Параметры конвертации при сохранении в предыдущую версию.
Иерархия:
IDispatch
ISaveToPreviusParam7
Версия: KOMPAS v19


## AddOption - Добавить настройку конвертации с возможностью выбора варианта конвертации

Синтаксис Automation:
```
BOOL AddOption( BSTR UniqueId, BSTR OptionName, VARIANT Options, BSTR DefaultValue );
```
Синтаксис COM:
```
HRESULT AddOption( BSTR UniqueId, BSTR OptionName, VARIANT Options, BSTR DefaultValue, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения.
Входные параметры:
UniqueId    - уникальный идентификатор,
OptionName    - отображаемое имя свойства,
Options    - список возможных значений (массив строк SafeArray VT_ARRAY    VT_BSTR),
DefaultValue    - базовое значение.
```


## AddWarning - Добавить предупреждение

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


## GetCurrentOptionValue - Получить текущее значение, выбранное в диалоге параметров конвертации

Синтаксис Automation:
```
BSTR GetCurrentOptionValue( BSTR UniqueId );
```
Синтаксис COM:
```
HRESULT GetCurrentOptionValue( BSTR UniqueId, BSTR * Result );
Возвращаемое значение:
- Текущее значение свойства.
Входные параметры:
UniqueId    - уникальный идентификатор.
```


## ISaveToPreviusParam7- методы

AddOption - Добавить настройку конвертации с возможностью выбора варианта конвертации
AddWarning - Добавить предупреждение
GetCurrentOptionValue - Получить текущее значение, выбранное в диалоге параметров конвертации
