home *** CD-ROM | disk | FTP | other *** search
/ The Developer Connection…ice Driver Kit for OS/2 3 / DEV3-D1.ISO / devtools / os2tk21j / c / samples / wpcar / car.cs_ / car.csc
Encoding:
Text File  |  1993-03-12  |  23.1 KB  |  783 lines

  1. /******************************************************************************
  2. *
  3. *  Module Name: CAR
  4. *
  5. *  OS/2 Work Place Shell Sample Program
  6. *
  7. *  Copyright (C) 1992 IBM Corporation
  8. *
  9. *      DISCLAIMER OF WARRANTIES.  The following [enclosed] code is
  10. *      sample code created by IBM Corporation. This sample code is not
  11. *      part of any standard or IBM product and is provided to you solely
  12. *      for  the purpose of assisting you in the development of your
  13. *      applications.  The code is provided "AS IS", without
  14. *      warranty of any kind.  IBM shall not be liable for any damages
  15. *      arising out of your use of the sample code, even if they have been
  16. *      advised of the possibility of such damages.                                                    *
  17. *
  18. ******************************************************************************/
  19.  
  20. ###   Note: The header preceding this comment will be emitted in all files.
  21. ###
  22. ###         Any comments to go public should be preceded with '--'
  23. ###         Any comments to remain private should be preceded with '#'
  24.  
  25. #******************************************************************************
  26. #   Include the class definition file for the parent class
  27. #******************************************************************************
  28.  
  29. include <wpdataf.sc>
  30.  
  31. #******************************************************************************
  32. #   Define the new class
  33. #******************************************************************************
  34.  
  35. class: Car,
  36.        external stem   = car,
  37.        local,
  38.        external prefix = car_,
  39.        classprefix     = carM_,
  40.        major version   = 1,
  41.        minor version   = 2;
  42.  
  43. --
  44. -- CLASS: Car
  45. --
  46. -- CLASS HIERARCHY:
  47. --
  48. --     SOMObject
  49. --       └── WPObject
  50. --             └── WPFileSystem
  51. --                   └── WPDataFile
  52. --                         └──  Car
  53. --
  54. -- DESCRIPTION:
  55. --
  56. --    This is the sample car object class.
  57. --
  58. --    An instance of this class can be created as a Workplace object.
  59. --
  60.  
  61. #******************************************************************************
  62. #   Specify the parent class
  63. #******************************************************************************
  64.  
  65. parent: WPDataFile;
  66.  
  67. #******************************************************************************
  68. #   Specify the release order of new methods.  This ensures binary
  69. #   compatability if we change the order of our methods in .c and .csc files.
  70. #******************************************************************************
  71.  
  72. release order:
  73.               QueryBrakes,
  74.               SetBrakes,
  75.               QueryDuration,
  76.               SetDuration,
  77.               QueryHighTone,
  78.               SetHighTone,
  79.               QueryLowTone,
  80.               SetLowTone,
  81.               QuerySpeed,
  82.               SetSpeed,
  83.               BeepHorn,
  84.               AddDashboardPage,
  85.               AddHornBeepPage,
  86.               clsQueryModuleHandle,
  87.               TrapTest;
  88.  
  89. #******************************************************************************
  90. #   Passthru PRIVATE definitions to the .ph file
  91. #******************************************************************************
  92.  
  93. passthru: C.ph;
  94.  
  95.    /*
  96.     *   The following structures will be used to store window specific data
  97.     *   and a pointer to the object that created the window/dialog.
  98.     *
  99.     *   They're allocated when the Client window is created.  This
  100.     *   allows us to pass the *somSelf pointer and use it in our
  101.     *   window and dialog procedures (the system only passes this
  102.     *   pointer to methods).
  103.     */
  104.    typedef struct _WINDOWDATA
  105.    {
  106.       USHORT   cb;            /* size of this structure */
  107.       Car     *somSelf;       /* pointer to this instance */
  108.       USEITEM  UseItem;       /* global class usage information */
  109.       VIEWITEM ViewItem;      /* global class view information */
  110.       LONG     x;             /* x position of car in open view */
  111.       LONG     y;             /* y position of car in open view */
  112.       LONG     xDir;          /* x direction (CAR_LEFT or CAR_RIGHT) */
  113.       LONG     yDir;          /* y direction (CAR_UP or CAR_DOWN) */
  114.    } WINDOWDATA;
  115.    typedef WINDOWDATA *PWINDOWDATA;
  116.  
  117.    /*
  118.     *   Window data for the Dashboard dialog (settings page)
  119.     */
  120.    typedef struct _DASHDLGDATA
  121.    {
  122.       USHORT   cb;            /* size of this structure */
  123.       Car    *somSelf;        /* pointer to this instance         */
  124.       BOOL    PrevBrakes;     /* indicates if car is stopped      */
  125.       ULONG   PrevSpeed;      /* Speed car moves across screen    */
  126.    } DASHDLGDATA;
  127.    typedef DASHDLGDATA *PDASHDLGDATA;
  128.  
  129.    /*
  130.     *   Window data for the Horn dialog (settings page)
  131.     */
  132.    typedef struct _HORNDLGDATA
  133.    {
  134.       USHORT   cb;            /* size of this structure */
  135.       Car    *somSelf;        /* pointer to this instance         */
  136.       ULONG   PrevDuration;   /* Duration of the car's horn beep  */
  137.       ULONG   PrevHighTone;   /* The high note of the car beep    */
  138.       ULONG   PrevLowTone;    /* The low note of the car beep     */
  139.    } HORNDLGDATA;
  140.    typedef HORNDLGDATA *PHORNDLGDATA;
  141.  
  142.    /*
  143.     *   These defines are used as directional multipliers against x,y position.
  144.     */
  145.    #define CAR_LEFT  -1
  146.    #define CAR_RIGHT  1
  147.    #define CAR_DOWN  -1
  148.    #define CAR_UP     1
  149.  
  150.    #define ICON_WIDTH   32     /* pels */
  151.    #define ICON_HEIGHT  32     /* pels */
  152.  
  153.    /*
  154.     *   Private Debug helpers go here.  They can be enabled/disabled by
  155.     *   defining DEBUG as a compiler directive.
  156.     */
  157.    #if defined(DEBUG)
  158.  
  159.       #define DebugBox(title, text) \
  160.                                     \
  161.                  WinMessageBox(     \
  162.                     HWND_DESKTOP,   \
  163.                     HWND_DESKTOP,   \
  164.                     (PSZ) text,     \
  165.                     (PSZ) title,    \
  166.                     20,             \
  167.                     MB_OK | MB_INFORMATION | MB_MOVEABLE)
  168.    #else
  169.       #define DebugBox(title, text)   /* do nothing if not debugging */
  170.    #endif
  171.  
  172. endpassthru;   /* C.ph */
  173.  
  174. #******************************************************************************
  175. #   Passthru IMPLEMENTATION definitions to the .ih file
  176. #******************************************************************************
  177.  
  178. passthru: C.ih;
  179.  
  180.    #define INCL_WIN
  181.    #define INCL_DOS
  182.    #define INCL_GPIBITMAPS
  183.    #define INCL_DOSERRORS
  184.    #include <os2.h>
  185.  
  186.    #define INCL_WPCLASS
  187.    #define INCL_WPFOLDER
  188.  
  189.    #include <pmwp.h>
  190.  
  191.    #define ID_TITLE           100
  192.    #define ID_ICON            101
  193.  
  194.    #define IDD_DASHBOARD      200                  /* settings page (dialog) */
  195.    #define IDD_HORNBEEP       202
  196.  
  197.    /*
  198.     *   The following user-defined Popup menu items (ID_xxx) should be higher
  199.     *   than WPMENUID_USER.
  200.     *
  201.     *   The ID_OPENMENU will become a submenu of the system's popup open menu
  202.     *   id, WPMENUID_OPEN.
  203.     */
  204.    #define ID_BEEPMENU        (WPMENUID_USER+1) /* menus added to popup menu */
  205.    #define ID_OPENMENU        (WPMENUID_USER+2)
  206.    #define ID_TRAPMENU        (WPMENUID_USER+3)
  207.  
  208.    #define IDM_OPENCAR        (WPMENUID_USER+4) /* submenus of added menus */
  209.    #define IDM_BEEPHORN       (WPMENUID_USER+5)
  210.    #define IDM_TRAPCAR        (WPMENUID_USER+6)
  211.  
  212.    #define IDMSG_ACCESS_VIOLATION  100
  213.    #define IDM_MSGBOX              999
  214.  
  215.    #define ID_FRAME           3000                       /* client window id */
  216.    #define ID_CLIENT          3001                       /* client window id */
  217.  
  218.    /*
  219.     *   Set unique view ids.
  220.     */
  221.    #define OPEN_CAR           ID_OPENMENU
  222.  
  223.    #define CAR_TIMER          1001                               /* timer id */
  224.  
  225.    /*
  226.     *   IDs of dialog items in CAR.RC
  227.     */
  228.    #define ID_UNDO            801
  229.    #define ID_DEFAULT         802
  230.    #define ID_HELP            803
  231.    #define ID_HITONE          804
  232.    #define ID_LOTONE          805
  233.    #define ID_SPEEDSLIDER     806
  234.    #define ID_STOP            807
  235.    #define ID_SPEEDDATA       808
  236.    #define ID_GO              809
  237.  
  238.    /*
  239.     *  Keys for save-restore methods
  240.     */
  241.    #define IDKEY_HITONE       1
  242.    #define IDKEY_LOTONE       2
  243.    #define IDKEY_DURATION     3
  244.    #define IDKEY_SPEED        4
  245.    #define IDKEY_BRAKEFLAG    5
  246.  
  247.    /*
  248.     *   Default values of instance data items
  249.     */
  250.    #define DEFAULT_DURATION   300
  251.    #define DEFAULT_HITONE     400
  252.    #define DEFAULT_LOTONE     400
  253.    #define DEFAULT_SPEED      50
  254.    #define DEFAULT_BRAKEFLAG  FALSE
  255.  
  256.    /*
  257.     *   Help IDs
  258.     *
  259.     *   NOTE:  At this time, no source file is provided to build help for this
  260.     *   sample.  A pre-built help file, CAR.HLP, is provided containing the
  261.     *   following help ids.
  262.     */
  263.    #define ID_HELP_DEFAULT    256
  264.    #define ID_HELP_DASHBOARD  257
  265.    #define ID_HELP_OPENCAR    258
  266.    #define ID_HELP_HORNBEEP   259
  267.    #define ID_HELP_BEEPHORN   260
  268.  
  269.    /*
  270.     *   Indexes into CARDETAILS information. (arrays)
  271.     */
  272.    #define  INDEX_MAKE         0
  273.    #define  INDEX_MODEL        1
  274.    #define  INDEX_COLOR        2
  275.    #define  INDEX_SALE_DATE    3
  276.    #define  INDEX_PRICE        4
  277.  
  278.    /*
  279.     *   CARDETAILS:  Structure used for details view
  280.     */
  281.    typedef struct _CARDETAILS
  282.    {
  283.       PSZ     pszMake;     /* Manufacturer      */
  284.       PSZ     pszModel;    /* Model             */
  285.       PSZ     pszColor;    /* Color of car      */
  286.       CDATE   cdateSale;   /* Date of sale      */
  287.       ULONG   ulPrice;     /* Price in dollars  */
  288.    } CARDETAILS;
  289.    typedef CARDETAILS *PCARDETAILS;
  290.  
  291. endpassthru;   /* .ih */
  292.  
  293. #******************************************************************************
  294. #   Passthru PUBLIC definitions to the .h file
  295. #******************************************************************************
  296.  
  297. passthru: C.h, after;
  298.  
  299.  
  300. endpassthru;   /* C.h */
  301.  
  302. #******************************************************************************
  303. #   Define instance data
  304. #******************************************************************************
  305.  
  306. data:
  307.  
  308.    BOOL    BrakeFlag;                       /* indicates if car is stopped */
  309.    ULONG   duration;                        /* Duration of the car's horn */
  310.    ULONG   HighTone;                        /* The high note of the beep */
  311.    ULONG   LowTone;                         /* The low note of the beep */
  312.    ULONG   speed;                           /* Speed car moves across screen */
  313.  
  314. #******************************************************************************
  315. #   Define methods
  316. #******************************************************************************
  317.  
  318. methods:
  319.  
  320. BOOL QueryBrakes();
  321. --
  322. -- METHOD: QueryBrakes                                    ( ) PRIVATE
  323. --                                                        (X) PUBLIC
  324. -- DESCRIPTION:
  325. --
  326. --   Query state of car's brakes
  327. --
  328. -- RETURN:
  329. --
  330. --   TRUE           Brake is on
  331. --   FALSE          Brake is off
  332. --
  333.  
  334. VOID SetBrakes(BOOL fBrake);
  335. --
  336. -- METHOD: SetBrakes                                      ( ) PRIVATE
  337. --                                                        (X) PUBLIC
  338. -- DESCRIPTION:
  339. --
  340. --   Put on the brakes
  341. --
  342.  
  343. ULONG QueryDuration();
  344. --
  345. -- METHOD: QueryDuration                                  ( ) PRIVATE
  346. --                                                        (X) PUBLIC
  347. -- DESCRIPTION:
  348. --
  349. --   Query Duration of horn beep
  350. --
  351. -- RETURN:
  352. --
  353. --   ULONG          Duration of beep
  354. --
  355.  
  356. VOID SetDuration(ULONG ulDuration);
  357. --
  358. -- METHOD: SetDuration                                    ( ) PRIVATE
  359. --                                                        (X) PUBLIC
  360. -- DESCRIPTION:
  361. --
  362. --   Set Duration of horn beep
  363. --
  364.  
  365. ULONG QueryHighTone();
  366. --
  367. -- METHOD: QueryHighTone                                  ( ) PRIVATE
  368. --                                                        (X) PUBLIC
  369. -- DESCRIPTION:
  370. --
  371. --   Query HighTone of horn
  372. --
  373. -- RETURN:
  374. --
  375. --   ULONG          High frequency of horn
  376. --
  377.  
  378. VOID SetHighTone(ULONG ulTone) ;
  379. --
  380. -- METHOD: SetHighTone                                    ( ) PRIVATE
  381. --                                                        (X) PUBLIC
  382. -- DESCRIPTION:
  383. --
  384. --   Set HighTone of horn
  385. --
  386.  
  387. ULONG QueryLowTone();
  388. --
  389. -- METHOD: QueryLowTone                                   ( ) PRIVATE
  390. --                                                        (X) PUBLIC
  391. -- DESCRIPTION:
  392. --
  393. --   Query LowTone of horn
  394. --
  395. -- RETURN:
  396. --
  397. --   ULONG          High frequency of horn
  398. --
  399.  
  400. VOID SetLowTone(ULONG ulTone) ;
  401. --
  402. -- METHOD: SetLowTone                                     ( ) PRIVATE
  403. --                                                        (X) PUBLIC
  404. -- DESCRIPTION:
  405. --
  406. --   Set LowTone of horn
  407. --
  408.  
  409. ULONG QuerySpeed();
  410. --
  411. -- METHOD: QuerySpeed                                     ( ) PRIVATE
  412. --                                                        (X) PUBLIC
  413. -- DESCRIPTION:
  414. --
  415. --   Query Speed of car
  416. --
  417. -- RETURN:
  418. --
  419. --   ULONG          car speed
  420. --
  421.  
  422. VOID SetSpeed(ULONG ulSpeed);
  423. --
  424. -- METHOD: SetSpeed                                       ( ) PRIVATE
  425. --                                                        (X) PUBLIC
  426. -- DESCRIPTION:
  427. --
  428. --   Set Speed of car
  429. --
  430.  
  431. BOOL BeepHorn ();
  432. --
  433. -- METHOD: BeepHorn                                       ( ) PRIVATE
  434. --                                                        (X) PUBLIC
  435. -- DESCRIPTION:
  436. --
  437. --   Beep the car's horn.
  438. --
  439. -- RETURN:
  440. --
  441. --   TRUE           Successful
  442. --   FALSE          Unsuccessful
  443. --
  444.  
  445. ULONG AddDashboardPage (HWND hwndNotebook);
  446. --
  447. -- METHOD: AddDashboardPage                               ( ) PRIVATE
  448. --                                                        (X) PUBLIC
  449. -- DESCRIPTION:
  450. --
  451. --   This method adds the dashboard page to the settings notebook.
  452. --
  453. -- RETURN:
  454. --
  455. --   0              Unsuccessful
  456. --   ulPageId       Identifier for the inserted page
  457. --
  458. -- HOW TO OVERRIDE:
  459. --
  460. --   Method should always be overridden in order to replace or remove
  461. --   the dashboard page from an object which is a descendent of Car.
  462. --   In most cases, an override of this method will not call the parent.
  463. --
  464.  
  465.  
  466. ULONG AddHornBeepPage (HWND hwndNotebook);
  467. --
  468. -- METHOD: AddHornBeepPage                                ( ) PRIVATE
  469. --                                                        (X) PUBLIC
  470. -- DESCRIPTION:
  471. --
  472. --   This method adds the horn beep page to the settings
  473. --   notebook.
  474. --
  475. -- RETURN:
  476. --
  477. --   0              Unsuccessful
  478. --   ulPageId       Identifier for the inserted page
  479. --
  480. -- HOW TO OVERRIDE:
  481. --
  482. --   Method should always be overridden in order to replace or remove
  483. --   the horn beep page from an object which is a descendent of Car.
  484. --   In most cases, an override of this method will not call the parent.
  485. --
  486.  
  487.  
  488. VOID TrapTest ();
  489. --
  490. -- METHOD: AddHornBeepPage                                ( ) PRIVATE
  491. --                                                        (X) PUBLIC
  492. -- DESCRIPTION:
  493. --
  494. --   This method tests the exception handling in this sample.
  495. --
  496. -- RETURN:
  497. --
  498. --   nothing
  499. --
  500. -- HOW TO OVERRIDE:
  501. --
  502. --   n/a
  503. --
  504.  
  505.  
  506. #******************************************************************************
  507. #   Specify methods being overridden
  508. #******************************************************************************
  509.  
  510. -----------------------------------------------------------------------------
  511. --   Methods from the WPObject class
  512. -----------------------------------------------------------------------------
  513.  
  514. override wpInitData;
  515. --
  516. -- OVERRIDE: wpInitData                                   ( ) PRIVATE
  517. --                                                        (X) PUBLIC
  518. -- DESCRIPTION:
  519. --
  520. --   Initialize our state variables. Allocate any extra memory that
  521. --   we might need.
  522. --
  523.  
  524. override wpUnInitData;
  525. --
  526. -- OVERRIDE: wpUnInitData                                 ( ) PRIVATE
  527. --                                                        (X) PUBLIC
  528. -- DESCRIPTION:
  529. --
  530. --   Clear up memory that was allocated on wpInitData.
  531. --
  532.  
  533. override wpSaveState;
  534. --
  535. -- METHOD: wpSaveState                                    ( ) PRIVATE
  536. --                                                        (X) PUBLIC
  537. -- DESCRIPTION:
  538. --
  539. --   Save our state variables (pitch and duration).
  540. --
  541.  
  542. override wpRestoreState;
  543. --
  544. -- METHOD: wpRestoreState                                 ( ) PRIVATE
  545. --                                                        (X) PUBLIC
  546. -- DESCRIPTION:
  547. --
  548. --   Retrieve our saved state variables (pitch and duration).
  549. --
  550.  
  551. override wpAddSettingsPages;
  552. --
  553. -- METHOD: wpAddSettingsPages                             ( ) PRIVATE
  554. --                                                        (X) PUBLIC
  555. -- DESCRIPTION:
  556. --
  557. --   Add our own settings page to let the user alter the pitch
  558. --   and duration of the car's beep.
  559. --
  560.  
  561. override wpFilterPopupMenu;
  562. --
  563. -- METHOD: wpFilterPopupMenu                              ( ) PRIVATE
  564. --                                                        (X) PUBLIC
  565. -- DESCRIPTION:
  566. --
  567. --   Filter out any options from the context that don't apply.
  568. --
  569. -- HOW TO OVERRIDE:
  570. --
  571. --   No restrictions.
  572. --
  573.  
  574. override wpModifyPopupMenu;
  575. --
  576. -- METHOD: wpModifyPopupMenu                              ( ) PRIVATE
  577. --                                                        (X) PUBLIC
  578. -- DESCRIPTION:
  579. --
  580. --   Add our extra option to the context menu to beep the horn
  581. --
  582.  
  583. override wpMenuItemSelected;
  584. --
  585. -- METHOD: wpMenuItemSelected                             ( ) PRIVATE
  586. --                                                        (X) PUBLIC
  587. -- DESCRIPTION:
  588. --
  589. --   Process input from the extra menu option that we added.
  590. --
  591.  
  592. override wpMenuItemHelpSelected;
  593. --
  594. -- METHOD: wpMenuItemHelpSelected                         ( ) PRIVATE
  595. --                                                        (X) PUBLIC
  596. -- DESCRIPTION:
  597. --
  598. --   Process input from the extra menu option that we added.
  599. --
  600.  
  601. override wpQueryDetailsData;
  602. --
  603. -- METHOD: wpQueryDetailsData                             ( ) PRIVATE
  604. --                                                        (X) PUBLIC
  605. -- DESCRIPTION:
  606. --
  607. --   Returns the car specific data for the details view of this object.
  608. --   Sets the pointer (*ppDetailsData) to the beginning of the buffer
  609. --   into which the data is written.
  610. --
  611.  
  612. override wpOpen;
  613. --
  614. --  METHOD: wpOpen                                         ( ) PRIVATE
  615. --                                                         (X) PUBLIC
  616. --  DESCRIPTION:
  617. --
  618. --    Opens the car window.
  619. --
  620.  
  621. override wpSetup;
  622. --
  623. -- METHOD: wpSetup                                        ( ) PRIVATE
  624. --                                                        (X) PUBLIC
  625. -- DESCRIPTION:
  626. --
  627. --   Specify Setup strings and do some initialization.  This method is
  628. --   invoked once an object is completely created.
  629. --
  630.  
  631. #******************************************************************************
  632. #   Define class methods
  633. #******************************************************************************
  634.  
  635. HMODULE  clsQueryModuleHandle (), class;
  636. --
  637. -- METHOD: clsQueryModuleHandle                           ( ) PRIVATE
  638. --                                                        (X) PUBLIC
  639. -- DESCRIPTION:
  640. --
  641. --   This method returns the module handle of this class.  If this is the
  642. --   first invocation, DosQueryModuleHandle is called to save the handle
  643. --   for future invocations.
  644. --
  645. -- RETURN:
  646. --
  647. --   0              Unsuccessful
  648. --   non-zero       module handle
  649. --
  650.  
  651. #******************************************************************************
  652. #   Specify class methods being overridden
  653. #******************************************************************************
  654.  
  655. override wpclsInitData, class;
  656. --
  657. -- METHOD: wpclsInitData
  658. --
  659. -- DESCRIPTION:
  660. --
  661. --   Initalize the class data
  662. --
  663.  
  664. override wpclsUnInitData, class;
  665. --
  666. -- METHOD: wpclsUnInitData
  667. --
  668. -- DESCRIPTION:
  669. --
  670. --   Free any class data
  671. --
  672.  
  673. override wpclsQueryTitle, class;
  674. --
  675. -- METHOD: wpclsQueryTitle                                ( ) PRIVATE
  676. --                                                        (X) PUBLIC
  677. -- DESCRIPTION:
  678. --
  679. --   Return the string "New car".
  680. --
  681.  
  682. override wpclsQueryIconData, class;
  683. --
  684. -- METHOD: wpclsQueryIconDdata                            ( ) PRIVATE
  685. --                                                        (X) PUBLIC
  686. -- DESCRIPTION:
  687. --
  688. --   Return the class icon
  689. --
  690.  
  691. override wpclsQueryDefaultHelp, class;
  692. --
  693. -- METHOD: wpclsQueryDefaultHelp                          ( ) PRIVATE
  694. --                                                        (X) PUBLIC
  695. -- DESCRIPTION:
  696. --
  697. --   Process input from the extra menu option that we added.
  698. --
  699.  
  700. override wpclsQueryDefaultView, class;
  701. --
  702. -- METHOD: wpclsQueryDefaultView                          ( ) PRIVATE
  703. --                                                        (X) PUBLIC
  704. -- DESCRIPTION:
  705. --
  706. --   Returns the default view for a new instance of this object.
  707. --
  708. -- REMARKS:
  709. --
  710. --   Tell the system what our default open view is...
  711. --
  712.  
  713. override wpclsQueryDetailsInfo, class;
  714. --
  715. -- METHOD: wpclsQueryDetailsInfo                          ( ) PRIVATE
  716. --                                                        (X) PUBLIC
  717. -- DESCRIPTION:
  718. --
  719. --   Appends the car specific chain of FIELDINFO structures describing the
  720. --   details data of this object to *ppDetailsData (if ppDetailsData
  721. --   is NON-NULL).  In this case it also sets *ppDetailsData to the
  722. --   head of the linked list.
  723. --
  724. --   Adds the number of bytes required by the details data for car to *pSize
  725. --   (if pSize is NON-NULL).
  726. --
  727. -- REMARKS:
  728. --
  729. --   Add details data for this object.
  730. --
  731.  
  732.     -- From WPFileSystem
  733.  
  734. override wpclsQueryDetails, class;
  735. --
  736. -- METHOD: wpclsQueryDetails                              ( ) PRIVATE
  737. --                                                        (X) PUBLIC
  738. -- DESCRIPTION:
  739. --
  740. --    Specify default details to display in details view
  741. --
  742. -- REMARKS:
  743. --
  744. --    A pointer details structure is modified and returned.
  745. --    Note: this is purely virtual at the moment (parent class doesn't
  746. --    do anything).
  747. --
  748.  
  749. override wpclsQueryInstanceFilter, class;
  750. --
  751. -- METHOD: wpclsQueryInstanceFilter                       ( ) PRIVATE
  752. --                                                        (X) PUBLIC
  753. -- DESCRIPTION:
  754. --
  755. --    The wpclsQueryInstanceFilter method is called to allow the class
  756. --    object to specify the file title filters for instances of its
  757. --    class.
  758. --
  759. -- REMARKS:
  760. --
  761. --    A pointer to a string containing file title filter(s).  This
  762. --    string can contain several file title filters separated by a
  763. --    comma.  Example: "*.TXT, *.DOC"
  764. --
  765.  
  766. override wpclsQueryStyle, class;
  767. --
  768. -- METHOD: wpclsQueryStyle                                ( ) PRIVATE
  769. --                                                        (X) PUBLIC
  770. -- DESCRIPTION:
  771. --
  772. --    The wpclsQueryStyle method is called to allow the class object
  773. --    to specify the default object class style for its instances.
  774. --
  775. -- REMARKS:
  776. --
  777. --    This method can be called at any time in order to determine the
  778. --    default style for instances of this class.
  779. --
  780. --    This method should be overridden in order to modify the default
  781. --    object style for instances of this class.
  782. --
  783.