Почему PositionGetInteger(POSITION_TYPE) возвращает 0 ? - страница 2

 
Valmars:

... Остаётся надеяться, что long  PositionGetInteger(ENUM_POSITION_PROPERTY  property_id      // идентификатор свойства);

для ENUM_POSITION_TYPE никогда не ошибается.

Т.е. остаётся надеяться, что в случае с ENUM_POSITION_TYPE функция PositionGetInteger всегда выполняется успешно?
 
Yedelkin:
Т.е. остаётся надеяться, что в случае с ENUM_POSITION_TYPE функция PositionGetInteger всегда выполняется успешно?
Да , именно это я и имел в виду. А что ещё остаётся, если от разработчиков пояснения ситуации нет ?
 

Valmars:
Да , именно это я и имел в виду. А что ещё остаётся, если от разработчиков пояснения ситуации нет ?

Видимо, разработчики считают, что поскольку есть второй вариант функции, то и беспокоиться не о чем. Но зачем тогда нужен первый вариант функции  (с учётом имеющейся особенности)?
 
Yedelkin:
Видимо, разработчики считают, что поскольку есть второй вариант функции, то и беспокоиться не о чем. Но зачем тогда нужен первый вариант функции  (с учётом имеющейся особенности)?
Считайте первый вариант атавизмом (так как второй вариант был введён гораздо позже). Хотя в некоторых случаях первый вариант функции тоже может быть полезным
 
stringo:
Считайте первый вариант атавизмом (так как второй вариант был введён гораздо позже). Хотя в некоторых случаях первый вариант функции тоже может быть полезным

Мне представляется, что ф-ии типа ...GetInteger(ENUM_...) методологически описаны неверно:
1. ...GetInteger(ENUM_...) предполагает, что считывается целочисленное значение. Наверное, разумно его (целое) и вернуть.
2. Из описания языка enum - 4-x байтовое целое, т.е. точно такое, как и int. Т.о. получается, что полученное функцией значение int преобразуется в emun, затем в long, а дальше, ребята, делайте с ним, что хотите.

Похоже разработчики слегка запутались, или же есть какой-то сокральный, скрытый от нас смысл.

Причина обращения: