Files
kompas3d-mcp/docs/Kompas3D_SDK/interfaces/kskompasobjectnotify.md
T
mikhail e1337e4016 feat(sdk-docs): MD-база знаний SDK — в репозиторий; генератор и зеркало убраны
docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK
и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало
docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор
tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается.

- .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным
  (safety-net на случай повторной локальной выгрузки).
- CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 20:00:05 +03:00

396 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Интерфейс ksKompasObjectNotify/IKompasObjectNotify"
type: interface
api: [api7]
tags: [interface, api7, kskompasobjectnotify]
sources:
- kskompasobjectnotify.html
---
*API интерфейсов. Версия 7 > Интерфейсы событий *
## Интерфейс ksKompasObjectNotify/IKompasObjectNotify
| ksKompasObjectNotify | - интерфейс Automation |
| --- | --- |
| IKompasObjectNotify | - интерфейс COM |
Интерфейс событий приложения.
Позволяют контролировать состояние приложения.
В Automation источником событий для подписки являются:
•для API интерфейсов версии 5 - объект KompasObject.
•для API интерфейсов версии 7 - объект IApplication.
В СOM источника нет.
## ApplicationDestroy - Закрытие приложения
Синтаксис Automation:
```
BOOL ApplicationDestroy();
Возвращаемое значение:
- Не используется.
```
Синтаксис COM:
```
BOOL ApplicationDestroy();
Возвращаемое значение:
- Не используется.
```
Примечание:
1. Источником события является интерфейс KompasObject.
2. Индекс события задан в перечислении событий приложения....
3. При обработке данного события необходимо отписаться от всех событий. Библиотека должна сама следить за отпиской событий.
## BeginCloseAllDocument - Начало закрытия всех открытых документов
Синтаксис Automation:
```
BOOL BeginCloseAllDocument();
```
Синтаксис COM:
```
BOOL BeginCloseAllDocument();
Возвращаемое значение:
TRUE - закрытие всех открытых документов,
FALSE - закрытие всех открытых документов запрещено.
```
Примечание:
Индекс события задан в перечислении событий приложения....
## BeginConvertToSavePrevious - Начало конвертации документа перед записью в предыдущую версию
Синтаксис Automation:
```
BOOL BeginConvertToSavePrevious( LPDISPATCH pDoc, long docType, long saveVersion, LPDISPATCH saveToPreviusParam );
```
Синтаксис COM:
```
BOOL BeginConvertToSavePrevious( long pDoc, long docType, long saveVersion, LPUNKNOWN saveToPreviusParam );
Возвращаемое значение:
- Не используется.
Входные параметры:
pDoc - документ,
docType - тип документа.
saveVersion - версия сохранения документа из перечисления ksSaveDocumentVersionEnum,
saveToPreviusParam - параметры конвертации при сохранении в предыдущую версию ISaveToPreviusParam\ksSaveToPreviusParam.
```
## BeginCreate - Начало создания документа (до диалога выбора типа)
Синтаксис Automation:
```
BOOL BeginCreate (long docType);
```
Синтаксис COM:
```
BOOL BeginCreate (long docType);
Входные параметры:
docName - тип документа,
0 - если пользователь запросил диалог создания документа.
Возвращаемое значение:
TRUE - создать документ,
FALSE - создание документа запрещено.
```
Примечание:
Источником события является интерфейс KompasObject.
## BeginDragOpenFiles - Открытие файлов перетаскиванием в окно Компас
Синтаксис Automation:
```
BOOL BeginDragOpenFiles( VARIANT * filesList, BOOL insert, BOOL * filesListChanged );
```
Синтаксис COM:
```
BOOL BeginDragOpenFiles( VARIANT * filesList, BOOL insert, BOOL * filesListChanged );
Возвращаемое значение:
TRUE - использовать стандартный механизм открытия\вставки файлов,
FALSE - библиотека самостоятельно обработала список файлов или запретила действия с данными файлами.
Входные параметры:
filesList - список файлов,
insert TRUE - выполняется вставка файлов в сборку, FALSE - выполняется открытие файлов.
Выходные параметры:
filesList - список файлов (библиотека может изменить список файлов),
filesListChanged - признак изменения списка файлов.
```
## BeginOpenDocument - Начало открытия документа
Синтаксис Automation:
```
BOOL BeginOpenDocument (BSTR docName);
Входные параметры:
docName - имя файла документа.
Возвращаемое значение:
TRUE - открыть документ,
FALSE - не открывать документ.
```
Синтаксис COM:
```
BOOL BeginOpenDocument (char * docName);
Входные параметры:
docName - имя файла документа.
Возвращаемое значение:
TRUE - открыть документ,
FALSE - не открывать документ.
```
Примечание:
1. Источником события является интерфейс KompasObject.
2. Индекс события задан в перечислении событий приложения....
## BeginOpenFile - Начало открытия документа (до диалога выбора имени)
Синтаксис Automation:
```
BOOL BeginOpenFile();
```
Синтаксис COM:
```
BOOL BeginOpenFile();
Возвращаемое значение:
TRUE - вызвать диалог открытия документа,
FALSE - вызов диалога открытия документа запрещен.
```
Примечание:
Индекс события задан в перечислении событий приложения....
## BeginRequestFiles - Запрос имен файлов
Синтаксис Automation:
```
BOOL BeginRequestFiles( long requestID, VARIANT * files );
```
Синтаксис COM:
```
BOOL BeginRequestFiles( long requestID, VARIANT * files );
Входные параметры:
requestID - тип запроса файлов из перечисления ksRequestFilesTypeEnum.
Выходные параметры:
files - имя файла или список SafeArray файлов.
Возвращаемое значение:
TRUE - использовать стандартный диалог выбора файлов,
FALSE - если список файлов задан - использовать файл или файлы из списка, если список файлов не задан - отмена выбора файлов.
```
Примечание:
1. Если выбран один файл, то в VARIANT его имя можно положить как строку, тип VARIANT-а - VT_BSTR. Если выбрано несколько файлов, то их имена в VARIANT нужно положить как массив строк тип VARIANT-а - VT_ARRAY | VT_BSTR.
2. Возможность множественного выбора и допустимые расширения файлов зависят от типа запроса файлов.
3. В данных событиях, в отличие от других событий начала какого либо действия, требуется обработка трех состояний:
•отказ пользователя или обработка события выполнена полностью на стороне библиотеки - событие возвращает FALSE;
•событие возвращает TRUE и имя файла для продолжения выполнения команды - процесс продолжается без запуска диалога выбора файла или файлов;
•событие возвращает TRUE, но имя файла не возвращается - запускается стандартный диалог выбора файла из системы КОМПАС.
## ChangeActiveDocument - Переключение на другой активный документ
Синтаксис Automation:
```
BOOL ChangeActiveDocument (LPDISPATCH pDoc, long docType);
Входные параметры:
pDoc - указатель на интерфейс IDispatch открытого документа,
docType - тип документа DocType.
Возвращаемое значение:
- Не используется.
```
Синтаксис COM:
```
BOOL ChangeActiveDocument(long pDoc, int docType);
Входные параметры:
pDoc - указатель на открытый документ,
docType - тип документа DocType.
Возвращаемое значение:
- Не используется.
```
Примечание:
1. Источником события является интерфейс KompasObject.
2. Индекс события задан в перечислении событий приложения....
## ChangeTheme - Событие изменения темы
Версия: КОМПАС v18
Синтаксис Automation:
```
BOOL ChangeTheme( long newTheme );
```
Синтаксис COM:
```
BOOL ChangeTheme( long newTheme );
Возвращаемое значение:
- Не используется.
Входные параметры
newTheme - новая тема из перечисления ksThemeEnum.
```
## CreateDocument - Документ создан
Синтаксис Automation:
```
BOOL CreateDocument (LPDISPATCH pDoc, long docType);
Входные параметры:
pDoc - указатель на интерфейс IDispatch созданного документа,
docType - тип документа DocType.
Возвращаемое значение:
- Не используется.
```
Синтаксис COM:
```
BOOL CreateDocument (long pDoc, int docType);
Входные параметры:
pDoc - указатель на созданный документ,
docType - тип документа DocType.
Возвращаемое значение:
- Не используется.
```
Примечание:
1. Источником события является интерфейс KompasObject.
2. Индекс события задан в перечислении событий приложения....
## EndConvertToSavePrevious - Завершение конвертации документа перед записью в предыдущую верcию
Синтаксис Automation:
```
BOOL EndConvertToSavePrevious( LPDISPATCH pDoc, long docType, long saveVersion, LPDISPATCH saveToPreviusParam );
```
Синтаксис COM:
```
BOOL EndConvertToSavePrevious( long pDoc, long docType, long saveVersion, LPUNKNOWN saveToPreviusParam );
Возвращаемое значение:
- Не используется.
Входные параметры
pDoc - документ,
docType - тип документа,
saveVersion - версия сохранения документа из перечисления ksSaveDocumentVersionEnum,
saveToPreviusParam - параметры конвертации при сохранении в предыдущую версию ISaveToPreviusParam\ksSaveToPreviusParam.
```
## IsNeedConvertToSavePrevious - Начало сохранения документа в предыдущую верcию
Синтаксис Automation:
```
BOOL IsNeedConvertToSavePrevious( LPDISPATCH pDoc, long docType, long saveVersion, LPDISPATCH saveToPreviusParam, BOOL * needConvert );
```
Синтаксис COM:
```
BOOL IsNeedConvertToSavePrevious( long pDoc, long docType, long saveVersion, LPUNKNOWN saveToPreviusParam, BOOL * needConvert );
Возвращаемое значение:
- Не используется.
Входные параметры
pDoc - документ,
docType - тип документа,
saveVersion - версия сохранения документа из перечисления ksSaveDocumentVersionEnum,
saveToPreviusParam - параметры конвертации при сохранении в предыдущую версию ISaveToPreviusParam\ksSaveToPreviusParam.
Выходной параметр:
needConvert - требуется вернуть TRUE, если для сохранения в предыдущую версию требуется конвертация документа.
```
## KeyDown - Клавиша нажата и удерживается нажатой
Синтаксис Automation:
```
BOOL KeyDown (long * key, long flags, BOOL sysKey);
```
Синтаксис COM:
```
BOOL KeyDown( long * key, long flags, BOOL sysKey);
Входные параметры:
key - код нажатой клавиши,
flags - флаг клавиатуры,
sysKey - признак нажатия системной клавиши.
Выходные параметры:
key - измененный код нажатой клавиши.
Возвращаемое значение:
TRUE - разрешить обработку нажатой клавиши,
FALSE - запретить обработку нажатой клавиши.
```
Примечание:
1. Индекс события задан в перечислении событий приложения...
2. Благодаря автоматическому повторению кода клавиши при удержанию ее нажатой, до появления события wm_keyup может выдаваться несколько событий wm_keydown. Значение разряда 30 параметра flags позволяет определить, было ли событие wm_keydown первым или является повторным во время удержания клавиши нажатой.
3. Если библиотека обработала событие нажатия клавиши и нужно запретить обработку события другими подписчиками, то нужно обнулить код клавиши т.е. *key = 0 и вернуть FALSE, если нужно запретить обработку события системой КОМПАС.
## KeyPress - Одиночное нажатие клавиши
Синтаксис Automation:
```
BOOL KeyPress (long * key, BOOL sysKey);
```
Синтаксис COM:
```
BOOL KeyPress (long * key, BOOL sysKey);
Входные параметры:
key - код нажатой клавиши,
flags - флаг клавиатуры,
sysKey - признак нажатия системной клавиши.
Выходные параметры:
key - измененный код клавиши.
Возвращаемое значение:
TRUE - разрешить обработку нажатой клавиши,
FALSE - запретить обработку нажатой клавиши.
```
Примечание:
1. Индекс события задан в перечислении событий приложения....
2. Если syskey = false, была нажата обычная клавиша, что соответствует событию WM_KEYUP, если SYSKEY = true, была нажата системная клавиша, что соответствует событию WM_SYSKEYUP.
3. Если библиотека обработала событие нажатия клавиши и нужно запретить обработку события другими подписчиками, то нужно обнулить код клавиши т.е. *key = 0 и вернуть FALSE, если нужно запретить обработку события системой КОМПАС.
## KeyUp - Клавиша отпущена
Синтаксис Automation:
```
BOOL KeyUp (long * key, long flags, BOOL sysKey);
```
Синтаксис COM:
```
BOOL KeyUp (long * key, long flags, BOOL sysKey);
Входные параметры:
key - код нажатой клавиши,
flags - флаг клавиатуры,
sysKey - признак нажатия системной клавиши.
Выходные параметры:
key - измененный код нажатой клавиши.
Возвращаемое значение:
TRUE - разрешить обработку нажатой клавиши,
FALSE - запретить обработку нажатой клавиши.
```
Примечание:
1. Индекс события задан в перечислении событий приложения....
2. Если syskey = false, была нажата обычная клавиша, что соответствует событию wm_keyup, если syskey = true, была нажата системная клавиша, что соответствует событию WM_KEYUP, если SYSKEY = true, была нажата системная клавиша, что соответствует событию WM_SYSKEYUP.
3. Если библиотека обработала событие нажатия клавиши и нужно запретить обработку события другими подписчиками, то нужно обнулить код клавиши т.е. *key = 0 и вернуть FALSE, если нужно запретить обработку события системой КОМПАС.
## OpenDocument - Документ открыт
Синтаксис Automation:
```
BOOL OpenDocument (LPDISPATCH pDoc, long docType);
Входные параметры:
pDoc - указатель на интерфейс IDispatch открытого документа,
docType - тип документа DocType.
Возвращаемое значение:
- Не используется.
```
Синтаксис COM:
```
BOOL OpenDocument(long pDoc, int docType);
Входные параметры:
pDoc - указатель на открытый документ,
docType - тип документа DocType.
Возвращаемое значение:
- Не используется.
```
Примечание:
1. Источником события является интерфейс KompasObject.
2. Индекс события задан в перечислении событий приложения....