e1337e4016
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>
396 lines
19 KiB
Markdown
396 lines
19 KiB
Markdown
---
|
||
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. Индекс события задан в перечислении событий приложения....
|