ShlObj.pas 第 9922 行(与 Delphi XE 中相同):
type
BFFCALLBACK = function(Wnd: HWND; uMsg: UINT; lParam, lpData: LPARAM): Integer stdcall;
TFNBFFCallBack = type BFFCALLBACK;
{$EXTERNALSYM BFFCALLBACK}
<小时/>
在这里回答 David Heffernan 的评论,因为我认为这概述了可能的你为什么问这个?问题的相关背景。
Windows API 回调例程的过程类型被声明为类型别名(您知道,规范 API 名称 +“Pascalized”别名,有时反之亦然)。示例有 Windows.PIMAGE_TLS_CALLBACK
、ShlObj.LPFNDFMCALLBACK
等。上面显示的类型声明是一个异常(exception)。这就是我问的原因:-)
最佳答案
这只是强制我们程序员使用TFNBFFCallBack而不是BFFCALLBACK的一种方法。如果它是别名,我们可以将其用于浏览信息结构。在不同的平台上,TFNBFFCallBack 可能指向与 BFFCALLBACK 不同的内容。
关于delphi - 为什么这段代码声明 DISTINCT 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8874317/