home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sibdemo3.zip / SOURCE.DAT / SOURCE / WIN32 / COMMCTRL.PAS next >
Pascal/Delphi Source File  |  1998-04-17  |  27KB  |  859 lines

  1. UNIT CommCtrl;
  2.  
  3. INTERFACE
  4.  
  5. USES WinBase,WinDef,WinNT,WinUser;
  6.  
  7. CONST
  8.      WM_NOTIFY              =$004E;
  9.  
  10.  
  11. CONST
  12.     ODT_HEADER              =100;
  13.     ODT_TAB                 =101;
  14.     ODT_LISTVIEW            =102;
  15.  
  16.     LVM_FIRST               =$1000;
  17.     TV_FIRST                =$1100;
  18.     HDM_FIRST               =$1200;
  19.  
  20.     NM_FIRST                =0;
  21.     NM_OUTOFMEMORY          =NM_FIRST-1;
  22.     NM_CLICK                =NM_FIRST-2;
  23.     NM_DBLCLK               =NM_FIRST-3;
  24.     NM_RETURN               =NM_FIRST-4;
  25.     NM_RCLICK               =NM_FIRST-5;
  26.     NM_RDBLCLK              =NM_FIRST-6;
  27.     NM_SETFOCUS             =NM_FIRST-7;
  28.     NM_KILLFOCUS            =NM_FIRST-8;
  29.  
  30.     NM_LAST                 =-99;
  31.  
  32.     LVN_FIRST               =-100;
  33.     LVN_LAST                =-199;
  34.  
  35.     HDN_FIRST               =-300;
  36.     HDN_LAST                =-399;
  37.  
  38.     TVN_FIRST               =-400;
  39.     TVN_LAST                =-499;
  40.  
  41.     TTN_FIRST               =-520;
  42.     TTN_LAST                =-549;
  43.  
  44.     TCN_FIRST               =-550;
  45.     TCN_LAST                =-580;
  46.  
  47.     CDN_FIRST               =-601;
  48.     CDN_LAST                =-699;
  49.  
  50.     TBN_FIRST               =-700;
  51.     TBN_LAST                =-720;
  52.  
  53.     UDN_FIRST               =-721;
  54.     UDN_LAST                =-740;
  55.  
  56. CONST
  57.      MSGF_COMMCTRL_BEGINDRAG     =$4200;
  58.      MSGF_COMMCTRL_SIZEHEADER    =$4201;
  59.      MSGF_COMMCTRL_DRAGSELECT    =$4202;
  60.      MSGF_COMMCTRL_TOOLBARCUST   =$4203;
  61.  
  62.      CLR_NONE                =$FFFFFFFF;
  63.      CLR_DEFAULT             =$FF000000;
  64.  
  65. TYPE
  66.     HIMAGELIST=^IMAGELIST;
  67.     IMAGELIST=RECORD
  68.               END;
  69.  
  70. CONST
  71.      ILC_MASK                =$0001;
  72.      ILC_COLOR               =$0000;
  73.      ILC_COLORDDB            =$00FE;
  74.      ILC_COLOR4              =$0004;
  75.      ILC_COLOR8              =$0008;
  76.      ILC_COLOR16             =$0010;
  77.      ILC_COLOR24             =$0018;
  78.      ILC_COLOR32             =$0020;
  79.      ILC_PALETTE             =$0800;
  80.  
  81.      ILD_NORMAL              =$0000;
  82.      ILD_TRANSPARENT         =$0001;
  83.      ILD_MASK                =$0010;
  84.      ILD_IMAGE               =$0020;
  85.      ILD_BLEND25             =$0002;
  86.      ILD_BLEND50             =$0004;
  87.      ILD_OVERLAYMASK         =$0F00;
  88.  
  89.      ILD_SELECTED            =ILD_BLEND50;
  90.      ILD_FOCUS               =ILD_BLEND25;
  91.      ILD_BLEND               =ILD_BLEND50;
  92.      CLR_HILIGHT             =CLR_DEFAULT;
  93.  
  94. TYPE
  95.     IMAGEINFO=RECORD
  96.                     hbmImage:HBITMAP;
  97.                     hbmMask:HBITMAP;
  98.                     Unused1:LONGINT;
  99.                     Unused2:LONGINT;
  100.                     rcImage:RECT;
  101.               END;
  102.  
  103. CONST
  104.      WC_HEADER    ='SysHeader32';
  105.  
  106. CONST
  107.      HDS_HORZ                =$00000000;
  108.      HDS_BUTTONS             =$00000002;
  109.      HDS_HIDDEN              =$00000008;
  110.  
  111. TYPE HD_ITEM=RECORD
  112.                    mask:LONGWORD;
  113.                    cxy:LONGINT;
  114.                    pszText:PChar;
  115.                    hbm:HBITMAP;
  116.                    cchTextMax:LONGINT;
  117.                    fmt:LONGINT;
  118.                    lParam:LPARAM;
  119.              END;
  120.  
  121. CONST
  122.      HDI_WIDTH               =$0001;
  123.      HDI_HEIGHT              =HDI_WIDTH;
  124.      HDI_TEXT                =$0002;
  125.      HDI_FORMAT              =$0004;
  126.      HDI_LPARAM              =$0008;
  127.      HDI_BITMAP              =$0010;
  128.  
  129.      HDF_LEFT                =0;
  130.      HDF_RIGHT               =1;
  131.      HDF_CENTER              =2;
  132.      HDF_JUSTIFYMASK         =3;
  133.      HDF_RTLREADING          =4;
  134.  
  135.      HDF_OWNERDRAW           =$8000;
  136.      HDF_STRING              =$4000;
  137.      HDF_BITMAP              =$2000;
  138.  
  139.      HDM_GETITEMCOUNT        =HDM_FIRST + 0;
  140.      HDM_INSERTITEM          =HDM_FIRST + 1;
  141.      HDM_GETITEM             =HDM_FIRST + 3;
  142.      HDM_SETITEM             =HDM_FIRST + 4;
  143.  
  144. TYPE
  145.     HD_LAYOUT=RECORD
  146.                     prc:PRECT;
  147.                     pwpos:PWINDOWPOS;
  148.     END;
  149.  
  150. CONST
  151.      HDM_LAYOUT              =HDM_FIRST + 5;
  152.  
  153.      HHT_NOWHERE             =$0001;
  154.      HHT_ONHEADER            =$0002;
  155.      HHT_ONDIVIDER           =$0004;
  156.      HHT_ONDIVOPEN           =$0008;
  157.      HHT_ABOVE               =$0100;
  158.      HHT_BELOW               =$0200;
  159.      HHT_TORIGHT             =$0400;
  160.      HHT_TOLEFT              =$0800;
  161.  
  162.  
  163. TYPE
  164.     HD_HITTESTINFO=RECORD
  165.                          pt:POINT;
  166.                          flags:LONGWORD;
  167.                          iItem:LONGINT;
  168.     END;
  169.  
  170. CONST
  171.      HDM_HITTEST            =HDM_FIRST + 6;
  172.  
  173.      HDN_ITEMCHANGING       =HDN_FIRST-0;
  174.      HDN_ITEMCHANGED        =HDN_FIRST-1;
  175.      HDN_ITEMCLICK          =HDN_FIRST-2;
  176.      HDN_ITEMDBLCLICK       =HDN_FIRST-3;
  177.      HDN_DIVIDERDBLCLICK    =HDN_FIRST-5;
  178.      HDN_BEGINTRACK         =HDN_FIRST-6;
  179.      HDN_ENDTRACK           =HDN_FIRST-7;
  180.      HDN_TRACK              =HDN_FIRST-8;
  181.  
  182. TYPE
  183.     HD_NOTIFY=RECORD
  184.                     hrr:NMHDR;
  185.                     iItem:LONGINT;
  186.                     iButton:LONGINT;
  187.                     pitem:^HD_ITEM;
  188.     END;
  189.  
  190.  
  191. CONST
  192.      TOOLBARCLASSNAMEA       ='ToolbarWindow32';
  193.  
  194. TYPE
  195.     PTBBUTTON=^TBBUTTON;
  196.     TBBUTTON=RECORD
  197.                    iBitmap:LONGINT;
  198.                    idCommand:LONGINT;
  199.                    fsState:BYTE;
  200.                    fsStyle:BYTE;
  201.                    bReserved:ARRAY[0..1] OF BYTE;
  202.                    dwData:LONGWORD;
  203.                    iString:LONGINT;
  204.     END;
  205.  
  206.     PCOLORMAP=^COLORMAP;
  207.     COLORMAP=RECORD
  208.                    from:COLORREF;
  209.                    ato:COLORREF;
  210.     END;
  211.  
  212. CONST
  213.      CMB_MASKED              =$02;
  214.  
  215.      TBSTATE_CHECKED         =$01;
  216.      TBSTATE_PRESSED         =$02;
  217.      TBSTATE_ENABLED         =$04;
  218.      TBSTATE_HIDDEN          =$08;
  219.      TBSTATE_INDETERMINATE   =$10;
  220.      TBSTATE_WRAP            =$20;
  221.  
  222.      TBSTYLE_BUTTON          =$00;
  223.      TBSTYLE_SEP             =$01;
  224.      TBSTYLE_CHECK           =$02;
  225.      TBSTYLE_GROUP           =$04;
  226.      TBSTYLE_CHECKGROUP      =TBSTYLE_GROUP OR TBSTYLE_CHECK;
  227.  
  228.      TBSTYLE_TOOLTIPS        =$0100;
  229.      TBSTYLE_WRAPABLE        =$0200;
  230.      TBSTYLE_ALTDRAG         =$0400;
  231.  
  232.      TB_ENABLEBUTTON         =WM_USER + 1;
  233.      TB_CHECKBUTTON          =WM_USER + 2;
  234.      TB_PRESSBUTTON          =WM_USER + 3;
  235.      TB_HIDEBUTTON           =WM_USER + 4;
  236.      TB_INDETERMINATE        =WM_USER + 5;
  237.      TB_ISBUTTONENABLED      =WM_USER + 9;
  238.      TB_ISBUTTONCHECKED      =WM_USER + 10;
  239.      TB_ISBUTTONPRESSED      =WM_USER + 11;
  240.      TB_ISBUTTONHIDDEN       =WM_USER + 12;
  241.      TB_ISBUTTONINDETERMINATE=WM_USER + 13;
  242.      TB_SETSTATE             =WM_USER + 17;
  243.      TB_GETSTATE             =WM_USER + 18;
  244.      TB_ADDBITMAP            =WM_USER + 19;
  245.  
  246. TYPE
  247.     PTBADDBITMAP=^TBADDBITMAP;
  248.     TBADDBITMAP=RECORD
  249.                       hInst:HINSTANCE;
  250.                       nID:LONGWORD;
  251.     END;
  252.  
  253. CONST
  254.      IDB_STD_SMALL_COLOR     =0;
  255.      IDB_STD_LARGE_COLOR     =1;
  256.      IDB_VIEW_SMALL_COLOR    =4;
  257.      IDB_VIEW_LARGE_COLOR    =5;
  258.  
  259.      STD_CUT                 =0;
  260.      STD_COPY                =1;
  261.      STD_PASTE               =2;
  262.      STD_UNDO                =3;
  263.      STD_REDOW               =4;
  264.      STD_DELETE              =5;
  265.      STD_FILENEW             =6;
  266.      STD_FILEOPEN            =7;
  267.      STD_FILESAVE            =8;
  268.      STD_PRINTPRE            =9;
  269.      STD_PROPERTIES          =10;
  270.      STD_HELP                =11;
  271.      STD_FIND                =12;
  272.      STD_REPLACE             =13;
  273.      STD_PRINT               =14;
  274.  
  275.      VIEW_LARGEICONS         =0;
  276.      VIEW_SMALLICONS         =1;
  277.      VIEW_LIST               =2;
  278.      VIEW_DETAILS            =3;
  279.      VIEW_SORTNAME           =4;
  280.      VIEW_SORTSIZE           =5;
  281.      VIEW_SORTDATE           =6;
  282.      VIEW_SORTTYPE           =7;
  283.      VIEW_PARENTFOLDER       =8;
  284.      VIEW_NETCONNECT         =9;
  285.      VIEW_NETDISCONNECT      =10;
  286.      VIEW_NEWFOLDER          =11;
  287.  
  288.      TB_ADDBUTTONS           =WM_USER + 20;
  289.      TB_INSERTBUTTON         =WM_USER + 21;
  290.      TB_DELETEBUTTON         =WM_USER + 22;
  291.      TB_GETBUTTON            =WM_USER + 23;
  292.      TB_BUTTONCOUNT          =WM_USER + 24;
  293.      TB_COMMANDTOINDEX       =WM_USER + 25;
  294.  
  295. TYPE
  296.     HKEY=HANDLE;
  297.  
  298. TYPE TBSAVEPARAMS=RECORD
  299.                         hkr:HKEY;
  300.                         pszSubKey:PChar;
  301.                         pszValueName:PChar;
  302.                   END;
  303.  
  304. CONST
  305.      TB_SAVERESTOREA         =WM_USER + 26;
  306.      TB_SAVERESTOREW         =WM_USER + 76;
  307.      TB_CUSTOMIZE            =WM_USER + 27;
  308.      TB_ADDSTRINGA           =WM_USER + 28;
  309.      TB_ADDSTRINGW           =WM_USER + 77;
  310.      TB_GETITEMRECT          =WM_USER + 29;
  311.      TB_BUTTONSTRUCTSIZE     =WM_USER + 30;
  312.      TB_SETBUTTONSIZE        =WM_USER + 31;
  313.      TB_SETBITMAPSIZE        =WM_USER + 32;
  314.      TB_AUTOSIZE             =WM_USER + 33;
  315.      TB_GETTOOLTIPS          =WM_USER + 35;
  316.      TB_SETTOOLTIPS          =WM_USER + 36;
  317.      TB_SETPARENT            =WM_USER + 37;
  318.      TB_SETROWS              =WM_USER + 39;
  319.      TB_GETROWS              =WM_USER + 40;
  320.      TB_SETCMDID             =WM_USER + 42;
  321.      TB_CHANGEBITMAP         =WM_USER + 43;
  322.      TB_GETBITMAP            =WM_USER + 44;
  323.      TB_GETBUTTONTEXTA       =WM_USER + 45;
  324.      TB_GETBUTTONTEXTW       =WM_USER + 75;
  325.      TB_REPLACEBITMAP        =WM_USER + 46;
  326.  
  327.      TB_GETBUTTONTEXT        =TB_GETBUTTONTEXTA;
  328.      TB_SAVERESTORE          =TB_SAVERESTOREA;
  329.      TB_ADDSTRING            =TB_ADDSTRINGA;
  330.  
  331. TYPE LPTBREPLACEBITMAP=^TBREPLACEBITMAP;
  332.      TBREPLACEBITMAP=RECORD
  333.                            hInstOld:HINSTANCE;
  334.                            nIDOld:LONGWORD;
  335.                            hInstNew:HINSTANCE;
  336.                            nIDNew:LONGWORD;
  337.                            nButtons:LONGINT;
  338.      END;
  339.  
  340. CONST
  341.     TBBF_LARGE              =$0001;
  342.  
  343.     TB_GETBITMAPFLAGS       =(WM_USER + 41);
  344.  
  345.     TBN_GETBUTTONINFOA      =(TBN_FIRST-0);
  346.     TBN_GETBUTTONINFOW      =(TBN_FIRST-20);
  347.     TBN_BEGINDRAG           =(TBN_FIRST-1);
  348.     TBN_ENDDRAG             =(TBN_FIRST-2);
  349.     TBN_BEGINADJUST         =(TBN_FIRST-3);
  350.     TBN_ENDADJUST           =(TBN_FIRST-4);
  351.     TBN_RESET               =(TBN_FIRST-5);
  352.     TBN_QUERYINSERT         =(TBN_FIRST-6);
  353.     TBN_QUERYDELETE         =(TBN_FIRST-7);
  354.     TBN_TOOLBARCHANGE       =(TBN_FIRST-8);
  355.     TBN_CUSTHELP            =(TBN_FIRST-9);
  356.  
  357.     TBN_GETBUTTONINFO       =TBN_GETBUTTONINFOA;
  358.  
  359. TYPE
  360.     LPTBNOTIFYA=^TBNOTIFYA;
  361.     TBNOTIFYA=RECORD
  362.                     hdr:NMHDR;
  363.                     iItem:LONGINT;
  364.                     tbButton:TBBUTTON;
  365.                     cchText:LONGINT;
  366.                     pszText:PChar;
  367.      END;
  368.  
  369.  
  370.      TBNOTIFY=TBNOTIFYA;
  371.      LPTBNOTIFY=LPTBNOTIFYA;
  372.  
  373. CONST
  374.      TOOLTIPS_CLASSW         ='tooltips_class32';
  375.      TOOLTIPS_CLASSA         ='tooltips_class32';
  376.  
  377.      TOOLTIPS_CLASS          =TOOLTIPS_CLASSA;
  378.  
  379. TYPE
  380.      PTOOLINFOA=^TOOLINFOA;
  381.      TOOLINFOA=RECORD
  382.                      cbSize:LONGWORD;
  383.                      uFlags:LONGWORD;
  384.                      hwnd:HWND;
  385.                      uId:LONGWORD;
  386.                      rect:RECT;
  387.                      hinst:HINSTANCE;
  388.                      lpszText:PChar;
  389.      END;
  390.  
  391.      TOOLINFO=TOOLINFOA;
  392.      PTOOLINFO=PTOOLINFOA;
  393.  
  394. CONST
  395.    TTS_ALWAYSTIP           =$01;
  396.    TTS_NOPREFIX            =$02;
  397.  
  398.    TTF_IDISHWND            =$01;
  399.    TTF_CENTERTIP           =$02;
  400.    TTF_RTLREADING          =$04;
  401.    TTF_SUBCLASS            =$10;
  402.  
  403.    TTDT_AUTOMATIC          =0;
  404.    TTDT_RESHOW             =1;
  405.    TTDT_AUTOPOP            =2;
  406.    TTDT_INITIAL            =3;
  407.  
  408.    TTM_ACTIVATE            =(WM_USER + 1);
  409.    TTM_SETDELAYTIME        =(WM_USER + 3);
  410.    TTM_ADDTOOLA            =(WM_USER + 4);
  411.    TTM_ADDTOOLW            =(WM_USER + 50);
  412.    TTM_DELTOOLA            =(WM_USER + 5);
  413.    TTM_DELTOOLW            =(WM_USER + 51);
  414.    TTM_NEWTOOLRECTA        =(WM_USER + 6);
  415.    TTM_NEWTOOLRECTW        =(WM_USER + 52);
  416.    TTM_RELAYEVENT          =(WM_USER + 7);
  417.  
  418.    TTM_GETTOOLINFOA        =(WM_USER + 8);
  419.    TTM_GETTOOLINFOW        =(WM_USER + 53);
  420.  
  421.    TTM_SETTOOLINFOA        =(WM_USER + 9);
  422.    TTM_SETTOOLINFOW        =(WM_USER + 54);
  423.  
  424.    TTM_HITTESTA            =(WM_USER +10);
  425.    TTM_HITTESTW            =(WM_USER +55);
  426.    TTM_GETTEXTA            =(WM_USER +11);
  427.    TTM_GETTEXTW            =(WM_USER +56);
  428.    TTM_UPDATETIPTEXTA      =(WM_USER +12);
  429.    TTM_UPDATETIPTEXTW      =(WM_USER +57);
  430.    TTM_GETTOOLCOUNT        =(WM_USER +13);
  431.    TTM_ENUMTOOLSA          =(WM_USER +14);
  432.    TTM_ENUMTOOLSW          =(WM_USER +58);
  433.    TTM_GETCURRENTTOOLA     =(WM_USER + 15);
  434.    TTM_GETCURRENTTOOLW     =(WM_USER + 59);
  435.    TTM_WINDOWFROMPOINT     =(WM_USER + 16);
  436.  
  437.    TTM_ADDTOOL             =TTM_ADDTOOLA;
  438.    TTM_DELTOOL             =TTM_DELTOOLA;
  439.    TTM_NEWTOOLRECT         =TTM_NEWTOOLRECTA;
  440.    TTM_GETTOOLINFO         =TTM_GETTOOLINFOA;
  441.    TTM_SETTOOLINFO         =TTM_SETTOOLINFOA;
  442.    TTM_HITTEST             =TTM_HITTESTA;
  443.    TTM_GETTEXT             =TTM_GETTEXTA;
  444.    TTM_UPDATETIPTEXT       =TTM_UPDATETIPTEXTA;
  445.    TTM_ENUMTOOLS           =TTM_ENUMTOOLSA;
  446.    TTM_GETCURRENTTOOL      =TTM_GETCURRENTTOOLA;
  447.  
  448. CONST
  449.      CCS_TOP                 =$00000001;
  450.      CCS_NOMOVEY             =$00000002;
  451.      CCS_BOTTOM              =$00000003;
  452.      CCS_NORESIZE            =$00000004;
  453.      CCS_NOPARENTALIGN       =$00000008;
  454.      CCS_ADJUSTABLE          =$00000020;
  455.      CCS_NODIVIDER           =$00000040;
  456.  
  457. CONST
  458.      WC_LISTVIEW             ='SysListView32';
  459.  
  460. CONST
  461.      LVS_ICON                =$0000;
  462.      LVS_REPORT              =$0001;
  463.      LVS_SMALLICON           =$0002;
  464.      LVS_LIST                =$0003;
  465.      LVS_TYPEMASK            =$0003;
  466.      LVS_SINGLESEL           =$0004;
  467.      LVS_SHOWSELALWAYS       =$0008;
  468.      LVS_SORTASCENDING       =$0010;
  469.      LVS_SORTDESCENDING      =$0020;
  470.      LVS_SHAREIMAGELISTS     =$0040;
  471.      LVS_NOLABELWRAP         =$0080;
  472.      LVS_AUTOARRANGE         =$0100;
  473.      LVS_EDITLABELS          =$0200;
  474.      LVS_NOSCROLL            =$2000;
  475.      LVS_TYPESTYLEMASK       =$fc00;
  476.      LVS_ALIGNTOP            =$0000;
  477.      LVS_ALIGNLEFT           =$0800;
  478.      LVS_ALIGNMASK           =$0c00;
  479.      LVS_OWNERDRAWFIXED      =$0400;
  480.      LVS_NOCOLUMNHEADER      =$4000;
  481.      LVS_NOSORTHEADER        =$8000;
  482.      LVM_GETBKCOLOR          =LVM_FIRST + 0;
  483.      LVM_GETIMAGELIST        =LVM_FIRST + 2;
  484.  
  485.      LVSIL_NORMAL            =0;
  486.      LVSIL_SMALL             =1;
  487.      LVSIL_STATE             =2;
  488.  
  489.      LVM_SETIMAGELIST        =LVM_FIRST + 3;
  490.      LVM_GETITEMCOUNT        =LVM_FIRST + 4;
  491.  
  492.      LVIF_TEXT               =$0001;
  493.      LVIF_IMAGE              =$0002;
  494.      LVIF_PARAM              =$0004;
  495.      LVIF_STATE              =$0008;
  496.  
  497.      LVIS_FOCUSED            =$0001;
  498.      LVIS_SELECTED           =$0002;
  499.      LVIS_CUT                =$0004;
  500.      LVIS_DROPHILITED        =$0008;
  501.      LVIS_OVERLAYMASK        =$0F00;
  502.      LVIS_STATEIMAGEMASK     =$F000;
  503.  
  504.  
  505. TYPE
  506.     LV_ITEM=RECORD
  507.                   mask:LONGWORD;
  508.                   iItem:LONGINT;
  509.                   iSubItem:LONGINT;
  510.                   state:LONGWORD;
  511.                   stateMask:LONGWORD;
  512.                   pszText:PChar;
  513.                   cchTextMax:LONGINT;
  514.                   iImage:LONGINT;
  515.                   lParam:LPARAM;
  516.     END;
  517.  
  518.  
  519. CONST
  520.      I_IMAGECALLBACK         =-1;
  521.  
  522.      LVM_GETITEM             =LVM_FIRST + 5;
  523.      LVM_SETITEM             =LVM_FIRST + 6;
  524.      LVM_INSERTITEM          =LVM_FIRST + 7;
  525.      LVM_DELETEITEM          =LVM_FIRST + 8;
  526.      LVM_DELETEALLITEMS      =LVM_FIRST + 9;
  527.      LVM_GETCALLBACKMASK     =LVM_FIRST + 10;
  528.      LVM_SETCALLBACKMASK     =LVM_FIRST + 11;
  529.      LVM_GETNEXTITEM         =LVM_FIRST + 12;
  530.      LVM_FINDITEMA           =LVM_FIRST + 13;
  531.  
  532.      LVNI_ALL                =$0000;
  533.      LVNI_FOCUSED            =$0001;
  534.      LVNI_SELECTED           =$0002;
  535.      LVNI_CUT                =$0004;
  536.      LVNI_DROPHILITED        =$0008;
  537.      LVNI_ABOVE              =$0100;
  538.      LVNI_BELOW              =$0200;
  539.      LVNI_TOLEFT             =$0400;
  540.      LVNI_TORIGHT            =$0800;
  541.  
  542.      LVFI_PARAM              =$0001;
  543.      LVFI_STRING             =$0002;
  544.      LVFI_PARTIAL            =$0008;
  545.      LVFI_WRAP               =$0020;
  546.      LVFI_NEARESTXY          =$0040;
  547.  
  548. TYPE LV_FINDINFO=RECORD
  549.                        flags:LONGWORD;
  550.                        psz:PChar;
  551.                        lParam:LPARAM;
  552.                        pt:POINT;
  553.                        vkDirection:LONGWORD;
  554.      END;
  555.  
  556. CONST
  557.      LVIR_BOUNDS             =0;
  558.      LVIR_ICON               =1;
  559.      LVIR_LABEL              =2;
  560.      LVIR_SELECTBOUNDS       =3;
  561.  
  562.      LVM_GETITEMRECT         =LVM_FIRST + 14;
  563.      LVM_SETITEMPOSITION     =LVM_FIRST + 15;
  564.      LVM_GETITEMPOSITION     =LVM_FIRST + 16;
  565.      LVM_GETSTRINGWIDTHA     =LVM_FIRST + 17;
  566.  
  567. CONST
  568.      LVHT_NOWHERE            =$0001;
  569.      LVHT_ONITEMICON         =$0002;
  570.      LVHT_ONITEMLABEL        =$0004;
  571.      LVHT_ONITEMSTATEICON    =$0008;
  572.      LVHT_ONITEM             =LVHT_ONITEMICON OR LVHT_ONITEMLABEL OR LVHT_ONITEMSTATEICON;
  573.      LVHT_ABOVE              =$0008;
  574.      LVHT_BELOW              =$0010;
  575.      LVHT_TORIGHT            =$0020;
  576.      LVHT_TOLEFT             =$0040;
  577.  
  578. TYPE
  579.     LV_HITTESTINFO=RECORD
  580.                          pt:POINT;
  581.                          flags:LONGWORD;
  582.                          iItem:LONGINT;
  583.     END;
  584.  
  585. CONST
  586.      LVM_HITTEST             =LVM_FIRST + 18;
  587.      LVM_ENSUREVISIBLE       =LVM_FIRST + 19;
  588.      LVM_SCROLL              =LVM_FIRST + 20;
  589.      LVM_REDRAWITEMS         =LVM_FIRST + 21;
  590.      LVM_ARRANGE             =LVM_FIRST + 22;
  591.      LVM_EDITLABEL           =LVM_FIRST + 23;
  592.      LVM_GETEDITCONTROL      =LVM_FIRST + 24;
  593.      LVM_INSERTCOLUMN        =LVM_FIRST + 27;
  594.      LVM_DELETECOLUMN        =LVM_FIRST + 28;
  595.      LVM_GETCOLUMNWIDTH      =LVM_FIRST + 29;
  596.      LVM_SETCOLUMNWIDTH      =LVM_FIRST + 30;
  597.      LVM_CREATEDRAGIMAGE     =LVM_FIRST + 33;
  598.      LVM_GETVIEWRECT         =LVM_FIRST + 34;
  599.      LVM_GETTEXTCOLOR        =LVM_FIRST + 35;
  600.      LVM_SETTEXTCOLOR        =LVM_FIRST + 36;
  601.      LVM_GETTEXTBKCOLOR      =LVM_FIRST + 37;
  602.      LVM_SETTEXTBKCOLOR      =LVM_FIRST + 38;
  603.      LVM_GETTOPINDEX         =LVM_FIRST + 39;
  604.      LVM_GETCOUNTPERPAGE     =LVM_FIRST + 40;
  605.      LVM_GETORIGIN           =LVM_FIRST + 41;
  606.      LVM_UPDATE              =LVM_FIRST + 42;
  607.      LVM_SETITEMSTATE        =LVM_FIRST + 43;
  608.      LVM_GETITEMSTATE        =LVM_FIRST + 44;
  609.  
  610.      LVA_DEFAULT             =$0000;
  611.      LVA_ALIGNLEFT           =$0001;
  612.      LVA_ALIGNTOP            =$0002;
  613.      LVA_SNAPTOGRID          =$0005;
  614.  
  615. TYPE
  616.     LV_COLUMN=RECORD
  617.                     mask:LONGWORD;
  618.                     fmt:LONGINT;
  619.                     cx:LONGINT;
  620.                     pszText:PChar;
  621.                     cchTextMax:LONGINT;
  622.                     iSubItem:LONGINT;
  623.     END;
  624.  
  625. CONST
  626.      LVCF_FMT                =$0001;
  627.      LVCF_WIDTH              =$0002;
  628.      LVCF_TEXT               =$0004;
  629.      LVCF_SUBITEM            =$0008;
  630.  
  631.      LVCFMT_LEFT             =$0000;
  632.      LVCFMT_RIGHT            =$0001;
  633.      LVCFMT_CENTER           =$0002;
  634.      LVCFMT_JUSTIFYMASK      =$0003;
  635.  
  636. CONST
  637.      WC_TREEVIEW                ='SysTreeView32';
  638.  
  639. CONST
  640.      TVS_HASBUTTONS          =$0001;
  641.      TVS_HASLINES            =$0002;
  642.      TVS_LINESATROOT         =$0004;
  643.      TVS_EDITLABELS          =$0008;
  644.      TVS_DISABLEDRAGDROP     =$0010;
  645.      TVS_SHOWSELALWAYS       =$0020;
  646.  
  647. TYPE
  648.     HTREEITEM=^TREEITEM;
  649.     TREEITEM=RECORD
  650.     END;
  651.  
  652. CONST
  653.      TVIF_TEXT               =$0001;
  654.      TVIF_IMAGE              =$0002;
  655.      TVIF_PARAM              =$0004;
  656.      TVIF_STATE              =$0008;
  657.      TVIF_HANDLE             =$0010;
  658.      TVIF_SELECTEDIMAGE      =$0020;
  659.      TVIF_CHILDREN           =$0040;
  660.  
  661.      TVIS_FOCUSED            =$0001;
  662.      TVIS_SELECTED           =$0002;
  663.      TVIS_CUT                =$0004;
  664.      TVIS_DROPHILITED        =$0008;
  665.      TVIS_BOLD               =$0010;
  666.      TVIS_EXPANDED           =$0020;
  667.      TVIS_EXPANDEDONCE       =$0040;
  668.      TVIS_OVERLAYMASK        =$0F00;
  669.      TVIS_STATEIMAGEMASK     =$F000;
  670.      TVIS_USERMASK           =$F000;
  671.  
  672.      I_CHILDRENCALLBACK      =-1;
  673.  
  674. TYPE
  675.     PTV_ITEM=^TV_ITEM;
  676.     TV_ITEM=RECORD
  677.                   mask:LONGWORD;
  678.                   hItem:HTREEITEM;
  679.                   state:LONGWORD;
  680.                   stateMask:LONGWORD;
  681.                   pszText:PChar;
  682.                   cchTextMax:LONGINT;
  683.                   iImage:LONGINT;
  684.                   iSelectedImage:LONGINT;
  685.                   cChildren:LONGINT;
  686.                   lParam:LPARAM;
  687.      END;
  688.  
  689. CONST
  690.      TVI_ROOT                =HTREEITEM($FFFF0000);
  691.      TVI_FIRST               =HTREEITEM($FFFF0001);
  692.      TVI_LAST                =HTREEITEM($FFFF0002);
  693.      TVI_SORT                =HTREEITEM($FFFF0003);
  694.  
  695. TYPE
  696.     PTV_INSERTSTRUCT=^TV_INSERTSTRUCT;
  697.     TV_INSERTSTRUCT=RECORD
  698.                           hParent:HTREEITEM;
  699.                           hInsertAfter:HTREEITEM;
  700.                           item:TV_ITEM;
  701.     END;
  702.  
  703. CONST
  704.      TVM_INSERTITEM       =TV_FIRST + 0;
  705.      TVM_DELETEITEM       =TV_FIRST + 1;
  706.      TVM_EXPAND           =TV_FIRST + 2;
  707.      TVM_GETITEMRECT      =TV_FIRST + 4;
  708.      TVM_GETCOUNT         =TV_FIRST + 5;
  709.      TVM_GETINDENT        =TV_FIRST + 6;
  710.      TVM_SETINDENT        =TV_FIRST + 7;
  711.      TVM_GETIMAGELIST     =TV_FIRST + 8;
  712.      TVM_SETIMAGELIST     =TV_FIRST + 9;
  713.      TVM_GETNEXTITEM      =TV_FIRST + 10;
  714.      TVM_SELECTITEM       =TV_FIRST + 11;
  715.      TVM_GETITEM          =TV_FIRST + 12;
  716.      TVM_SETITEM          =TV_FIRST + 13;
  717.      TVM_EDITLABELA       =TV_FIRST + 14;
  718.      TVM_GETEDITCONTROL   =TV_FIRST + 15;
  719.      TVM_GETVISIBLECOUNT  =TV_FIRST + 16;
  720.      TVM_HITTEST          =TV_FIRST + 17;
  721.      TVM_CREATEDRAGIMAGE  =TV_FIRST + 18;
  722.      TVM_SORTCHILDREN     =TV_FIRST + 19;
  723.      TVM_ENSUREVISIBLE    =TV_FIRST + 20;
  724.      TVM_SORTCHILDRENCB   =TV_FIRST + 21;
  725.      TVM_ENDEDITLABELNOW  =TV_FIRST + 22;
  726.      TVM_GETISEARCHSTRING =TV_FIRST + 23;
  727.  
  728.      TVE_COLLAPSE            =$0001;
  729.      TVE_EXPAND              =$0002;
  730.      TVE_TOGGLE              =$0003;
  731.      TVE_COLLAPSERESET       =$8000;
  732.  
  733.      TVSIL_NORMAL            =0;
  734.      TVSIL_STATE             =2;
  735.  
  736.      TVGN_ROOT               =$0000;
  737.      TVGN_NEXT               =$0001;
  738.      TVGN_PREVIOUS           =$0002;
  739.      TVGN_PARENT             =$0003;
  740.      TVGN_CHILD              =$0004;
  741.      TVGN_FIRSTVISIBLE       =$0005;
  742.      TVGN_NEXTVISIBLE        =$0006;
  743.      TVGN_PREVIOUSVISIBLE    =$0007;
  744.      TVGN_DROPHILITE         =$0008;
  745.      TVGN_CARET              =$0009;
  746.  
  747. TYPE
  748.     PTV_HITTESTINFO=^TV_HITTESTINFO;
  749.     TV_HITTESTINFO=RECORD
  750.                          pt:POINT;
  751.                          flags:LONGWORD;
  752.                          hItem:HTREEITEM;
  753.     END;
  754.  
  755. CONST
  756.      TVHT_NOWHERE            =$0001;
  757.      TVHT_ONITEMICON         =$0002;
  758.      TVHT_ONITEMLABEL        =$0004;
  759.      TVHT_ONITEMINDENT       =$0008;
  760.      TVHT_ONITEMBUTTON       =$0010;
  761.      TVHT_ONITEMRIGHT        =$0020;
  762.      TVHT_ONITEMSTATEICON    =$0040;
  763.      TVHT_ABOVE              =$0100;
  764.      TVHT_BELOW              =$0200;
  765.      TVHT_TORIGHT            =$0400;
  766.      TVHT_TOLEFT             =$0800;
  767.      TVHT_ONITEM             =TVHT_ONITEMICON OR TVHT_ONITEMLABEL OR TVHT_ONITEMSTATEICON;
  768.  
  769. TYPE
  770.     PFNTVCOMPARE=FUNCTION(lParam1,lParam2,lParamSort:LPARAM):LONGINT;APIENTRY;
  771.  
  772. TYPE
  773.     PTV_SORTCB=^TV_SORTCB;
  774.     TV_SORTCB=RECORD
  775.                     hParent:HTREEITEM;
  776.                     lpfnCompare:PFNTVCOMPARE;
  777.                     lParam:LPARAM;
  778.     END;
  779.  
  780.     PNM_TREEVIEW=^NM_TREEVIEW;
  781.     NM_TREEVIEW=RECORD
  782.                       hdr:NMHDR;
  783.                       action:LONGWORD;
  784.                       itemOld:TV_ITEM;
  785.                       itemNew:TV_ITEM;
  786.                       ptDrag:POINT;
  787.     END;
  788.  
  789. CONST
  790.      TVN_SELCHANGING        =TVN_FIRST-1;
  791.      TVN_SELCHANGED         =TVN_FIRST-2;
  792.  
  793.      TVC_UNKNOWN             =$0000;
  794.      TVC_BYMOUSE             =$0001;
  795.      TVC_BYKEYBOARD          =$0002;
  796.  
  797.      TVN_GETDISPINFO         =TVN_FIRST-3;
  798.      TVN_SETDISPINFO         =TVN_FIRST-4;
  799.  
  800.      TVIF_DI_SETITEM         =$1000;
  801.  
  802. TYPE
  803.     TV_DISPINFO=RECORD
  804.                       hdr:NMHDR;
  805.                       item:TV_ITEM;
  806.     END;
  807.  
  808. CONST
  809.      TVN_ITEMEXPANDING      =TVN_FIRST-5;
  810.      TVN_ITEMEXPANDED       =TVN_FIRST-6;
  811.      TVN_BEGINDRAG          =TVN_FIRST-7;
  812.      TVN_BEGINRDRAG         =TVN_FIRST-8;
  813.      TVN_DELETEITEM         =TVN_FIRST-9;
  814.      TVN_BEGINLABELEDIT     =TVN_FIRST-10;
  815.      TVN_ENDLABELEDIT       =TVN_FIRST-11;
  816.      TVN_KEYDOWN            =TVN_FIRST-12;
  817.  
  818. TYPE
  819.     TV_KEYDOWN=RECORD
  820.                      hdr:NMHDR;
  821.                      wVKey:WORD;
  822.                      flags:LONGWORD;
  823.     END;
  824.  
  825.  
  826. IMPORTS
  827.        PROCEDURE InitCommonControls;
  828.               APIENTRY;        'COMCTL32' name 'InitCommonControls';
  829.        FUNCTION ImageList_Create(cx,cy:LONGINT;flags:LONGWORD;
  830.                                  cInitial,cGrow:LONGINT):HIMAGELIST;
  831.               APIENTRY;        'COMCTL32' name 'ImageList_Create';
  832.        FUNCTION ImageList_Destroy(himl:HIMAGELIST):BOOL;
  833.               APIENTRY;        'COMCTL32' name 'ImageList_Destroy';
  834.        FUNCTION ImageList_GetImageCount(himl:HIMAGELIST):LONGINT;
  835.               APIENTRY;        'COMCTL32' name 'ImageList_GetImageCount';
  836.        FUNCTION ImageList_Add(himl:HIMAGELIST;hbmImage,hbmMask:HBITMAP):LONGINT;
  837.               APIENTRY;        'COMCTL32' name 'ImageList_Add';
  838.        FUNCTION ImageList_ReplaceIcon(himl:HIMAGELIST;i:LONGINT;ahicon:HICON):LONGINT;
  839.               APIENTRY;        'COMCTL32' name 'ImageList_ReplaceIcon';
  840.        FUNCTION ImageList_Replace(himl:HIMAGELIST;i:LONGINT;
  841.                                   hbmImage,hbmMask:HBITMAP):BOOL;
  842.               APIENTRY;        'COMCTL32' name 'ImageList_Replace';
  843.        FUNCTION ImageList_Remove(himl:HIMAGELIST;i:LONGINT):BOOL;
  844.               APIENTRY;        'COMCTL32' name 'ImageList_Remove';
  845. END;
  846.  
  847. FUNCTION ImageList_AddIcon(himl:HIMAGELIST;ahicon:HICON):LONGINT;
  848.  
  849. IMPLEMENTATION
  850.  
  851.  
  852. FUNCTION ImageList_AddIcon(himl:HIMAGELIST;ahicon:HICON):LONGINT;
  853. BEGIN
  854.      result:=ImageList_ReplaceIcon(himl, -1, ahicon);
  855. END;
  856.  
  857. BEGIN
  858. END.
  859.