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