home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 May / PCP163A.iso / Runimage / Cbuilder4 / Source / Vcl / FLATSB.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1999-01-26  |  4.6 KB  |  119 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Borland Delphi Runtime Library                  }
  5. {       Win32 flat scrollbar interface unit             }
  6. {                                                       }
  7. {       Copyright (C) 1996,98 Inprise Corporation       }
  8. {                                                       }
  9. {*******************************************************}
  10.  
  11. unit FlatSB;
  12.  
  13. //{$WEAKPACKAGEUNIT}
  14.  
  15. interface
  16.  
  17. uses Windows;
  18.  
  19. function InitializeFlatSB(hWnd: HWND): Bool; stdcall;
  20. procedure UninitializeFlatSB(hWnd: HWND); stdcall;
  21. function FlatSB_GetScrollProp(p1: HWND; propIndex: Integer;
  22.   p3: PInteger): Bool; stdcall;
  23. function FlatSB_SetScrollProp(p1: HWND; index: Integer; newValue: Integer;
  24.   p4: Bool): Bool; stdcall;
  25.  
  26. var
  27.   FlatSB_EnableScrollBar: function(hWnd: HWND; wSBflags, wArrows: UINT): BOOL; stdcall;
  28.   FlatSB_ShowScrollBar: function(hWnd: HWND; wBar: Integer; bShow: BOOL): BOOL; stdcall;
  29.   FlatSB_GetScrollRange: function(hWnd: HWND; nBar: Integer; var lpMinPos,
  30.     lpMaxPos: Integer): BOOL; stdcall;
  31.   FlatSB_GetScrollInfo: function(hWnd: HWND; BarFlag: Integer;
  32.     var ScrollInfo: TScrollInfo): BOOL; stdcall;
  33.   FlatSB_GetScrollPos: function(hWnd: HWND; nBar: Integer): Integer; stdcall;
  34.   FlatSB_SetScrollPos: function(hWnd: HWND; nBar, nPos: Integer;
  35.     bRedraw: BOOL): Integer; stdcall;
  36.   FlatSB_SetScrollInfo: function(hWnd: HWND; BarFlag: Integer;
  37.     const ScrollInfo: TScrollInfo; Redraw: BOOL): Integer; stdcall;
  38.   FlatSB_SetScrollRange: function(hWnd: HWND; nBar, nMinPos, nMaxPos: Integer;
  39.     bRedraw: BOOL): BOOL; stdcall;
  40.  
  41. implementation
  42.  
  43. var
  44.   _FlatSB_GetScrollProp: function(p1: HWND; propIndex: Integer;
  45.     p3: PInteger): Bool; stdcall;
  46.   _FlatSB_SetScrollProp: function(p1: HWND; index: Integer; newValue: Integer;
  47.     p4: Bool): Bool; stdcall;
  48.   _InitializeFlatSB: function(hWnd: HWND): Bool; stdcall;
  49.   _UninitializeFlatSB: procedure(hWnd: HWND); stdcall;
  50.  
  51. function FlatSB_GetScrollProp(p1: HWND; propIndex: Integer;
  52.   p3: PInteger): Bool; stdcall;
  53. begin
  54.   Result := Assigned(_FlatSB_GetScrollProp) and
  55.     _FlatSB_GetScrollProp(p1, propIndex, p3);
  56. end;
  57.  
  58. function FlatSB_SetScrollProp(p1: HWND; index: Integer; newValue: Integer;
  59.   p4: Bool): Bool; stdcall;
  60. begin
  61.   Result := Assigned(_FlatSB_SetScrollProp) and
  62.     _FlatSB_SetScrollProp(p1, index, newValue, p4);
  63. end;
  64.  
  65. function InitializeFlatSB(hWnd: HWND): Bool; stdcall;
  66. begin
  67.   Result := Assigned(_InitializeFlatSB) and _InitializeFlatSB(hWnd);
  68. end;
  69.  
  70. procedure UninitializeFlatSB(hWnd: HWND); stdcall;
  71. begin
  72.   if Assigned(_UninitializeFlatSB) then _UninitializeFlatSB(hWnd);
  73. end;
  74.  
  75. procedure InitFlatSB;
  76. const
  77.   cctrl = 'comctl32.dll';
  78. var
  79.   ComCtl32DLL: THandle;
  80. begin
  81.   ComCtl32DLL := GetModuleHandle(cctrl);
  82.   if ComCtl32DLL <> 0 then
  83.   begin
  84.     @_InitializeFlatSB := GetProcAddress(ComCtl32DLL, 'InitializeFlatSB');
  85.     @_UninitializeFlatSB := GetProcAddress(ComCtl32DLL, 'UninitializeFlatSB');
  86.     @_FlatSB_GetScrollProp := GetProcAddress(ComCtl32DLL, 'FlatSB_GetScrollProp');
  87.     @_FlatSB_SetScrollProp := GetProcAddress(ComCtl32DLL, 'FlatSB_SetScrollProp');
  88.     @FlatSB_EnableScrollBar := GetProcAddress(ComCtl32DLL, 'FlatSB_EnableScrollBar');
  89.     if not Assigned(FlatSB_EnableScrollBar) then
  90.       @FlatSB_EnableScrollBar := @EnableScrollBar;
  91.     @FlatSB_ShowScrollBar := GetProcAddress(ComCtl32DLL, 'FlatSB_ShowScrollBar');
  92.     if not Assigned(FlatSB_ShowScrollBar) then
  93.       @FlatSB_ShowScrollBar := @ShowScrollBar;
  94.     @FlatSB_GetScrollRange := GetProcAddress(ComCtl32DLL, 'FlatSB_GetScrollRange');
  95.     if not Assigned(FlatSB_GetScrollRange) then
  96.       @FlatSB_GetScrollRange := @GetScrollRange;
  97.     @FlatSB_GetScrollInfo := GetProcAddress(ComCtl32DLL, 'FlatSB_GetScrollInfo');
  98.     if not Assigned(FlatSB_GetScrollInfo) then
  99.       @FlatSB_GetScrollInfo := @GetScrollInfo;
  100.     @FlatSB_GetScrollPos := GetProcAddress(ComCtl32DLL, 'FlatSB_GetScrollPos');
  101.     if not Assigned(FlatSB_GetScrollPos) then
  102.       @FlatSB_GetScrollPos := @GetScrollPos;
  103.     @FlatSB_SetScrollPos := GetProcAddress(ComCtl32DLL, 'FlatSB_SetScrollPos');
  104.     if not Assigned(FlatSB_SetScrollPos) then
  105.       @FlatSB_SetScrollPos := @SetScrollPos;
  106.     @FlatSB_SetScrollInfo := GetProcAddress(ComCtl32DLL, 'FlatSB_SetScrollInfo');
  107.     if not Assigned(FlatSB_SetScrollInfo) then
  108.       @FlatSB_SetScrollInfo := @SetScrollInfo;
  109.     @FlatSB_SetScrollRange := GetProcAddress(ComCtl32DLL, 'FlatSB_SetScrollRange');
  110.     if not Assigned(FlatSB_SetScrollRange) then
  111.       @FlatSB_SetScrollRange := @SetScrollRange;
  112.   end;
  113. end;
  114.  
  115. initialization
  116.   InitFlatSB;
  117.   
  118. end.
  119.