# EditorBookmarks

Структура `EditorBookmarks` используется в функции EditorControl для получения информации о закладках текущего редактируемого файла (команда ECTL_GETBOOKMARKS или ECTL_GETSESSIONBOOKMARKS).

    struct EditorBookmarks
    {
      size_t StructSize;
      size_t Size;
      size_t Count;
      intptr_t *Line;
      intptr_t *Cursor;
      intptr_t *ScreenLine;
      intptr_t *LeftPos;
    };

### Элементы

StructSize
Это поле должно содержать размер структуры `EditorBookmarks`. Перед использованием структуры плагин должен заполнить поле.
Size
Размер буфера в памяти, который выделил плагин для размещения запрашиваемой информации.
Count
Количество закладок.
Line
Указатель на массив номеров строк для каждой закладки.
Cursor
Указатель на массив позиций курсоров в строках `Line`.
ScreenLine
Указатель на массив номеров строк, соответствующих первой видимой строке текста на экране.
LeftPos
Указатель на массив позиций, соответствующих первому видимому символу текста на экране слева.

### Замечания

Перед получением информации о закладках, плагину необходимо выяснить размер запрашиваемых данных, для этого передайте `NULL` вместо ссылки на структуру `EditorBookmarks` в команде ECTL_GETBOOKMARKS или ECTL_GETSESSIONBOOKMARKS, например:

    // узнаем размер
    intptr_t size = Info.EditorControl(-1,ECTL_GETBOOKMARKS,0,NULL);
    if (!size)
      return FALSE;

    // выделим соответствующий объем памяти
    EditorBookmarks *newbm = (EditorBookmarks *)malloc(size);
    if (!newbm)
      return FALSE;

    // только теперь запрашиваем закладки
    newbm->StructSize = sizeof(EditorBookmarks);
    newbm->Size = size;
    if (!Info.EditorControl(-1,ECTL_GETBOOKMARKS,0,newbm))
    {
      free(newbm);
      return FALSE;
    }

Смотрите также:
структуры