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>
449 lines
23 KiB
Markdown
449 lines
23 KiB
Markdown
---
|
||
title: "Запрос к системе (Интерфейс ksRequestInfo)"
|
||
type: interface
|
||
api: [api7]
|
||
domain: [2d]
|
||
tags: [interface, api7, 2d, ksrequestinfo]
|
||
sources:
|
||
- ksrequestinfo.html
|
||
---
|
||
|
||
*API интерфейсов. Версия 5 > Графический документ (Интерфейсы - ksDocument2D и IDocument2D) > Интерфейсы видов, слоев, запроса к системе *
|
||
|
||
|
||
## Запрос к системе (Интерфейс ksRequestInfo)
|
||
|
||
Интерфейс параметров запроса к системе.
|
||
Аналог данных параметров при использовании API экспортных функций - RequestInfo.
|
||
Примечания:
|
||
1. Данный интерфейс позволяет установить параметры процесcов:
|
||
ksDocument2D::ksCursor;
|
||
ksDocument2D::ksPlacement;
|
||
ksDocument2D::ksCommandWindow.
|
||
2. Методами данного интерфейса можно получить/изменить:
|
||
•строку или идентификатор строки приглашения,
|
||
•строку или идентификатор строки заголовка окна,
|
||
•строку меню или идентификатор меню состава команд,
|
||
•строку с именем стандартного курсора или идентификатор курсора,
|
||
•признак динамического запроса,
|
||
•идентификатор приложения (dll), в котором размещены ресурсы процесса,
|
||
•функцию обратной связи процесса.
|
||
3. Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.
|
||
4. В случае динамического запроса функция обратной связи вызывается по перемещению курсора. В случае статического запроса функция обратной связи вызывается по щелчку мыши.
|
||
Смотрите также: KompasObject
|
||
|
||
|
||
## commandsString - Cтрока меню состава команд
|
||
|
||
Тип данных:строка.
|
||
Синтаксис Automation:
|
||
```
|
||
commandsString = iRequestInfo.commandsString Получить свойство(* )
|
||
iRequestInfo.commandsString = commandsString Установить свойство (* )
|
||
commandsString = iRequestInfo.GetCommandsString() Получить свойство (**)
|
||
iRequestInfo.SetCommandsString (commandsString) Установить свойство (**)
|
||
```
|
||
Примечание:
|
||
Это свойство позволяет сформировать одноуровневое меню (без вложенных пунктов).
|
||
Восклицательный знак разделяет пункты меню, например, "!Квадрат !Треугольник !Ромб".
|
||
|
||
|
||
## commInstance - Идентификатор приложения (dll), в котором размещены ресурсы процесса
|
||
|
||
Тип данных:long.
|
||
Синтаксис Automation:
|
||
```
|
||
commInstance = iRequestInfo.commInstance Получить свойство(* )
|
||
iRequestInfo.commInstance = commInstance Установить свойство (* )
|
||
commInstance = iRequestInfo.GetCommInstance() Получить свойство (**)
|
||
iRequestInfo.SetCommInstance (commInstance) Установить свойство (**)
|
||
```
|
||
Примечание:
|
||
Функция устарела. Использование данной функции может привести к ошибке в библиотеке, собранной с конфигурацией x64.
|
||
Рекомендуется использовать функцию ksRequestInfo::commInstanceEx.
|
||
|
||
|
||
## commInstanceEx - Идентификатор приложения (dll), в котором размещены ресурсы процесса
|
||
|
||
Тип данных: VARIANT.
|
||
Синтаксис Automation:
|
||
```
|
||
commInstance = Object.commInstanceEx Получить свойство(* )
|
||
Object.commInstanceEx = commInstance Установить свойство (* )
|
||
commInstance = Object.GetCommInstanceEx() Получить свойство (**)
|
||
Object.SetCommInstanceEx( commInstance ) Установить свойство (**)
|
||
```
|
||
Примечание:
|
||
HINSTANCE библиотеки нужно передать через VARIANT, как VT_I4 в Win32 и VT_I8 в x64.
|
||
Для правильного формирования _variant_t HINSTANCE нужно передавать через приведение к (LONG_PTR).
|
||
В библиотеках, использующих автоматизацию, рекомендуется использовать данное свойство вместо ksRequestInfo::commInstance.
|
||
|
||
|
||
## cursor - Cтрока с именем стандартного курсора
|
||
|
||

|
||
|
||

|
||
|
||

|
||
|
||

|
||
|
||
Тип данных:строка.
|
||
Синтаксис Automation:
|
||
```
|
||
cursor = iRequestInfo.cursor Получить свойство(* )
|
||
iRequestInfo.cursor = cursor Установить свойство (* )
|
||
cursor = iRequestInfo.GetCursor() Получить свойство (**)
|
||
iRequestInfo.SetCursor (cursor) Установить свойство (**)
|
||
```
|
||
Примечание:
|
||
Кроме стандартных констант из WINUSER.H можно использовать стандартные курсоры системы КОМПАС (ldefin2d.h):
|
||
OCR_SELECT
|
||
OCR_SNAP
|
||
OCR_DEFAULT
|
||
OCR_CATCH
|
||
|
||
|
||
## cursorId - Идентификатор курсора из ресурса
|
||
|
||

|
||
|
||

|
||
|
||

|
||
|
||

|
||
|
||
Тип данных:long.
|
||
Синтаксис Automation:
|
||
```
|
||
cursorId = iRequestInfo.cursorId Получить свойство(* )
|
||
iRequestInfo.cursorId = cursorId Установить свойство (* )
|
||
cursorId = iRequestInfo.GetCursorId() Получить свойство (**)
|
||
iRequestInfo.SetCursorId (cursorId) Установить свойство (**)
|
||
```
|
||
Примечание:
|
||
Кроме стандартных констант из WINUSER.H можно использовать стандартные курсоры системы КОМПАС (ldefin2d.h):
|
||
OCR_SELECT
|
||
OCR_SNAP
|
||
OCR_DEFAULT
|
||
OCR_CATCH
|
||
|
||
|
||
## dynamic - Признак динамического запроса
|
||
|
||
Тип данных:long.
|
||
Значения признака:
|
||
| 0 | - статический запрос, |
|
||
| --- | --- |
|
||
| 1 | - динамический запрос. |
|
||
Синтаксис Automation:
|
||
```
|
||
dynamic = iRequestInfo.dynamic Получить свойство(* )
|
||
iRequestInfo.dynamic = dynamic Установить свойство (* )
|
||
dynamic = iRequestInfo.GetDynamic() Получить свойство (**)
|
||
iRequestInfo.SetDynamic (dynamic) Установить свойство (**)
|
||
```
|
||
Примечание:
|
||
В случае динамического запроса функция обратной связи вызывается по перемещению курсора. В случае статического запроса функция обратной связи вызывается по щелчку мыши.
|
||
|
||
|
||
## GetCallBackC - Получить имя функции обратной связи для процесса Cursor
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BSTR GetCallBackC();
|
||
Возвращаемое значение:
|
||
- строка с именем функции обратной связи.
|
||
```
|
||
|
||
|
||
## GetCallBackCm - Получить имя функции обратной связи для процесса CommandWindow
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BSTR GetCallBackCm();
|
||
Возвращаемое значение:
|
||
- строка с именем функции обратной связи.
|
||
```
|
||
|
||
|
||
## GetCallBackP - Получить имя функции обратной связи для процесса Placement
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BSTR GetCallBackP();
|
||
Возвращаемое значение:
|
||
- строка с именем функции обратной связи.
|
||
```
|
||
|
||
|
||
## GetTakeObjectCallBack - Получить имя (в Automation) или адрес (в COM) функции обратной связи подчиненного процесса
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BSTR GetTakeObjectCallBack();
|
||
Возвращаемое значение:
|
||
- имя функции.
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
USERTAKEOBJECTCALLBACKPROC GetTakeObjectCallBack();
|
||
Возвращаемое значение:
|
||
- адрес функции.
|
||
```
|
||
|
||
|
||
## Init - Инициализировать параметры
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL Init();
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения.
|
||
```
|
||
Примечание:
|
||
Метод обнуляет все параметры запроса к системе.
|
||
|
||
|
||
## menuId - Идентификатор меню состава команд из ресурса
|
||
|
||
Тип данных:long.
|
||
Синтаксис Automation:
|
||
```
|
||
menuId = iRequestInfo.menuId Получить свойство(* )
|
||
iRequestInfo.menuId = menuId Установить свойство (* )
|
||
menuId = iRequestInfo.GetMenuId() Получить свойство (**)
|
||
iRequestInfo.SetMenuId (menuId) Установить свойство (**)
|
||
```
|
||
|
||
|
||
## prompt - Cтрока приглашения
|
||
|
||
Тип данных:строка.
|
||
Синтаксис Automation:
|
||
```
|
||
prompt = iRequestInfo.prompt Получить свойство(* )
|
||
iRequestInfo.prompt = prompt Установить свойство (* )
|
||
prompt = iRequestInfo.GetPrompt() Получить свойство (**)
|
||
iRequestInfo.SetPrompt (prompt) Установить свойство (**)
|
||
```
|
||
|
||
|
||
## promptId - Идентификатор приглашения из ресурса
|
||
|
||
Тип данных:long.
|
||
Синтаксис Automation:
|
||
```
|
||
promptId = iRequestInfo.promptId Получить свойство(* )
|
||
iRequestInfo.promptId = promptId Установить свойство (* )
|
||
promptId = iRequestInfo.GetPromptId() Получить свойство (**)
|
||
iRequestInfo.SetPromptId (promptId) Установить свойство (**)
|
||
```
|
||
|
||
|
||
## SetCallBackC - Установить имя функции обратной связи для процесса Cursor
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetCallBackC (LPCTSTR methodName,
|
||
long hInst,
|
||
LPDISPATCH dispatchOCX);
|
||
Входные параметры:
|
||
methodName - строка с именем функции обратной связи,
|
||
hInst - идентификатор приложения (dll), в котором реализована CallBack-функция,
|
||
dispatchOCX - указатель на интерфейc IDispatch, в котором реализована CallBack-функция.
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения.
|
||
```
|
||
Примечания:
|
||
1. Если разрабатываемое приложение dll, тогда заполняется параметр hInst, а dispatchOCX = NULL.
|
||
2. Если разрабатываемое приложение ActiceX DLL, тогда заполняется параметр dispatchOCX, а hInst = 0.
|
||
3. Функция устарела. Использование данной функции может привести к ошибке в библиотеке, собранной с конфигурацией x64. Рекомендуется использовать функцию ksRequestInfo::SetCallBackCEx.
|
||
|
||
|
||
## SetCallBackCEx - Установить имя функции обратной связи для процесса Cursor
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetCallBackCEx(LPCTSTR methodName, VARIANT hInst, LPDISPATCH dispatchOCX);
|
||
Входные параметры:
|
||
methodName - строка с именем функции обратной связи,
|
||
hInst - идентификатор приложения (dll), в котором реализована CallBack-функция,
|
||
dispatchOCX - указатель на интерфейc IDispatch, в котором реализована CallBack-функция.
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечания:
|
||
HINSTANCE библиотеки нужно передать через VARIANT, как VT_I4 в Win32 и VT_I8 в x64.
|
||
Для правильного формирования _variant_t HINSTANCE нужно передавать через приведение к (LONG_PTR).
|
||
В библиотеках, использующих автоматизацию, рекомендуется использовать данную функцию вместо ksRequestInfo::SetCallBackC.
|
||
|
||
|
||
## SetCallBackCm - Установить имя функции обратной связи для процесса CommandWindow
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetCallBackCm (LPCTSTR methodName,
|
||
long hInst,
|
||
LPDISPATCH dispatchOCX);
|
||
Входные параметры:
|
||
methodName - строка с именем функции обратной связи,
|
||
hInst идентификатор приложения (dll), в котором реализована CallBack-функция,
|
||
dispatchOCX указатель на интерфейc IDispatch, в котором реализована CallBack-функция.
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения.
|
||
```
|
||
Примечания:
|
||
1. Если разрабатываемое приложение dll, тогда заполняется параметр hInst, а dispatchOCX = NULL.
|
||
2. Если разрабатываемое приложение ActiceX DLL, тогда заполняется параметр dispatchOCX, а hInst = 0.
|
||
3. Функция устарела. Использование данной функции может привести к ошибке в библиотеке, собранной с конфигурацией x64. Рекомендуется использовать функцию ksRequestInfo::SetCallBackCmEx.
|
||
|
||
|
||
## SetCallBackCmEx - Установить имя функции обратной связи для процесса CommandWindow
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetCallBackCmEx(LPCTSTR methodName, VARIANT hInst, LPDISPATCH dispatchOCX);
|
||
Входные параметры:
|
||
methodName - строка с именем функции обратной связи,
|
||
hInst - идентификатор приложения (dll), в котором реализована CallBack-функция,
|
||
dispatchOCX - указатель на интерфейc IDispatch, в котором реализована CallBack-функция.
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечания:
|
||
HINSTANCE библиотеки нужно передать через VARIANT, как VT_I4 в Win32 и VT_I8 в x64.
|
||
Для правильного формирования _variant_t HINSTANCE нужно передавать через приведение к (LONG_PTR).
|
||
В библиотеках, использующих автоматизацию, рекомендуется использовать данную функцию вместо ksRequestInfo::SetCallBackCm.
|
||
|
||
|
||
## SetCallBackP - Установить имя функции обратной связи для процесса Placement
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetCallBackP (LPCTSTR methodName,
|
||
long hInst,
|
||
LPDISPATCH dispatchOCX);
|
||
Входные параметры:
|
||
methodName - строка с именем функции обратной связи,
|
||
hInst - идентификатор приложения (dll), в котором реализована CallBack-функция,
|
||
dispatchOCX - указатель на интерфейc IDispatch, в котором реализована CallBack-функция.
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения.
|
||
```
|
||
Примечания:
|
||
1. Если разрабатываемое приложение dll, тогда заполняется параметр hInst, а dispatchOCX = NULL.
|
||
2. Если разрабатываемое приложение ActiceX DLL, тогда заполняется параметр dispatchOCX, а hInst = 0.
|
||
3. Функция устарела. Использование данной функции может привести к ошибке в библиотеке, собранной с конфигурацией x64. Рекомендуется использовать функцию ksRequestInfo::SetCallBackPEx.
|
||
|
||
|
||
## SetCallBackPEx - Установить имя функции обратной связи для процесса Placement
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetCallBackPEx(LPCTSTR methodName, VARIANT hInst, LPDISPATCH dispatchOCX);
|
||
Входные параметры:
|
||
methodName - строка с именем функции обратной связи,
|
||
hInst - идентификатор приложения (dll), в котором реализована CallBack-функция,
|
||
dispatchOCX - указатель на интерфейc IDispatch, в котором реализована CallBack-функция.
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечания:
|
||
HINSTANCE библиотеки нужно передать через VARIANT, как VT_I4 в Win32 и VT_I8 в x64.
|
||
Для правильного формирования _variant_t HINSTANCE нужно передавать через приведение к (LONG_PTR).
|
||
В библиотеках, использующих автоматизацию, рекомендуется использовать данную функцию вместо ksRequestInfo::SetCallBackP.
|
||
|
||
|
||
## SetCursorText - Установить текст курсора
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetCursorText( BSTR Text );
|
||
```
|
||
Примечание
|
||
Функция работает при запущенном процессе.
|
||
Текст сразу выдается над курсором.
|
||
|
||
|
||
## SetTakeObjectCallBack - Установить функцию обратной связи для подчиненного процесса
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetTakeObjectCallBack(LPCTSTR methodName, VARIANT hInst, LPDISPATCH dispatchOCX);
|
||
Входные параметры:
|
||
methodName - строка с именем функции обратной связи,
|
||
hInst - идентификатор приложения (dll), в котором реализована CallBack-функция,
|
||
dispatchOCX - указатель на интерфейc IDispatch, в котором реализована CallBack-функция.
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения,
|
||
FALSE - в случае неудачи.
|
||
Прототип CallBack-функции:
|
||
Синтаксис Automation (пример для Visual C):
|
||
BOOL WINAPI TakeObjectCallBack(LPDISPATCH _object);
|
||
Входной параметр:
|
||
_object - указатель на интерфейс объекта ksEntity для подпроцессов создания объектов, - указатель на интерфейс сопряжения ksMateConstraint для подпроцессов создания сопряжений.
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL SetTakeProcessObject (USERTAKEOBJECTCALLBACKPROC callBack);
|
||
Входной параметр:
|
||
callBack - адрес функции.
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Тип функции обратной связи для подчиненного процесса
|
||
typedef BOOL (__stdcall * USERTAKEOBJECTCALLBACKPROC)(LPUNKNOWN);
|
||
Прототип CallBack-функции:
|
||
Синтаксис COM:
|
||
```
|
||
BOOL __stdcall SelectFilterProc (LPUNKNOWN _object );
|
||
Входной параметр:
|
||
_object - указатель на интерфейс объекта ksEntity для подпроцессов создания объектов, - указатель на интерфейс сопряжения ksMateConstraint для подпроцессов создания сопряжений.
|
||
```
|
||
Примечание:
|
||
Функция вызывается при завершении подпроцесса создания\редактирования подчиненного объекта
|
||
HINSTANCE библиотеки нужно передать через VARIANT, как VT_I4 в Win32 и VT_I8 в x64.
|
||
Для правильного формирования _variant_t HINSTANCE нужно передавать через приведение к (LONG_PTR).
|
||
|
||
|
||
## TakeProcessObject - Объект, редактируемый в подпроцессе
|
||
|
||
Тип данных: Указатель на интерфейс IUnknown (в COM) или IDispatch ( в Automation )
|
||
Синтаксис Automation:
|
||
```
|
||
TakeProcessObject = Object.GetTakeProcessObject( ) Получить свойство (* )
|
||
Object.SetTakeProcessObject( Index, TakeProcessObject ) Установить свойство (**)
|
||
```
|
||
|
||
|
||
## title - Cтрока заголовка окна
|
||
|
||
Тип данных:строка.
|
||
Синтаксис Automation:
|
||
```
|
||
title = iRequestInfo.title Получить свойство(* )
|
||
iRequestInfo.title = title Установить свойство (* )
|
||
title = iRequestInfo.GetTitle() Получить свойство (**)
|
||
iRequestInfo.SetTitle (title) Установить свойство (**)
|
||
```
|
||
|
||
|
||
## titleId - Идентификатор строки заголовка окна из ресурса
|
||
|
||
Тип данных:long.
|
||
Синтаксис Automation:
|
||
```
|
||
titleId = iRequestInfo.titleId Получить свойство(* )
|
||
iRequestInfo.titleId = titleId Установить свойство (* )
|
||
titleId = iRequestInfo.GetTitleId() Получить свойство (**)
|
||
iRequestInfo.SetTitleId (titleId) Установить свойство (**)
|
||
```
|