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

449 lines
23 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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: "Запрос к системе (Интерфейс 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трока с именем стандартного курсора
![cursor_select](../resources/images_cursor_select.jpg)
![cursor_snap](../resources/images_cursor_snap.jpg)
![POINT_NONUM](../resources/images_point_nonum.jpg)
![cursor_catch](../resources/images_cursor_catch.jpg)
Тип данных:строка.
Синтаксис 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 - Идентификатор курсора из ресурса
![cursor_select](../resources/images_cursor_select.jpg)
![cursor_snap](../resources/images_cursor_snap.jpg)
![POINT_NONUM](../resources/images_point_nonum.jpg)
![cursor_catch](../resources/images_cursor_catch.jpg)
Тип данных: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) Установить свойство (**)
```