» SectionGetFlags: получаем статус секции

K.A.V.
www.oszone.net
22.02.2010
Автор: K.A.V.
Последнее обновление: 01.09.2011

Данная команда позволяет определить текущий статус секции (отмечена/не отмечена/выделена жирным шрифтом и т.д.)
Сначала привожу список флагов (статусов секций) с их идентификаторами:

Статус             Флаг        Идентификатор
отмечена:          SF_SELECTED   1
группа:            SF_SECGRP     2
жирный шрифт:      SF_BOLD       8
только для чтения: SF_RO         16
развёрнута группа: SF_EXPAND     32

Т.е. если мы хотим прочитать статус секции, то в результате в переменную будет помещен именно его идентификатор, а не флаг секции
Если секция имеет одновременно несколько статусов, то идентификатор в переменной будет иметь вид суммы всех статусов
Привожу пример:

Section "Тестирование" TEST_SEC
SectionEnd

Section
SectionGetFlags ${TEST_SEC} $0
; $0 = 1
Секция отмечена
SectionEnd

Section /o "Тестирование" TEST_SEC
SectionEnd

Section
SectionGetFlags ${TEST_SEC} $0
; $0 = 0
Секция не отмечена
SectionEnd

Section "Тестирование" TEST_SEC
SectionIn RO
SectionEnd

Section
SectionGetFlags ${TEST_SEC} $0
; $0 = 17
Секция отмечена и только для чтения (SF_SELECTED + SF_RO)
SectionEnd