---
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)    Установить свойство (**)
```
