home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lstbx2.zip / listbox.h < prev    next >
Text File  |  1994-04-22  |  20KB  |  436 lines

  1.  
  2. /* Program name: Listbox.C    Title: A List Box    Replacement        */
  3. /*                                    */
  4. /* OS/2    Developer Magazine, Issue:  May    '94, page 12                    */
  5. /* Author:  Mark Benge       IBM Corp.                    */
  6. /*        Matt Smith       Prominare Inc.                */
  7. /* Description:     Replacement for OS/2 List Box,    first of a series.    */
  8. /*                                    */
  9. /* Program Requirements:  OS/2 2.x                    */
  10. /*              IBM C    Set++                    */
  11. /*              WATCOM C 386/9.0                */
  12. /*              Borland C++ for OS/2                */
  13. /*              OS/2 Toolkit                    */
  14.  
  15. /* Copyright ╕ International Business Machines Corp. 1991-1994        */
  16. /* Copyright ╕ 1989-1994  Prominare Inc.  All Rights Reserved.        */
  17.  
  18. /* listbox.h       Created:    1993-10-08  Revised:    1994-02-28    */
  19.  
  20. /* List    Box Control Constant Definition    Header                */
  21.  
  22. /* Functions are defined with strong typing to insure correct usage    */
  23. /* within the final program and    correct    linkage                */
  24.  
  25. /************************************************************************/ /* 1.1 */
  26. /************************************************************************/ /* 1.1 */
  27. /*                                    */ /* 1.1 */
  28. /************************************************************************/ /* 1.1 */
  29. /*                                    */ /* 1.1 */
  30. /*     Additions for Version 1.1 of the    control    are denoted with    */ /* 1.1 */
  31. /*     comments    starting in column 76 with the 1.1 version number    */ /* 1.1 */
  32. /*                                    */ /* 1.1 */
  33. /************************************************************************/ /* 1.1 */
  34. /*                                    */ /* 1.1 */
  35. /************************************************************************/ /* 1.1 */
  36. /************************************************************************/ /* 1.1 */
  37.  
  38.  
  39. /* --- Memory Types ---------------------------------------------------    */
  40.  
  41. typedef    ULONG HHEAPMEM;
  42. #define    HALLOC_DEFAULT          0xffffffffUL
  43.  
  44. /* --- Internal    Structures --------------------------------------------    */
  45.  
  46. #define    USER_RESERVED       8       /* Control Reserved Memory Size    */
  47.  
  48. #define    QUCWP_WNDP (QWL_USER + 4)  /* Pointer to Internal Control Data    */
  49.  
  50. #define    CBLK_LIST       1024       /* List Array Block Size        */
  51.  
  52. typedef    struct _LISTITEM
  53.    {                   /* Structure    Size:  24 Bytes        */
  54.    PSZ         pszText;           /* Text Pointer            */
  55.    ULONG     cText;           /* Text Length            */
  56.    ULONG     ulHandle;           /* User Defined Handle        */
  57.    ULONG     fl;           /* Flags (Upper 16 bits old Flags)    */
  58.    LONG         cyItem;           /* Item Height            */
  59.    LONG         cxItem;           /* Item Width            */
  60.    } LISTITEM ;
  61.  
  62. typedef    LISTITEM *PLISTITEM;
  63.  
  64. #define    LI_CLEAR       0x00000000UL
  65. #define    LI_SELECTED       0x00000001UL
  66. #define    LI_FOCUS       0x00000002UL
  67. #define    LI_CHECKED       0x00000004UL                       /* 1.1 */
  68. #define    LI_INSERTED       0x00001000UL
  69. #define    LI_SELECTEDPREV       0x00000010UL
  70. #define    LI_SELECTEDOLD       0x00010000UL
  71. #define    LI_FOCUSOLD       0x00020000UL
  72. #define    LI_CHECKEDOLD       0x00040000UL                       /* 1.1 */
  73. #define    LI_INSERTEDOLD       0x10000000UL
  74. #define    LI_SELECTEDPREVOLD 0x00100000UL
  75.  
  76. typedef    struct _LISTCOL
  77.    {
  78.    HHEAPMEM  hHeap;           /* Heap Handle            */
  79.    PLISTITEM *apli;           /* List Item    Array Pointer        */
  80.    } LISTCOL ;
  81.  
  82. typedef    LISTCOL    *PLISTCOL;
  83.  
  84. typedef    struct _LISTBOXWIN
  85.    {
  86.          /***********************************************************/
  87.          /*    Window Management                    */
  88.          /***********************************************************/
  89.    HHEAPMEM  hHeap;           /* Heap Handle            */
  90.    HAB         hAB;           /* Anchor Block Handle        */
  91.    HWND         hWnd;           /* Control Window Handle        */
  92.    HWND         hwndOwner;           /* Owner Window Handle        */
  93.    HWND         hwndParent;       /* Parent Window Handle        */
  94.    HPOINTER  hptr;           /* Selection    Mouse Pointer        */
  95.          /***********************************************************/
  96.          /*    Styles/ID                        */
  97.          /***********************************************************/
  98.    ULONG     flStyle;           /* Style Flags            */
  99.    ULONG     flStyleExt;       /* Extended Style Flags        */ /* 1.1 */
  100.    ULONG     id;           /* Window ID                */
  101.          /***********************************************************/
  102.          /*    Flags                            */
  103.          /***********************************************************/
  104.    BOOL         fFocus;           /* Focus Flag            */
  105.    BOOL         fDblClk;           /* Mouse Double Click Flag        */
  106.    BOOL         fCapture;           /* Mouse Capture Flag        */
  107.    BOOL         fTimer;           /* Mouse Capture Flag        */
  108.    BOOL         fVisible;           /* List Box Visible Flag        */
  109.    BOOL         fDelaySort;       /* Delay Sort Flag            */
  110.    BOOL         fFocusShown;       /* FocusShown Flag            */
  111.          /***********************************************************/
  112.          /*    Window Display                        */
  113.          /***********************************************************/
  114.    LONG         cx;           /* List Box Width            */
  115.    LONG         cy;           /* List Box Height            */
  116.    LONG         cxWindow;           /* List Box Width  (Actual)        */
  117.    LONG         cyWindow;           /* List Box Height (Actual)        */
  118.    LONG         lClrBackground;       /* Background Colour            */
  119.    LONG         lClrBorder;       /* Border Colour            */
  120.    LONG         lClrHilite;       /* Hilite Colour            */
  121.    LONG         lClrHiliteBackground; /* Hilite Background    Colour        */
  122.    LONG         lClrList;           /* List Colour            */
  123.    LONG         lClrText;           /* Text Colour            */
  124.    RECTL     rcl;           /* Window Rectangle            */
  125.    RECTL     rclCorner;           /* Scroll Corner Rectangle        */
  126.    RECTL     rclAdjusted;       /* Adjusted Top Rectangle        */
  127.    POINTL    aptlOutside[5];       /* Border Points Array        */
  128.    POINTL    aptlInside[5];       /* Border Points Array        */
  129.    LONG         cptl;           /* Border Points Array Count        */
  130.          /***********************************************************/
  131.          /*    Scroll Bars                        */
  132.          /***********************************************************/
  133.    SWP         aswp[4];           /* Scroll Bar Position Array        */
  134.    HWND         hwndScrollBottom;       /* Bottom Scroll Bar    Window Handle    */
  135.    HWND         hwndScrollLeft;       /* Left Scroll Bar Window Handle    */
  136.    HWND         hwndScrollRight;       /* Right Scroll Bar Window Handle    */
  137.    HWND         hwndScrollTop;       /* Top Scroll Bar Window Handle    */
  138.    LONG         cxScroll;           /* Vertical Scroll Bar Width        */
  139.    LONG         cyScroll;           /* Horizontal Scroll    Bar Height    */
  140.          /***********************************************************/
  141.          /*    Scroll Bar Indices                    */
  142.          /***********************************************************/
  143.    LONG         cHorzScroll;       /* Horizontal Scroll    Count        */
  144.    LONG         cVertScroll;       /* Vertical Scroll Count        */
  145.    LONG         iHorzScroll;       /* Horizontal Scroll    Position    */
  146.    LONG         iVertScroll;       /* Vertical Scroll Position        */
  147.          /***********************************************************/
  148.          /*    Indices                            */
  149.          /***********************************************************/
  150.    LONG         iAnchor;           /* Anchor Item Index            */
  151.    LONG         iAnchorLast;       /* Last Anchor Item Index        */
  152.    LONG         iFocus;           /* Focus Item Index            */
  153.    LONG         iFocusLast;       /* Last Focus Item Index        */
  154.    LONG         iSelected;           /* Selected Item Index        */
  155.    LONG         iSelectedLast;       /* Last Selected Item Index        */
  156.          /***********************************************************/
  157.          /*    List Box Limits                        */
  158.          /***********************************************************/
  159.    LONG         cCharsPage;       /* Characters per Page        */
  160.    LONG         cLinesPage;       /* Lines per    Page            */
  161.    LONG         cxItem;           /* Longest Horizontal Item        */
  162.    LONG         cyItem;           /* Item Height            */
  163.    LONG         xChar;           /* Character    Width            */
  164.    LONG         yAscender;           /* Character    Ascender Height        */
  165.          /***********************************************************/
  166.          /*    List Box List                        */
  167.          /***********************************************************/
  168.    PLISTCOL  plc;           /* List Column Array            */
  169.    LONG         cColumns;           /* Columns Count            */
  170.    LONG         cItems;           /* Items Count            */
  171.    BOOL         fDirty;           /* Dirty Update Flag            */
  172.          /***********************************************************/ /* 1.1 */
  173.          /*    Sound Support                        */ /* 1.1 */
  174.          /***********************************************************/ /* 1.1 */
  175.    HMODULE   hmodSnd;           /* Sound Support DLL    Handle        */ /* 1.1 */
  176.    ULONG     (*    EXPENTRY pfnLoadWaveFile)(HWND hWnd, PSZ pszWaveFile);       /* 1.1 */
  177.    VOID         (*    EXPENTRY pfnUnloadWave)(HWND hWnd, ULONG hSound);       /* 1.1 */
  178.    VOID         (*    EXPENTRY pfnPlayWave)(ULONG hSound);               /* 1.1 */
  179.    CHAR         szSClkWAV[CCHMAXPATH];/* Single Click Wave    File        */ /* 1.1 */
  180.    ULONG     ulSClkWAV;           /* Single Click Wave    File Handle    */ /* 1.1 */
  181.    CHAR         szDClkWAV[CCHMAXPATH];/* Double Click Wave    File        */ /* 1.1 */
  182.    ULONG     ulDClkWAV;           /* Double Click Wave    File Handle    */ /* 1.1 */
  183.          /***********************************************************/ /* 1.1 */
  184.          /*    Check Box Support                    */ /* 1.1 */
  185.          /***********************************************************/ /* 1.1 */
  186.    HBITMAP   hbm;           /* Check Mark Bitmap    Handle        */ /* 1.1 */
  187.    BOOL         fEnableCheckboxes;       /* Check Box    Enable Flag        */ /* 1.1 */
  188.    RECTL     rclChecked;       /* Checked Bitmap Rectangle        */ /* 1.1 */
  189.    RECTL     rclUnChecked;       /* Unchecked    Bitmap Rectangle    */ /* 1.1 */
  190.    LONG         xTextOffset;       /* Text Offset            */ /* 1.1 */
  191.    LONG         cyHalfBitmap;       /* Bitmap Half Height        */ /* 1.1 */
  192.    } LISTBOXWIN    ;
  193.  
  194. typedef    LISTBOXWIN *PLISTBOXWIN;
  195.  
  196. #define    SWP_VERT       0
  197. #define    SWP_HORZ       1
  198.  
  199. #define    IDT_SCROLL    512
  200.  
  201. #if defined(VERSION_100)                           /* 1.1 */
  202.  
  203. typedef    struct _LISTBOXCDATA
  204.    {
  205.    ULONG    cb;               /* Structure    Size            */
  206.    ULONG    ulVersion;           /* Structure    Version    NUmber        */
  207.    ULONG    cItems;           /* Items Count            */
  208.    BYTE        abList[1];           /* Array List Start            */
  209.    } LISTBOXCDATA ;
  210.  
  211. typedef    LISTBOXCDATA *PLISTBOXCDATA;
  212.  
  213. #define    LBV_100        10000UL       /* Control Data Version Number    */
  214.  
  215. #else                                       /* 1.1 */
  216.                                        /* 1.1 */
  217. typedef    struct _LISTBOXCDATA1                           /* 1.1 */
  218.    {                                       /* 1.1 */
  219.    ULONG    cItems;           /* Items Count            */ /* 1.1 */
  220.    BYTE        abList[1];           /* Array List Start            */ /* 1.1 */
  221.    } LISTBOXCDATA1 ;                               /* 1.1 */
  222.                                        /* 1.1 */
  223. typedef    struct _LISTBOXCDATA2                           /* 1.1 */
  224.    {                                       /* 1.1 */
  225.    ULONG    flExtStyles;       /* Extended Styles            */ /* 1.1 */
  226.    ULONG    cItems;           /* Items Count            */ /* 1.1 */
  227.    ULONG    cSounds;           /* Sounds Count            */ /* 1.1 */
  228.    BYTE        abList[1];           /* Array List Start            */ /* 1.1 */
  229.    } LISTBOXCDATA2 ;                               /* 1.1 */
  230.                                        /* 1.1 */
  231. typedef    union                                   /* 1.1 */
  232.    {                                       /* 1.1 */
  233.    LISTBOXCDATA1 lbcd1_0;       /* List Box Control Data Version 1.0    */ /* 1.1 */
  234.    LISTBOXCDATA2 lbcd1_1;       /* List Box Control Data Version 1.1    */ /* 1.1 */
  235.    } LISTBOXVDATA ;                               /* 1.1 */
  236.                                        /* 1.1 */
  237. typedef    struct _LISTBOXCDATA                           /* 1.1 */
  238.    {                                       /* 1.1 */
  239.    ULONG    cb;           /* Structure    Size            */ /* 1.1 */
  240.    ULONG    ulVersion;       /* Structure    Version    Number        */ /* 1.1 */
  241.    LISTBOXVDATA    vdata;           /* Version Specific Data Union    */ /* 1.1 */
  242.    } LISTBOXCDATA ;                               /* 1.1 */
  243.                                        /* 1.1 */
  244. typedef    LISTBOXCDATA *PLISTBOXCDATA;                       /* 1.1 */
  245.                                        /* 1.1 */
  246. #define    LBV_100       0x00010000UL       /* Control Data Version Number    */ /* 1.1 */
  247. #define    LBV_110       0x000100a0UL       /* Control Data Version Number    */ /* 1.1 */
  248.                                        /* 1.1 */
  249. #endif                                       /* 1.1 */
  250.  
  251. /************************************************************************/
  252. /************************************************************************/
  253. /*                                    */
  254. /*     Inline Macros                            */
  255. /*                                    */
  256. /************************************************************************/
  257. /************************************************************************/
  258.  
  259. #define    SaveSelectState(iCol, iSelected)  { if ( plbw->flStyle & LS_OWNERDRAW )\
  260.    if (    (plbw->plc[iCol].apli[iSelected]->fl & LI_SELECTED) && fItemVisible(plbw, iSelected) )\
  261.        plbw->plc[iCol].apli[iSelected]->fl |= LI_SELECTEDPREV;\
  262.    else\
  263.        plbw->plc[iCol].apli[iSelected]->fl &= ~LI_SELECTEDPREV;    }
  264.  
  265. /************************************************************************/
  266. /************************************************************************/
  267. /*                                    */
  268. /*     Extended    Messages                        */
  269. /*                                    */
  270. /************************************************************************/
  271. /************************************************************************/
  272.  
  273. #define    LMX_CALCLINECOUNT      0x0180UL
  274. #define    LMX_CALCSIZE           0x0181UL
  275. #define    LMX_COPY           0x0182UL
  276. #define    LMX_CUT               0x0183UL
  277. #define    LMX_PASTE           0x0184UL
  278. #define    LMX_QUERYITEMCOUNT     0x0185UL
  279. #define    LMX_QUERYITEMRECT      0x0186UL
  280. #define    LMX_QUERYSELECTLIST    0x0187UL
  281. #define    LMX_RESETLIST           0x0188UL
  282. #define    LMX_SELECTALL           0x0189UL
  283. #define    LMX_SELECTITEMBITMAP   0x018aUL
  284. #define    LMX_SETARRAY           0x018bUL
  285. #define    LMX_SETARRAYHANDLES    0x018cUL
  286. #define    LMX_SETITEMBITMAPS     0x018dUL
  287. #define    LMX_SETITEMCOUNT       0x018eUL
  288. #define    LMX_SORT           0x018fUL
  289. #define    LMX_SETARRAYITEMS      0x0190UL
  290. #define    LMX_ADDARRAY           0x0191UL
  291.  
  292. #define    LMX_SETCHECK           0x0192UL                       /* 1.1 */
  293. #define    LMX_QUERYCHECK           0x0193UL                       /* 1.1 */
  294. #define    LMX_SETCHECKARRAY      0x0194UL                       /* 1.1 */
  295. #define    LMX_QUERYCHECKARRAY    0x0195UL                       /* 1.1 */
  296.  
  297. #define    LMXM_SETSOUNDEVENT     0x0196UL                       /* 1.1 */
  298. #define    LMXM_QUERYSOUNDEVENT   0x0197UL                       /* 1.1 */
  299.  
  300. /************************************************************************/ /* 1.1 */
  301. /************************************************************************/ /* 1.1 */
  302. /*                                    */ /* 1.1 */
  303. /*     Sound Events                            */ /* 1.1 */
  304. /*                                    */ /* 1.1 */
  305. /************************************************************************/ /* 1.1 */
  306. /************************************************************************/ /* 1.1 */
  307.  
  308. #define    LSND_SINGLECLICK     1                       /* 1.1 */
  309. #define    LSND_DOUBLECLICK     2                       /* 1.1 */
  310.  
  311. /************************************************************************/ /* 1.1 */
  312. /************************************************************************/ /* 1.1 */
  313. /*                                    */ /* 1.1 */
  314. /*     Check Boxes                            */ /* 1.1 */
  315. /*                                    */ /* 1.1 */
  316. /************************************************************************/ /* 1.1 */
  317. /************************************************************************/ /* 1.1 */
  318.  
  319. #define    IDB_CHECKMARKS         512                       /* 1.1 */
  320.  
  321. /************************************************************************/ /* 1.1 */
  322. /************************************************************************/ /* 1.1 */
  323. /*                                    */ /* 1.1 */
  324. /*     Style Extensions                            */ /* 1.1 */
  325. /*                                    */ /* 1.1 */
  326. /************************************************************************/ /* 1.1 */
  327. /************************************************************************/ /* 1.1 */
  328.  
  329. #define    LSXS_CHECKBOX         0x00000001UL                   /* 1.1 */
  330.  
  331. /************************************************************************/ /* 1.1 */
  332. /************************************************************************/ /* 1.1 */
  333. /*                                    */ /* 1.1 */
  334. /*     Notification Extensions                        */ /* 1.1 */
  335. /*                                    */ /* 1.1 */
  336. /************************************************************************/ /* 1.1 */
  337. /************************************************************************/ /* 1.1 */
  338.  
  339. #define    LNX_CHECKED         256UL                       /* 1.1 */
  340.  
  341. /************************************************************************/
  342. /************************************************************************/
  343. /*                                    */
  344. /*     Prototypes                            */
  345. /*                                    */
  346. /************************************************************************/
  347. /************************************************************************/
  348.  
  349. /* --- EventMgr.C Prototype Definitions    -------------------------------    */
  350.  
  351. MRESULT    mrNotifyOwner(PLISTBOXWIN plbw,    ULONG ulNotification);
  352.  
  353. /* --- HeapMgr.C Prototype Definitions --------------------------------    */
  354.  
  355. HHEAPMEM HeapAlloc(ULONG cbInitial, ULONG cbNewBlks);
  356. VOID     HeapRelease(HHEAPMEM hHeap);
  357. ULONG     HeapSize(HHEAPMEM hHeap);
  358.  
  359. VOID     HeapStatus(HHEAPMEM hHeap, PULONG pcBlocks, PULONG pulSize,
  360.             PULONG pulUsed, PULONG pulFree, PULONG pulUnused, PULONG pulOverhead);
  361. VOID     HeapDisplayStatus(HHEAPMEM hHeap);
  362.  
  363. PVOID     HeapMalloc(HHEAPMEM hHeap, ULONG cbSize);
  364. PVOID     HeapCalloc(HHEAPMEM hHeap, ULONG cItems, ULONG    cbSize);
  365. PVOID     HeapRealloc(HHEAPMEM hHeap, PVOID pv, ULONG cbSize);
  366. VOID     HeapFree(HHEAPMEM hHeap, PVOID    pv);
  367.  
  368. /* --- ListBox.C Prototype Definitions --------------------------------    */
  369.  
  370. BOOL EXPENTRY fRegisterListBox(HAB hAB);
  371. VOID UpdateScrollBars(PLISTBOXWIN plbw);
  372. VOID DrawSelection(PLISTBOXWIN plbw, LONG iItem);
  373. VOID DrawItemSelection(PLISTBOXWIN plbw, LONG iItem);
  374. BOOL fItemVisible(PLISTBOXWIN plbw, LONG iItem);
  375. LONG lItemFromPoint(PLISTBOXWIN    plbw, LONG y);
  376. MRESULT    EXPENTRY ScrollBarWndProc(HWND hWnd, ULONG msg,    MPARAM mp1, MPARAM mp2);
  377. MRESULT    EXPENTRY ListBoxWndProc(HWND hWnd, ULONG msg, MPARAM mp1, MPARAM mp2);
  378.  
  379. /* --- ListMgr.C Prototype Definitions --------------------------------    */
  380.  
  381. LONG lSetItemText(HHEAPMEM hHeap, HWND hWnd, PLISTITEM pli, PSZ    pszText);
  382. VOID SaveExtendedState(PLISTBOXWIN plbw);
  383. VOID RestoreExtendedState(PLISTBOXWIN plbw);
  384. BOOL fSelectMultipleItem(PLISTBOXWIN plbw, LONG    iCol, LONG iSelected, BOOL fSelect);
  385. BOOL fSelectItem(PLISTBOXWIN plbw, LONG    iCol, LONG iItem, BOOL fSelect);
  386. VOID SelectExtendedItems(PLISTBOXWIN plbw, LONG    iCol, LONG iSelected);
  387. VOID SetControlDataList(PLISTBOXWIN plbw, ULONG    cItems,    PBYTE pb);
  388. MRESULT    EXPENTRY mrBaseListHandler(HWND    hWnd, ULONG msg, MPARAM    mp1, MPARAM mp2);
  389. MRESULT    EXPENTRY mrExtendedListHandler(HWND hWnd, ULONG    msg, MPARAM mp1, MPARAM    mp2);
  390. MRESULT    EXPENTRY mrChkBoxHandler(HWND hWnd, ULONG msg, MPARAM mp1,       /* 1.1 */
  391.                  MPARAM    mp2);                   /* 1.1 */
  392.  
  393. /* --- SndMgr.C    Prototype Definitions ---------------------------------    */ /* 1.1 */
  394.  
  395. VOID LoadSoundSupport(PLISTBOXWIN plbw);                   /* 1.1 */
  396. VOID PlaySound(PLISTBOXWIN plbw, ULONG ulSound);               /* 1.1 */
  397. VOID UnloadSoundSupport(PLISTBOXWIN plbw);                   /* 1.1 */
  398. VOID SetControlDataSounds(PLISTBOXWIN plbw, ULONG cItems, ULONG    cSounds,   /* 1.1 */
  399.               PBYTE    pb);                       /* 1.1 */
  400. MRESULT    EXPENTRY mrSoundHandler(HWND hWnd, ULONG msg, MPARAM mp1,       /* 1.1 */
  401.                 MPARAM mp2);                   /* 1.1 */
  402.  
  403. /* --- TraffMgr.C Prototype Definitions    -------------------------------    */
  404.  
  405. LONG lGetPresParam(HWND    hWnd, ULONG ulID1, ULONG ulID2,    LONG lDefault);
  406. BOOL fAddHorzScroll(HWND hWnd, PLISTBOXWIN plbw);
  407. VOID MeasureItem(PLISTBOXWIN plbw, LONG    lMaxBaselineExt);
  408. VOID SizeListBox(PLISTBOXWIN plbw);
  409. VOID FocusChange(PLISTBOXWIN plbw, LONG    iFocus,    BOOL fSet);
  410. VOID RemoveFocus(PLISTBOXWIN plbw);
  411. VOID SetFocus(PLISTBOXWIN plbw,    LONG iFocus);
  412. VOID DrawItemSelection(PLISTBOXWIN plbw, LONG iItem);
  413. BOOL fDecodeChkSelect(PLISTBOXWIN plbw,    MPARAM mp1);               /* 1.1 */
  414. BOOL fDecodeMouse(PLISTBOXWIN plbw, MPARAM mp1);
  415. BOOL fDecodeExtendedMouse(PLISTBOXWIN plbw, MPARAM mp1,    BOOL fBlock);
  416. VOID LineUp(PLISTBOXWIN    plbw);
  417. VOID LineDown(PLISTBOXWIN plbw);
  418. VOID DragUp(PLISTBOXWIN    plbw);
  419. VOID DragDown(PLISTBOXWIN plbw);
  420.  
  421. /************************************************************************/ /* 1.1 */
  422. /************************************************************************/ /* 1.1 */
  423. /*                                    */ /* 1.1 */
  424. /*     Sound DLL Support                        */ /* 1.1 */
  425. /*                                    */ /* 1.1 */
  426. /************************************************************************/ /* 1.1 */
  427. /************************************************************************/ /* 1.1 */
  428.  
  429. ULONG EXPENTRY LoadWaveFile(HWND hWnd, PSZ pszWaveFile);           /* 1.1 */
  430. VOID  EXPENTRY UnloadWave(HWND hWnd, ULONG hSound);               /* 1.1 */
  431. VOID  EXPENTRY PlayWave(ULONG hSound);                       /* 1.1 */
  432.  
  433. #define    ORD_LOADWAVEFILE     1                       /* 1.1 */
  434. #define    ORD_PLAYWAVE         2                       /* 1.1 */
  435. #define    ORD_UNLOADWAVE         3                       /* 1.1 */
  436.