Почему этот код объявляет тип DISTINCT? - PullRequest
3 голосов
/ 16 января 2012

ShlObj.pas line 9922 (как в Delphi XE):

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 и так далее. Объявление типа, показанное выше, является исключением. Вот почему я спрашиваю: -)

1 Ответ

1 голос
/ 21 января 2012

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

...