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名称+“Pascalised”别名,或者反之亦然)。例子是Windows.PIMAGE_TLS_CALLBACK
,ShlObj.LPFNDFMCALLBACK
等。上面显示的类型声明是一个例外。这就是我要问的原因: - )
答案 0 :(得分:1)
这只是强制我们程序员使用TFNBFFCallBack而不是BFFCALLBACK的一种方法。如果它是别名,我们可以使用浏览信息结构。在不同的平台上,TFNBFFCallBack可能指向与BFFCALLBACK不同的东西。