Files
kompas3d-mcp/docs/Kompas3D_SDK/interfaces/kskompasobjectnotify5.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

319 lines
15 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: [api5]
tags: [interface, api5, kskompasobjectnotify5]
sources:
- kskompasobjectnotify5.html
---
*API интерфейсов. Версия 5 > Интерфейсы событий API5  > События в КОМПАС Общие сведения *
## Интерфейс событий приложения ksKompasObjectNotify/IKompasObjectNotify
| ksKompasObjectNotify | - интерфейс Automation |
| --- | --- |
| IKompasObjectNotify | - интерфейс COM |
Позволяют контролировать состояние приложения.
В Automation источником событий для подписки являются:
•для API интерфейсов версии 5 - объект KompasObject.
•для API интерфейсов версии 7 - объект IApplication.
В СOM источника нет.
ksKompasObjectNotify, IKompasObjectNotify - события
ksKompasObjectNotify/ IKompasObjectNotify - методы
## ApplicationDestroy - Закрытие приложения
Синтаксис Automation:
```
BOOL ApplicationDestroy();
Возвращаемое значение:
- Не используется.
```
Синтаксис COM:
```
BOOL ApplicationDestroy();
Возвращаемое значение:
- Не используется.
```
Примечание:
1. Источником события является интерфейс KompasObject.
2. Индекс события задан в перечислении событий приложения....
3. При обработке данного события необходимо отписаться от всех событий. Библиотека должна сама следить за отпиской событий.
## BeginCloseAllDocument - Начало закрытия всех открытых документов
Синтаксис Automation:
```
BOOL BeginCloseAllDocument();
```
Синтаксис COM:
```
BOOL BeginCloseAllDocument();
Возвращаемое значение:
TRUE - закрытие всех открытых документов,
FALSE - закрытие всех открытых документов запрещено.
```
Примечание:
Индекс события задан в перечислении событий приложения....
## BeginCreate - Начало создания документа (до диалога выбора типа)
Синтаксис Automation:
```
BOOL BeginCreate (long docType);
```
Синтаксис COM:
```
BOOL BeginCreate (long docType);
Входные параметры:
docName - тип документа,
0 - если пользователь запросил диалог создания документа.
Возвращаемое значение:
TRUE - создать документ,
FALSE - создание документа запрещено.
```
Примечание:
Источником события является интерфейс KompasObject.
## 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. Индекс события задан в перечислении событий приложения....
## 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. Индекс события задан в перечислении событий приложения....
## IsNotIifyProcess - Ограничение обрабатываемых событий
Синтаксис Automation:
```
Не используется.
```
Синтаксис COM:
```
BOOL IsNotifyProcess (int notifyType);
Входной параметр:
notifyType - номер события в перечислении событий.
Возвращаемое значение:
TRUE - событие будет обрабатываться,
FALSE - событие обрабатываться не будет.
```
Примечание:
В COM перед любым вызовом события система сделает запрос о возможности его обработки с использованием данного метода. Библиотека сама может ограничивать обрабатываемые события.
## 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. Индекс события задан в перечислении событий приложения....
Если syskey = false, была нажата обычная клавиша, что соответствует событию wm_keyup, если syskey = true, была нажата системная клавиша, что соответствует событию wm_syskeyup.
2. Если библиотека обработала событие нажатия клавиши и нужно запретить обработку события другими подписчиками, то нужно обнулить код клавиши т.е. *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_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. Индекс события задан в перечислении событий приложения....