Спецификация для 'uchr'
Формат ресурса раскладки клавиатуры Unicode
'uchr' формат состоит из раздела информации заголовка и пяти ключевых разделов данных отображения, как показано на рисунке a-1.
Раздел заголовка скомпилированного 'uchr' ресурс содержит структуру типа UCKeyboardLayout и дополнительная структура типа UCKeyLayoutFeatureInfo. Видьте иллюстрацию этого раздела.
Элементы в разделе заголовка a 'uchr' ресурс
формат заголовка ресурса
версия данных в этом ресурсе
смещение к a
UCKeyLayoutFeatureInfoструктура, если любойколичество
UCKeyboardTypeHeaderследующие структурымассив структур типа
UCKeyboardTypeHeader; каждыйUCKeyboardTypeHeaderзапись указывает, что диапазон физической клавиатуры вводит и содержит смещения к каждому из ключевых разделов отображения, которые будут использоваться для того диапазона типов клавиатурыпервый тип клавиатуры в этой записи
последний тип клавиатуры в этой записи
смещение к
UCKeyModifiersToTableNumструктура (требуется)смещение к
UCKeyToCharTableIndexструктура (требуется)смещение к
UCKeyStateRecordsIndexструктура (дополнительный, может быть 0, если нет никакой таблицы),смещение к
UCKeyStateTerminatorsструктура (дополнительный, может быть 0, если нет никакой таблицы),смещение к
UCKeySequenceDataIndexструктура (дополнительный, может быть 0, если нет никакой таблицы),
формат
UCKeyLayoutFeatureInfoструктуразарезервированное поле
значение типа
UniCharCount, указание самой долгой выводимой строки, которая будет произведена этим'uchr'ресурс
Может быть переменное число каждого из следующих 'uchr' ключевые разделы отображения.
Первый ключевой раздел отображения содержит структуру типа UCKeyModifiersToTableNum, который отображает комбинацию модифицирующей клавиши на определенный ключевой код к числу таблицы символов; и байты выравнивания. Могут быть многократные экземпляры этого всего ключевого раздела отображения. Посмотрите рисунок a-3 для иллюстрации этого раздела.
Элементы в первом ключевом разделе отображения a 'uchr' ресурс
формат
UCKeyModifiersToTableNumструктуратабличное число для комбинаций модификатора, которые являются за пределами диапазона
tableNumмассив поля; т.е. значение по умолчанию (нейтрализация) табличное числодиапазон наборов двоичных знаков модификатора, для которых существуют записи в
tableNumмассив поляn массив индексов в ключевой код к смещениям таблицы символов, содержавшимся в
UCKeyToCharTableIndexструктура в следующем разделебайты выравнивания (к 4-байтовой границе)
Второй ключевой раздел отображения содержит структуру типа UCKeyToCharTableIndex; список ключевого кода к таблицам символов, каждая из которых отображает код виртуальной клавиши на 16-разрядное UCKeyOutput значение; и байты выравнивания. Могут быть многократные экземпляры этого всего ключевого раздела отображения. Посмотрите рисунок a-4 для иллюстрации этого раздела.
Элементы во втором ключевом разделе отображения a 'uchr' ресурс
формат
UCKeyToCharTableIndexструктурачисло кодов виртуальной клавиши поддерживается этим ресурсом
количество ключевого кода к таблицам символов
массив смещений с начала ресурса к каждому ключевому коду к таблицам символов
массив ключевого кода к таблицам символов, содержащим значения типа
UCKeyOutputбайты выравнивания (к 4-байтовой границе)
Третий ключевой раздел отображения является картой к записям состояния мертвой клавиши. Это содержит структуру типа UCKeyStateRecordsIndex, который является индексом к UCKeyStateRecord структуры; переменное число мертвой клавиши утверждает записи типа UCKeyStateRecord; и байты выравнивания. Могут быть многократные экземпляры этого всего ключевого раздела отображения (или 0; этот раздел не должен присутствовать если нет UCKeyOutput значение относится к записи состояния мертвой клавиши). Посмотрите рисунок a-5 для иллюстрации этого раздела.
Элементы в третьем ключевом разделе отображения a 'uchr' ресурс
формат
UCKeyStateRecordsIndexструктураколичество мертвой клавиши утверждает записи для следования
массив смещений с начала ресурса к каждому из
UCKeyStateRecordзначения после
Сразу после UCKeyStateRecordsIndex структура является переменным числом значений типа UCKeyStateRecord. Любая комбинация модификатора кода клавиши, инициирующая состояние мертвой клавиши или которая является допустимым разделителем состояния мертвой клавиши, относится к одной из этих записей. Однако эти записи также разрешают более сложную обработку состояния мертвой клавиши, такую как ряд переходов от одного состояния мертвой клавиши непосредственно в другого, в котором каждый переход может испустить последовательность одного или более символов Unicode. Каждая запись содержит
значение типа
UCKeyCharSeqуказание символа (ов), произведенного входным кодом клавиши, когда никакое состояние мертвой клавиши не в настоящее время в действительностизначение, указывающее состояние мертвой клавиши, произведенное входным кодом клавиши, когда никакое состояние мертвой клавиши не в настоящее время в действительности
количество элементов в
stateEntryDataмассив поляформат данных в
stateEntryDataмассив полямассив мертвой клавиши утверждает данные записи; каждая запись отображается от текущего состояния мертвой клавиши до символа (ов), которые производятся или для следующего состояния мертвой клавиши, если любой
байты выравнивания (к 4-байтовой границе)
Четвертый ключевой раздел отображения содержит структуру типа UCKeyStateTerminators и байты выравнивания. Это - дополнительный список разделителей по умолчанию (символы или последовательности) для каждого состояния; если эта таблица не присутствует или не расширяется достаточно далеко для имения разделителя для состояния, ничто не выводится, когда завершается состояние. Там может быть многократным (или 0) экземпляры этого всего ключевого раздела отображения. Посмотрите рисунок a-6 для иллюстрации этого раздела.
Элементы в четвертом ключевом разделе отображения a 'uchr' ресурс
формат
UCKeyStateTerminatorsструктураколичество мертвой клавиши по умолчанию утверждает разделители, содержавшиеся в
keyStateTerminatorsмассив полямассив мертвой клавиши по умолчанию утверждает разделители, описанные как значения типа
UCKeyCharSeqбайты выравнивания (к 4-байтовой границе)
Пятый ключевой раздел отображения ресурса является дополнительным списком последовательностей символов; это содержит структуру типа UCKeySequenceDataIndex и последовательности символов Unicode. Это разрешает единственному нажатию клавиши генерировать последовательность символов или генерировать отдельный символ вне диапазона, который может быть представлен непосредственно a UCKeyOutput или UCKeyCharSeq значение. Там может быть многократным (или 0) экземпляры этого всего ключевого раздела отображения. Посмотрите рисунок a-7 для иллюстрации этого раздела.
Элементы в пятом ключевом разделе отображения a 'uchr' ресурс
формат
UCKeySequenceDataIndexструктураколичество последовательностей символов Unicode, следующих
UCKeySequenceDataIndexструктурамассив смещений с начала
UCKeySequenceDataIndexструктура к последовательностям символов Unicode, следующим за ниммассив последовательностей символов Unicode
байты выравнивания (к 4-байтовой границе)
