Subversion Repositories delphiutils

Rev

Rev 42 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. unit WindowsCompat;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows;
  7.  
  8. // TODO: Wie definiert?
  9.  
  10. {$IF NOT DECLARED(LONG_PTR)}
  11. type
  12.   LONG_PTR = Pointer; // TODO: ?
  13. {$IFEND}
  14.  
  15. {$IF NOT DECLARED(WNDPROC)}
  16. type
  17.   WNDPROC = TFNWndProc; // TODO: ?
  18. {$IFeND}
  19.  
  20. {$IF NOT DECLARED(GetWindowLongPtr)}
  21.   {$DEFINE Do_Implement_GetWindowLongPtr}
  22.   function GetWindowLongPtr(hWnd: HWND; nIndex: Integer): LONG_PTR; stdcall;
  23. {$IFEND}
  24.  
  25. {$IF NOT DECLARED(SetWindowLongPtr)}
  26.   {$DEFINE Do_Implement_SetWindowLongPtr}
  27.   function SetWindowLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR; stdcall;
  28. {$IFEND}
  29.  
  30. implementation
  31.  
  32. {$IFDEF Do_Implement_GetWindowLongPtr}
  33.   {$IFNDEF _WIN64}
  34.     {$IFDEF UNICODE}
  35.       function GetWindowLongPtr; external user32 name 'GetWindowLongW';
  36.     {$ELSE}
  37.       function GetWindowLongPtr; external user32 name 'GetWindowLongA';
  38.     {$ENDIF}
  39.   {$ELSE}
  40.     {$IFDEF UNICODE}
  41.       function GetWindowLongPtr; external user32 name 'GetWindowLongPtrW';
  42.     {$ELSE}
  43.       function GetWindowLongPtr; external user32 name 'GetWindowLongPtrA';
  44.     {$ENDIF}
  45.   {$ENDIF}
  46. {$ENDIF}
  47.  
  48. {$IFDEF Do_Implement_SetWindowLongPtr}
  49.   {$IFNDEF _WIN64}
  50.     {$IFDEF UNICODE}
  51.       function SetWindowLongPtr; external user32 name 'SetWindowLongW';
  52.     {$ELSE}
  53.       function SetWindowLongPtr; external user32 name 'SetWindowLongA';
  54.     {$ENDIF}
  55.   {$ELSE}
  56.     {$IFDEF UNICODE}
  57.       function SetWindowLongPtr; external user32 name 'SetWindowLongPtrW';
  58.     {$ELSE}
  59.       function SetWindowLongPtr; external user32 name 'SetWindowLongPtrA';
  60.     {$ENDIF}
  61.   {$ENDIF}
  62. {$ENDIF}
  63.  
  64. end.
  65.