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

15 KiB
Raw Blame History

title, type, api, tags, sources
title type api tags sources
Интерфейс событий приложения ksKompasObjectNotify/IKompasObjectNotify interface
api5
interface
api5
kskompasobjectnotify5
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. Индекс события задан в перечислении событий приложения....