Files
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

19 KiB
Raw Permalink Blame History

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