2012-01-15 3 views
3

ShlObj.pas линии 9922 (как в Delphi XE):Почему этот код объявляет тип DISTINCT?

type 
    BFFCALLBACK = function(Wnd: HWND; uMsg: UINT; lParam, lpData: LPARAM): Integer stdcall; 
    TFNBFFCallBack = type BFFCALLBACK; 
    {$EXTERNALSYM BFFCALLBACK} 

Ответ на комментарий Дэвида Хеффернэн здесь, потому что я думаю, что это описывает соответствующий фон для возможного почему вы спрашиваете это? вопрос. Процедурные типы для процедур обратного вызова происхождения Windows API объявляются как псевдонимы типов (вы знаете, каноническое имя API + псевдоним «Pascalised» или наоборот). Примерами являются Windows.PIMAGE_TLS_CALLBACK, ShlObj.LPFNDFMCALLBACK и так далее. Указание типа, показанное выше, является исключением. Вот почему я спрашиваю :-)

+0

Пожалуйста, предложите правильный тег (ы) для такого тонкого вопроса, как идентификатор типа Pascalish. – OnTheFly

+0

Я бы сказал, что delphi plus delphi-xe отлично. Я сомневаюсь, что любые другие теги когда-нибудь будут помогать кому-либо. –

+1

Вы видите использование различных типов в другом месте в этом устройстве? Или в Windows.pas? Делает изменения от FARPROC, я полагаю! –

ответ

1

Это просто способ заставить нас программистов использовать TFNBFFCallBack вместо BFFCALLBACK. Если бы это был псевдоним, мы могли бы использовать либо для информационной структуры обзора. На другой платформе TFNBFFCallBack может указывать на нечто иное, чем BFFCALLBACK.

Смежные вопросы