home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2api / wpobject.def < prev    next >
Text File  |  1995-03-03  |  46KB  |  1,357 lines

  1. DEFINITION MODULE WPOBJECT;
  2.  
  3. (***************************************************************************
  4.   OS/2 2.1 Workplace class interface for WPObject
  5.            18.02.95 13.15 : corrected : wpFilterPopupMenu
  6.            19.02.95 16.45 : changed :   wpQueryDetailsData
  7.            19.02.95 19.42 : changed :   wpclsQueryIconData, wpQueryIconData
  8.            23.02.95 12.44 : changed :   wpAllocMem
  9.            03.03.95 19.50 : changed :   wpclsQueryDetailsInfo
  10.  
  11.   Copyright (c) 1994 by Juergen Neuhoff
  12. ****************************************************************************)
  13.  
  14. (*$XL+       Modula-2 language extensions: '_' allowed for symbol names *)
  15. (*$CDECL+    C-style procedures                                         *)
  16. (*$A         default alignment for record fields                        *)
  17.  
  18. IMPORT SOM;
  19. IMPORT SYSTEM;
  20. IMPORT OS2DEF;
  21. IMPORT WINDEF;
  22. IMPORT WINSTDCNR;
  23. IMPORT WINSTDDRAG;
  24. IMPORT WINWORKPLACE;
  25. IMPORT WINPOINTERS;
  26. IMPORT GPIDEF;
  27.  
  28. TYPE PSOMClass       = SOM.PSOMClass;
  29. TYPE INTEGER4        = SOM.INTEGER4;
  30. TYPE somMToken       = SOM.somMToken;
  31. TYPE somDToken       = SOM.somDToken;
  32. TYPE somMethodProc   = SOM.somMethodProc;
  33. TYPE PM_WPObject     = POINTER TO M_WPObject;
  34. TYPE PWPObject       = POINTER TO WPObject;
  35.  
  36. (************************************************************************
  37.   Additional TYPE- and CONST-declarations supporting WPObject
  38. *************************************************************************)
  39.  
  40. TYPE SOMObject       = SOM.SOMObject;
  41. TYPE SOMClass        = SOM.SOMClass;
  42. TYPE PWPFolder       = PWPObject;   (* forward referenced class *)
  43. TYPE BYTE            = SYSTEM.BYTE;
  44. TYPE HWND            = OS2DEF.HWND;
  45. TYPE PMINIRECORDCORE = WINSTDCNR.PMINIRECORDCORE;
  46. TYPE LHANDLE         = OS2DEF.LHANDLE;
  47. TYPE PDATA           = POINTER TO ARRAY [0..MAX(LONGCARD)-1] OF SHORTCARD;
  48. TYPE PVOID           = OS2DEF.PVOID;
  49. TYPE PPVOID          = OS2DEF.PPVOID;
  50. TYPE PSZ             = OS2DEF.PSZ;
  51. TYPE POINTL          = OS2DEF.POINTL;
  52. TYPE MRESULT         = WINDEF.MRESULT;
  53. TYPE DRAGINFO        = WINSTDDRAG.DRAGINFO;
  54. TYPE DRAGITEM        = WINSTDDRAG.DRAGITEM;
  55. TYPE HMODULE         = OS2DEF.HMODULE;
  56. TYPE PAGEINFO        = WINWORKPLACE.PAGEINFO;
  57. TYPE PRINTDEST       = OS2DEF.PRINTDEST;
  58. TYPE HPOINTER        = WINPOINTERS.HPOINTER;
  59. TYPE ICONINFO        = OS2DEF.ICONINFO;
  60. TYPE PICONINFO       = OS2DEF.PICONINFO;
  61. TYPE DRAGTRANSFER    = WINSTDDRAG.DRAGTRANSFER;
  62. TYPE HOBJECT         = WINWORKPLACE.HOBJECT;
  63. TYPE PRECORDINSERT   = WINSTDCNR.PRECORDINSERT;
  64. TYPE SIZEL           = GPIDEF.SIZEL;
  65. TYPE ADDRESS         = SYSTEM.ADDRESS;
  66. TYPE PLONGCARD       = POINTER TO LONGCARD;
  67.  
  68. (* NIL pointer types for various formal types.
  69.  * Even if such a pointer variable p is of value NIL,
  70.  * p^ can be passed by reference to a formal VAR-parameter
  71.  * or a formal open array type. This way a formal parameter
  72.  * might become a NIL-reference which is sometimes needed
  73.  * for OS/2 2.x Workplace procedures.
  74.  * Example:
  75.  *
  76.  *   PROCEDURE MyProc( VAR MyParam : INTEGER );
  77.  *     ...
  78.  *   TYPE NILINTEGER = POINTER TO INTEGER;
  79.  *     ...
  80.  *   VAR NoINTEGER   : POINTER TO INTEGER;
  81.  *     ...
  82.  *   NoINTEGER := NIL;
  83.  *   MyProc( NoINTEGER^ );
  84.  *     ...
  85.  *)
  86. TYPE
  87.   NILCharArray   = POINTER TO ARRAY [0..0] OF CHAR;
  88.   NILByteArray   = POINTER TO ARRAY [0..0] OF BYTE;
  89.   NILWPObject    = POINTER TO WPObject;
  90.   NILLONGCARD    = POINTER TO LONGCARD;
  91.  
  92. CONST (* Object style flags (see wpSetStyle) *)
  93.   OBJSTYLE_NOMOVE          =    2;
  94.   OBJSTYLE_NOLINK          =    4;
  95.   OBJSTYLE_NOCOPY          =    8;
  96.   OBJSTYLE_NOTDEFAULTICON  =   16;
  97.   OBJSTYLE_TEMPLATE        =   32;
  98.   OBJSTYLE_NODELETE        =   64;
  99.   OBJSTYLE_NOPRINT         =  128;
  100.   OBJSTYLE_NODRAG          =  256;
  101.   OBJSTYLE_NOTVISIBLE      =  512;
  102.   OBJSTYLE_NOSETTINGS      = 1024;
  103.   OBJSTYLE_NORENAME        = 2048;
  104.   OBJSTYLE_NODROP          = 4096;
  105.  
  106. CONST (*  Class style flags (see wpclsQueryStyle) *)
  107.   CLSSTYLE_NEVERMOVE       = OBJSTYLE_NOMOVE;
  108.   CLSSTYLE_NEVERLINK       = OBJSTYLE_NOLINK;
  109.   CLSSTYLE_NEVERCOPY       = OBJSTYLE_NOCOPY;
  110.   CLSSTYLE_NEVERTEMPLATE   = 16;
  111.   CLSSTYLE_NEVERDELETE     = OBJSTYLE_NODELETE;
  112.   CLSSTYLE_NEVERPRINT      = OBJSTYLE_NOPRINT;
  113.   CLSSTYLE_NEVERDRAG       = OBJSTYLE_NODRAG;
  114.   CLSSTYLE_NEVERVISIBLE    = OBJSTYLE_NOTVISIBLE;
  115.   CLSSTYLE_NEVERRENAME     = OBJSTYLE_NORENAME;
  116.   CLSSTYLE_PRIVATE         = 4096;
  117.  
  118. CONST (*  Flags for the wpFilterPopupMenu() method *)
  119.   CTXT_CRANOTHER           = 0001H;   (* Flags for ulFlags *)
  120.   CTXT_NEW                 = CTXT_CRANOTHER;
  121.   CTXT_OPEN                = 0002H;
  122.   CTXT_WINDOW              = 0004H;
  123.   CTXT_SWITCHTO            = CTXT_WINDOW;
  124.   CTXT_CLOSE               = 0008H;
  125.   CTXT_SETTINGS            = 0010H;
  126.   CTXT_PRINT               = 0020H;
  127.   CTXT_HELP                = 0040H;
  128.   CTXT_DELETE              = 0080H;
  129.   CTXT_COPY                = 0100H;
  130.   CTXT_MOVE                = 0200H;
  131.   CTXT_SHADOW              = 0400H;
  132.   CTXT_LINK                = CTXT_SHADOW;
  133.   CTXT_PROGRAM             = 0800H;
  134.   CTXT_ICON                = 001000H;
  135.   CTXT_TREE                = 002000H;
  136.   CTXT_DETAILS             = 004000H;
  137.   CTXT_FIND                = 008000H;
  138.   CTXT_SELECT              = 010000H;
  139.   CTXT_ARRANGE             = 020000H;
  140.   CTXT_SORT                = 040000H;
  141.   CTXT_SHUTDOWN            = 080000H;
  142.   CTXT_LOCKUP              = 100000H;
  143.   CTXT_PALETTE             = 200000H;
  144.   CTXT_REFRESH             = 400000H;
  145.  
  146. CONST (* common context menu ids *)
  147.   WPMENUID_USER            = 6500H;
  148.   WPMENUID_PRIMARY         = 0;
  149.   WPMENUID_OPEN            = 1;
  150.   WPMENUID_HELP            = 2;
  151.   WPMENUID_PRINT           = 3;
  152.   WPMENUID_SELECT          = 4;
  153.   WPMENUID_SORT            = 5;
  154.  
  155. CONST (*  Open views for the wpOpen() method *)
  156.   OPEN_UNKNOWN             = -1;
  157.   OPEN_DEFAULT             =  0;
  158.   OPEN_CONTENTS            =  1;
  159.   OPEN_SETTINGS            =  2;
  160.   OPEN_HELP                =  3;
  161.   OPEN_RUNNING             =  4;
  162.   OPEN_PROMPTDLG           =  5;
  163.   OPEN_PALETTE             =  121;        (*SPLIT*)
  164.   OPEN_USER                =  6500H;
  165.  
  166. (*  Definitions for the INUSE list that is kept
  167.  *  for every object via wpAddToObjUseList and
  168.  *  wpRemoveFromObjUseList methods...
  169.  *)
  170.  
  171. (* This record is always followed immediately by a type
  172.  * dependant struct such as MEMORYITEM,RECORDITEM,VIEWITEM
  173.  * or some other user defined record...
  174.  *)
  175. TYPE
  176.   PUSEITEM         = POINTER TO USEITEM;
  177.   USEITEM          = RECORD
  178.     type             : LONGCARD;  (* Type of this Item *)
  179.     pNext            : PUSEITEM;  (* Next item in use list *)
  180.                      END;
  181.  
  182. CONST
  183.   USAGE_MEMORY        =  1;  (* Values of 'type' *)
  184.   USAGE_RECORD        =  4;
  185.   USAGE_OPENVIEW      =  5;
  186.   USAGE_LINK          =  6;
  187.   USAGE_OPENFILE      = 20;
  188.  
  189. TYPE
  190.   PMEMORYITEM = POINTER TO MEMORYITEM;
  191.   MEMORYITEM  = RECORD             (* USAGE_MEMORY struct *)
  192.     cbBuffer    : LONGCARD;        (* Number of bytes in memory block *)
  193.                 END;
  194.  
  195. TYPE
  196.   PRECORDITEM = POINTER TO RECORDITEM;
  197.   RECORDITEM  = RECORD             (* USAGE_RECORD struct *)
  198.     hwndCnr     : HWND;            (* Cnr into which object is inserted *)
  199.     pRecord     : PMINIRECORDCORE; (* Record pointer within that cnr *)
  200.     ulUser      : LONGCARD;        (* For application use RECSH *)
  201.                 END;
  202.  
  203. CONST
  204.   VIEWSTATE_OPENING       = 0001H;   (* The view is being opened *)
  205.   VIEWSTATE_OBJECTDELETED = 0002H;   (* The object is being deleted *)
  206.   VIEWSTATE_USERHIDDEN    = 0004H;   (* The view was hidden by user *)
  207.   VIEWSTATE_POPULATING    = 0008H;   (* The view is populating      *)
  208.  
  209. TYPE
  210.   VIEWITEM      = RECORD             (* USAGE_OPENVIEW record *)
  211.     view          : LONGCARD;        (* Object view that this represents *)
  212.     handle        : LHANDLE;         (* Open handle *)
  213.     ulViewState   : LONGCARD;        (* View State flags *)
  214.     hwndCnr       : HWND;            (* System use only (window animation) *)
  215.     pRecord       : PMINIRECORDCORE; (* System use only (window animation) *)
  216.                   END;
  217.   PVIEWITEM     = POINTER TO VIEWITEM;
  218.  
  219. TYPE
  220.   LINKITEM      = RECORD             (* USAGE_LINK struct *)
  221.     LinkObj       : PWPObject;       (* The link object *)
  222.                   END;
  223.   PLINKITEM     = POINTER TO LINKITEM;
  224.  
  225. TYPE
  226.   VIEWFILE      = RECORD             (* USAGE_OPENFILE struct *)
  227.     ulMenuId      : LONGCARD;        (* Menu id if association or menu page *)
  228.     handle        : LHANDLE;         (* Open handle *)
  229.     hwndCnr       : HWND;            (* System use only (window animation) *)
  230.     pRecord       : PMINIRECORDCORE; (* System use only (window animation) *)
  231.                   END;
  232.   PVIEWFILE     = POINTER TO VIEWFILE;
  233.  
  234. (* Notes: The class name immediately follows the control block. The
  235.  *        first instance variable control block immediately follows
  236.  *        this.
  237.  *)
  238. TYPE
  239.   WPSRCLASSBLOCK  = RECORD
  240.     ClassNameLength : INTEGER; (* Length of class name, including the
  241.                                 * .. null terminator. This must be a
  242.                                 * .. SHORT and must be at the beginning
  243.                                 * .. of the record.
  244.                                 *)
  245.     IVarLength      : INTEGER; (* Length of instance variable
  246.                                 * .. information, including the two-
  247.                                 * .. byte null terminator
  248.                                 *)
  249.                     END;
  250.   PWPSRCLASSBLOCK = POINTER TO WPSRCLASSBLOCK;
  251.  
  252. (*  Persistant storage records (see wpSaveShort
  253.  *  and wpRestoreShort etc...)
  254.  *)
  255.  
  256. (* This control record does not reside in the dormant state.
  257.  * It is used only when a persistant data block is
  258.  * resident in memory - either when an object is being saved or
  259.  * when it is being restored...
  260.  *)
  261. TYPE
  262.   OBJDATA         = RECORD
  263.     CurrentClass    : PWPSRCLASSBLOCK;
  264.     First           : PWPSRCLASSBLOCK;
  265.     NextData        : POINTER TO CHAR;
  266.     Length          : CARDINAL;
  267.                     END;
  268.   POBJDATA        = POINTER TO OBJDATA;
  269.  
  270. (*  wpCnrInsertObject/wpCnrRemoveObject structs
  271.  *  and extract functions...
  272.  *)
  273.  
  274. TYPE
  275.   PCLASSDETAILS = POINTER TO CLASSDETAILS;
  276.   CLASSDETAILS  = RECORD           (* Class Details struct *)
  277.     pszAttribute  : PSZ;           (* Translatable string for a class attribute*)
  278.     pSortRecord   : PVOID;         (* Function pointer for sort function for attribute*)
  279.     pNext         : PCLASSDETAILS; (* Next item in class details list *)
  280.                   END;
  281.  
  282. (* Details comparison function definition
  283.  *
  284.  *    Param1 PVOID    - Pointer to details field value
  285.  *    Param2 PVOID    - Pointer to value to be compared with
  286.  *
  287.  *    Returns LONGINT - Must be CMP_EQUAL, CMP_GREATER, CMP_LESS
  288.  *)
  289. TYPE
  290.   PFNCOMPARE  = PROCEDURE( PVOID, PVOID ) : LONGINT;
  291.  
  292. CONST
  293.   CMP_EQUAL            = 0;
  294.   CMP_GREATER          = 1;
  295.   CMP_LESS             = 2;
  296.   CMP_GREATER_OR_EQUAL = 3;
  297.   CMP_LESS_OR_EQUAL    = 4;
  298.   CMP_NOT_EQUAL        = 5;
  299.   NUM_CMP_VALUES       = 6;
  300.  
  301. (* Owner draw function definition
  302.  *
  303.  *    Param1  HWND    - Handle of window that is being painted
  304.  *    Param2  PVOID   - POWNERITEM record pointer, see the container
  305.  *                      control programming reference for the meaning
  306.  *                      of the fields in this record.
  307.  *    Param3  PVOID   - Pointer to the comparison value to draw (this
  308.  *                      is NULL, except when this function is painting
  309.  *                      its value into the include criteria dialog
  310.  *                      when it points to Criteria.CompareValue...)
  311.  *
  312.  *    Returns BOOLEAN  - TRUE if the field was ownerdrawn, FALSE if the
  313.  *                       container control should do default painting.
  314.  *)
  315. TYPE
  316.   PFNOWNDRW  = PROCEDURE( HWND, PVOID, PVOID ) : BOOLEAN;
  317.  
  318. (* Details comparison criteria record
  319.  *)
  320. TYPE
  321.   PCRITERIA            = POINTER TO CRITERIA;
  322.   CRITERIA             = RECORD
  323.     pReserved            : PVOID;         (* Reserved - MUST be null!!!! *)
  324.     pNext                : PCRITERIA;
  325.     pPrev                : PCRITERIA;
  326.     ClassFieldInfoIndex  : LONGCARD;      (* Index of the details field  *)
  327.     LogicalOperator      : LONGCARD;      (* CRITERIA_AND or CRITERIA_OR *)
  328.     ComparisonType       : LONGCARD;      (* CMP_LESS_OR_EQUAL etc...    *)
  329.     ulLenCompareValue    : LONGCARD;      (* sizeof(ComparisonData)      *)
  330.     CompareValue         : ARRAY [0..0] OF BYTE; (* Value to be compared with *)
  331.                          END;
  332.  
  333. CONST
  334.   CRITERIA_AND         = 0;
  335.   CRITERIA_OR          = 1;
  336.  
  337. (* ClassCriteria record: points to a linked list of CRITERIA
  338.  * for the given class. ClassCriteria may be linked into a list
  339.  * too - and passed to a filter object, or the wpclsFindObjectFirst
  340.  * method call...
  341.  *)
  342. TYPE
  343.   PCLASSCRITERIA  = POINTER TO CLASSCRITERIA;
  344.   CLASSCRITERIA   = RECORD
  345.     pNext           : PCLASSCRITERIA;
  346.     pPrev           : PCLASSCRITERIA;
  347.     Class           : PM_WPObject;      (* Class object *)
  348.     pCriteria       : PCRITERIA;        (* Linked list of criteria *)
  349.     NotifyObject    : PWPObject;        (* Owner of the criteria list *)
  350.                     END;
  351.  
  352. TYPE
  353. (* This record is passed to a details criteria edit window
  354.  * when it is created, so that it knows the current value and
  355.  * min/max values for the criteria to be edited.
  356.  *
  357.  * As the user modifies the compare value using the criteria
  358.  * edit window, it should update the buffer pointed to by
  359.  * 'pCompareValue'.
  360.  *)
  361. TYPE
  362.   PEDITCTLINIT      = POINTER TO EDITCTLINIT;
  363.   EDITCTLINIT       = RECORD
  364.     cb                : LONGCARD; (* must have length in control data! MindyP *)
  365.     pCompareValue     : PVOID;    (* Buffer containing the current value *)
  366.     ulLenCompareValue : LONGCARD; (* Length of pCompareValue buffer *)
  367.     pMinCompareValue  : PVOID;    (* READ-ONLY parameter, NIL  => default *)
  368.     pMaxCompareValue  : PVOID;    (* READ-ONLY parameter, NIL  => default *)
  369.                       END;
  370.  
  371. (* Record for wpclsQueryDetailsInfo method
  372.  *
  373.  * CLASSFIELDINFO is identical to the FIELDINFO record of the
  374.  * container control with the following differences:
  375.  *
  376.  * - The offStruct field from FIELDINFO is reserved.
  377.  * - The offFieldData and usLenFieldData record elements have
  378.  *   been added.
  379.  * - Compare/Sort/Ownerdraw fields have also been added for the
  380.  *   convenience of the programmer, so that object details can
  381.  *   be customized and objects can be found or included by any
  382.  *   of their displayable object details.
  383.  *
  384.  * For example if the application has the following details data:
  385.  *
  386.  * TYPE SAMPLE = RECORD
  387.  *   cdate       : WINSTDCNR.CDATE;
  388.  *   ctime       : WINSTDCNR.CTIME;
  389.  *   psz         : OS2DEF.PSZ;
  390.  *               END;
  391.  *
  392.  * classfieldinfo[0].offFieldData   = FIELDOFFSET(SAMPLE,cdate);
  393.  * classfieldinfo[0].ulLenFieldData = FIELDOFFSET(SAMPLE,ctime) -
  394.  *                                    FIELDOFFSET(SAMPLE,cdate);
  395.  *
  396.  * classfieldinfo[1].offFieldData   = FIELDOFFSET(SAMPLE,ctime);
  397.  * classfieldinfo[1].ulLenFieldData = FIELDOFFSET(SAMPLE,psz) -
  398.  *                                    FIELDOFFSET(SAMPLE,ctime);
  399.  *
  400.  * classfieldinfo[2].offFieldData   = FIELDOFFSET(SAMPLE,psz);
  401.  * classfieldinfo[2].ulLenFieldData = sizeof(SAMPLE) -
  402.  *                                    FIELDOFFSET(SAMPLE,psz);
  403.  *
  404.  * NOTE: It is essential that the fields be linked in order ex. above
  405.  *       cdate must be followed by ctime and finally psz.
  406.  *)
  407. TYPE
  408.   PCLASSFIELDINFO   = POINTER TO CLASSFIELDINFO;
  409.   PPCLASSFIELDINFO  = POINTER TO PCLASSFIELDINFO;
  410.   CLASSFIELDINFO    = RECORD
  411.     (* Details field attributes
  412.      *)
  413.     cb                : LONGCARD;        (* size of CLASSFIELDINFO struct  *)
  414.     flData            : LONGCARD;        (* attributes of field's data     *)
  415.     flTitle           : LONGCARD;        (* attributes of field's title    *)
  416.     pTitleData        : PVOID;           (* title data (default is string) *)
  417.                                          (* If CFT_BITMAP, must be HBITMAP *)
  418.     ulReserved        : LONGCARD;        (* Reserved                       *)
  419.     pUserData         : PVOID;           (* pointer to user data           *)
  420.     pNextFieldInfo    : PCLASSFIELDINFO; (* pointer to next linked         *)
  421.                                          (*   CLASSFIELDINFO record        *)
  422.     cxWidth           : LONGCARD;        (* width of field in pels         *)
  423.     offFieldData      : LONGCARD;        (* offset from beginning of       *)
  424.                                          (*   this class's data for this   *)
  425.                                          (*   field. (first field is 0).   *)
  426.     ulLenFieldData    : LONGCARD;        (* width of data in bytes.        *)
  427.                                          (*   (4 for a pointer).           *)
  428.     pfnOwnerDraw      : PFNOWNDRW;       (* Ownerdraw procedure for detail *)
  429.                                          (* column. Can be NULL except if  *)
  430.                                          (* ownerdraw is being used.       *)
  431.     (* Include/Sort parameters
  432.      *)
  433.     flCompare         : LONGCARD;        (* Flags: for example, use the    *)
  434.                                          (*   COMPARE_SUPPORTED flag if    *)
  435.                                          (*   your field can be compared   *)
  436.     pfnCompare        : PFNCOMPARE;      (* Comparison function for this   *)
  437.                                          (*   field. Can be NULL unless    *)
  438.                                          (*   ownerdraw is used.           *)
  439.     DefaultComparison : LONGCARD;        (* This is the default compare    *)
  440.                                          (*   operator in the include      *)
  441.                                          (*   page criteria dialog. (eg:   *)
  442.                                          (*   CMP_LESS_OR_EQUAL)           *)
  443.     ulLenCompareValue : LONGCARD;        (* Maximum length of the compare  *)
  444.                                          (*   data. Can be NULL unless     *)
  445.                                          (*   ownerdraw is used.           *)
  446.     pDefCompareValue  : PVOID;           (* The default value to be used   *)
  447.                                          (*   for comparisons. Can be NULL *)
  448.                                          (*   unless ownerdraw is used.    *)
  449.     pMinCompareValue  : PVOID;           (* The default value to be used   *)
  450.                                          (*   for comparisons.Can be NULL  *)
  451.                                          (*   unless ownerdraw is used.    *)
  452.     pMaxCompareValue  : PVOID;           (* The default value to be used   *)
  453.                                          (*   for comparisons.Can be NULL  *)
  454.                                          (*   unless ownerdraw is used.    *)
  455.     pszEditControlClass : PSZ;           (* Window class to be used to edit*)
  456.                                          (*   the compare value. Can be    *)
  457.                                          (*   NULL unless ownerdraw is used*)
  458.     pfnSort           : PFNCOMPARE       (* Sort function for this @SM09511*)
  459.                                          (*   field. Can be NULL unless    *)
  460.                                          (*   ownerdraw is used.           *)
  461.                       END;
  462.  
  463. CONST
  464.   COMPARE_SUPPORTED = 1;
  465.   SORTBY_SUPPORTED  = 2;
  466.  
  467. CONST (* Standard notebook size constants *)
  468.   STDNOTEBOOKWIDTH  = 290;
  469.   STDNOTEBOOKHEIGHT = 275;
  470.  
  471. CONST (* Confirm flags *)
  472.   CONFIRM_DELETE             = 0001H;
  473.   CONFIRM_DELETEFOLDER       = 0002H;
  474.   CONFIRM_RENAMEFILESWITHEXT = 0004H;
  475.   CONFIRM_KEEPASSOC          = 0008H;
  476.   CONFIRM_ACTION             = 0010H;
  477.   CONFIRM_PROGRESS           = 0020H;
  478.  
  479. CONST
  480.   OK_DELETE         = 1;
  481.   NO_DELETE         = 2;
  482.   CANCEL_DELETE     = 3;
  483.  
  484. CONST
  485.   NUM_OBJDETAILS_FIELDS = 2;     (* number of object details *)
  486.  
  487. CONST (* Search Type for wpclsQueryExtendedCriteria *)
  488.   SEARCH_ALL_FOLDERS = 1;
  489.   SEARCH_THIS_FOLDER = 2;
  490.   SEARCH_THIS_TREE   = 3;
  491.  
  492. TYPE (* Find method related types and constants *)
  493.   OBJECT   = PWPObject;
  494.   POBJECT  = POINTER TO OBJECT;
  495.   CLASS    = PM_WPObject;
  496.   PCLASS   = POINTER TO CLASS;
  497.   HFIND    = LHANDLE;
  498.   PHFIND   = POINTER TO HFIND;
  499.  
  500. CONST (* wpDrop method return code  *)
  501.   RC_DROP_DROPCOMPLETE  = 2;
  502.   RC_DROP_ITEMCOMPLETE  = 1;
  503.   RC_DROP_RENDERING     = 0;
  504.   RC_DROP_ERROR         = -1;
  505.  
  506. TYPE  (*handle for files being tracked by the shell *)
  507.   HFS = LHANDLE;
  508.  
  509. CONST
  510.   MAXSZHFS              = 10;       (* size of the translated string *)
  511.  
  512. CONST
  513.   SETTINGS_PAGE_REMOVED = -1;
  514.  
  515. CONST (* wpSetConcurrentView values *)
  516.   CCVIEW_DEFAULT        = 0;
  517.   CCVIEW_ON             = 1;
  518.   CCVIEW_OFF            = 2;
  519.  
  520. CONST (* wpSetMinWindow values *)
  521.   MINWIN_DEFAULT        = 0;
  522.   MINWIN_HIDDEN         = 1;
  523.   MINWIN_VIEWER         = 2;
  524.   MINWIN_DESKTOP        = 3;
  525.  
  526. CONST (* wpSetButtonAppearance values *)
  527.   HIDEBUTTON            = 1;
  528.   MINBUTTON             = 2;
  529.   DEFAULTBUTTON         = 3;
  530.  
  531. CONST
  532.   HIDDENMINWINDOW_DEFAULT = MINWIN_VIEWER;
  533.  
  534. TYPE
  535.   PTASKREC       = POINTER TO TASKREC;
  536.   TASKREC        = RECORD
  537.     next           : PTASKREC;      (* next in the list of current tasks   *)
  538.     useCount       : LONGCARD;      (* can be referenced by multiple object*)
  539.     pStdDlg        : PVOID;         (* ptr to standard WP task dialog      *)
  540.     folder         : PWPFolder;     (* intended folder for the object      *)
  541.     xOrigin        : LONGINT;       (* intended position for the object    *)
  542.     yOrigin        : LONGINT;       (* intended position for the object    *)
  543.     pszTitle       : PSZ;           (* intended name for the object        *)
  544.     cbTitle        : LONGCARD;      (* length of the name buffer           *)
  545.     positionAfterRecord : PMINIRECORDCORE; (* intended sort position       *)
  546.     fKeepAssociations   : BOOLEAN;
  547.     pReserved      : PVOID;         (* reserved - equal null               *)
  548.                    END;
  549.  
  550.  
  551. (*************************************************************************
  552.   SOM class API for WPObject, including type-bound procedures
  553. **************************************************************************)
  554.  
  555. CONST
  556.   WPObject_MajorVersion     = 1;
  557.   WPObject_MinorVersion     = 2;
  558.  
  559. TYPE
  560.   WPObjectClassDataStructure     = RECORD
  561.     classObject                    : PSOMClass;
  562.     wpSetTitle                     : somMToken;
  563.     wpQueryTitle                   : somMToken;
  564.     wpSetStyle                     : somMToken;
  565.     wpQueryStyle                   : somMToken;
  566.     wpSetIcon                      : somMToken;
  567.     wpQueryIcon                    : somMToken;
  568.     wpSetContainer                 : somMToken;
  569.     wpQueryContainer               : somMToken;
  570.     wpSetNextObj                   : somMToken;
  571.     wpQueryNextObj                 : somMToken;
  572.     wpSetDefaultView               : somMToken;
  573.     wpQueryDefaultView             : somMToken;
  574.     wpMakeDormant                  : somMToken;
  575.     wpSaveState                    : somMToken;
  576.     wpBeginSave                    : somMToken;
  577.     wpEndSave                      : somMToken;
  578.     wpSaveLong                     : somMToken;
  579.     wpSaveString                   : somMToken;
  580.     wpSaveData                     : somMToken;
  581.     wpAppendSaveData               : somMToken;
  582.     wpRestoreState                 : somMToken;
  583.     wpBeginRestore                 : somMToken;
  584.     wpEndRestore                   : somMToken;
  585.     wpRestoreLong                  : somMToken;
  586.     wpRestoreString                : somMToken;
  587.     wpRestoreData                  : somMToken;
  588.     wpExtractRestoreData           : somMToken;
  589.     wpAllocMem                     : somMToken;
  590.     wpFreeMem                      : somMToken;
  591.     wpAddToObjUseList              : somMToken;
  592.     wpDeleteFromObjUseList         : somMToken;
  593.     wpFindUseItem                  : somMToken;
  594.     wpSwitchTo                     : somMToken;
  595.     withdrawn1                     : somMToken;
  596.     wpFilterPopupMenu              : somMToken;
  597.     wpModifyPopupMenu              : somMToken;
  598.     wpMenuItemSelected             : somMToken;
  599.     wpFormatDragItem               : somMToken;
  600.     wpDrop                         : somMToken;
  601.     wpDragOver                     : somMToken;
  602.     wpRender                       : somMToken;
  603.     wpEndConversation              : somMToken;
  604.     withdrawn10                    : somMToken;
  605.     wpMakeObject                   : somMToken;
  606.     wpDestroyObject                : somMToken;
  607.     wpFree                         : somMToken;
  608.     wpCopiedFromTemplate           : somMToken;
  609.     wpAddSettingsPages             : somMToken;
  610.     wpAddObjectGeneralPage         : somMToken;
  611.     wpDisplayHelp                  : somMToken;
  612.     wpMenuItemHelpSelected         : somMToken;
  613.     wpInsertSettingsPage           : somMToken;
  614.     wpInsertPopupMenuItems         : somMToken;
  615.     withdrawn5                     : somMToken;
  616.     withdrawn6                     : somMToken;
  617.     withdrawn4                     : somMToken;
  618.     withdrawn3                     : somMToken;
  619.     wpCnrInsertObject              : somMToken;
  620.     wpCnrRemoveObject              : somMToken;
  621.     wpInitData                     : somMToken;
  622.     wpUnInitData                   : somMToken;
  623.     wpSetup                        : somMToken;
  624.     wpScanSetupString              : somMToken;
  625.     wpSaveImmediate                : somMToken;
  626.     wpOpen                         : somMToken;
  627.     wpClose                        : somMToken;
  628.     wpHide                         : somMToken;
  629.     wpRestore                      : somMToken;
  630.     wpSetIconData                  : somMToken;
  631.     wpQueryIconData                : somMToken;
  632.     wpQueryIconSaved               : somMToken;
  633.     wpDelete                       : somMToken;
  634.     wpConfirmDelete                : somMToken;
  635.     withdrawn2                     : somMToken;
  636.     withdrawn11                    : somMToken;
  637.     withdrawn7                     : somMToken;
  638.     wpRegisterView                 : somMToken;
  639.     wpIdentify                     : somMToken;
  640.     wpSetDefaultHelp               : somMToken;
  641.     wpQueryDefaultHelp             : somMToken;
  642.     wpDoesObjectMatch              : somMToken;
  643.     wpCnrRefreshDetails            : somMToken;
  644.     wpSetError                     : somMToken;
  645.     wpQueryError                   : somMToken;
  646.     wpDraggedOverObject            : somMToken;
  647.     wpDroppedOnObject              : somMToken;
  648.     wpSetDefaultIconPos            : somMToken;
  649.     wpQueryDefaultIconPos          : somMToken;
  650.     wpSetState                     : somMToken;
  651.     wpQueryState                   : somMToken;
  652.     wpSetObjectID                  : somMToken;
  653.     wpQueryObjectID                : somMToken;
  654.     wpIsDeleteable                 : somMToken;
  655.     wpQueryHandle                  : somMToken;
  656.     wpSaveDeferred                 : somMToken;
  657.     wpAddObjectWindowPage          : somMToken;
  658.     wpQueryConcurrentView          : somMToken;
  659.     wpSetConcurrentView            : somMToken;
  660.     wpQueryMinWindow               : somMToken;
  661.     wpSetMinWindow                 : somMToken;
  662.     wpViewObject                   : somMToken;
  663.     wpQueryButtonAppearance        : somMToken;
  664.     wpSetButtonAppearance          : somMToken;
  665.     wpQueryConfirmations           : somMToken;
  666.     wpCnrSetEmphasis               : somMToken;
  667.     wpQueryCoreRecord              : somMToken;
  668.     wpFindViewItem                 : somMToken;
  669.     wpCreateFromTemplate           : somMToken;
  670.     wpQueryTrueStyle               : somMethodProc;
  671.     wpAssertObjectMutexSem         : somMToken;
  672.     wpReleaseObjectMutexSem        : somMToken;
  673.     wpRequestObjectMutexSem        : somMToken;
  674.     wpCreateAnother                : somMToken;
  675.     wpCreateShadowObject           : somMToken;
  676.     wpCopyObject                   : somMToken;
  677.     wpMoveObject                   : somMToken;
  678.     wpLockObject                   : somMToken;
  679.     wpUnlockObject                 : somMToken;
  680.     wpIsLocked                     : somMToken;
  681.     wpRenderComplete               : somMToken;
  682.     wpQueryDetailsData             : somMToken;
  683.     wpPrintObject                  : somMToken;
  684.     wpQueryTaskRec                 : somMToken;
  685.     wpSetTaskRec                   : somMToken;
  686.     wpSnoozeNotify                 : somMToken;
  687.     wpModifyStyle                  : somMToken;
  688.     wpSetInsertState               : somMToken;
  689.     wpFindTaskRec                  : somMToken;
  690.     wpAppendObject                 : somMToken;
  691.     wpReplaceObject                : somMToken;
  692.     wpQueryNameClashOptions        : somMToken;
  693.     wpConfirmObjectTitle           : somMToken;
  694.     pobjNext                       : somDToken;
  695.     wpQueryContainerFlagPtr        : somMToken;
  696.     wpAddWindowPosKey              : somMToken;
  697.     wpDeleteWindowPosKeys          : somMToken;
  698.     wpObjectInsertPreparation      : somMToken;
  699.     wpCnrDeleteUseItem             : somMToken;
  700.                                    END;
  701.  
  702. VAR
  703.   WPObjectClassData : WPObjectClassDataStructure;
  704.  
  705. TYPE
  706.   (*$SOM+ *)
  707.   WPObject = RECORD( SOMObject ) END;
  708.   (*$SOM- *)
  709.  
  710.  
  711.  
  712. PROCEDURE WPObjectNewClass
  713. ( majorVersion, minorVersion : INTEGER4 ) : PSOMClass;
  714.  
  715. PROCEDURE( Self : PWPObject ) wpAddObjectGeneralPage
  716. (
  717.   hwndNotebook  : HWND
  718. )               : LONGCARD;
  719.  
  720. PROCEDURE( Self : PWPObject ) wpAddObjectWindowPage
  721. (
  722.   hwndNotebook  : HWND
  723. )               : LONGCARD;
  724.  
  725. PROCEDURE( Self : PWPObject ) wpAddSettingsPages
  726. (
  727.   hwndNotebook  : HWND
  728. )               : BOOLEAN;
  729.  
  730. PROCEDURE( Self : PWPObject ) wpAddToObjUseList
  731. (
  732.   VAR UseItem   : USEITEM
  733. )               : BOOLEAN;
  734.  
  735. PROCEDURE( Self : PWPObject ) wpAllocMem
  736. (
  737.   cbBytes       : LONGCARD;
  738.   prc           : PLONGCARD
  739. )               : PVOID;
  740.  
  741. PROCEDURE( Self : PWPObject ) wpAppendObject
  742. (
  743.   targetObject  : PWPObject;
  744.   fMove         : BOOLEAN
  745. )               : BOOLEAN;
  746.  
  747. PROCEDURE( Self : PWPObject ) wpAssertObjectMutexSem( ) : BOOLEAN;
  748.  
  749. PROCEDURE( Self : PWPObject ) wpClose( ) : BOOLEAN;
  750.  
  751. PROCEDURE( Self : PWPObject ) wpCnrInsertObject
  752. (
  753.   hwndCnr       : HWND;
  754.   ptlIcon       : POINTL;
  755.   pParent       : PMINIRECORDCORE;
  756.   pRecInsert    : PRECORDINSERT
  757. )               : PMINIRECORDCORE;
  758.  
  759. PROCEDURE( Self : PWPObject ) wpCnrRemoveObject
  760. (
  761.   hwndCnr       : HWND
  762. )               : BOOLEAN;
  763.  
  764. PROCEDURE( Self : PWPObject ) wpCnrSetEmphasis
  765. (
  766.   ulEmphasisAttr : LONGCARD;
  767.   fTurnOn        : BOOLEAN
  768. )                : BOOLEAN;
  769.  
  770. PROCEDURE( Self : PWPObject ) wpConfirmDelete
  771. (
  772.   fConfirmations : LONGCARD
  773. )                : LONGCARD;
  774.  
  775. PROCEDURE( Self : PWPObject ) wpConfirmObjectTitle
  776. (
  777.   Folder         : PWPFolder;
  778.   VAR pDuplicate : PWPObject;
  779.   szTitle        : ARRAY OF CHAR;
  780.   cbTitle        : LONGCARD;
  781.   menuID         : LONGCARD
  782. )                : LONGCARD;
  783.  
  784. PROCEDURE( Self : PWPObject ) wpCopiedFromTemplate( );
  785.  
  786. PROCEDURE( Self : PWPObject ) wpCopyObject
  787. (
  788.   Folder        : PWPFolder;
  789.   fLock         : BOOLEAN
  790. )               : PWPObject;
  791.  
  792. PROCEDURE( Self : PWPObject ) wpCreateAnother
  793. (
  794.   szTitle        : ARRAY OF CHAR;
  795.   VAR szSetupEnv : ARRAY OF CHAR;
  796.   Folder         : PWPFolder
  797. )                : PWPObject;
  798.  
  799. PROCEDURE( Self : PWPObject ) wpCreateFromTemplate
  800. (
  801.   Folder        : PWPFolder;
  802.   fLock         : BOOLEAN
  803. )               : PWPObject;
  804.  
  805. PROCEDURE( Self : PWPObject ) wpCreateShadowObject
  806. (
  807.   Folder        : PWPFolder;
  808.   fLock         : BOOLEAN
  809. )               : PWPObject;
  810.  
  811. PROCEDURE( Self : PWPObject ) wpDelete
  812. (
  813.   fConfirmations : LONGCARD
  814. )                : LONGCARD;
  815.  
  816. PROCEDURE( Self : PWPObject ) wpDeleteFromObjUseList
  817. (
  818.   VAR UseItem   : USEITEM
  819. )               : BOOLEAN;
  820.  
  821. PROCEDURE( Self : PWPObject ) wpDisplayHelp
  822. (
  823.   HelpPanelId   : LONGCARD;
  824.   HelpLibrary   : ARRAY OF CHAR
  825. )               : BOOLEAN;
  826.  
  827. PROCEDURE( Self : PWPObject ) wpDoesObjectMatch
  828. (
  829.   VAR ExtCriteria   : ARRAY OF BYTE
  830. )                   : BOOLEAN;
  831.  
  832. PROCEDURE( Self : PWPObject ) wpDraggedOverObject
  833. (
  834.   DraggedOverObject : PWPObject
  835. )                   : MRESULT;
  836.  
  837. PROCEDURE( Self : PWPObject ) wpDragOver
  838. (
  839.   hwndCnr       : HWND;
  840.   VAR drgInfo   : DRAGINFO
  841. )               : MRESULT;
  842.  
  843. PROCEDURE( Self : PWPObject ) wpDrop
  844. (
  845.   hwndCnr       : HWND;
  846.   VAR drgInfo   : DRAGINFO;
  847.   VAR drgItem   : DRAGITEM
  848. )               : MRESULT;
  849.  
  850. PROCEDURE( Self : PWPObject ) wpDroppedOnObject
  851. (
  852.   DroppedOnObject : PWPObject
  853. )                 : BOOLEAN;
  854.  
  855. PROCEDURE( Self : PWPObject ) wpEndConversation
  856. (
  857.   ulItemID      : LONGCARD;
  858.   flResult      : LONGCARD
  859. )               : MRESULT;
  860.  
  861. PROCEDURE( Self : PWPObject ) wpFilterPopupMenu
  862. (
  863.   ulFlags       : LONGCARD;
  864.   hwndCnr       : HWND;
  865.   fMultiSelect  : BOOLEAN
  866. )               : LONGCARD;
  867.  
  868. PROCEDURE( Self : PWPObject ) wpFindUseItem
  869. (
  870.   type          : LONGCARD;
  871.   pCurrentItem  : PUSEITEM
  872. )               : PUSEITEM;
  873.  
  874. PROCEDURE( Self : PWPObject ) wpFormatDragItem
  875. (
  876.   VAR drgItem   : DRAGITEM
  877. )               : BOOLEAN;
  878.  
  879. PROCEDURE( Self : PWPObject ) wpFree( ) : BOOLEAN;
  880.  
  881. PROCEDURE( Self : PWPObject ) wpFreeMem
  882. (
  883.   pByte         : PVOID
  884. )               : BOOLEAN;
  885.  
  886. PROCEDURE( Self : PWPObject ) wpHide( ) : BOOLEAN;
  887.  
  888. PROCEDURE( Self : PWPObject ) wpInitData( );
  889.  
  890. PROCEDURE( Self : PWPObject ) wpInsertPopupMenuItems
  891. (
  892.   hwndMenu      : HWND;
  893.   iPosition     : LONGCARD;
  894.   hmod          : HMODULE;
  895.   MenuID        : LONGCARD;
  896.   SubMenuID     : LONGCARD
  897. )               : BOOLEAN;
  898.  
  899. PROCEDURE( Self : PWPObject ) wpInsertSettingsPage
  900. (
  901.   hwndNotebook  : HWND;
  902.   VAR pageinfo  : PAGEINFO
  903. )               : LONGCARD;
  904.  
  905. PROCEDURE( Self : PWPObject ) wpMenuItemHelpSelected
  906. (
  907.   MenuId        : LONGCARD
  908. )               : BOOLEAN;
  909.  
  910. PROCEDURE( Self : PWPObject ) wpMenuItemSelected
  911. (
  912.   hwndFrame     : HWND;
  913.   ulMenuId      : LONGCARD
  914. )               : BOOLEAN;
  915.  
  916. PROCEDURE( Self : PWPObject ) wpModifyPopupMenu
  917. (
  918.   hwndMenu      : HWND;
  919.   hwndCnr       : HWND;
  920.   iPosition     : LONGCARD
  921. )               : BOOLEAN;
  922.  
  923. PROCEDURE( Self : PWPObject ) wpMoveObject
  924. (
  925.   Folder        : PWPFolder
  926. )               : BOOLEAN;
  927.  
  928. PROCEDURE( Self : PWPObject ) wpOpen
  929. (
  930.   hwndCnr       : HWND;
  931.   ulView        : LONGCARD;
  932.   param         : LONGCARD
  933. )               : HWND;
  934.  
  935. PROCEDURE( Self : PWPObject ) wpPrintObject
  936. (
  937.   VAR PrintDest : PRINTDEST;
  938.   ulReserved    : LONGCARD
  939. )               : BOOLEAN;
  940.  
  941. PROCEDURE( Self : PWPObject ) wpQueryConcurrentView( ) : LONGCARD;
  942.  
  943. PROCEDURE( Self : PWPObject ) wpQueryButtonAppearance( ) : LONGCARD;
  944.  
  945. PROCEDURE( Self : PWPObject ) wpQueryConfirmations( ) : LONGCARD;
  946.  
  947. PROCEDURE( Self : PWPObject ) wpQueryDefaultHelp
  948. (
  949.   VAR HelpPanelId   : LONGCARD;
  950.   VAR HelpLibrary   : ARRAY OF CHAR
  951. )                   : BOOLEAN;
  952.  
  953. PROCEDURE( Self : PWPObject ) wpQueryDefaultView( ) : LONGCARD;
  954.  
  955. PROCEDURE( Self : PWPObject ) wpQueryDetailsData
  956. (
  957.   ppDetailsData : PPVOID;
  958.   VAR cp        : LONGCARD
  959. )               : BOOLEAN;
  960.  
  961. PROCEDURE( Self : PWPObject ) wpQueryError( ) : LONGCARD;
  962.  
  963. PROCEDURE( Self : PWPObject ) wpQueryIcon( ) : HPOINTER;
  964.  
  965. PROCEDURE( Self : PWPObject ) wpQueryIconData
  966. (
  967.   pIconInfo     : PICONINFO
  968. )               : LONGCARD;
  969.  
  970. PROCEDURE( Self : PWPObject ) wpQueryMinWindow( ) : LONGCARD;
  971.  
  972. PROCEDURE( Self : PWPObject ) wpQueryNameClashOptions
  973. (
  974.   menuID        : LONGCARD
  975. )               : LONGCARD;
  976.  
  977. PROCEDURE( Self : PWPObject ) wpQueryStyle( ) : LONGCARD;
  978.  
  979. PROCEDURE( Self : PWPObject ) wpSetTaskRec
  980. (
  981.   VAR New       : TASKREC;
  982.   VAR Old       : TASKREC
  983. )               : BOOLEAN;
  984.  
  985. PROCEDURE( Self : PWPObject ) wpFindTaskRec( ) : PTASKREC;
  986.  
  987. PROCEDURE( Self : PWPObject ) wpQueryTitle( ) : PSZ;
  988.  
  989. PROCEDURE( Self : PWPObject ) wpRegisterView
  990. (
  991.   hwndFrame     : HWND;
  992.   szViewTitle   : ARRAY OF CHAR
  993. )               : BOOLEAN;
  994.  
  995. PROCEDURE( Self : PWPObject ) wpReleaseObjectMutexSem( ) : LONGCARD;
  996.  
  997. PROCEDURE( Self : PWPObject ) wpRender
  998. (
  999.   VAR dxfer     : DRAGTRANSFER
  1000. )               : MRESULT;
  1001.  
  1002. PROCEDURE( Self : PWPObject ) wpRenderComplete
  1003. (
  1004.   VAR dxfer     : DRAGTRANSFER;
  1005.   ulResult      : LONGCARD
  1006. )               : MRESULT;
  1007.  
  1008. PROCEDURE( Self : PWPObject ) wpReplaceObject
  1009. (
  1010.   targetObject  : PWPObject;
  1011.   fMove         : BOOLEAN
  1012. )               : BOOLEAN;
  1013.  
  1014. PROCEDURE( Self : PWPObject ) wpRequestObjectMutexSem
  1015. (
  1016.   ulTimeout     : LONGCARD
  1017. )               : LONGCARD;
  1018.  
  1019. PROCEDURE( Self : PWPObject ) wpRestore( ) : BOOLEAN;
  1020.  
  1021. PROCEDURE( Self : PWPObject ) wpRestoreData
  1022. (
  1023.   szClass       : ARRAY OF CHAR;
  1024.   ulKey         : LONGCARD;
  1025.   VAR Value     : ARRAY OF BYTE;
  1026.   VAR cbValue   : LONGCARD
  1027. )               : BOOLEAN;
  1028.  
  1029. PROCEDURE( Self : PWPObject ) wpRestoreLong
  1030. (
  1031.   szClass       : ARRAY OF CHAR;
  1032.   ulKey         : LONGCARD;
  1033.   VAR ulValue   : LONGCARD
  1034. )               : BOOLEAN;
  1035.  
  1036. PROCEDURE( Self : PWPObject ) wpRestoreState
  1037. (
  1038.   ulReserved    : LONGCARD
  1039. )               : BOOLEAN;
  1040.  
  1041. PROCEDURE( Self : PWPObject ) wpRestoreString
  1042. (
  1043.   szClass       : ARRAY OF CHAR;
  1044.   ulKey         : LONGCARD;
  1045.   VAR szValue   : ARRAY OF CHAR;
  1046.   VAR cbValue   : LONGCARD
  1047. )               : BOOLEAN;
  1048.  
  1049. PROCEDURE( Self : PWPObject ) wpSaveData
  1050. (
  1051.   szClass       : ARRAY OF CHAR;
  1052.   ulKey         : LONGCARD;
  1053.   VAR Value     : ARRAY OF BYTE;
  1054.   cbValue       : LONGCARD
  1055. )               : BOOLEAN;
  1056.  
  1057. PROCEDURE( Self : PWPObject ) wpSaveImmediate( ) : BOOLEAN;
  1058.  
  1059. PROCEDURE( Self : PWPObject ) wpSaveDeferred( ) : BOOLEAN;
  1060.  
  1061. PROCEDURE( Self : PWPObject ) wpSaveLong
  1062. (
  1063.   szClass       : ARRAY OF CHAR;
  1064.   ulKey         : LONGCARD;
  1065.   ulValue       : LONGCARD
  1066. )               : BOOLEAN;
  1067.  
  1068. PROCEDURE( Self : PWPObject ) wpSaveState( ) : BOOLEAN;
  1069.  
  1070. PROCEDURE( Self : PWPObject ) wpSaveString
  1071. (
  1072.   szClass       : ARRAY OF CHAR;
  1073.   ulKey         : LONGCARD;
  1074.   szValue       : ARRAY OF CHAR
  1075. )               : BOOLEAN;
  1076.  
  1077. PROCEDURE( Self : PWPObject ) wpScanSetupString
  1078. (
  1079.   szSetupString : ARRAY OF CHAR;
  1080.   szKey         : ARRAY OF CHAR;
  1081.   szValue       : ARRAY OF CHAR;
  1082.   VAR cbValue   : LONGCARD
  1083. )               : BOOLEAN;
  1084.  
  1085. PROCEDURE( Self : PWPObject ) wpSetConcurrentView
  1086. (
  1087.   ulCCView      : LONGCARD
  1088. );
  1089.  
  1090. PROCEDURE( Self : PWPObject ) wpSetButtonAppearance
  1091. (
  1092.   ulButtonType  : LONGCARD
  1093. );
  1094.  
  1095. PROCEDURE( Self : PWPObject ) wpSetDefaultHelp
  1096. (
  1097.   HelpPanelId   : LONGCARD;
  1098.   HelpLibrary   : ARRAY OF CHAR
  1099. )               : BOOLEAN;
  1100.  
  1101. PROCEDURE( Self : PWPObject ) wpSetDefaultView
  1102. (
  1103.   ulView        : LONGCARD
  1104. )               : BOOLEAN;
  1105.  
  1106. PROCEDURE( Self : PWPObject ) wpSetError
  1107. (
  1108.   ulErrorId     : LONGCARD
  1109. )               : BOOLEAN;
  1110.  
  1111. PROCEDURE( Self : PWPObject ) wpSetIcon
  1112. (
  1113.   hptrNewIcon   : HPOINTER
  1114. )               : BOOLEAN;
  1115.  
  1116. PROCEDURE( Self : PWPObject ) wpSetIconData
  1117. (
  1118.   VAR IconInfo  : ICONINFO
  1119. )               : BOOLEAN;
  1120.  
  1121. PROCEDURE( Self : PWPObject ) wpSetMinWindow
  1122. (
  1123.   ulMinWindow   : LONGCARD
  1124. );
  1125.  
  1126. PROCEDURE( Self : PWPObject ) wpSetStyle
  1127. (
  1128.   ulNewStyle    : LONGCARD
  1129. )               : BOOLEAN;
  1130.  
  1131. PROCEDURE( Self : PWPObject ) wpModifyStyle
  1132. (
  1133.   ulStyleFlags  : LONGCARD;
  1134.   ulStyleMask   : LONGCARD
  1135. )               : BOOLEAN;
  1136.  
  1137. PROCEDURE( Self : PWPObject ) wpSetTitle
  1138. (
  1139.   szNewTitle    : ARRAY OF CHAR
  1140. )               : BOOLEAN;
  1141.  
  1142. PROCEDURE( Self : PWPObject ) wpSetup
  1143. (
  1144.   szSetupString : ARRAY OF CHAR
  1145. )               : BOOLEAN;
  1146.  
  1147. PROCEDURE( Self : PWPObject ) wpSwitchTo
  1148. (
  1149.   View          : LONGCARD
  1150. )               : BOOLEAN;
  1151.  
  1152. PROCEDURE( Self : PWPObject ) wpUnInitData( );
  1153.  
  1154. PROCEDURE( Self : PWPObject ) wpViewObject
  1155. (
  1156.   hwndCnr       : HWND;
  1157.   ulView        : LONGCARD;
  1158.   param         : LONGCARD
  1159. )               : HWND;
  1160.  
  1161. PROCEDURE( Self : PWPObject ) wpQueryTrueStyle( ) : LONGCARD;
  1162.  
  1163. PROCEDURE( Self : PWPObject ) wpQueryHandle( ) : HOBJECT;
  1164.  
  1165. PROCEDURE( Self : PWPObject ) wpUnlockObject( ) : BOOLEAN;
  1166.  
  1167.  
  1168.  
  1169. (*************************************************************************
  1170.   SOM class API for M_WPObject, including type-bound procedures
  1171. **************************************************************************)
  1172.  
  1173. CONST
  1174.   M_WPObject_MajorVersion   = 1;
  1175.   M_WPObject_MinorVersion   = 2;
  1176.  
  1177. TYPE
  1178.   M_WPObjectClassDataStructure   = RECORD
  1179.     classObject                    : PSOMClass;
  1180.     wpclsInitData                  : somMToken;
  1181.     wpclsUnInitData                : somMToken;
  1182.     withdrawn8                     : somMToken;
  1183.     wpclsMakeAwake                 : somMToken;
  1184.     wpclsIncUsage                  : somMToken;
  1185.     wpclsDecUsage                  : somMToken;
  1186.     wpclsQueryTitle                : somMToken;
  1187.     wpclsQueryIcon                 : somMToken;
  1188.     wpclsQueryDefaultHelp          : somMToken;
  1189.     wpclsQueryStyle                : somMToken;
  1190.     wpclsQueryDetailsInfo          : somMToken;
  1191.     wpclsQueryDefaultView          : somMToken;
  1192.     wpclsQueryDetails              : somMToken;
  1193.     wpclsQuerySearchInfo           : somMToken;
  1194.     wpclsQueryExtendedCriteria     : somMToken;
  1195.     wpclsCreateDefaultTemplates    : somMToken;
  1196.     withdrawn9                     : somMToken;
  1197.     wpclsFindObjectFirst           : somMToken;
  1198.     wpclsFindObjectNext            : somMToken;
  1199.     wpclsFindObjectEnd             : somMToken;
  1200.     wpclsFindObjects               : somMToken;
  1201.     wpclsSetError                  : somMToken;
  1202.     wpclsQueryError                : somMToken;
  1203.     wpclsQuerySettingsPageSize     : somMToken;
  1204.     wpclsSetSettingsPageSize       : somMToken;
  1205.     wpclsQueryIconData             : somMToken;
  1206.     wpclsSetIcon                   : somMToken;
  1207.     wpclsSetIconData               : somMToken;
  1208.     wpclsQueryObject               : somMToken;
  1209.     wpclsObjectFromHandle          : somMToken;
  1210.     wpclsSaveDirtyObjects          : somMToken;
  1211.     wpclsLockDirtyList             : somMToken;
  1212.     wpclsUnlockDirtyList           : somMToken;
  1213.     wpclsLockRestartList           : somMToken;
  1214.     wpclsUnlockRestartList         : somMToken;
  1215.     wpclsQueryButtonAppearance     : somMToken;
  1216.     wpclsNew                       : somMToken;
  1217.     wpclsQueryFolder               : somMToken;
  1218.     wpclsLockSleepyList            : somMToken;
  1219.     wpclsUnlockSleepyList          : somMToken;
  1220.     wpclsRemoveObjects             : somMToken;
  1221.     wpclsInsertMultipleObjects     : somMToken;
  1222.                                    END;
  1223.  
  1224. VAR
  1225.   M_WPObjectClassData : M_WPObjectClassDataStructure;
  1226.  
  1227. TYPE
  1228.   (*$SOM+ *)
  1229.   M_WPObject = RECORD( SOMClass ) END;
  1230.   (*$SOM- *)
  1231.  
  1232.  
  1233. PROCEDURE M_WPObjectNewClass
  1234. (
  1235.   majorVersion  : INTEGER4;
  1236.   minorVersion  : INTEGER4
  1237. )               : PSOMClass;
  1238.  
  1239. PROCEDURE( Self : PM_WPObject ) wpclsCreateDefaultTemplates
  1240. (
  1241.   Folder        : PWPObject
  1242. )               : BOOLEAN;
  1243.  
  1244. PROCEDURE( Self : PM_WPObject ) wpclsInitData( );
  1245.  
  1246. PROCEDURE( Self : PM_WPObject ) wpclsMakeAwake
  1247. (
  1248.   VAR szTitle   : ARRAY OF CHAR;
  1249.   ulStyle       : LONGCARD;
  1250.   hptrIcon      : HPOINTER;
  1251.   VAR ObjData   : OBJDATA;
  1252.   Folder        : PWPFolder;
  1253.   ulUser        : LONGCARD
  1254. )               : PWPObject;
  1255.  
  1256. PROCEDURE( Self : PM_WPObject ) wpclsNew
  1257. (
  1258.   szTitle       : ARRAY OF CHAR;
  1259.   szSetupEnv    : ARRAY OF CHAR;
  1260.   Folder        : PWPFolder;
  1261.   fLock         : BOOLEAN
  1262. )               : ADDRESS;
  1263.  
  1264. PROCEDURE( Self : PM_WPObject ) wpclsQueryDefaultHelp
  1265. (
  1266.   VAR HelpPanelId   : LONGCARD;
  1267.   VAR szHelpLibrary : ARRAY OF CHAR
  1268. )                   : BOOLEAN;
  1269.  
  1270. PROCEDURE( Self : PM_WPObject ) wpclsQueryDefaultView( ) : LONGCARD;
  1271.  
  1272. PROCEDURE( Self : PM_WPObject ) wpclsQueryDetails( ) : PCLASSDETAILS;
  1273.  
  1274. PROCEDURE( Self : PM_WPObject ) wpclsQueryDetailsInfo
  1275. (
  1276.   ppClassFieldInfo : PPCLASSFIELDINFO;
  1277.   pSize            : PLONGCARD
  1278. )                  : LONGCARD;
  1279.  
  1280. PROCEDURE( Self : PM_WPObject ) wpclsQueryExtendedCriteria
  1281. (
  1282.   szName               : ARRAY OF CHAR;
  1283.   ulSearchType         : LONGCARD;
  1284.   VAR ExtendedCriteria : ARRAY OF BYTE
  1285. )                      : BOOLEAN;
  1286.  
  1287. PROCEDURE( Self : PM_WPObject ) wpclsQueryFolder
  1288. (
  1289.   szLocation    : ARRAY OF CHAR;
  1290.   fLock         : BOOLEAN
  1291. )               : PWPObject;
  1292.  
  1293. PROCEDURE( Self : PM_WPObject ) wpclsQueryIcon( ) : HPOINTER;
  1294.  
  1295. PROCEDURE( Self : PM_WPObject ) wpclsQuerySearchInfo
  1296. (
  1297.   VAR ClassExtended       : PM_WPObject;
  1298.   VAR ClassCreate         : PM_WPObject;
  1299.   VAR ulClassCriteriaSize : LONGCARD
  1300. );
  1301.  
  1302. PROCEDURE( Self : PM_WPObject ) wpclsQueryStyle( ) : LONGCARD;
  1303.  
  1304. PROCEDURE( Self : PM_WPObject ) wpclsQueryTitle( ) : PSZ;
  1305.  
  1306. PROCEDURE( Self : PM_WPObject ) wpclsUnInitData( );
  1307.  
  1308. PROCEDURE( Self : PM_WPObject ) wpclsFindObjectFirst
  1309. (
  1310.   VAR ClassList        : ARRAY OF CLASS;
  1311.   VAR hFind            : HFIND;
  1312.   szTitle              : ARRAY OF CHAR;
  1313.   Folder               : PWPFolder;
  1314.   fSubfolders          : BOOLEAN;
  1315.   VAR ExtendedCriteria : ARRAY OF BYTE;
  1316.   VAR Buffer           : ARRAY OF OBJECT;
  1317.   VAR Count            : LONGCARD
  1318. )                      : BOOLEAN;
  1319.  
  1320. PROCEDURE( Self : PM_WPObject ) wpclsFindObjectNext
  1321. (
  1322.   VAR Buffer    : ARRAY OF OBJECT;
  1323.   VAR Count     : LONGCARD
  1324. )               : BOOLEAN;
  1325.  
  1326. PROCEDURE( Self : PM_WPObject ) wpclsFindObjectEnd
  1327. (
  1328.   hFind         : HFIND
  1329. )               : BOOLEAN;
  1330.  
  1331. PROCEDURE( Self : PM_WPObject ) wpclsSetError
  1332. (
  1333.   ulErrorId     : LONGCARD
  1334. )               : BOOLEAN;
  1335.  
  1336. PROCEDURE( Self : PM_WPObject ) wpclsQueryError( ) : LONGCARD;
  1337.  
  1338. PROCEDURE( Self : PM_WPObject ) wpclsQuerySettingsPageSize
  1339. (
  1340.   VAR Sizl      : SIZEL
  1341. )               : BOOLEAN;
  1342.  
  1343. PROCEDURE( Self : PM_WPObject ) wpclsQueryIconData
  1344. (
  1345.   pIconInfo     : PICONINFO
  1346. )               : LONGCARD;
  1347.  
  1348. PROCEDURE( Self : PM_WPObject ) wpclsQueryObject
  1349. (
  1350.   hObject       : HOBJECT
  1351. )               : PWPObject;
  1352.  
  1353. PROCEDURE( Self : PM_WPObject ) wpclsQueryButtonAppearance( ) : LONGCARD;
  1354.  
  1355.  
  1356. END WPOBJECT.
  1357.