3

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_CALLBACKShlObj.LPFNDFMCALLBACKなどです。上記の型宣言は例外です。それが私が尋ねている理由です:-)

4

1 に答える 1

1

これは、プログラマーにBFFCALLBACKの代わりにTFNBFFCallBackを使用するように強制する方法にすぎません。エイリアスの場合は、参照情報構造にどちらかを使用できます。別のプラットフォームでは、TFNBFFCallBackがBFFCALLBACKとは異なるものを指している可能性があります。

于 2012-01-21T18:10:16.553 に答える