Они идентификаторы ресурсов. Вам не нужно требовать для определения таких макросов, но если вы этого не сделаете, вам придется вместо этого использовать необработанные целочисленные значения при попытке обратиться к виджетам пользовательского интерфейса в коде. Например, типичный способ получить указатель на элемент управления пользовательского интерфейса - это вызвать:
FormType* formP = FrmGetActiveForm();
UInt16 index = FrmGetObjectIndex(formP, objectID);
ControlType* controlP = FrmGetObjectPtr(formP, index);
Вам необходимо получить указатели на виджеты пользовательского интерфейса, чтобы выполнять такие операции, как чтение их состояний (например, для флажков), изменение текстовых меток, их динамическое отображение или скрытие и т. Д.
Нет никакой безопасности типов между идентификаторами ресурса и тем, что вы делаете с указателем, который вы получаете из FrmGetObjectPtr
; Вы несете ответственность за отслеживание того, какой идентификатор соответствует какому типу контроля (обычная практика - использовать описательные имена).