/****** MAPSELEC.H     ******* Shishkova L.A.  ******** 31/01/11 ***

******* MAPSELEC.H     ******* Kruzhkov A.E.   ******** 29/11/12 ***

******* MAPSELEC.H     ******* Konon V.N.      ******** 23/04/14 ***

******* MAPSELEC.H     ******* Belenkov O.V.   ******** 13/06/17 ***

*                                                                  *

*              Copyright (c) PANORAMA Group 1991-2017              *

*                      All Rights Reserved                         *

*                                                                  *

********************************************************************

*                                                                  *

*                           FOR MS WINDOWS                         *

*                                                                  *

********************************************************************

*                                                                  *

*          ФУНКЦИИ УСТАНОВКИ КОНТЕКСТА ПОИСКА И ОТОБРАЖЕНИЯ        *

*                                                                  *

*******************************************************************/

#ifndef mapselecH

#define mapselecH

 

#ifndef MAPTYPE_H

  #include "maptype.h"

#endif

 

#ifndef Mmstruct_H

  #include "mmstruct.h"   

#endif

 

extern "C"

{

 

 // Выбор из классификатора карты семантической

 // характеристики c предустановленным кодом семантики.

 // hrsc - идентификатор классификатора ресурсов карты;

 // parm - параметры задачи (см. maptype.h);

 // code - предустановленное значение кода характеристики

 //       (при открытии формы данный код характеристики будет выбран).

 // При успешном выполнении возвращает код выбранной семантики,

 // иначе возвращает ноль.

 long int WINAPI selSemanticSelectInit(HRSC hrsc,TASKPARMEX* parm,

                                               long int code);

 

// Выбор из классификатора карты семантической

 // характеристики по фильтру семантик c предустановленным кодом семантики.

 // hrsc   - идентификатор классификатора ресурсов карты;

 // parm   - параметры задачи (см. maptype.h);

 // code   - предустановленное значение кода характеристики

 //          (при открытии формы данный код характеристики будет выбран);

 // filter - массив кодов семантик для выбора (фильтр);

 // count  - количество элементов в массиве filter.

 // При успешном выполнении возвращает код выбранной семантики,

 // иначе возвращает ноль.

 long int WINAPI selSemanticSelect(HRSC hrsc,TASKPARMEX* parm);

 

// Выбор из классификатора карты семантической

 // характеристики по фильтру семантик c предустановленным кодом семантики.

 // hrsc   - идентификатор классификатора ресурсов карты;

 // parm   - параметры задачи (см. maptype.h);

 // code   - предустановленное значение кода характеристики

 //          (при открытии формы данный код характеристики будет выбран);

 // filter - массив кодов семантик для выбора (фильтр);

 // count  - количество элементов в массиве filter.

 // При успешном выполнении возвращает код выбранной семантики,

 // иначе возвращает ноль.

 long int WINAPI selSemanticSelectFilterInit(HRSC hrsc,TASKPARMEX* parm,

                                    long int code,long int *filter,long int count);

 

// Выбор из классификатора карты семантической

 // характеристики по фильтру семантик.

 // hrsc   - идентификатор классификатора ресурсов карты;

 // parm   - параметры задачи (см. maptype.h);

 // filter - массив кодов семантик для выбора (фильтр);

 // count  - количество элементов в массиве filter.

 // При успешном выполнении возвращает код выбранной семантики,

 // иначе возвращает ноль.

 long int WINAPI selSemanticSelectFilter(HRSC hrsc,TASKPARMEX* parm,

                                                 long int *filter,long int count);

 

 // Установить фильтр отображения объектов карты

 // hmap    - идентификатор открытой векторной карты

 // parm    - параметры задачи (см. maptype.h)

 // note    - адрес переменной,определяющей вид окна и содержащей

 //           индекс активной закладки при старте программы фильтра

 //           (допустимо note = 0).

 // Если фильтр изменился, возвращает ненулевое значение

 // Help вызывается из mapselec.chm, топик "USTANOVKA"

 long int WINAPI selSetViewStaff(HMAP hmap,TASKPARMEX* parm,long int* note);

 

  // Установить фильтр отображаемых объектов карты

 // hmap    - идентификатор открытой векторной карты

 // parm    - параметры задачи (см. maptype.h)

 // note    - адрес переменной,определяющей вид окна и содержащей

 //           индекс активной закладки при старте программы фильтра (допустимо note = 0).

 // restoremode - флаг восстановления контекста отображения карты :

 //           "-1" - стандартно восстановить контекст отображения;

 //           "0"  - использовать текущее состояние контекста отображения.

 // Если фильтр изменился, возвращает ненулевое значение

 // Help вызывается из mapselec.chm, топик "USTANOVKA"

 long int WINAPI selSetViewStaffEx(HMAP hmap,TASKPARMEX* parm,

                                           long int* note,long int restoremode);

 

 // Установить фильтр отображаемых объектов карты

 // hmap    - идентификатор открытой векторной карты

 // hsite   - идентификатор идентификатор пользовательской карты

 // parm    - параметры задачи (см. maptype.h)

 // note    - адрес переменной, содержащей индекс активной закладки

 // Если фильтр изменился, возвращает ненулевое значение

 

 long int _export WINAPI selSetSiteViewStaff(HMAP hmap, HSITE hsite,

                                             TASKPARMEX* parm, long int*note);                                  

 

 // Восстановить параметры поиска

 // hmap    - идентификатор открытой векторной карты

 

 long int  WINAPI selRestoreSeekSelect(HMAP hmap);

 

 // Сформировать модель и записать ее в файл моделей

 // hmap  - идентификатор открытой векторной карты

 // hsite - идентификатор пользовательской карты, для которой формируется модель

 // parm - параметры задачи (см. maptype.h);

 // modelname - имя модели

 // title - заголовок окна фильтра объектов карты,

 // если == 0, устанавливается стандартный заголовок

 // Help вызывается из mapselec.chm, топик ?? IDN_SETMODELS    6710

 

 

 long int  WINAPI selSetSiteModelFilterTitleUn(HMAP hmap,HSITE hsite,TASKPARMEX* parm, 

                                               WCHAR * modelname, long int namesize,

                                               const WCHAR* title);

 

 // Сформировать модель и записать ее в файл моделей

 // hmap  - идентификатор открытой векторной карты

 // parm - параметры задачи (см. maptype.h);

 // modelnames - массив имен моделей 2D

 // modelnames3D - массив имен моделей 3D

 // namesize - максимальная длина имени модели

 // modelcount - число моделей в каждом массиве

 // modifyflag - массив флагов изменений моделей

 // размерность массивов modelnames и modifyflag равна количеству сайтов + 1

 // title - заголовок окна фильтра объектов карты,

 // если == 0, устанавливается стандартный заголовок

 // Help вызывается из mapselec.chm, топик ?? IDN_SETMODELS   6710

 

 long int  WINAPI selSetModelsFilterTitleUn(HMAP hmap,TASKPARMEX* parm,

                                            WCHAR * modelnames, WCHAR* modelnames3D,

                                            long int namesize, long int modelcount,

                                            long * modifyflag, const WCHAR * title);

 

 // Установить фильтр поиска объектов карты

 // Фильтр поиска объектов карты автоматически восстанавливается/запоминается в

 // служебном файле при старте/завершении программы.

 // hmap - идентификатор открытой векторной карты

 // parm - параметры задачи (см. maptype.h);

 // note - адрес переменной,определяющей вид окна фильтра.

 //        Служит для запоминания/восстановления индекса активной закладки

 //        при старте программы фильтра.(Допустимо note = 0).

 // Возвращает: "1" - выбран режим поиска объектов;

 //             "2" - выбран режим выделения объектов карты;

 //             "0" - ошибка или отказ.

 // Help вызывается из mapselec.chm, топик "POISK"

 

 long int WINAPI selSetObjectsSearch(HMAP hmap,TASKPARM* parm,

                                             long int* note);

 

// Расширенная установка фильтра поиска объектов карты

 // Фильтр поиска объектов карты автоматически восстанавливается/запоминается в

 // служебном файле при старте/завершении программы.

 // Для изменения стандартных операций  восстановления используется

 // структура RESTOREMODE.

 // hmap - идентификатор открытой векторной карты;

 // parm - параметры задачи (см. maptype.h);

 // mode - параметры восстановления фильтра;

 // Возвращает: "1" - выбран режим поиска объектов;

 //             "2" - выбран режим выделения объектов карты;

 //             "0" - ошибка или отказ.

 // Help вызывается из mapselec.chm, топик "POISK"

 

 long int  WINAPI selSetObjectsSearchEx(HMAP hmap,TASKPARM* parm,

                                        RESTOREMODE* mode);

 

 // Расширенная установка фильтра поиска объектов карты

 // Фильтр поиска объектов карты автоматически восстанавливается/запоминается в

 // служебном файле при старте/завершении программы.

 // Для изменения стандартных операций  восстановления используется

 // структура RESTOREMODE.

 // При старте отображается полный состав в соответствии с

 // классификатором карты.

 // hmap - идентификатор открытой векторной карты;

 // parm - параметры задачи (см. maptype.h);

 // mode - параметры восстановления фильтра;

 // Возвращает: "1" - выбран режим поиска объектов;

 //             "2" - выбран режим выделения объектов карты;

 //             "0" - ошибка или отказ.

 // Help вызывается из mapselec.chm, топик "POISK"

 long int  WINAPI selSetObjectsSearchRsc(HMAP hmap,TASKPARMEX* parm, 

                                         RESTOREMODE* mode);

 

 // Установить фильтр слоев карты

 // hwnd      - идентификатор родительского окна;

 // hrsc      - идентификатор классификатора ресурсов карты;

 // hselect   - идентификатор контекста поиска карты (фильтр);

 // title     - заголовок окна фильтра слоев карты;

 // rc        - записать 0

 

 long int WINAPI selSetLayersFilter(HWND hwnd,HRSC hrsc,

                                            HSELECT hselect,char* title,

                                            HINSTANCE rc);   // анахронизм

 

 // Восстановить параметры отображения карты

 // hmap - идентификатор открытой векторной карты

 // При ошибке возвращает ноль

 

 long int WINAPI selRestoreSelect(HMAP hmap);

 

 // Сохранить параметры отображения объектов &

 // Установить доступ ко всем видам данных контекста поиска для всех карт

 // hmap - идентификатор открытой векторной карты

 // При ошибке возвращает ноль

 

 long int WINAPI selSaveSelect(HMAP hmap);

 

 // Сохранить параметры поиска объектов

 // hmap - идентификатор открытой векторной карты;

 // При ошибке возвращает ноль

 

 long int WINAPI selSaveSeekSelect(HMAP hmap);

 

 // Установить фильтр объектов карты

 // hmap      - идентификатор открытой векторной карты;

 // parm      - параметры задачи (см. maptype.h);

 // hselect   - идентификатор контекста поиска карты (фильтр);

 // В контексте фильтра HSELECT должна быть установлена карта.

 // title - заголовок окна фильтра объектов карты,

 // если == 0, устанавливается стандартный заголовок.

 // При hmap != 0 список слоев, локализаций и объектов в диалоге фильтра

 // формируется в соответствии с фактическим составом объектов карты

 // (список м. б. меньше, чем в RSC !),

 // иначе - по классификатору объектов карты (полный список)

 // Если фильтр изменился, возвращает ненулевое значение

 // Help вызывается из mapselec.chm, топик "USTANOVKA"

 

 long int  WINAPI selSetFilterTitleUn(TASKPARMEX* parm,HSELECT hselect,

                                      HMAP hmap,const WCHAR* title);

 long int  WINAPI selSetFilterTitle(TASKPARMEX* parm,HSELECT hselect,

                                    HMAP hmap,const char* title);

 

 // Установить фильтр объектов для заданной пользовательской карты

 // hmap - идентификатор открытой векторной карты;

 // hsite - идентификатор пользовательской карты

 // hselect   - идентификатор контекста поиска пользовательской карты (фильтр);

 // В контексте фильтра HSELECT должна быть установлена карта.

 // title - заголовок окна фильтра объектов карты,

 // если == 0, устанавливается стандартный заголовок.

 // Если фильтр изменился, возвращает ненулевое значение

 // При hmap != 0 список слоев, локализаций и объектов в диалоге фильтра

 // формируется в соответствии с фактическим составом объектов карты

 // (список м. б. меньше, чем в RSC !),

 // иначе - по классификатору объектов карты (полный список)

 // Help вызывается из mapselec.chm, топик "USTANOVKA"

 

 long int  WINAPI selSetSiteFilterTitleUn(TASKPARMEX* parm,HSELECT hselect,

                                          HMAP hmap,HSITE hsite,const WCHAR* title);

 

  long int  WINAPI selSetSiteFilterTitle(TASKPARMEX* parm,HSELECT hselect,    

                                        HMAP hmap,HSITE hsite,const char* title);

 

 // Установить условия поиска объектов карты по названию семантики

 // hmap - идентификатор открытой векторной карты;

 // hselect   - идентификатор контекста поиска карты (фильтр);

 // arrayname - условия поиска по названию (см. mmstruct.h)

 // При ошибке возвращает ноль

 // Help вызывается из mapselec.chm, топик "MARPOISK"

 

 long int WINAPI selSearchName(HMAP hmap,HSELECT select,

                                       ARRAYNAME* arrayname,TASKPARMEX* parm);

 

 // Установить параметры поиска объектов карты по области

 // hmap      - идентификатор открытой векторной карты;

 // parm      - параметры задачи (см. maptype.h);

 // hobj      - данные области поиска;

 //             метрика области должна быть в метрах !

 // seekparm - параметры поиска по области;

 // hwnd      - идентификатор окна назначения сообщений WM_PROGRESSBAR

 // Возвращает: "1" - выбран режим поиска объектов;

 //             "2" - выбран режим выделения объектов карты;

 //             "3" - выбран режим выбора области;

 //             "0" - ошибка или отказ.

 // Help вызывается из mapselec.chm, топик "POISKOBL"

 

 long int WINAPI selSearchObjectByArea(TASKPARMEX* parm, HMAP hmap,

                                               HOBJ hobj, HWND hwnd,

                                               AREASEEKPARM* seekparm);

 

 // Установить фильтр объектов карты

 // hmap - идентификатор открытой векторной карты;

 // hselect   - идентификатор контекста поиска карты (фильтр);

 // В контексте фильтра HSELECT должна быть установлена карта.

 // Если фильтр изменился, возвращает ненулевое значение

 // При hmap != 0 список слоев, локализаций и объектов в диалоге фильтра

 // формируется в соответствии с фактическим составом объектов карты

 // (список м. б. меньше, чем в RSC !),

 // иначе - по классификатору объектов карты (полный список)

 // Если фильтр изменился, возвращает ненулевое значение

 // При ошибке возвращает ноль

 // Help вызывается из mapselec.chm, топик "USTANOVKA"

 

 long int WINAPI selSetFilter(TASKPARMEX* parm,HSELECT hselect,HMAP hmap);

 

 // Установить фильтр объектов карты

 // hrsc - идентификатор классификатора открытой карты

 // hselect   - идентификатор контекста поиска карты (фильтр);

 // Структура NAMESARRAY должна содержать список имен листов карты

 // title - заголовок окна фильтра объектов карты,

 // если == 0, устанавливается стандартный заголовок.

 // Если фильтр изменился, возвращает ненулевое значение

 // При ошибке возвращает ноль

 // Help вызывается из mapselec.chm, топик "USTANOVKA"

 

 long int  WINAPI selSetFilterByNameUn(TASKPARMEX* parm,HSELECT hselect,

                                       HRSC hrsc,NAMESARRAY* namesarray,

                                       const WCHAR* title);

 long int  WINAPI selSetFilterByName(TASKPARMEX* parm,HSELECT hselect,

                                     HRSC hrsc,NAMESARRAY* namesarray,

                                     const char* title);

 

 // Установить условия поиска объектов карты

 // hmap - идентификатор открытой векторной карты;

 // hselect   - идентификатор контекста поиска карты (фильтр);

 // Если фильтр изменился, возвращает ненулевое значение

 // При ошибке возвращает ноль

 // Help вызывается из mapselec.chm, топик "FORMPOISK"

 

 long int WINAPI selFindStaff(HMAP hmap,HSELECT select,TASKPARMEX* parm);

 

 

 // Установить фильтр объектов карты для выделения по рамке

 // hmap - идентификатор открытой векторной карты;

 // При ошибке возвращает ноль

 // Help вызывается из mapselec.chm, топик "POISK"

 

 long int WINAPI selSetMarkFilter(HMAP hmap,TASKPARMEX* parm);

 

 // Установить фильтр поиска объектов карты

 // hmap - идентификатор открытой векторной карты;

 // activepage - номер активной закладки(страницы)

 // title - заголовок окна фильтра объектов карты,

 // если == 0, устанавливается стандартный заголовок.

 // При ошибке возвращает ноль

 // Help вызывается из mapselec.chm, топик "POISK"

 

 long int  WINAPI selSetSearchFilterUn(HMAP hmap, TASKPARMEX* parm,

                                       int* activepage, const WCHAR* title);

 long int  WINAPI selSetSearchFilter(HMAP hmap, TASKPARMEX* parm,

                                     int* activepage, const char* title);

 

 //++++++++++++++++++++++++++++++++++++++++++++++++++

 //  Интерфейс с файлами моделей поиска/отображения +

 //++++++++++++++++++++++++++++++++++++++++++++++++++

 

 // Boccтановить параметры поиска объектов по имени модели

 // hmap - идентификатор открытой векторной карты;

 // При ошибке возвращает "0", иначе "1"

 

 long int  WINAPI selRestoreParmsUn(HMAP hmap, const WCHAR* modelname);

 long int WINAPI selRestoreParms(HMAP hmap, const char* modelname);

 

 // Запросить имя модели параметров выделения объектов по рамке

 

 const char* WINAPI selMarkParmsModelName();

 

 // Запросить имя модели параметров поиска объектов по области

 

 const char* WINAPI selAreaParmsModelName();

 

 // Установить контекст по модели с номером "nmodel"

 // hmap - идентификатор открытой векторной карты;

 // hselect   - идентификатор контекста поиска карты (фильтр);

 // nmap - номер карты в цепочке

 // При ошибке возвращает "0", иначе "1"

 

 long int WINAPI selSetSelectByModel(HSELECT hselect,

                                             HMAP hmap, int nmap, int nmodel);

 

 // Установить условия поиска объектов карты по адресу

 // hmap      - идентификатор открытой векторной карты;

 // parm      - параметры задачи (см. maptype.h);

 // Help вызывается из mapselec.chm, топик "IDN_SEARCH_ADDR"

 

 long int  WINAPI selSearchAddress(HMAP hmap, TASKPARMEX* parm);

 

 // Открыть диалог выбора карт и установить параметры поиска объектов

 // по выбранным картам

 //   hmap    - идентификатор открытой векторной карты

 //   parm    - параметры задачи (см. maptype.h)

 //   flag    - флаг выделения карт в списке

 //             0 - не выделять

 //             1 - выделить все

 //             2 - выделить карты, доступные для редактирования

 // Для выделения объектов в окне карты после функции selSetSelectByMap вызвать:

 //   ::PostMessage(parm->DocHandle, CM_PAN_SEARCH, 1, 0);

 // При ошибке возвращает 0

 

 long int  WINAPI selSetSelectByMap(HMAP map, TASKPARMEX* parm, long int flag);  // 29/11/12

 

#ifdef LINUXAPI                    

// Установить фильтр поиска объектов карты

 // Фильтр поиска объектов карты автоматически восстанавливается/запоминается в

 // служебном файле при старте/завершении программы.

 // hmap - идентификатор открытой векторной карты

 // note - адрес переменной,определяющей вид окна фильтра.

 //        Служит для запоминания/восстановления индекса активной закладки

 //        при старте программы фильтра.(Допустимо note = 0).

 // Возвращает: "1" - выбран режим поиска объектов;

 //             "2" - выбран режим выделения объектов карты;

 //             "0" - ошибка или отказ.

 

 long int  selSetAreaFilter(HMAP hmap, TASKPARM* parm, long int* note);

#endif

 

}       // extern "C"

  

#endif // mapselecH

 

 Дата последней корректировки    27.06.2017 г.