home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / VSCPPv4.zip / VACPP / IBMCPP / HELP / WPSGUIDE.INF (.txt) < prev   
OS/2 Help File  |  1995-03-14  |  1MB  |  24,071 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Notices ΓòÉΓòÉΓòÉ
  3.  
  4. First Edition (December 1994) 
  5.  
  6. The following paragraph does not apply to the United Kingdom or any country 
  7. where such provisions are inconsistent with local law:  INTERNATIONAL BUSINESS 
  8. MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY 
  9. KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
  10. WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states 
  11. do not allow disclaimer of express or implied warranties in certain 
  12. transactions, therefore, this statement may not apply to you. 
  13.  
  14. This publication could include technical inaccuracies or typographical errors. 
  15. Changes are periodically made to the information herein; these changes will be 
  16. incorporated in new editions of the publication. IBM may make improvements 
  17. and/or changes in the product(s) and/or the program(s) described in this 
  18. publication at any time. 
  19.  
  20. It is possible that this publication may contain reference to, or information 
  21. about, IBM products (machines and programs), programming, or services that are 
  22. not announced in your country.  Such references or information must not be 
  23. construed to mean that IBM intends to announce such IBM products, programming, 
  24. or services in your country. 
  25.  
  26. Requests for technical information about IBM products should be made to your 
  27. IBM authorized reseller or IBM marketing representative. 
  28.  
  29.  
  30. ΓòÉΓòÉΓòÉ 1.1. Copyright Notices ΓòÉΓòÉΓòÉ
  31.  
  32. COPYRIGHT LICENSE: This publication contains printed sample application 
  33. programs in source language, which illustrate OS/2 programming techniques. You 
  34. may copy, modify, and distribute these sample programs in any form without 
  35. payment to IBM, for the purposes of developing, using, marketing or 
  36. distributing application programs conforming to the OS/2 application 
  37. programming interface. 
  38.  
  39. Each copy of any portion of these sample programs or any derivative work, which 
  40. is distributed to others, must include a copyright notice as follows: "(C) 
  41. (your company name) (year).  All rights reserved." 
  42.  
  43. (C) Copyright International Business Machines Corporation 1994. All rights 
  44. reserved. 
  45. Note to U.S. Government Users - Documentation related to restricted rights - 
  46. Use, duplication or disclosure is subject to restrictions set forth in GSA ADP 
  47. Schedule Contract with IBM Corp. 
  48.  
  49.  
  50. ΓòÉΓòÉΓòÉ 1.2. Disclaimers ΓòÉΓòÉΓòÉ
  51.  
  52. References in this publication to IBM products, programs, or services do not 
  53. imply that IBM intends to make these available in all countries in which IBM 
  54. operates. Any reference to an IBM product, program or service is not intended 
  55. to state or imply that only IBM's product, program, or service may be used. Any 
  56. functionally equivalent product, program, or service that does not infringe any 
  57. of IBM's intellectual property rights or other legally protectable rights may 
  58. be used instead of the IBM product, program, or service. Evaluation and 
  59. verification of operation in conjunction with other products, programs, or 
  60. services, except those expressly designated by IBM, are the user's 
  61. responsibility. 
  62.  
  63. IBM may have patents or pending patent applications covering subject matter in 
  64. this document. The furnishing of this document does not give you any license to 
  65. these patents. You can send license inquiries, in writing, to the IBM Director 
  66. of Licensing, IBM Corporation, 500 Columbus Avenue, Thornwood NY 10594, U.S.A. 
  67.  
  68.  
  69. ΓòÉΓòÉΓòÉ 1.3. Trademarks ΓòÉΓòÉΓòÉ
  70.  
  71. The following terms are trademarks of the IBM Corporation in the United States 
  72. or other countries: 
  73.  
  74.  AIX                                Common User Access 
  75.  CUA                                IBM 
  76.  Operating System/2                 OS/2 
  77.  PM                                 Presentation Manager 
  78.  Proprinter                         SAA 
  79.  SOMobjects                         System Application Architecture 
  80.  WIN-OS/2                           Workplace Shell 
  81.  
  82.  The following terms are trademarks of other companies: 
  83.  
  84.  C++                                American Telephone and Telegraph Company 
  85.  CORBA                              Object Management Group, Inc. 
  86.  Helvetica                          Linotype Company 
  87.  Novell                             Novell, Inc. 
  88.  PCMCIA                             Personal Computer Memory Card International 
  89.                                     Association 
  90.  Windows                            Microsoft Corporation 
  91.  
  92.  
  93. ΓòÉΓòÉΓòÉ 2. Introduction ΓòÉΓòÉΓòÉ
  94.  
  95. This book is a programmer's guide to the Workplace Shell*, an application 
  96. environment integrated with the Operating System/2* (OS/2*), with an 
  97. object-oriented user interface using IBM*'s System Object Model (SOM). 
  98.  
  99.  
  100. ΓòÉΓòÉΓòÉ 2.1. The Workplace Shell: Object-Oriented User/Programming Interface ΓòÉΓòÉΓòÉ
  101.  
  102. The Workplace Shell constitutes the interface with which users interact with 
  103. the operating system. It represents items that users most frequently manipulate 
  104. as familiar objects on a Desktop. As a user interface, the Workplace Shell 
  105. conforms to many of the guidelines described by the Common User Access* (CUA*). 
  106.  
  107. In addition to being an interface through which a user can organize and work 
  108. with the operating system, the Workplace Shell provides its programming 
  109. interface to you. This means that applications can blend into the operating 
  110. system's user interaction model, allowing users to work with new applications 
  111. in the same manner as the operating system itself. 
  112.  
  113. By exploiting the Workplace Shell's application programming interface, you can 
  114. also reuse and build on much of the functionality already implemented by the 
  115. Workplace Shell. By using the Workplace Shell methods, an application can 
  116. implement its interface so that it includes familiar Workplace Shell user 
  117. interaction tools such as: 
  118.  
  119.    o  Objects presented to the user on the Desktop 
  120.  
  121.    o  Common mouse/keyboard interaction techniques 
  122.  
  123.    o  Settings notebook to manipulate attributes of the application 
  124.  
  125.    o  Dynamic context menus to present operational choices to user 
  126.  
  127.    o  Object mobility via Drag and Drop operation 
  128.  
  129.    o  Application view management with the OS/2 Window list. 
  130.  
  131.  In addition to the portion of the functions devoted to managing the 
  132.  presentation of the application's user interface, the Workplace Shell also 
  133.  provides functions (methods) to help coordinate the implementation of the 
  134.  application. 
  135.  
  136.  
  137. ΓòÉΓòÉΓòÉ 2.2. Objectives of This Guide ΓòÉΓòÉΓòÉ
  138.  
  139. This guide provides information on topics relevant to writing application 
  140. programs for the Workplace Shell. These topics include: 
  141.  
  142.    o  Creating and Installing Workplace Shell Objects 
  143.  
  144.    o  Debugging Workplace Shell Applications 
  145.  
  146.    o  Object Aid: Help Methods 
  147.  
  148.    o  Object Containers: Container Methods 
  149.  
  150.    o  Object Criteria: Details Methods 
  151.  
  152.    o  Object Errors: Error Handling Methods 
  153.  
  154.    o  Object Information: Set/Query Methods 
  155.  
  156.    o  Object Initialization and Termination: Setup/Cleanup Methods 
  157.  
  158.    o  Object Memory: Memory Allocation Methods 
  159.  
  160.    o  Object Mobility: Direct Manipulation Methods 
  161.  
  162.    o  Object Persistence: Save/Restore Methods 
  163.  
  164.    o  Object Properties: Notebook Methods 
  165.  
  166.    o  Object Usage: Usage Methods 
  167.  
  168.    o  Object User Action: Pop-Up Menu Methods 
  169.  
  170.    o  REXX Utility Workplace Shell Functions 
  171.  
  172.    o  Workplace Shell and System Object Model 
  173.  
  174.    o  Workplace Shell Distributed SOM 
  175.  
  176.    o  Workplace Shell Processes and Threads 
  177.  
  178.    o  Workplace Shell Programming Interface 
  179.  
  180.    o  Workplace Shell Win Functions 
  181.  
  182.  The contents of each of these topics is briefly described in the following 
  183.  sections. 
  184.  
  185.  
  186. ΓòÉΓòÉΓòÉ 2.2.1. Creating and Installing Workplace Shell Objects ΓòÉΓòÉΓòÉ
  187.  
  188. This chapter walks you through the Car sample which is included in the Toolkit, 
  189. and through WPStyler, a complete sample program. The purpose is to provide 
  190. detail information on how to create an object. For each sample, the different 
  191. Workplace Shell instance and class methods used, along with the new methods 
  192. introduced by each of them, are explained. Once objects are created, they can 
  193. be installed on the Desktop in two ways: by running an installation program or 
  194. batch file, or by using the Workplace Shell Class List Object Utility. As 
  195. objects can also reside on the Launch Pad, this chapter describes the different 
  196. setup strings and methods used with the Launch Pad. Finally, this chapter 
  197. explains how to support printing the contents of an object from the Desktop. 
  198.  
  199.  
  200. ΓòÉΓòÉΓòÉ 2.2.2. Debugging Workplace Shell Applications ΓòÉΓòÉΓòÉ
  201.  
  202. Debugging a Workplace Shell application is somewhat like debugging a 
  203. Presentation Manager* (PM*) application. But because Workplace Shell objects 
  204. are implemented via DLLs instead of EXEs, they can be more of a challenge. This 
  205. chapter describes the SOM and Workplace Shell facilities and techniques to aid 
  206. debugging applications. 
  207.  
  208.  
  209. ΓòÉΓòÉΓòÉ 2.2.3. Object Aid: Help Methods ΓòÉΓòÉΓòÉ
  210.  
  211. While running an application or viewing a document, the user may require help 
  212. on the application or document. It is important to include the help information 
  213. for all applications as it is used often. This chapter describes different 
  214. methods that can be overridden in order to provide help from an application 
  215. window, when a user requests it. 
  216.  
  217.  
  218. ΓòÉΓòÉΓòÉ 2.2.4. Object Containers: Container Methods ΓòÉΓòÉΓòÉ
  219.  
  220. A container is a visual component that holds objects. CUA container control is 
  221. the primary way of interacting with Workplace Shell objects. All objects with 
  222. which the user interacts are simply records that have been inserted into a 
  223. container control. Any Workplace Shell object can be inserted into any 
  224. container control created on the Workplace process. This chapter describes the 
  225. different views available for containers, and the methods used to create and 
  226. manipulate containers in Workplace Shell applications. 
  227.  
  228.  
  229. ΓòÉΓòÉΓòÉ 2.2.5. Object Criteria: Details Methods ΓòÉΓòÉΓòÉ
  230.  
  231. The class defines the object's instance data and methods. Details data are part 
  232. of instance data and define more accurately the behavior of the object. This 
  233. chapter describes the general concepts of Details data and explains how to use 
  234. the Details methods in Workplace Shell applications. 
  235.  
  236.  
  237. ΓòÉΓòÉΓòÉ 2.2.6. Object Errors: Error Handling Methods ΓòÉΓòÉΓòÉ
  238.  
  239. The Workplace Shell provides methods that you can override to design your own 
  240. error handling system, using error objects. This chapter provides information 
  241. on error handling methods for Workplace Shell applications. 
  242.  
  243.  
  244. ΓòÉΓòÉΓòÉ 2.2.7. Object Information: Set/Query Methods ΓòÉΓòÉΓòÉ
  245.  
  246. The Workplace Shell provides several set and query methods that you can use to 
  247. set or to get object information, such as the default view of the object's 
  248. in-use list, the object's icon, and the object's title. This chapter provides 
  249. information for using object information methods. It describes how to define 
  250. the behavior of Workplace Shell objects, using applicable styles. 
  251.  
  252.  
  253. ΓòÉΓòÉΓòÉ 2.2.8. Object Initialization and Termination: Setup/Cleanup Methods ΓòÉΓòÉΓòÉ
  254.  
  255. The Workplace Shell provides methods that you can use to setup the 
  256. characteristics and behaviors of an object. Likewise, it also provides methods 
  257. that you can use to cleanup after an object is no longer in use. This chapter 
  258. provides information on setup and cleanup methods that are available in the 
  259. Workplace Shell. 
  260.  
  261.  
  262. ΓòÉΓòÉΓòÉ 2.2.9. Object Memory: Memory Allocation Methods ΓòÉΓòÉΓòÉ
  263.  
  264. The Workplace Shell provides methods which you can override to design your own 
  265. memory management system, or utilize to manage memory required for objects of 
  266. your application. This chapter provides information on memory management 
  267. methods for Workplace Shell applications. 
  268.  
  269.  
  270. ΓòÉΓòÉΓòÉ 2.2.10. Object Mobility: Direct Manipulation Methods ΓòÉΓòÉΓòÉ
  271.  
  272. Direct manipulation refers to the OS/2 object mobility. That is, it refers to 
  273. the OS/2 user capability of moving an object from one container to another by 
  274. dragging an object icon from a source container and dropping it on a target 
  275. container. Direct manipulation methods allow you to specify how objects that 
  276. are directly effected by such a move communicate with each other. This chapter 
  277. outlines the protocols of direct manipulation with respect to their 
  278. interactions with the Workplace Shell. 
  279.  
  280.  
  281. ΓòÉΓòÉΓòÉ 2.2.11. Object Persistence: Save/Restore Methods ΓòÉΓòÉΓòÉ
  282.  
  283. The WPObject class provides methods that support persistent objects, that is, 
  284. objects for which the system saves information. These methods include save and 
  285. corresponding restore methods. This chapter provides information using these 
  286. state methods in Workplace Shell applications. 
  287.  
  288.  
  289. ΓòÉΓòÉΓòÉ 2.2.12. Object Properties: Notebook Methods ΓòÉΓòÉΓòÉ
  290.  
  291. A notebook is a visual component used to display the setttings for an object 
  292. and to enable the user to change them. This chapter describes the General and 
  293. Window pages of the Settings notebook, and explains how to use the notebook 
  294. methods in Workplace Shell applications. 
  295.  
  296.  
  297. ΓòÉΓòÉΓòÉ 2.2.13. Object Usage: Usage Methods ΓòÉΓòÉΓòÉ
  298.  
  299. Every Workplace Shell object in the system has an in-use list. Object usage 
  300. methods allow an object to keep track of its resources and how it is being 
  301. used. This chapter provides information for using in-use lists that are 
  302. associated with objects. 
  303.  
  304.  
  305. ΓòÉΓòÉΓòÉ 2.2.14. Object User Action: Pop-Up Menu Methods ΓòÉΓòÉΓòÉ
  306.  
  307. This chapter describes the pop-up context menus that can be used to invoke 
  308. actions on Workplace Shell objects. It also provides an overview of how to 
  309. create and manipulate the pop-up context menu for your Workplace Shell objects. 
  310.  
  311.  
  312. ΓòÉΓòÉΓòÉ 2.2.15. REXX Utility Workplace Shell Functions ΓòÉΓòÉΓòÉ
  313.  
  314. REXX combines the simplicity of a programming language such as BASIC with 
  315. features that exist in more powerful languages such as C, PASCAL, or PL/1. Part 
  316. of the success of REXX has been due in part to having been selected as the 
  317. Systems Application Architecture* Programming Language (SAA/PL). The purpose is 
  318. to provide a common look and feel across all operating systems. This is 
  319. important because CUA is the standard that the Workplace Shell uses which is 
  320. also part of SAA* REXX provides the facility for the Workplace Shell to create, 
  321. modify, and delete objects. This chapter describes the REXX functions and how 
  322. to use them in Workplace Shell applications. 
  323.  
  324.  
  325. ΓòÉΓòÉΓòÉ 2.2.16. Workplace Shell and System Object Model ΓòÉΓòÉΓòÉ
  326.  
  327. SOM is the object technology used for the implementation of the Workplace 
  328. Shell. It provides a language neutral, object-oriented programming methodology 
  329. that you can use to create Workplace Shell objects and bind them to the 
  330. Workplace Shell. This chapter describes SOM's architecture, its features and 
  331. environment. It describes its methods, classes, and finally provides an example 
  332. of its workings. This chapter is not intended to be a SOM programming guide. It 
  333. is, however, intended to serve as an introduction to SOM at a level necessary 
  334. to write Workplace Shell applications. 
  335.  
  336.  
  337. ΓòÉΓòÉΓòÉ 2.2.17. Workplace Shell Distributed SOM ΓòÉΓòÉΓòÉ
  338.  
  339. Distributed SOM (DSOM) provides a framework that allows application programs to 
  340. access objects across address spaces. That is, application programs can access 
  341. objects in other processes, even on different machines. Both the location and 
  342. implementation of an object are hidden from the client which accesses the 
  343. object (using method calls) in the same manner regardless of its location. 
  344.  
  345.  
  346. ΓòÉΓòÉΓòÉ 2.2.18. Workplace Shell Processes and Threads ΓòÉΓòÉΓòÉ
  347.  
  348. The Workplace Shell's current implementation exploits the multi-threading 
  349. capabilities of the OS/2 operating system. This chapter describes how the 
  350. Workplace Shell is initialized, the relationship between its various threads, 
  351. and ramifications on Workplace Shell method invocation. 
  352.  
  353.  
  354. ΓòÉΓòÉΓòÉ 2.2.19. Workplace Shell Programming Interface ΓòÉΓòÉΓòÉ
  355.  
  356. The Desktop (which also is an object), the objects that appear on the Desktop, 
  357. and the underlying code supporting these objects constitute the OS/2 Workplace 
  358. Shell, the default OS/2 user interface. Likewise, methods in the Workplace 
  359. Shell are methods that were implemented for the creation of the Desktop object 
  360. and its objects. This chapter describes Workplace Shell classes and 
  361. characteristic behavior of Workplace Shell objects. 
  362.  
  363.  
  364. ΓòÉΓòÉΓòÉ 2.2.20. Workplace Shell Win Functions ΓòÉΓòÉΓòÉ
  365.  
  366. Applications cannot call Workplace Shell objects' methods directly. They are 
  367. not clients of Workplace Shell objects, in the same sense that applications can 
  368. be clients of SOM objects. Workplace Shell objects are derived from the 
  369. WPObject class, which, in turn, is derived from the SOMObject class. They share 
  370. all the features of SOM objects but only the Workplace Shell can directly 
  371. manipulate them. Because there are times when applications might need to effect 
  372. changes to the Desktop and objects on the Desktop, the Workplace Shell provides 
  373. functions that permit you to proceed these changes. This chapter describes the 
  374. Workplace Shell Win Functions. 
  375.  
  376.  
  377. ΓòÉΓòÉΓòÉ 3. Creating and Installing Workplace Shell Objects ΓòÉΓòÉΓòÉ
  378.  
  379. This chapter walks you through the CAR sample which is included in the Toolkit, 
  380. and through WPStyler, a complete sample program. The purpose is to provide 
  381. detail information on how to create an object. For each sample, the different 
  382. Workplace Shell instance and class methods used, along with the new methods 
  383. introduced by each of them, are explained. Once objects are created, they can 
  384. be installed on the Desktop in two ways: by running an installation program or 
  385. batch file, or by using the Workplace Shell Class List Object Utility. As 
  386. objects can also reside on the Launch Pad, this chapter describes the different 
  387. setup strings and methods used with the Launch Pad. Finally, this chapter 
  388. explains how to support printing the contents of an object from the Desktop. 
  389.  
  390.  
  391. ΓòÉΓòÉΓòÉ 3.1. About Workplace Shell Objects ΓòÉΓòÉΓòÉ
  392.  
  393. This section describes the: 
  394.  
  395.    o  CAR sample and its implementation, which consists of: 
  396.  
  397.         -  Providing for persistence of the object 
  398.         -  Changing Settings notebook pages 
  399.         -  Removing an Item from the pop-up menu 
  400.         -  Adding pop-up menu items 
  401.         -  Creating and registering a new open view 
  402.         -  Processing new pop-up menu items 
  403.         -  Processing help for new pop-up menu items 
  404.  
  405.    o  Creation of new instances of objects 
  406.  
  407.    o  Printing objects 
  408.  
  409.    o  Launch Pad. 
  410.  
  411.  
  412. ΓòÉΓòÉΓòÉ 3.1.1. Creation of Objects ΓòÉΓòÉΓòÉ
  413.  
  414. The CAR sample Workplace Shell object included in the Toolkit provides an 
  415. example of how to create an object. CAR is a spin-off implementation of the CAR 
  416. object example used in the Systems Application Architecture:  Common User 
  417. Access Guide to User Interface Design. 
  418.  
  419. The CAR object has two views: 
  420.  
  421.    o  An Open car view, which is a representation of a CAR that moves randomly 
  422.       around a window. 
  423.  
  424.    o  A Settings notebook that permits the user to change the sound of the 
  425.       horn, on the Horn beep page, and the speed of the CAR, on the Dashboard 
  426.       page. 
  427.  
  428.  The Horn beep and Dashboard pages in the CAR's Settings notebook are dialog 
  429.  windows whose contents are defined in a dialog template in the CAR.RC resource 
  430.  file. The resources are appended to the binary CAR.DLL file. The help panels 
  431.  associated with the dialogs are defined in the CAR.HLP help library. The 
  432.  association between the help panels and the dialogs is established with the 
  433.  dialog template in the resource file. 
  434.  
  435.  CAR is a persistent object but not a part of the file system. Therefore, it is 
  436.  derived from the WPAbstract class, which is derived from the WPObject root 
  437.  Workplace Shell class. This means that CAR inherits the methods from 
  438.  WPAbstract, which, in turn, inherits all of the instance and class methods 
  439.  from WPObject. CAR defines new methods and overrides some instance and class 
  440.  methods inherited from both WPAbstract and WPObject. New methods defined for 
  441.  the CAR class are summarized in the following table: 
  442.  
  443.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  444.   ΓöéMethod Name           ΓöéDescription              Γöé
  445.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  446.   ΓöécarQueryInfo          ΓöéGets the CAR information.Γöé
  447.   Γöé                      ΓöéIt is called by the      Γöé
  448.   Γöé                      Γöédialog procedure to get  Γöé
  449.   Γöé                      Γöéthe latest CAR data when Γöé
  450.   Γöé                      Γöéthe dialog window opened.Γöé
  451.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  452.   ΓöécarSetInfo            ΓöéSets up the CAR          Γöé
  453.   Γöé                      Γöéinformation. It is calledΓöé
  454.   Γöé                      Γöéby the dialog procedure  Γöé
  455.   Γöé                      Γöéto update the CAR data asΓöé
  456.   Γöé                      Γöéthe user interacts with  Γöé
  457.   Γöé                      Γöéthe dialog window.       Γöé
  458.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  459.   ΓöéwpAddDashboardPage    ΓöéInserts the Dashboard    Γöé
  460.   Γöé                      Γöépage into the Settings   Γöé
  461.   Γöé                      Γöénotebook. It is called byΓöé
  462.   Γöé                      ΓöéwpAddSettingsPages.      Γöé
  463.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  464.   ΓöéwpAddHornBeepPage     ΓöéInserts the Horn beep    Γöé
  465.   Γöé                      Γöépage into the Settings   Γöé
  466.   Γöé                      Γöénotebook. It is called byΓöé
  467.   Γöé                      ΓöéwpAddSettingsPages.      Γöé
  468.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  469.  
  470.  
  471. ΓòÉΓòÉΓòÉ 3.1.1.1. Implementation of the CAR Object ΓòÉΓòÉΓòÉ
  472.  
  473. The implementation of the CAR object consists primarily of overrides to 
  474. instance and class methods inherited from the WPObject and WPAbstract classes. 
  475. The following sections describe the different instance and class methods that 
  476. are overridden. 
  477.  
  478.  
  479. ΓòÉΓòÉΓòÉ 3.1.1.1.1. Providing for Persistence of the CAR Object ΓòÉΓòÉΓòÉ
  480.  
  481.  
  482. Because the CAR class defines its own set of data, it overrides wpSaveState and 
  483. wpRestoreState. These method overrides, in turn, call wpSaveLong and 
  484. wpRestoreLong to save instance data defined for the CAR class. 
  485.  
  486.  
  487. ΓòÉΓòÉΓòÉ 3.1.1.1.2. Changing Settings Notebook Pages ΓòÉΓòÉΓòÉ
  488.  
  489.  
  490. CAR creates Settings notebook pages by overriding wpAddSettingsPages inherited 
  491. from WPObject. The wpAddSettingsPages method calls the new methods defined by 
  492. the CAR class, wpAddDashboardPage and wpAddHornBeepPage. In turn, each of these 
  493. methods calls wpInsertSettingsPage inherited from WPObject. 
  494.  
  495.  
  496. ΓòÉΓòÉΓòÉ 3.1.1.1.3. Removing an Item from the Pop-Up Menu ΓòÉΓòÉΓòÉ
  497.  
  498.  
  499. Because the user item Print a car does not make sense for this object, the CAR 
  500. class removes the Print item from the CAR object's pop-up menu by overriding 
  501. wpFilterPopupMenu inherited from WPOject. 
  502.  
  503.  
  504. ΓòÉΓòÉΓòÉ 3.1.1.1.4. Adding Pop-Up Menu Items ΓòÉΓòÉΓòÉ
  505.  
  506.  
  507. The CAR class adds the Beep horn item to its primary pop-up menu by overriding 
  508. wpModifyPopupMenu inherited from WPObject. The method override for 
  509. wpModifyPopupMenu calls wpInsertPopupMenuItems, also inherited from WPObject, 
  510. to insert the item into the CAR's pop-up menu. 
  511.  
  512. The CAR class also adds the Open car item (OPEN_CAR) to its Open submenu by 
  513. overriding wpModifyPopupMenu. The method override calls wpInsertPopupMenuItems 
  514. to insert Open car into the Open submenu. 
  515.  
  516.  
  517. ΓòÉΓòÉΓòÉ 3.1.1.1.5. Creating and Registering a New Open View ΓòÉΓòÉΓòÉ
  518.  
  519.  
  520. A window for the OPEN_CAR view is created and opened by calling 
  521. WinCreateStdWindow. The window procedure for the client of the OPEN_CAR window 
  522. registers the OPEN_CAR view and associates the OPEN_CAR view with that window 
  523. by calling wpRegisterView. 
  524.  
  525.  
  526. ΓòÉΓòÉΓòÉ 3.1.1.1.6. Processing New Pop-Up Menu Items ΓòÉΓòÉΓòÉ
  527.  
  528. When a class defines new items for its menus, it must provide for the 
  529. processing of these items when the user selects an item. This is done by 
  530. overriding wpMenuItemSelected inherited from WPObject. Depending on the item 
  531. the user selects, the method override for wpMenuItemSelected calls the object's 
  532. wpOpen to open the OPEN_CAR view or calls carBeepHorn to beep the CAR's horn. 
  533.  
  534.  
  535. ΓòÉΓòÉΓòÉ 3.1.1.1.7. Processing Help for New Pop-Up Menu Items ΓòÉΓòÉΓòÉ
  536.  
  537.  
  538. When a class defines new items for its pop-up menu, it also must provide for 
  539. the processing of the help for these items when the user requests it. This is 
  540. accomplished by overriding wpMenuItemHelpSelected inherited from WPObject. 
  541. Given the item selected by the user, the method override for 
  542. wpMenuItemHelpSelected calls wpDisplayHelp inherited from WPObject to display 
  543. the Help dialog window for that item. The wpDisplayHelp method requires the ID 
  544. for the help panel associated with the item, as well as the name of the help 
  545. library where it resides. 
  546.  
  547. The implementation of the CAR object also demonstrates the use of: 
  548.  
  549.    o  A release order list in CAR.IDL. 
  550.  
  551.    o  External stem and prefix attributes in the class section of CAR.IDL. This 
  552.       allows the debugging process to be easier, because method names are 
  553.       externalized. 
  554.  
  555.    o  A message queue for the Workplace Shell. Object code runs on the 
  556.       Workplace Shell's thread. Windows associated with objects receive 
  557.       messages through the Workplace Shell's message queue. Objects do not need 
  558.       their own message queues. 
  559.  
  560.  
  561. ΓòÉΓòÉΓòÉ 3.1.2. Creation of New Instances of Objects ΓòÉΓòÉΓòÉ
  562.  
  563. An object template is the primary user mechanism for creating new instances of 
  564. objects. Specifically, a template is a state of an object where the default 
  565. Drag operation is Create another, that is, dragging and dropping the template 
  566. results in the creation of an instance of the object. The visual representation 
  567. of a template is the object's icon on top of a "yellow sticky pad" with the top 
  568. sheet slightly peeled up, as shown in the following figure: 
  569.  
  570. Any object that supports the Create another item can be changed by the user to 
  571. and from a template state by selecting the template checkbox on the General 
  572. page in the object's Settings notebook. A template is created automatically 
  573. when a class is registered, unless the class wpclsQueryStyle returns 
  574. CLSSTYLE_NEVERTEMPLATE. 
  575.  
  576. When the operating system is first installed, template objects reside in the 
  577. templates folder on the desktop. The templates folder always contains a 
  578. template object for each class of object installed on the system that supports 
  579. the Create another item. Any new object registered by WinRegisterObjectClass 
  580. that supports the Create another item automatically appears in this folder. A 
  581. template for each object class registered using this function cannot be removed 
  582. from the templates folder. 
  583.  
  584.  
  585. ΓòÉΓòÉΓòÉ 3.1.3. Printing Objects ΓòÉΓòÉΓòÉ
  586.  
  587. To support printing the contents of an object from the Desktop-by using the 
  588. object's pop-up menus or dragging the object and dropping it on the printer 
  589. object-the object's class definition must override wpPrintObject inherited from 
  590. its parent class. 
  591.  
  592. The new class is created as a subclass of an existing class. For example, if 
  593. the object is to be a data file, the WPDataFile class would be used as the 
  594. parent class. In the class definition file, the new class overrides 
  595. wpPrintObject that it inherits from its parent class. The new class' version of 
  596. wpPrintObject contains the code that prints the contents of the object. 
  597.  
  598. Note:  It is recommended that the code in the object's version of wpPrintObject 
  599.        should start on a separate thread to execute the code that actually 
  600.        prints the contents of the object. By doing this, the control can be 
  601.        returned to the Workplace Shell and the user immediately. Supporting 
  602.        code, such as dialog windows, should be done on a separate thread as 
  603.        well. 
  604.  
  605.  Your new class should allow data files that do not belong to your class to be 
  606.  printed as well. To do this, you should also override wpclsQueryInstanceType 
  607.  and wpclsQueryInstanceFilter to verify if a file is yours (that is, if its 
  608.  .TYPE extended attribute denotes your new class), or if it is not yours. If 
  609.  the file is not yours, you will want to call parent_wpPrintObject to do the 
  610.  printing. 
  611.  
  612.  
  613. ΓòÉΓòÉΓòÉ 3.1.4. About Launch Pads ΓòÉΓòÉΓòÉ
  614.  
  615. The Launch Pad is a convenient area for users. It provides them with a place to 
  616. get fast access to their frequently used objects and Desktop actions. In 
  617. addition to placing objects on the Launch Pad, users may place objects in 
  618. drawers. A drawer is represented by the little button above an object on the 
  619. Launch Pad, as shown in the following figure: 
  620.  
  621. The button of an open drawer contains a downward pointing arrow. The button of 
  622. a closed drawer contains a upward pointing arrow. As shown in the above figure, 
  623. the drawer above the OS/2 Window object is open and contains the DOS Window 
  624. object. 
  625.  
  626. While there is no restriction on the content of the drawer, its most logical 
  627. function is to hold objects that are either related or similar to the object on 
  628. the Launch Pad but are less frequently used. 
  629.  
  630. There is no limit to the number of Launch Pads that may exist in the system. 
  631. The system Launch Pad is defined as the one with an OBJECTID of <WP_LAUNCHPAD>. 
  632. When the user double clicks the select button on a folder (or Desktop 
  633. background space) the Workplace Shell looks for the system Launch Pad. For 
  634. example, you can configure a different Launch Pad for a work area, so that each 
  635. time that work area is opened, its Launch Pad is opened. 
  636.  
  637.  
  638. ΓòÉΓòÉΓòÉ 3.1.4.1. Launch Pad Setup Strings ΓòÉΓòÉΓòÉ
  639.  
  640. The Launch Pad is highly customizable. You can use the following setup strings 
  641. to customize the Launch Pad: 
  642.  
  643. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  644. ΓöéKeyname       ΓöéValue                ΓöéDescription              Γöé
  645. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  646. ΓöéDRAWEROBJECTS ΓöéA drawer number      ΓöéAdds the objects to the  Γöé
  647. Γöé              Γöéfollowed by a comma  Γöéend of the numbered      Γöé
  648. Γöé              Γöédelimited set of     ΓöéLaunch Pad drawer:       Γöé
  649. Γöé              Γöéobject IDs or path   Γöé0=Launch Pad, 1=left-mostΓöé
  650. Γöé              Γöéand file names.      Γöédrawer, etc.             Γöé
  651. Γöé              ΓöéSeparate the drawer  Γöé                         Γöé
  652. Γöé              Γöénumber and the first Γöé                         Γöé
  653. Γöé              Γöéobject with a comma. Γöé                         Γöé
  654. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  655. ΓöéFPOBJECTS     ΓöéA comma-delimited setΓöéAdds the objects to the  Γöé
  656. Γöé              Γöéof object IDs or pathΓöéend of the Launch Pad.   Γöé
  657. Γöé              Γöéand file names.      Γöé                         Γöé
  658. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  659. ΓöéLPACTIONSTYLE ΓöéMINI                 ΓöéDisplays the action      Γöé
  660. Γöé              Γöé                     Γöébuttons as mini-icons.   Γöé
  661. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  662. Γöé              ΓöéNORMAL               ΓöéDisplays the action      Γöé
  663. Γöé              Γöé                     Γöébuttons as normal or     Γöé
  664. Γöé              Γöé                     Γöélarge icons.             Γöé
  665. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  666. Γöé              ΓöéOFF                  ΓöéTurns off the display of Γöé
  667. Γöé              Γöé                     Γöéaction buttons.          Γöé
  668. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  669. Γöé              ΓöéTEXT                 ΓöéDisplays the actions     Γöé
  670. Γöé              Γöé                     Γöébuttons as text. This is Γöé
  671. Γöé              Γöé                     Γöéthe default.             Γöé
  672. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  673. ΓöéLPCLOSEDRAWER ΓöéYES                  ΓöéCloses the Launch Pad    Γöé
  674. Γöé              Γöé                     Γöédrawers after opening an Γöé
  675. Γöé              Γöé                     Γöéobject.                  Γöé
  676. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  677. Γöé              ΓöéNO                   ΓöéLeaves the Launch Pad    Γöé
  678. Γöé              Γöé                     Γöédrawers open after       Γöé
  679. Γöé              Γöé                     Γöéopening an object.       Γöé
  680. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  681. ΓöéLPDRAWERTEXT  ΓöéYES                  ΓöéDisplays titles of       Γöé
  682. Γöé              Γöé                     Γöéobjects located in       Γöé
  683. Γöé              Γöé                     Γöédrawers. This has no     Γöé
  684. Γöé              Γöé                     Γöéeffect on objects locatedΓöé
  685. Γöé              Γöé                     Γöéon the Launch Pad.       Γöé
  686. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  687. Γöé              ΓöéNO                   ΓöéHides titles of objects  Γöé
  688. Γöé              Γöé                     Γöélocated in drawers. This Γöé
  689. Γöé              Γöé                     Γöéhas no effect on objects Γöé
  690. Γöé              Γöé                     Γöélocated on the Launch    Γöé
  691. Γöé              Γöé                     ΓöéPad.                     Γöé
  692. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  693. ΓöéLPFLOAT       ΓöéYES                  ΓöéKeeps the Launch Pad     Γöé
  694. Γöé              Γöé                     Γöéfloating on top of all   Γöé
  695. Γöé              Γöé                     Γöéother windows.           Γöé
  696. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  697. Γöé              ΓöéNO                   ΓöéDoes not keep the Launch Γöé
  698. Γöé              Γöé                     ΓöéPad floating on top of   Γöé
  699. Γöé              Γöé                     Γöéall other windows.       Γöé
  700. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  701. ΓöéLPHIDECTLS    ΓöéYES                  ΓöéHides the frame controls Γöé
  702. Γöé              Γöé                     Γöé(title bar and system    Γöé
  703. Γöé              Γöé                     Γöémenu). This is the       Γöé
  704. Γöé              Γöé                     Γöédefault.                 Γöé
  705. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  706. Γöé              ΓöéNO                   ΓöéDisplays the frame       Γöé
  707. Γöé              Γöé                     Γöécontrols (title bar and  Γöé
  708. Γöé              Γöé                     Γöésystem menu).            Γöé
  709. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  710. ΓöéLPSMALLICONS  ΓöéYES                  ΓöéDisplays objects using   Γöé
  711. Γöé              Γöé                     Γöésmall icons.             Γöé
  712. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  713. Γöé              ΓöéNO                   ΓöéDisplay objects using    Γöé
  714. Γöé              Γöé                     Γöélarge icons.             Γöé
  715. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  716. ΓöéLPTEXT        ΓöéYES                  ΓöéDisplays titles of       Γöé
  717. Γöé              Γöé                     Γöéobjects located on the   Γöé
  718. Γöé              Γöé                     ΓöéLaunch Pad. This has no  Γöé
  719. Γöé              Γöé                     Γöéeffect on objects locatedΓöé
  720. Γöé              Γöé                     Γöéin drawers.              Γöé
  721. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  722. Γöé              ΓöéNO                   ΓöéHides titles of objects  Γöé
  723. Γöé              Γöé                     Γöélocated on the Launch    Γöé
  724. Γöé              Γöé                     ΓöéPad. This has no effect  Γöé
  725. Γöé              Γöé                     Γöéon objects located in    Γöé
  726. Γöé              Γöé                     Γöédrawers.                 Γöé
  727. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  728. ΓöéLPVERTICAL    ΓöéYES                  ΓöéDisplays the Launch Pad  Γöé
  729. Γöé              Γöé                     Γöévertically.              Γöé
  730. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  731. Γöé              ΓöéNO                   ΓöéDisplays the Launch Pad  Γöé
  732. Γöé              Γöé                     Γöéhorizontally. This is theΓöé
  733. Γöé              Γöé                     Γöédefault.                 Γöé
  734. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  735.  
  736. These keynames can be used with the following Win and REXX functions: 
  737.  
  738.    o  WinCreateObject 
  739.    o  WinSetObjectData 
  740.    o  SysCreateObject 
  741.    o  SysSetObjectData. 
  742.  
  743.  The following example adds two objects to the first drawer of the Launch Pad: 
  744.  
  745.   SysSetObjectData("<WP_LAUNCHPAD>",
  746.                    "DRAWEROBJECTS=1,C:\README.TXT,<WP_MINDEX>")
  747.  
  748.  The following example causes the Launch Pad to float on top: 
  749.  
  750.   SysSetObjectData("<WP_LAUNCHPAD>", "LPFLOAT=YES")
  751.  
  752.  
  753. ΓòÉΓòÉΓòÉ 3.1.4.2. Launch Pad Set Methods ΓòÉΓòÉΓòÉ
  754.  
  755. In addition to setup strings, methods shown in the following table provide the 
  756. same functionality: 
  757.  
  758. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  759. ΓöéMethod Name                ΓöéValue                ΓöéDescription         Γöé
  760. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  761. ΓöéwpSetActionButtonStyle     ΓöéACTION_BUTTONS_MINI  ΓöéDisplays the actionsΓöé
  762. Γöé                           Γöé                     Γöébuttons as          Γöé
  763. Γöé                           Γöé                     Γöémini-icons.         Γöé
  764. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  765. Γöé                           ΓöéACTION_BUTTONS_NORMALΓöéDisplays the action Γöé
  766. Γöé                           Γöé                     Γöébuttons as normal orΓöé
  767. Γöé                           Γöé                     Γöélarge icons.        Γöé
  768. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  769. Γöé                           ΓöéACTION_BUTTONS_OFF   ΓöéTurns off the       Γöé
  770. Γöé                           Γöé                     Γöédisplay of action   Γöé
  771. Γöé                           Γöé                     Γöébuttons.            Γöé
  772. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  773. Γöé                           ΓöéACTION_BUTTONS_TEXT  ΓöéDisplays the action Γöé
  774. Γöé                           Γöé                     Γöébuttons as text.    Γöé
  775. Γöé                           Γöé                     ΓöéThis is the default.Γöé
  776. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  777. ΓöéwpSetCloseDrawer           ΓöéTRUE                 ΓöéCloses the Launch   Γöé
  778. Γöé                           Γöé                     ΓöéPad drawer after    Γöé
  779. Γöé                           Γöé                     Γöéopening an object.  Γöé
  780. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  781. Γöé                           ΓöéFALSE                ΓöéLeaves the Launch   Γöé
  782. Γöé                           Γöé                     ΓöéPad drawer open     Γöé
  783. Γöé                           Γöé                     Γöéafter opening an    Γöé
  784. Γöé                           Γöé                     Γöéobject.             Γöé
  785. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  786. ΓöéwpSetDisplaySmallIcons     ΓöéTRUE                 ΓöéDisplays objects    Γöé
  787. Γöé                           Γöé                     Γöéusing small icons.  Γöé
  788. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  789. Γöé                           ΓöéFALSE                ΓöéDisplays objects    Γöé
  790. Γöé                           Γöé                     Γöéusing large icons.  Γöé
  791. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  792. ΓöéwpSetDisplayText           ΓöéTRUE                 ΓöéDisplays titles of  Γöé
  793. Γöé                           Γöé                     Γöéobjects located on  Γöé
  794. Γöé                           Γöé                     Γöéthe Launch Pad. ThisΓöé
  795. Γöé                           Γöé                     Γöéhas no effect on    Γöé
  796. Γöé                           Γöé                     Γöéobjects located in  Γöé
  797. Γöé                           Γöé                     Γöédrawers.            Γöé
  798. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  799. Γöé                           ΓöéFALSE                ΓöéHides titles of     Γöé
  800. Γöé                           Γöé                     Γöéobjects located on  Γöé
  801. Γöé                           Γöé                     Γöéthe Launch Pad. ThisΓöé
  802. Γöé                           Γöé                     Γöéhas no effect on    Γöé
  803. Γöé                           Γöé                     Γöéobjects located in  Γöé
  804. Γöé                           Γöé                     Γöédrawers.            Γöé
  805. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  806. ΓöéwpSetDisplayTextInDrawers  ΓöéTRUE                 ΓöéDisplays titles of  Γöé
  807. Γöé                           Γöé                     Γöéobjects located in  Γöé
  808. Γöé                           Γöé                     Γöédrawers. This has noΓöé
  809. Γöé                           Γöé                     Γöéeffect on objects   Γöé
  810. Γöé                           Γöé                     Γöélocated on the      Γöé
  811. Γöé                           Γöé                     ΓöéLaunch Pad.         Γöé
  812. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  813. Γöé                           ΓöéFALSE                ΓöéHides titles of     Γöé
  814. Γöé                           Γöé                     Γöéobjects located in  Γöé
  815. Γöé                           Γöé                     Γöédrawers. This has noΓöé
  816. Γöé                           Γöé                     Γöéeffect on objects   Γöé
  817. Γöé                           Γöé                     Γöélocated on the      Γöé
  818. Γöé                           Γöé                     ΓöéLaunch Pad.         Γöé
  819. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  820. ΓöéwpSetDisplayVertical       ΓöéTRUE                 ΓöéDisplays the Launch Γöé
  821. Γöé                           Γöé                     ΓöéPad vertically.     Γöé
  822. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  823. Γöé                           ΓöéFALSE                ΓöéDisplays the Launch Γöé
  824. Γöé                           Γöé                     ΓöéPad horizontally.   Γöé
  825. Γöé                           Γöé                     ΓöéThis is the default.Γöé
  826. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  827. ΓöéwpSetFloatOnTop            ΓöéTRUE                 ΓöéKeeps the Launch PadΓöé
  828. Γöé                           Γöé                     Γöéfloating on top of  Γöé
  829. Γöé                           Γöé                     Γöéall other windows.  Γöé
  830. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  831. Γöé                           ΓöéFALSE                ΓöéDoes not keep the   Γöé
  832. Γöé                           Γöé                     ΓöéLaunch Pad floating Γöé
  833. Γöé                           Γöé                     Γöéon top of all other Γöé
  834. Γöé                           Γöé                     Γöéwindows.            Γöé
  835. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  836. ΓöéwpSetHideLaunchPadFrameCtlsΓöéTRUE                 ΓöéHides the frame     Γöé
  837. Γöé                           Γöé                     Γöécontrols (title bar Γöé
  838. Γöé                           Γöé                     Γöéand system menu).   Γöé
  839. Γöé                           Γöé                     ΓöéThis is the default.Γöé
  840. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  841. Γöé                           ΓöéFALSE                ΓöéDisplays the frame  Γöé
  842. Γöé                           Γöé                     Γöécontrols (title bar Γöé
  843. Γöé                           Γöé                     Γöéand system menu).   Γöé
  844. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  845. ΓöéwpSetObjectListFromHObjectsΓöéA drawer number.     ΓöéAdds the objects to Γöé
  846. Γöé                           Γöé                     Γöéthe numbered drawer Γöé
  847. Γöé                           Γöé                     Γöéof the Launch Pad.  Γöé
  848. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  849. Γöé                           ΓöéThe number of objectsΓöé                    Γöé
  850. Γöé                           Γöéto be added.         Γöé                    Γöé
  851. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  852. Γöé                           ΓöéAn array of HOBJECTS.Γöé                    Γöé
  853. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  854. Γöé                           ΓöéA position within theΓöé0=Launch Pad,       Γöé
  855. Γöé                           Γöédrawer.              Γöé1=left-most drawer, Γöé
  856. Γöé                           Γöé                     Γöéand so on. Use      Γöé
  857. Γöé                           Γöé                     ΓöéADD_OBJECT_FIRST to Γöé
  858. Γöé                           Γöé                     Γöéadd the objects at  Γöé
  859. Γöé                           Γöé                     Γöéthe beginning of theΓöé
  860. Γöé                           Γöé                     Γöédrawer. Use         Γöé
  861. Γöé                           Γöé                     ΓöéADD_OBJECT_LAST to  Γöé
  862. Γöé                           Γöé                     Γöéadd the objects at  Γöé
  863. Γöé                           Γöé                     Γöéthe end of the      Γöé
  864. Γöé                           Γöé                     Γöédrawer. Use a       Γöé
  865. Γöé                           Γöé                     Γöéposition number to  Γöé
  866. Γöé                           Γöé                     Γöéstate which objects Γöé
  867. Γöé                           Γöé                     Γöéthe new objects     Γöé
  868. Γöé                           Γöé                     Γöéshould be inserted  Γöé
  869. Γöé                           Γöé                     Γöéafter (0=first      Γöé
  870. Γöé                           Γöé                     Γöéobject).            Γöé
  871. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  872. ΓöéwpSetObjectListFromObjects ΓöéA drawer number.     ΓöéAdds the objects to Γöé
  873. Γöé                           Γöé                     Γöéthe specified LaunchΓöé
  874. Γöé                           Γöé                     ΓöéPad drawer.         Γöé
  875. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  876. Γöé                           ΓöéThe number of objectsΓöé                    Γöé
  877. Γöé                           Γöéto be added.         Γöé                    Γöé
  878. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  879. Γöé                           ΓöéAn array of          Γöé                    Γöé
  880. Γöé                           ΓöéWPObject*.           Γöé                    Γöé
  881. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  882. Γöé                           ΓöéA position with the  Γöé0=Launch Pad,       Γöé
  883. Γöé                           Γöédrawer.              Γöé1=left-most drawer, Γöé
  884. Γöé                           Γöé                     Γöéand so on. Use      Γöé
  885. Γöé                           Γöé                     ΓöéADD_OBJECT_FIRST to Γöé
  886. Γöé                           Γöé                     Γöéadd the objects at  Γöé
  887. Γöé                           Γöé                     Γöéthe beginning of theΓöé
  888. Γöé                           Γöé                     Γöédrawer. Use         Γöé
  889. Γöé                           Γöé                     ΓöéADD_OBJECT_LAST to  Γöé
  890. Γöé                           Γöé                     Γöéadd the objects at  Γöé
  891. Γöé                           Γöé                     Γöéthe end of the      Γöé
  892. Γöé                           Γöé                     Γöédrawer. Use a       Γöé
  893. Γöé                           Γöé                     Γöéposition number to  Γöé
  894. Γöé                           Γöé                     Γöéstate which objects Γöé
  895. Γöé                           Γöé                     Γöéthe new objects     Γöé
  896. Γöé                           Γöé                     Γöéshould be inserted  Γöé
  897. Γöé                           Γöé                     Γöéafter (0=first      Γöé
  898. Γöé                           Γöé                     Γöéobject).            Γöé
  899. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  900. ΓöéwpSetObjectListFromStrings ΓöéA drawer number.     ΓöéAdds the objects to Γöé
  901. Γöé                           Γöé                     Γöéthe specified LaunchΓöé
  902. Γöé                           Γöé                     ΓöéPad drawer.         Γöé
  903. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  904. Γöé                           ΓöéA NULL delimited set Γöé                    Γöé
  905. Γöé                           Γöéof object IDs or pathΓöé                    Γöé
  906. Γöé                           Γöéand file names       Γöé                    Γöé
  907. Γöé                           Γöéterminated by a      Γöé                    Γöé
  908. Γöé                           Γöédouble NULL.         Γöé                    Γöé
  909. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  910. Γöé                           ΓöéA position with the  Γöé0=Launch Pad,       Γöé
  911. Γöé                           Γöédrawer.              Γöé1=left-most drawer, Γöé
  912. Γöé                           Γöé                     Γöéand so on. Use      Γöé
  913. Γöé                           Γöé                     ΓöéADD_OBJECT_FIRST to Γöé
  914. Γöé                           Γöé                     Γöéadd the objects at  Γöé
  915. Γöé                           Γöé                     Γöéthe beginning of theΓöé
  916. Γöé                           Γöé                     Γöédrawer. Use         Γöé
  917. Γöé                           Γöé                     ΓöéADD_OBJECT_LAST to  Γöé
  918. Γöé                           Γöé                     Γöéadd the objects at  Γöé
  919. Γöé                           Γöé                     Γöéthe end of the      Γöé
  920. Γöé                           Γöé                     Γöédrawer. Use a       Γöé
  921. Γöé                           Γöé                     Γöéposition number to  Γöé
  922. Γöé                           Γöé                     Γöéstate which objects Γöé
  923. Γöé                           Γöé                     Γöéthe new objects     Γöé
  924. Γöé                           Γöé                     Γöéshould be inserted  Γöé
  925. Γöé                           Γöé                     Γöéafter (0=first      Γöé
  926. Γöé                           Γöé                     Γöéobject).            Γöé
  927. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  928.  
  929. The following example adds two objects to the first drawer in the Launch Pad: 
  930.  
  931. PSZ pszObjectList = "C:\\README.TXT\0<WP_MINDEX>\0";
  932. _wpSetObjectListFromStrings(somSelf,
  933.                             1,
  934.                             pszObjectList,
  935.                             ADD_OBJECT_LAST);
  936.  
  937. The following example causes the Launch Pad to float on top: 
  938.  
  939. _wpSetFloatOnTop(somSelf,TRUE);
  940.  
  941.  
  942. ΓòÉΓòÉΓòÉ 3.1.4.3. Launch Pad Query Methods ΓòÉΓòÉΓòÉ
  943.  
  944. The following table provides the methods for querying information about the 
  945. state of the Launch Pad: 
  946.  
  947. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  948. ΓöéMethod Name                   ΓöéDescription                   Γöé
  949. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  950. ΓöéwpQueryActionButtons          ΓöéReturns a pointer of array of Γöé
  951. Γöé                              ΓöéACTION data structures. Each  Γöé
  952. Γöé                              ΓöéACTION structure has the      Γöé
  953. Γöé                              Γöéfollowing elements:           Γöé
  954. Γöé                              Γöé                              Γöé
  955. Γöé                              Γöéo Pointer to the text to be   Γöé
  956. Γöé                              Γöé  displayed                   Γöé
  957. Γöé                              Γöéo Handle to the icon to be    Γöé
  958. Γöé                              Γöé  displayed                   Γöé
  959. Γöé                              Γöéo Menu item number that is    Γöé
  960. Γöé                              Γöé  passed to the Desktop via   Γöé
  961. Γöé                              Γöé  wpMenuItemSelected, when    Γöé
  962. Γöé                              Γöé  the action button is        Γöé
  963. Γöé                              Γöé  pressed.                    Γöé
  964. Γöé                              Γöé                              Γöé
  965. Γöé                              ΓöéThe number of ACTION          Γöé
  966. Γöé                              Γöéstructures in the array is    Γöé
  967. Γöé                              Γöéreturned using parameters.    Γöé
  968. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  969. ΓöéwpQueryActionButtonStyle      ΓöéReturns the current setting   Γöé
  970. Γöé                              Γöéfor the action button style:  Γöé
  971. Γöé                              Γöé                              Γöé
  972. Γöé                              Γöéo ACTION_BUTTONS_MINI         Γöé
  973. Γöé                              Γöéo ACTION_BUTTONS_NORMAL       Γöé
  974. Γöé                              Γöéo ACTION_BUTTONS_OFF          Γöé
  975. Γöé                              Γöéo ACTION_BUTTONS_TEXT.        Γöé
  976. Γöé                              Γöé                              Γöé
  977. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  978. ΓöéwpQueryCloseDrawer            ΓöéReturns TRUE if the drawer is Γöé
  979. Γöé                              Γöéclosed after one of its       Γöé
  980. Γöé                              Γöéobjects is opened. Otherwise, Γöé
  981. Γöé                              Γöéit returns FALSE.             Γöé
  982. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  983. ΓöéwpQueryDisplaySmallIcons      ΓöéReturns TRUE if objects' iconsΓöé
  984. Γöé                              Γöéare displayed using small or  Γöé
  985. Γöé                              Γöémini-icons. Otherwise, it     Γöé
  986. Γöé                              Γöéreturns FALSE.                Γöé
  987. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  988. ΓöéwpQueryDisplayText            ΓöéReturns TRUE if titles of     Γöé
  989. Γöé                              Γöéobjects located on the Launch Γöé
  990. Γöé                              ΓöéPad are displayed. Otherwise, Γöé
  991. Γöé                              Γöéit returns FALSE.             Γöé
  992. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  993. ΓöéwpQueryDisplayTextInDrawers   ΓöéReturns TRUE if text is       Γöé
  994. Γöé                              Γöédisplayed for objects that areΓöé
  995. Γöé                              Γöélocated in drawers. Otherwise,Γöé
  996. Γöé                              Γöéit returns FALSE.             Γöé
  997. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  998. ΓöéwpQueryDisplayVertical        ΓöéReturns TRUE if the Launch PadΓöé
  999. Γöé                              Γöéis displayed vertically.      Γöé
  1000. Γöé                              ΓöéOtherwise,  it returns FALSE. Γöé
  1001. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1002. ΓöéwpQueryFloatOnTop             ΓöéReturns TRUE if the Launch PadΓöé
  1003. Γöé                              Γöéis set to float on top of all Γöé
  1004. Γöé                              Γöéother windows. Otherwise, it  Γöé
  1005. Γöé                              Γöéreturns FALSE.                Γöé
  1006. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1007. ΓöéwpQueryHideLaunchPadFrameCtls ΓöéReturns TRUE if the frame     Γöé
  1008. Γöé                              Γöécontrols (title bar and systemΓöé
  1009. Γöé                              Γöémenu) are hidden. Otherwise,  Γöé
  1010. Γöé                              Γöéit returns FALSE.             Γöé
  1011. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1012. ΓöéwpQueryObjectList             ΓöéReturns a pointer to an array Γöé
  1013. Γöé                              Γöéof HOBJECT that represents theΓöé
  1014. Γöé                              Γöélist of objects in the drawer.Γöé
  1015. Γöé                              ΓöéThe number of objects is      Γöé
  1016. Γöé                              Γöéreturned using parameters.    Γöé
  1017. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1018.  
  1019.  
  1020. ΓòÉΓòÉΓòÉ 3.2. Using Workplace Shell Objects ΓòÉΓòÉΓòÉ
  1021.  
  1022. This section describes how to: 
  1023.  
  1024.    o  Set objects on the Launch Pad 
  1025.  
  1026.    o  Create objects 
  1027.  
  1028.    o  Install objects 
  1029.  
  1030.         -  By running an installation program 
  1031.         -  By running a batch file 
  1032.         -  By using the Workplace Shell Class List Object Utility. 
  1033.  
  1034.  
  1035. ΓòÉΓòÉΓòÉ 3.2.1. Using Launch Pads ΓòÉΓòÉΓòÉ
  1036.  
  1037. Action buttons are added to or removed from the Launch Pad by overriding 
  1038. wpQueryActionButtons. You must declare an instance data variable in your 
  1039. subclass of type PACTIONS. When overriding wpQueryActionButtons, verify if 
  1040. pMyActions is NULL. If it is, allocate memory to hold the parent's actions and 
  1041. the ones you are adding. Copy the parent's actions to your array, add yours, 
  1042. and then return, as shown in the following sample code: 
  1043.  
  1044. SOM_Scope PACTIONS SOMLINK mylnchpd_wpQueryActionButtons(
  1045.                            WPLaunchPad *somSelf,
  1046.                            PULONG pulNumActions)
  1047. {
  1048.   MyLaunchPadData *somThis = MyLaunchPadGetData(somSelf);
  1049.   PACTIONS pParentActions;
  1050.   ULONG ulParentActions;
  1051.  
  1052.   MyLaunchPadMethodDebug("MyLaunchPad","mylnchpd_wpQueryActionButtons");
  1053.  
  1054.   if (!_pMyActions)
  1055.   {
  1056.     pParentActions = parent_wpQueryActionButtons(somSelf,
  1057.                                                  &ulParentActions);
  1058.     _ulMyActions   = ulParentActions + 1;
  1059.     _pMyActions    = _wpAllocMem(somSelf,_ulMyActions*sizeof(ACTIONS), NULL);
  1060.  
  1061.     if (!_pMyActions)
  1062.     {
  1063.       return parent_wpQueryActionButtons(somSelf, pulNumActions);
  1064.     }
  1065.     _pMyActions[ulParentActions].pszTitle = "My new action";
  1066.     _pMyActions[ulParentActions].ulMenuId = MY_MENUID;
  1067.     _pMyActions[ulParentActions].hIcon    = myActionIcon;
  1068.  
  1069.     if (ulParentActions)
  1070.     {
  1071.       memcpy(_pMyActions, pParentActions,ulParentActions*sizeof(ACTIONS));
  1072.     }
  1073.   }
  1074.  
  1075.   if (pulNumActions)
  1076.   {
  1077.     (*pulNumActions) = _ulMyActions;
  1078.   }
  1079.   return (PACTIONS) _pMyActions;
  1080. }
  1081.  
  1082. Note:  When overriding wpQueryActionButtons you must also provide a subclass of 
  1083.        WPDesktop, override wpMenuItemSelected, and handle the MY_MENUID action. 
  1084.  
  1085.  
  1086. ΓòÉΓòÉΓòÉ 3.2.2. Creating Objects ΓòÉΓòÉΓòÉ
  1087.  
  1088. In order to illustrate what is required to create a complete Workplace Shell 
  1089. object that you can use constructively, a complete Workplace Shell SOM program 
  1090. is included in Sample Code for Creating Objects. The example program is a 
  1091. usable Workplace Shell object that provides the facility to change the normally 
  1092. unchangable style flags of any Desktop object dropped on it. When you drop an 
  1093. object onto the Workplace Shell Styler, WPSTYLER will open the Settings 
  1094. notebook and display a Style settings page. On this page, you will see the 
  1095. current styles of the object and be able to change them. Using the Workplace 
  1096. Shell Styler, you can change the title in addition to the following behaviors: 
  1097. Copy, Delete, Drag, Drop, Move, Print, Rename, Shadow and Template. 
  1098.  
  1099. The class name is called WPStyler and is derived from WPAbstract, which is 
  1100. derived from the WPObject root Workplace Shell Class. The implementation of the 
  1101. WPStyler object consists primarily of overrides to instance and class methods 
  1102. inherited from the WPObject and WPAbstract classes. 
  1103.  
  1104.  
  1105. ΓòÉΓòÉΓòÉ 3.2.2.1. WPStyler Instance Methods ΓòÉΓòÉΓòÉ
  1106.  
  1107. WPStyler uses ten instance methods: 
  1108.  
  1109.    o  wpInitData 
  1110.    o  wpDragOver 
  1111.    o  wpDrop 
  1112.    o  wpOpen 
  1113.    o  wpAddSettingsPages 
  1114.    o  wpAddObjectWindowPage 
  1115.    o  wpAddObjectGeneralPage 
  1116.    o  InsertObjectStylePage 
  1117.    o  QueryObjectStyle 
  1118.    o  SetObjectStyle. 
  1119.  
  1120.  The three last ones are new instance methods introduced by WPStyler. 
  1121.  
  1122.  The following subsections provide explanations on each of them, such as why 
  1123.  the instance method is used and whether or not it is overridden. 
  1124.  
  1125.  
  1126. ΓòÉΓòÉΓòÉ 3.2.2.1.1. Initializing Data and Allocating Memory ΓòÉΓòÉΓòÉ
  1127.  
  1128.  
  1129. The wpInitData method is called when an object is created or when it is 
  1130. awakened from the dormant state so that it can initialize all of its instance 
  1131. variables to a known state. Note that this method is called before the object's 
  1132. state is known. Initialize instance data and allocate extra memory that you 
  1133. might need in this method. Any memory allocated in wpInitData should always be 
  1134. d eallocated in wpUnInitData, which is always called when an object is 
  1135. destroyed. WPStyler does not override wpUnInitData. 
  1136.  
  1137.  
  1138. ΓòÉΓòÉΓòÉ 3.2.2.1.2. Dragging Over an Object ΓòÉΓòÉΓòÉ
  1139.  
  1140.  
  1141. The wpDragOver method is invoked on an object as other objects are dragged over 
  1142. it, to determine whether or not it can be dropped on. The wpDragOver method 
  1143. provides information of every object being dragged over the Styler object. The 
  1144. WPStyler will allow all objects to be dropped on and changed. 
  1145.  
  1146.  
  1147. ΓòÉΓòÉΓòÉ 3.2.2.1.3. Dropping an Object ΓòÉΓòÉΓòÉ
  1148.  
  1149.  
  1150. Once an object is dropped onto the Workplace Shell Styler, wpDrop is called. It 
  1151. is, at this point, where WPStyler queries from the drag information the self 
  1152. pointer of the object being dropped and save it in its instance data. Once the 
  1153. self pointer of the object is acquired, a call to the parent wpOpen is made 
  1154. open the Settings notebook. 
  1155.  
  1156.  
  1157. ΓòÉΓòÉΓòÉ 3.2.2.1.4. Opening a View of an Object ΓòÉΓòÉΓòÉ
  1158.  
  1159.  
  1160. The wpOpen method is called to open a view of this object. The ulView parameter 
  1161. tells the object whether to open the Settings view, Contents view, or Help view 
  1162. (and so on), and param is an optional parameter. Note that both parameters can 
  1163. be zero, in which case the default view of the object is opened. This instance 
  1164. method is invoked when a user either double clicks on the object or selects the 
  1165. Settings item from the pop-up menu. When wpOpen is called as a result of the 
  1166. user selecting the Open item or clicking on the object, WPStyler will display a 
  1167. usage message box. OPEN_STYLER is returned as the default view to the Open 
  1168. item, because wpQueryDefaultView is subclasses and the Styler's ID is returned 
  1169. as the default view. 
  1170.  
  1171.  
  1172. ΓòÉΓòÉΓòÉ 3.2.2.1.5. Adding the Styler Page to the Settings Notebook ΓòÉΓòÉΓòÉ
  1173.  
  1174.  
  1175. The wpAddSettingsPages method allows each object class to insert its own 
  1176. settings pages into the Settings notebook for an object. WPStyler introduces 
  1177. the InsertObjectStylePage instance method. InsertObjectStylePage is called from 
  1178. the wpAddSettingsPages override to insert the new dialog page into the existing 
  1179. Workplace Shell Settings notebook. InsertObjectStylePage simply fills the 
  1180. PAGEINFO data structure to point to the Styler dialog window and procedure, and 
  1181. it then inserts that page into the notebook by calling wpInsertSettingsPage. 
  1182. InsertObjectStylePage is called only if the notebook is opened for an object 
  1183. that was dropped on the Styler. This method is not called when displaying the 
  1184. Settings notebook for WPStyler. 
  1185.  
  1186.  
  1187. ΓòÉΓòÉΓòÉ 3.2.2.1.6. Removing the Window Page from the Settings Notebook ΓòÉΓòÉΓòÉ
  1188.  
  1189.  
  1190. The wpAddObjectWindowPage method adds the standard Window page to the Settings 
  1191. notebook. WPStyler overrides this method to remove the Window page from the 
  1192. Settings notebook. All WPAbstract objects have a Window page, but as it has no 
  1193. meaning for WPStyler, it will return SETTINGS_PAGE_REMOVED so that this page is 
  1194. not inserted when the notebook is created. 
  1195.  
  1196.  
  1197. ΓòÉΓòÉΓòÉ 3.2.2.1.7. Removing the General Page from the Settings Notebook ΓòÉΓòÉΓòÉ
  1198.  
  1199.  
  1200. The wpAddObjectGeneralPage method adds the standard Icon page to the Settings 
  1201. notebook. This method is overridden so that the Icon page is removed when 
  1202. displaying the styles of an object. This way, when displaying the Settings 
  1203. notebook for the Styler, only its parent needs to be called. 
  1204.  
  1205.  
  1206. ΓòÉΓòÉΓòÉ 3.2.2.1.8. Obtaining the Current Style ΓòÉΓòÉΓòÉ
  1207.  
  1208.  
  1209. QueryObjectStyle is a new instance method introduced by WPStyler. 
  1210. QueryObjectStyle calls wpQueryStyle to query the current style of the object 
  1211. that was dropped onto the Styler, and it then sets the Styler page checkbox and 
  1212. title text to reflect the current state of the object. 
  1213.  
  1214.  
  1215. ΓòÉΓòÉΓòÉ 3.2.2.1.9. Setting the Object's Style ΓòÉΓòÉΓòÉ
  1216.  
  1217.  
  1218. SetObjectStyle is a new instance method introduced by WPStyler. SetObjectStyle 
  1219. queries the current state of the dialog checkboxes and then sets the style of 
  1220. the dropped object accordingly, using wpSetStyle to set the style of the object 
  1221. and wpSaveDeferred to save that state permanently back to the system .INI file. 
  1222. SetObjectStyle also queries and sets the title text of the object. 
  1223.  
  1224.  
  1225. ΓòÉΓòÉΓòÉ 3.2.2.2. WPStyler Class Methods ΓòÉΓòÉΓòÉ
  1226.  
  1227. WPStyler uses six class methods: 
  1228.  
  1229.    o  wpclsInitData 
  1230.    o  wpclsQueryIcon 
  1231.    o  wpclsQueryStyle 
  1232.    o  wpclsQueryDefaultHelp 
  1233.    o  wpQueryDefaultView 
  1234.    o  clsQueryModuleHandle. 
  1235.  
  1236.  The last one is a new class method introduced by WPStyler. 
  1237.  
  1238.  The following subsections provide explanations on each of them, such as why 
  1239.  the class method is used and whether or not it is overridden. 
  1240.  
  1241.  
  1242. ΓòÉΓòÉΓòÉ 3.2.2.2.1. Initializing Data and Allocating Memory ΓòÉΓòÉΓòÉ
  1243.  
  1244.  
  1245. The wpclsInitData method is called when an object class is instantiated. 
  1246. WPStyler first calls its parent, and it then locates the class file by class 
  1247. name so that it can query the module handle and save it as class data. WPStyler 
  1248. also loads and saves a pointer to its Desktop icon. If any class data is 
  1249. allocated in wpclsInitData, then you should override wpclsUnInitData to free 
  1250. that data when the class is destroyed. 
  1251.  
  1252.  
  1253. ΓòÉΓòÉΓòÉ 3.2.2.2.2. Obtaining the Default Icon ΓòÉΓòÉΓòÉ
  1254.  
  1255.  
  1256. The wpclsQueryIcon method sets the default icon to the Styler icon and resource 
  1257. linked into the application. The pointer handle queried during the creation of 
  1258. the Styler object is returned. 
  1259.  
  1260.  
  1261. ΓòÉΓòÉΓòÉ 3.2.2.2.3. Obtaining the Class Style ΓòÉΓòÉΓòÉ
  1262.  
  1263.  
  1264. The wpclsQueryStyle method is called to return the class attributes for this 
  1265. object class: 
  1266.  
  1267.  Class Style Name                   Description 
  1268.  
  1269.  CLSSTYLE_NEVERCOPY                 The object cannot be copied. 
  1270.  
  1271.  CLSSTYLE_NEVERDELETE               The object cannot be deleted. 
  1272.  
  1273.  CLSSTYLE_NEVERMOVE                 The object cannot be moved. 
  1274.  
  1275.  CLSSTYLE_NEVERTEMPLATE             This class does not have a template. Also, 
  1276.                                     the Styler object will not have a Create 
  1277.                                     another item in its context menu. 
  1278.  
  1279.  Classes should override this method to get special behavior. 
  1280.  
  1281.  
  1282. ΓòÉΓòÉΓòÉ 3.2.2.2.4. Setting the Default Help ΓòÉΓòÉΓòÉ
  1283.  
  1284.  
  1285. Override wpclsQueryDefaultHelp to set the help library name and default help 
  1286. ID. 
  1287.  
  1288.  
  1289. ΓòÉΓòÉΓòÉ 3.2.2.2.5. Setting the Default View ΓòÉΓòÉΓòÉ
  1290.  
  1291.  
  1292. WPStyler overrides wpQueryDefaultView to set the default view for the Styler 
  1293. object. By returning OPEN_STYLER as the default view, a request to Open the 
  1294. object will cause wpOpen to be called with OPEN_STYLER. 
  1295.  
  1296.  
  1297. ΓòÉΓòÉΓòÉ 3.2.2.2.6. Obtaining the Module Handle ΓòÉΓòÉΓòÉ
  1298.  
  1299.  
  1300. The clsQueryModuleHandle method returns the module handle for the WPStyler 
  1301. class. To avoid using globals, the WPStyler class' module handle is saved as 
  1302. part of its class data. This means that a new class method needs to be 
  1303. implemented, so that the new instance methods can gain access to it. 
  1304.  
  1305.  
  1306. ΓòÉΓòÉΓòÉ 3.2.2.3. WPStyler Dialog Window Procedure ΓòÉΓòÉΓòÉ
  1307.  
  1308. DialogProc is registered with the dialog window when the Styler page is 
  1309. inserted into the Settings notebook. The dialog procedure gets control when the 
  1310. Styler page is given focus. 
  1311.  
  1312. The dialog procedure catches all WM_FOCUSCHANGE messages to provide an 
  1313. information message for each control on the Styler settings page. As the user 
  1314. tabs between each control on the Styler page, an information message describing 
  1315. the control is displayed just above the push buttons. 
  1316.  
  1317. An Apply push button is provided so that a user can apply the changes instantly 
  1318. without closing the Styler page. 
  1319.  
  1320.  
  1321. ΓòÉΓòÉΓòÉ 3.2.2.4. WPStyler Functions ΓòÉΓòÉΓòÉ
  1322.  
  1323. WPStyler uses two MLE functions: 
  1324.  
  1325.    o  MLEImportText: This function imports text into an MLE window. 
  1326.  
  1327.    o  MLEExportText: This function exports text from an MLE window. 
  1328.  
  1329.  
  1330. ΓòÉΓòÉΓòÉ 3.2.3. Installing Workplace Shell Objects ΓòÉΓòÉΓòÉ
  1331.  
  1332. Workplace Shell objects can be installed on the Desktop in two ways: 
  1333.  
  1334.    o  By running an installation program or batch file 
  1335.  
  1336.    o  By using the Workplace Shell Class Object List Utility. 
  1337.  
  1338.  
  1339. ΓòÉΓòÉΓòÉ 3.2.3.1. Running an Installation Program ΓòÉΓòÉΓòÉ
  1340.  
  1341. You can provide installation programs for your objects. An installation program 
  1342. is responsible for: 
  1343.  
  1344.    o  Copying the DLL that contains the object's class definition from a 
  1345.       diskette to the \OS2\DLL directory or to a directory in the LIBPATH. 
  1346.  
  1347.    o  Registering the class and its DLL name with the Workplace Shell by 
  1348.       calling WinRegisterObjectClass. 
  1349.  
  1350.    o  Creating an object instance of the class and placing it on the Desktop or 
  1351.       in a particular folder by calling WinCreateObject. 
  1352.  
  1353.  An example of an installation program for a Workplace Shell object is shown in 
  1354.  the following sample code: 
  1355.  
  1356.   /* Command-line program to install Workplace Shell objects  */
  1357.  
  1358.   #define INCL_WINWORKPLACE
  1359.   #include <os2.h>
  1360.   #include <stdio.h>
  1361.   #include <string.h>
  1362.  
  1363.   #if defined(DEBUG)
  1364.      #define LOCATION_DESKTOP ((PSZ)"<WP_DESKTOP>")
  1365.   #endif
  1366.  
  1367.   /*
  1368.    *  Main Function
  1369.    *
  1370.    *    argv[1] = Class Name
  1371.    *    argv[2] = Module (DLL) Name
  1372.    *    argv[3] = Object Title
  1373.    *    argv[4] = Location
  1374.    *    argv[5] = Setup String
  1375.    */
  1376.  
  1377.   INT main (argc, argv)
  1378.      INT argc;
  1379.      CHAR *argv[];
  1380.  
  1381.   {
  1382.     HAB vhab;
  1383.     HMQ vhmq;
  1384.     BOOL fSuccess;
  1385.  
  1386.     if (argc == 1)
  1387.     {
  1388.       #if defined(DEBUG)
  1389.       {
  1390.         printf("Usage:\n\n");
  1391.         printf("   WPCREATE ClassName ModuleName Title [[Location]
  1392.                [SetupString]]\n");
  1393.       }
  1394.       #endif
  1395.       return (0);
  1396.     } /* End if (argc == 1) */
  1397.  
  1398.     if (argc < 4) return (1);   /* First three parms are mandatory */
  1399.  
  1400.     /* Register the class  */
  1401.     #if defined(DEBUG)
  1402.       printf("WinRegisterObjectClass(%s, %s)...\n", argv[1], argv[2]);
  1403.     #endif
  1404.  
  1405.     fSuccess = WinRegisterObjectClass(
  1406.                   argv[1],    /* Class name (case sensitive) */
  1407.                   argv[2]);   /* Module name                 */
  1408.  
  1409.     if (!fSuccess) return (1);   /* Return non-zero for error */
  1410.  
  1411.     #if defined(DEBUG)
  1412.       printf("Success: rc = %u\n", fSuccess);
  1413.     #endif
  1414.  
  1415.     /*  Create an instance of the object  */
  1416.     #if defined(DEBUG)
  1417.       printf("WinCreateObject(%s, %s,...)...\n", argv[1], argv[3]);
  1418.     #endif
  1419.     fSuccess = WinCreateObject(
  1420.                   argv[1],                                 /* Class name   */
  1421.                   argv[3],                                 /* Object title */
  1422.                   argc > 5 ? argv[5] : " ",                /* Setup string */
  1423.                   argc > 4 ? argv[4] : LOCATION_DESKTOP,   /* Location     */
  1424.                   CO_FAILIFEXISTS);                        /* Flags        */
  1425.  
  1426.     if (!fSuccess) return (1);   /* Return non-zero for error */
  1427.  
  1428.     #if defined(DEBUG)
  1429.       printf("Success: rc = %u\n", fSuccess);
  1430.     #endif
  1431.  
  1432.     return(0);
  1433.  
  1434.   }   /* End main() */
  1435.  
  1436.  Instantiating an object is an optional responsibility of an installation 
  1437.  program. When a class is registered by calling WinRegisterObjectClass, an 
  1438.  object template is placed in the Templates folder on the Desktop, if the class 
  1439.  supports templating. Users can create instances of these objects by tearing 
  1440.  off a copy of the template. This can be useful for larger applications that 
  1441.  define data-file objects that are associated with program objects. 
  1442.  
  1443.  
  1444. ΓòÉΓòÉΓòÉ 3.2.3.2. Running an Installation Batch File ΓòÉΓòÉΓòÉ
  1445.  
  1446. An installation batch file written in the REXX language performs the same 
  1447. operations but uses the following REXX-language utility functions: 
  1448.  
  1449.  REXX Functions                     Workplace Shell Methods 
  1450.  
  1451.  SysCreateObject                    WinCreateObject 
  1452.  
  1453.  SysRegisterObjectClass             WinRegisterObjectClass 
  1454.  
  1455.  SysDeRegisterObjectClass           WinDeregisterObjectClass 
  1456.  
  1457.  An example of an installation batch file written using the REXX-language 
  1458.  utility methods is shown in the following sample code: 
  1459.  
  1460.   /* Register a Workplace Shell class and create an instance */
  1461.  
  1462.   /* Load the REXX utility functions */
  1463.   call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  1464.   call SysLoadFuncs
  1465.  
  1466.   /* Register the class with the Workplace Shell */
  1467.   if SysRegisterObjectClass("NewObjectClass", "NEWDLL") then
  1468.     say 'Class Registration successfully completed for the NewObject'
  1469.  
  1470.   /* Create an instance of the object */
  1471.   if SysCreateObject("NewObjectClass",
  1472.                      "A New Object",
  1473.                      "<WP_Desktop>",
  1474.                      "OBJECTID=<A New Object>") then
  1475.        say 'A New Object successfully created and placed on Desktop'
  1476.  
  1477.  
  1478. ΓòÉΓòÉΓòÉ 3.2.3.3. Using the Workplace Shell Class List Object Utility ΓòÉΓòÉΓòÉ
  1479.  
  1480. The Toolkit provides a Workplace Shell Class List Object that is automatically 
  1481. installed during the installation of the Toolkit. This object is a tool that 
  1482. provides a windowed user interface for general Workplace Shell class 
  1483. registration and object creation activities. It performs all the methods that a 
  1484. typical Workplace Shell object installation program must provide, with the 
  1485. exception of copying files from an installation diskette to a hard disk. It is 
  1486. a fast and easy way to build and test objects in an application development 
  1487. environment. 
  1488.  
  1489. The Workplace Shell Class List Object Utility displays a hierarchical list of 
  1490. all classes registered with the Workplace Shell. You can add a class to this 
  1491. list or perform a number of actions on a specific class in the list. You can 
  1492. also create an instance of the class, replace and unreplace the class, and 
  1493. delete the class. 
  1494.  
  1495. The Workplace Shell Class List Object Utility uses WinEnumObjectClasses to get 
  1496. the list of all classes registered with the Workplace Shell. 
  1497. WinEnumObjectClasses returns only the name of the class and the DLL module that 
  1498. contains the class definition. It does not return information on the class 
  1499. ancestry that can be used to construct a hierarchical list of classes. Because 
  1500. the Workplace Shell Class List Object Utility is a Workplace Shell object, it 
  1501. can call the somParent function to determine parentage of each class and use 
  1502. this information to construct the list. 
  1503.  
  1504. The Workplace Shell Class List Object Utility uses the following methods: 
  1505.  
  1506.  Method Name                   Description 
  1507.  
  1508.  WinCreateObject               To create objects. 
  1509.  
  1510.  WinRegisterObjectClass        To register object classes. 
  1511.  
  1512.  WinDeregisterObjectClass      To deregister object classes. 
  1513.  
  1514.  WinReplaceObjectClass         To replace object classes. 
  1515.  
  1516.  Note:  This tool can be used to delete any Workplace Shell class other than 
  1517.         the predefined Workplace Shell classes provided with the OS/2 operating 
  1518.         system Version 2.0. You should understand Workplace Shell classes and 
  1519.         how they are defined so that they can be recovered. Because the general 
  1520.         user may not have this level of understanding, you should not 
  1521.         distribute this tool with their objects to the users. The recommended 
  1522.         way of delivering objects to them is through installation programs or 
  1523.         batch files. 
  1524.  
  1525.  
  1526. ΓòÉΓòÉΓòÉ 3.3. Sample Code for Creating Objects ΓòÉΓòÉΓòÉ
  1527.  
  1528. In order to illustrate what is required to create a complete Workplace Shell 
  1529. object that you can use constructively, a complete Workplace Shell SOM program 
  1530. is included here. 
  1531.  
  1532. The example program is a usable Workplace Shell object that provides the 
  1533. facility to change the normally unchangable style flags of any Desktop object 
  1534. dropped on it. When you drop an object onto the Workplace Shell Styler, 
  1535. WPSTYLER will open the Settings notebook and display a Style settings page, as 
  1536. shown in the following figure: 
  1537.  
  1538. On this page, you will see the current styles of the object and be able to 
  1539. change them. Using the Workplace Shell Styler, you can change the title in 
  1540. addition to the following behaviors: 
  1541.  
  1542.    o  Copy 
  1543.    o  Delete 
  1544.    o  Drag 
  1545.    o  Drop 
  1546.    o  Move 
  1547.    o  Print 
  1548.    o  Rename 
  1549.    o  Shadow 
  1550.    o  Template. 
  1551.  
  1552.  The Workplace Shell Styler sample demonstrates the basic steps you need to do 
  1553.  to create a Workplace Shell object: 
  1554.  
  1555.    o  Create a simple Workplace Shell SOM program 
  1556.    o  Create a custom Settings notebook page 
  1557.    o  Add a custom page to the Settings notebook 
  1558.    o  Remove unwanted pages from the Settings notebook 
  1559.    o  Open the Settings notebook 
  1560.    o  Implement a custom help for the help push button 
  1561.    o  Implement the Pickup and Drop operation in your object 
  1562.    o  Manipulate object styles and change their title text. 
  1563.  
  1564.  The class name is called WPStyler and is derived from WPAbstract, which is 
  1565.  derived from the WPObject root Workplace Shell Class. This means that WPStyler 
  1566.  inherits the methods from WPAbstract, which, in turn, inherits all of the 
  1567.  instance and class methods from WPObject. The implementation of the WPStyler 
  1568.  object consists primarily of overrides to instance and class methods inherited 
  1569.  from the WPObject and WPAbstract classes. 
  1570.  
  1571.  
  1572. ΓòÉΓòÉΓòÉ 3.3.1. Creating Objects Application Sample Code ΓòÉΓòÉΓòÉ
  1573.  
  1574. Several parts of this program are explained in Creating Objects. 
  1575.  
  1576. The WPStyler application includes the following files: 
  1577.  
  1578.  File Name                Description 
  1579.  
  1580.  WPSTYLER.IDL             Class interface definition 
  1581.  
  1582.  WPSTYLER.C               Source code 
  1583.  
  1584.  WPSTYLER.RCH             Resource header 
  1585.  
  1586.  WPSTYLER.RC              Resource code 
  1587.  
  1588.  WPSTYLER.IPF             Styler help source 
  1589.  
  1590.  WPSTYLER.MAK             Styler makefile for building the application. 
  1591.  
  1592.  
  1593. ΓòÉΓòÉΓòÉ 3.3.1.1. Class Definition File for Styler ΓòÉΓòÉΓòÉ
  1594.  
  1595. The following sample illustrates the class interface definition file (IDL): 
  1596.  
  1597. #ifndef  wpstyler_idl
  1598. #define  wpstyler_idl
  1599. #include <wpabs.idl>
  1600. #include <somcls.idl>
  1601.  
  1602. interface M_Styler;
  1603.  
  1604. interface Styler : WPAbstract
  1605. {
  1606.    ULONG InsertObjectStylePage(in HWND hwndDlg);
  1607.    //  Override: InsertObjectStylePage
  1608.    //
  1609.    //  Description:
  1610.    //    Insert the Styler page into the Settings notebook.
  1611.  
  1612.    ULONG QueryObjectStyle(in HWND hwndDlg);
  1613.    //  Override: QueryObjectStyle
  1614.    //
  1615.    //  Description:
  1616.    //    Query the object's title and current style.
  1617.    //    Set the Styler Settings page checkboxes and MLE.
  1618.  
  1619.    VOID  SetObjectStyle(in HWND hwndDlg);
  1620.    //  Override: SetObjectStyle
  1621.    //
  1622.    //  Description:
  1623.    //    Query the current checkbox state and set
  1624.    //    the object's style accordingly.
  1625.  
  1626.    #ifdef __SOMIDL__
  1627.    implementation
  1628.    {
  1629.       releaseorder: InsertObjectStylePage,QueryObjectStyle,SetObjectStyle;
  1630.  
  1631.       /*
  1632.        * Class modifiers
  1633.        */
  1634.       functionprefix = Sty_;
  1635.       majorversion   = 1;
  1636.       minorversion   = 2;
  1637.       filestem       = wpstyler;
  1638.       metaclass      = M_Styler;
  1639.       callstyle      = oidl;
  1640.       dllname        = "wpstyler.dll";
  1641.  
  1642.       /*
  1643.        * Internal instance variables
  1644.        */
  1645.       BOOL     fGeneralPage;     // Display the General page if true
  1646.       ULONG    ulStyle;          // Save the style flags
  1647.       WPObject self;             // Save the self pointer of dropped object
  1648.  
  1649.       /*
  1650.        * Passthru to the .IH file the following:
  1651.        */
  1652.       passthru C_ih =
  1653.       "#define INCL_PM"
  1654.       "#define INCL_DOS"
  1655.       "#define INCL_DEV"
  1656.       "#define INCL_WPCLASS"
  1657.       "#define INCL_WINWORKPLACE"
  1658.  
  1659.       "#include <os2.h>"
  1660.       "#include <stdlib.h>"
  1661.       "#include <string.h>"
  1662.       "#include \"wpstyler.rch\""
  1663.       "#include <somobj.h>"
  1664.       ""
  1665.       "#define OPEN_STYLER            (OPEN_USER+1)"
  1666.       ""
  1667.  
  1668.       "#define MPNULL                 (MPFROMP(NULL))"
  1669.       "#define MPZERO                 (MPFROMSHORT(0))"
  1670.       "#define MRTRUE                 (MRFROMSHORT((SHORT) TRUE))"
  1671.       "#define MRFALSE                (MRFROMSHORT((SHORT) FALSE))"
  1672.       ""
  1673.       "#define BM_UNCHECKED           0   // Parms in BM_SETCHECK message"
  1674.       "#define BM_CHECKED             1   // to set or clear the radio buttons"
  1675.       ""
  1676.  
  1677.       "#define PMWinSetDlgItemChecked(hwnd, id, bCheck)\"
  1678.       "               (WinSendDlgItemMsg((hwnd), (id), BM_SETCHECK,\"
  1679.       "               ((bCheck) ? MPFROMSHORT(1) : MPZERO), MPNULL))"
  1680.       ""
  1681.       "#define PMWinIsDlgItemChecked(hwnd, id)\"
  1682.       "               (SHORT1FROMMR(WinSendDlgItemMsg((hwnd), (id),\"
  1683.       "               BM_QUERYCHECK, MPNULL, MPNULL)) != 0)"
  1684.       ""
  1685.       "#define WinSetDialogFont(hwnd, usId, szFont)\"
  1686.       "               (WinSetPresParam(WinWindowFromID(hwnd, usId),\"
  1687.       "               PP_FONTNAMESIZE, (ULONG) strlen(szFont)+1, szFont))"
  1688.       "";
  1689.  
  1690.       /*
  1691.        * Method modifiers
  1692.        */
  1693.       wpInitData:                      override;
  1694.       //  Override: wpInitData
  1695.       //
  1696.       //  Description:
  1697.       //    Initialize the state variables.  Allocate any extra
  1698.       //    memory that WPStyler might need.
  1699.  
  1700.       wpDragOver:                      override;
  1701.       //   Method: wpDragOver
  1702.       //
  1703.       //   Description:
  1704.       //     Allow any object to be dropped on the Styler.
  1705.  
  1706.       wpDrop:                          override;
  1707.       //   Method: wpDrop
  1708.       //
  1709.       //   Description:
  1710.       //     Query the self pointer of dropped object.
  1711.       //     Call wpOpen to open the Settings notebook
  1712.       //     and display the styles.
  1713.  
  1714.       wpOpen:                          override;
  1715.       //   Method: wpOpen
  1716.       //
  1717.       //   Description:
  1718.       //     Opens the Settings notebook to display the General page
  1719.       //     for the Styler object.
  1720.  
  1721.       wpAddSettingsPages:              override;
  1722.       //   Method: wpAddSettingsPages
  1723.       //
  1724.       //   Description:
  1725.       //     Add the Styler Settings page to let the user alter
  1726.       //     the styles of any object that is dropped onto us.
  1727.  
  1728.       wpAddObjectWindowPage:           override;
  1729.       //   Method: wpAddObjectWindowPage
  1730.       //
  1731.       //   Description:
  1732.       //     Remove the Window page.
  1733.  
  1734.       wpAddObjectGeneralPage:           override;
  1735.       //   Method: wpAddObjectGeneralPage
  1736.       //
  1737.       //   Description:
  1738.       //     Remove the General page when the Styler
  1739.       //     page is displayed.
  1740.  
  1741.    };
  1742.    #endif /* __SOMIDL__ */
  1743. };
  1744.  
  1745. interface M_Styler : M_WPAbstract
  1746. {
  1747.    HMODULE clsQueryModuleHandle();
  1748.    //   Method: clsQueryModuleHandle
  1749.    //
  1750.    //   Description:
  1751.    //     Return the module handle.
  1752.  
  1753.  
  1754.    #ifdef __SOMIDL__
  1755.    implementation
  1756.    {
  1757.       releaseorder: clsQueryModuleHandle;
  1758.  
  1759.       /*
  1760.        * Class modifiers
  1761.        */
  1762.       functionprefix = StyM_;
  1763.       majorversion   = 1;
  1764.       minorversion   = 2;
  1765.       filestem       = wpstyler;
  1766.       callstyle      = oidl;
  1767.       dllname        = "wpstyler.dll";
  1768.  
  1769.       /*
  1770.        * Internal instance variables
  1771.        */
  1772.       HMODULE  hmod;    /* Resource module handle */
  1773.       HPOINTER hicon;   /* Icon handle            */
  1774.  
  1775.       /*
  1776.        * Method modifiers
  1777.        */
  1778.  
  1779.       wpclsInitData:                   override;
  1780.       //   Method: wpclsInitData
  1781.       //
  1782.       //   Description:
  1783.       //     Initalize the class data, query and save the module handle.
  1784.       //     Load the icon handle.
  1785.  
  1786.       wpclsQueryIcon:                  override;
  1787.       //   Method: wpclsQueryIcon
  1788.       //
  1789.       //   Description:
  1790.       //     Set the Stylers icon handle.
  1791.  
  1792.       wpclsQueryStyle:                 override;
  1793.       //   Method: wpclsQueryStyle
  1794.       //
  1795.       //   Description:
  1796.       //     wpclsQueryStyle is called to allow the class object to
  1797.       //     specify the default object class style for its instances.
  1798.       //
  1799.       //   Remarks:
  1800.       //     This method can be called at any time in order to determine the
  1801.       //     default style for instances of this class.
  1802.       //     This method should be overridden in order to modify the default
  1803.       //     object style for instances of this class.
  1804.  
  1805.       wpclsQueryDefaultHelp:           override;
  1806.       //   Method: wpclsQueryDefaultHelp
  1807.       //
  1808.       //   Description:
  1809.       //     Set the help library name and default help ID.
  1810.  
  1811.       wpclsQueryDefaultView:           override;
  1812.       //   Method: wpclsQueryDefaultView
  1813.       //
  1814.       //   Description:
  1815.       //     Return the default view for a new instance of this object.
  1816.       //     Tell the system what the Styler's default view is.
  1817.    };
  1818.    #endif /* __SOMIDL__ */
  1819. };
  1820. #endif  /* wpstyler_idl */
  1821.  
  1822.  
  1823. ΓòÉΓòÉΓòÉ 3.3.1.2. Source Code for Styler ΓòÉΓòÉΓòÉ
  1824.  
  1825. The following sample illustrates the source code (C): 
  1826.  
  1827. /*
  1828.  * File.....: WPSTYLER.C
  1829.  *
  1830.  * Purpose..: Workplace Shell Object Styler.
  1831.  *
  1832.  * Instance Methods...:
  1833.  *            Sty_InsertObjectStylePage()
  1834.  *            Sty_QueryObjectStyle()
  1835.  *            Sty_SetObjectStyle()
  1836.  *            Sty_wpInitData()
  1837.  *            Sty_wpDragOver()
  1838.  *            Sty_wpDrop()
  1839.  *            Sty_wpOpen()
  1840.  *            Sty_wpAddSettingsPages()
  1841.  *            Sty_wpAddObjectWindowPage()
  1842.  *            Sty_wpAddObjectGeneralPage()
  1843.  *
  1844.  * Class Methods...:
  1845.  *            StyM_clsQueryModuleHandle()
  1846.  *            StyM_wpclsInitData()
  1847.  *            StyM_wpclsQueryIcon()
  1848.  *            StyM_wpclsQueryStyle()
  1849.  *            StyM_wpclsQueryDefaultHelp()
  1850.  *            StyM_wpclsQueryDefaultView()
  1851.  *
  1852.  * Dialog Procedures and Functions...:
  1853.  *            DialogProc()
  1854.  *            MLEImportText()
  1855.  *            MLEExportText()
  1856.  */
  1857.  
  1858. #pragma comment(compiler)
  1859. #pragma info(nogen)
  1860.  
  1861. #define Styler_Class_Source
  1862. #define M_Styler_Class_Source
  1863. #include "wpstyler.ih"
  1864.  
  1865. /*
  1866.  * Prototype local functions used
  1867.  */
  1868. MRESULT EXPENTRY DialogProc(HWND, ULONG, MPARAM, MPARAM);
  1869. ULONG   EXPENTRY MLEImportText(HWND, CHAR *, ULONG);
  1870. APIRET  EXPENTRY MLEExportText(HWND, PSZ *);
  1871.  
  1872. CHAR szHelpLibrary[] = "wpstyler.hlp";
  1873.  
  1874. /*
  1875.  *  Override: InsertObjectStylePage
  1876.  *
  1877.  *  Description:
  1878.  *    Insert the Style page into the Settings notebook
  1879.  */
  1880.  
  1881. SOM_Scope ULONG SOMLINK Sty_InsertObjectStylePage(Styler *somSelf,
  1882.                                                   HWND hwndDlg)
  1883. {
  1884.    PAGEINFO  pi;
  1885.  
  1886.    /* StylerData *somThis = StylerGetData(somSelf); */
  1887.    StylerMethodDebug("Styler", "Sty_InsertObjectStylePage");
  1888.  
  1889.    memset((PCH) &pi, 0, sizeof(PAGEINFO));
  1890.    pi.cb                  = sizeof(PAGEINFO);
  1891.    pi.hwndPage            = NULLHANDLE;
  1892.    pi.usPageStyleFlags    = BKA_MAJOR;
  1893.    pi.usPageInsertFlags   = BKA_FIRST;
  1894.    pi.pfnwp               = DialogProc;
  1895.    pi.resid               = _clsQueryModuleHandle(_Styler);
  1896.    pi.dlgid               = DLG_STYLE;
  1897.    pi.pszName             = "~Style";
  1898.    pi.pCreateParams       = somSelf;
  1899.    pi.pszHelpLibraryName  = szHelpLibrary;
  1900.  
  1901.    return _wpInsertSettingsPage(somSelf, hwndDlg, &pi);
  1902. }
  1903.  
  1904. /*
  1905.  *  Override: QueryObjectStyle
  1906.  *
  1907.  *  Description:
  1908.  *    Query the object's title and current style.
  1909.  *    Set the Styler Settings page checkboxes and MLE.
  1910.  */
  1911.  
  1912. SOM_Scope ULONG SOMLINK Sty_QueryObjectStyle(Styler *somSelf,
  1913.                                              HWND hwndDlg)
  1914. {
  1915.    StylerData *somThis = StylerGetData(somSelf);
  1916.    StylerMethodDebug("Styler", "Sty_QueryObjectStyle");
  1917.  
  1918.    /*
  1919.     * Query and set the object's name in the notebook page
  1920.     */
  1921.    MLEImportText(WinWindowFromID(hwndDlg, DLG_OBJECTNAME),
  1922.                  _wpQueryTitle(_self), 0);
  1923.  
  1924.    /*
  1925.     * Query the object's current state
  1926.     */
  1927.    _ulStyle = _wpQueryStyle(_self);
  1928.  
  1929.    PMWinSetDlgItemChecked(hwndDlg, DLG_COPY,
  1930.       _ulStyle & OBJSTYLE_NOCOPY ? BM_UNCHECKED : BM_CHECKED);
  1931.  
  1932.    PMWinSetDlgItemChecked(hwndDlg, DLG_SHADOW,
  1933.       _ulStyle & OBJSTYLE_NOLINK ? BM_UNCHECKED : BM_CHECKED);
  1934.  
  1935.    PMWinSetDlgItemChecked(hwndDlg, DLG_DELETE,
  1936.       _ulStyle & OBJSTYLE_NODELETE ? BM_UNCHECKED : BM_CHECKED);
  1937.  
  1938.    PMWinSetDlgItemChecked(hwndDlg, DLG_DRAG,
  1939.       _ulStyle & OBJSTYLE_NODRAG ? BM_UNCHECKED : BM_CHECKED);
  1940.  
  1941.    PMWinSetDlgItemChecked(hwndDlg, DLG_DROP,
  1942.       _ulStyle & OBJSTYLE_NODROP ? BM_UNCHECKED : BM_CHECKED);
  1943.  
  1944.    PMWinSetDlgItemChecked(hwndDlg, DLG_SETTINGS,
  1945.       _ulStyle & OBJSTYLE_NOSETTINGS ? BM_UNCHECKED : BM_CHECKED);
  1946.  
  1947.    PMWinSetDlgItemChecked(hwndDlg, DLG_MOVE,
  1948.       _ulStyle & OBJSTYLE_NOMOVE ? BM_UNCHECKED : BM_CHECKED);
  1949.  
  1950.    PMWinSetDlgItemChecked(hwndDlg, DLG_PRINT,
  1951.       _ulStyle & OBJSTYLE_NOPRINT ? BM_UNCHECKED : BM_CHECKED);
  1952.  
  1953.    PMWinSetDlgItemChecked(hwndDlg, DLG_RENAME,
  1954.       _ulStyle & OBJSTYLE_NORENAME ? BM_UNCHECKED : BM_CHECKED);
  1955.  
  1956.    PMWinSetDlgItemChecked(hwndDlg, DLG_TEMPLATE,
  1957.       _ulStyle & OBJSTYLE_TEMPLATE ? BM_CHECKED : BM_UNCHECKED);
  1958.  
  1959.    return _ulStyle;
  1960. }
  1961.  
  1962. /*
  1963.  *  Override: SetObjectStyle
  1964.  *
  1965.  *  Description:
  1966.  *    Query the current checkbox state and set the style of the
  1967.  *    object accordingly.
  1968.  */
  1969.  
  1970. SOM_Scope void SOMLINK Sty_SetObjectStyle(Styler *somSelf,
  1971.                                           HWND hwndDlg)
  1972. {
  1973.    PSZ pszName;
  1974.    StylerData *somThis = StylerGetData(somSelf);
  1975.    StylerMethodDebug("Styler", "Sty_SetObjectStyle");
  1976.  
  1977.    /*
  1978.     * NOCOPY: This object cannot be copied
  1979.     */
  1980.    if (PMWinIsDlgItemChecked(hwndDlg, DLG_COPY))
  1981.      _ulStyle &= ~OBJSTYLE_NOCOPY;
  1982.    else
  1983.      _ulStyle |= OBJSTYLE_NOCOPY;
  1984.  
  1985.    /*
  1986.     * NOSHADOW: This object cannot have a shadow created
  1987.     */
  1988.    if (PMWinIsDlgItemChecked(hwndDlg, DLG_SHADOW))
  1989.      _ulStyle &= ~OBJSTYLE_NOLINK;
  1990.    else
  1991.      _ulStyle |= OBJSTYLE_NOLINK;
  1992.  
  1993.    /*
  1994.     * NODELETE: This object cannot be deleted
  1995.     */
  1996.    if (PMWinIsDlgItemChecked(hwndDlg, DLG_DELETE))
  1997.      _ulStyle &= ~OBJSTYLE_NODELETE;
  1998.    else
  1999.      _ulStyle |= OBJSTYLE_NODELETE;
  2000.  
  2001.    /*
  2002.     * NODRAG: This object cannot be dragged
  2003.     */
  2004.    if (PMWinIsDlgItemChecked(hwndDlg, DLG_DRAG))
  2005.      _ulStyle &= ~OBJSTYLE_NODRAG;
  2006.    else
  2007.      _ulStyle |= OBJSTYLE_NODRAG;
  2008.  
  2009.    /*
  2010.     * NODROP: No other object can be dropped on this object.
  2011.     *         However, object can be dragged and dropped on other objects.
  2012.     */
  2013.    if (PMWinIsDlgItemChecked(hwndDlg, DLG_DROP))
  2014.      _ulStyle &= ~OBJSTYLE_NODROP;
  2015.    else
  2016.      _ulStyle |= OBJSTYLE_NODROP;
  2017.  
  2018.    /*
  2019.     * NODRAG: This object cannot be moved
  2020.     */
  2021.    if (PMWinIsDlgItemChecked(hwndDlg, DLG_MOVE))
  2022.      _ulStyle &= ~OBJSTYLE_NOMOVE;
  2023.    else
  2024.      _ulStyle |= OBJSTYLE_NOMOVE;
  2025.  
  2026.    /*
  2027.     * NOPRINT: This object cannot be printed
  2028.     */
  2029.    if (PMWinIsDlgItemChecked(hwndDlg, DLG_PRINT))
  2030.      _ulStyle &= ~OBJSTYLE_NOPRINT;
  2031.    else
  2032.      _ulStyle |= OBJSTYLE_NOPRINT;
  2033.  
  2034.    /*
  2035.     * NORENAME: This object cannot be renamed
  2036.     */
  2037.    if (PMWinIsDlgItemChecked(hwndDlg, DLG_RENAME))
  2038.      _ulStyle &= ~OBJSTYLE_NORENAME;
  2039.    else
  2040.      _ulStyle |= OBJSTYLE_NORENAME;
  2041.  
  2042.    /*
  2043.     * NOTEMPLATE: This object is a template
  2044.     */
  2045.    if (PMWinIsDlgItemChecked(hwndDlg, DLG_TEMPLATE))
  2046.      _ulStyle |= OBJSTYLE_TEMPLATE;
  2047.    else
  2048.      _ulStyle &= ~OBJSTYLE_TEMPLATE;
  2049.  
  2050.    /*
  2051.     * Extract and set the title text
  2052.     */
  2053.    MLEExportText(WinWindowFromID(hwndDlg, DLG_OBJECTNAME),
  2054.                  &pszName);
  2055.    _wpSetTitle(_self, pszName);
  2056.    free(pszName);
  2057.  
  2058.    /*
  2059.     * Set the object's new style and save the state to the .INI file
  2060.     */
  2061.    _wpSetStyle(_self, _ulStyle);
  2062.    _wpSaveDeferred(_self);
  2063. }
  2064.  
  2065. /*
  2066.  *  Override: wpInitData
  2067.  *
  2068.  *  Description:
  2069.  *    Initialize the state variables.  Allocate any extra
  2070.  *    memory that WPStyler might need.
  2071.  */
  2072.  
  2073. SOM_Scope void SOMLINK Sty_wpInitData(Styler *somSelf)
  2074. {
  2075.    StylerData *somThis = StylerGetData(somSelf);
  2076.    StylerMethodDebug("Styler", "Sty_wpInitData");
  2077.  
  2078.    _self = (WPObject *) 0;
  2079.    parent_wpInitData(somSelf);
  2080. }
  2081.  
  2082. /*
  2083.  *   Method: wpDragOver
  2084.  *
  2085.  *   Description:
  2086.  *     Allow any object to be dropped on the Styler
  2087.  */
  2088.  
  2089. SOM_Scope MRESULT SOMLINK Sty_wpDragOver(Styler *somSelf,
  2090.                                          HWND hwndCnr,
  2091.                                          PDRAGINFO pdrgInfo)
  2092.  
  2093. {
  2094.    BOOL            fSuccess;
  2095.    PDRAGITEM       pditem;    // Drag item pointer
  2096.  
  2097.    /* StylerData *somThis = StylerGetData(somSelf); */
  2098.    StylerMethodDebug("Styler", "Sty_wpDragOver");
  2099.  
  2100.    pditem = DrgQueryDragitemPtr(pdrgInfo, 0);
  2101.    if (pditem == NULL)
  2102.      DosBeep(500, 100);
  2103.  
  2104.    fSuccess = DrgVerifyRMF(pditem, "DRM_OBJECT", NULL);
  2105.    if (fSuccess)
  2106.      return MRFROM2SHORT(DOR_DROP, DO_COPY);
  2107.    else
  2108.      return MRFROM2SHORT(DOR_NEVERDROP, DO_COPY);
  2109. }
  2110.  
  2111. /*
  2112.  *   Method: wpDrop
  2113.  *
  2114.  *   Description:
  2115.  *     Query the self pointer of the dropped object.
  2116.  *     Call wpOpen to open the Settings notebook and display the styles.
  2117.  */
  2118.  
  2119. SOM_Scope MRESULT SOMLINK Sty_wpDrop(Styler *somSelf,
  2120.                                      HWND hwndCnr,
  2121.                                      PDRAGINFO pdrgInfo,
  2122.                                      PDRAGITEM pdrgItem)
  2123. {
  2124.    StylerData *somThis = StylerGetData(somSelf);
  2125.    StylerMethodDebug("Styler", "Sty_wpDrop");
  2126.  
  2127.    /*
  2128.     * Query for the dropped object's self pointer.
  2129.     */
  2130.    _self = OBJECT_FROM_PREC(pdrgItem->ulItemID);
  2131.  
  2132.    /*
  2133.     * Call the parents wpOpen to display the Settings notebook
  2134.     */
  2135.    _fGeneralPage = FALSE;
  2136.    parent_wpOpen(somSelf, NULLHANDLE, OPEN_SETTINGS, 0L);
  2137.  
  2138.    return parent_wpDrop(somSelf, hwndCnr, pdrgInfo, pdrgItem);
  2139. }
  2140.  
  2141. /*
  2142.  *   Method: wpOpen
  2143.  *
  2144.  *   Description:
  2145.  *     Opens the Settings notebook to display the General
  2146.  *     page for the Styler object.
  2147.  */
  2148.  
  2149. SOM_Scope HWND SOMLINK Sty_wpOpen(Styler *somSelf,
  2150.                                   HWND hwndCnr,
  2151.                                   ULONG ulView,
  2152.                                   ULONG param)
  2153. {
  2154.    StylerData *somThis = StylerGetData(somSelf);
  2155.    StylerMethodDebug("Styler", "Sty_wpOpen");
  2156.  
  2157.    switch(ulView)
  2158.    {
  2159.       case OPEN_SETTINGS:
  2160.          _fGeneralPage = TRUE;
  2161.          break;
  2162.  
  2163.       case OPEN_STYLER:
  2164.       {
  2165.          /*
  2166.           * If the user double clicks on the Styler object, present a
  2167.           * message box instead of openning the Settings page.
  2168.           */
  2169.          WinMessageBox(HWND_DESKTOP,
  2170.                        HWND_DESKTOP,
  2171.                        "Drop an object on the Workplace Shell Object "
  2172.                        "Styler to change the style state of that object.",
  2173.                        "Workplace Shell Object Styler",
  2174.                        0,
  2175.                        MB_OK |
  2176.                        MB_APPLMODAL |
  2177.                        MB_MOVEABLE);
  2178.          break;
  2179.       }
  2180.       default:
  2181.          break;
  2182.    }
  2183.    return parent_wpOpen(somSelf, hwndCnr, ulView, param);
  2184. }
  2185.  
  2186. /*
  2187.  *   Method: wpAddSettingsPages
  2188.  *
  2189.  *   Description:
  2190.  *     Add the Styler Settings page to let the user alter the styles
  2191.  *     of any object that is dropped onto us.
  2192.  */
  2193.  
  2194. SOM_Scope BOOL SOMLINK Sty_wpAddSettingsPages(Styler *somSelf,
  2195.                                               HWND hwndNotebook)
  2196. {
  2197.    StylerData *somThis = StylerGetData(somSelf);
  2198.    StylerMethodDebug("Styler", "Sty_wpAddSettingsPages");
  2199.  
  2200.    parent_wpAddSettingsPages(somSelf, hwndNotebook);
  2201.  
  2202.    /*
  2203.     * Insert the user page into the Settings notebook
  2204.     */
  2205.    if (!_fGeneralPage)
  2206.      _InsertObjectStylePage(somSelf, hwndNotebook);
  2207.    return TRUE;
  2208. }
  2209.  
  2210. /*
  2211.  *   Method: wpAddObjectWindowPage
  2212.  *
  2213.  *   Description:
  2214.  *     Remove the Window page
  2215.  */
  2216.  
  2217. SOM_Scope ULONG SOMLINK Sty_wpAddObjectWindowPage(Styler *somSelf,
  2218.                                                   HWND hwndNotebook)
  2219. {
  2220.    /* StylerData *somThis = StylerGetData(somSelf); */
  2221.    StylerMethodDebug("Styler", "Sty_wpAddObjectWindowPage");
  2222.  
  2223.    return SETTINGS_PAGE_REMOVED;
  2224. }
  2225.  
  2226. /*
  2227.  *   Method: wpAddObjectGeneralPage
  2228.  *
  2229.  *   Description:
  2230.  *     Remove the General page when displaying the Styler page
  2231.  */
  2232.  
  2233. SOM_Scope ULONG SOMLINK Sty_wpAddObjectGeneralPage(Styler *somSelf,
  2234.                                                    HWND hwndNotebook)
  2235. {
  2236.    StylerData *somThis = StylerGetData(somSelf);
  2237.    StylerMethodDebug("Styler","Sty_wpAddObjectGeneralPage");
  2238.  
  2239.    return _fGeneralPage ?
  2240.           parent_wpAddObjectGeneralPage(somSelf, hwndNotebook) :
  2241.           SETTINGS_PAGE_REMOVED;
  2242. }
  2243.  
  2244. /*
  2245.  *   Method: wpclsQueryDefaultHelp
  2246.  *
  2247.  *   Description:
  2248.  *     Set the help library name and default help ID
  2249.  */
  2250.  
  2251. SOM_Scope BOOL SOMLINK StyM_wpclsQueryDefaultHelp(M_Styler *somSelf,
  2252.                                                   PULONG pHelpPanelId,
  2253.                                                   PSZ pszHelpLibrary)
  2254. {
  2255.     /* M_StylerData *somThis = M_StylerGetData(somSelf); */
  2256.     M_StylerMethodDebug("M_Styler","StyM_wpclsQueryDefaultHelp");
  2257.  
  2258.     if (pHelpPanelId)
  2259.       *pHelpPanelId = ID_HELP_STYLER;
  2260.  
  2261.     if (pszHelpLibrary)
  2262.       strcpy(pszHelpLibrary, szHelpLibrary);
  2263.  
  2264.     return TRUE;
  2265. }
  2266.  
  2267. /*
  2268.  *   Method: clsQueryModuleHandle
  2269.  *
  2270.  *   Description:
  2271.  *     Return the module handle
  2272.  */
  2273.  
  2274. SOM_Scope HMODULE SOMLINK StyM_clsQueryModuleHandle(M_Styler *somSelf)
  2275. {
  2276.    M_StylerData *somThis = M_StylerGetData(somSelf);
  2277.    M_StylerMethodDebug("M_Styler", "StyM_clsQueryModuleHandle");
  2278.  
  2279.    return (HMODULE) _hmod;
  2280. }
  2281.  
  2282. /*
  2283.  *   Method: wpclsInitData
  2284.  *
  2285.  *   Description:
  2286.  *     Initalize the class data, query and save the module handle.
  2287.  *     Load the icon handle.
  2288.  */
  2289.  
  2290. SOM_Scope void SOMLINK StyM_wpclsInitData(M_Styler *somSelf)
  2291. {
  2292.    PSZ     psz;
  2293.    somId   stylerId;
  2294.  
  2295.    M_StylerData *somThis = M_StylerGetData(somSelf);
  2296.    M_StylerMethodDebug("M_Styler", "StyM_wpclsInitData");
  2297.  
  2298.    parent_wpclsInitData(somSelf);
  2299.  
  2300.    stylerId = somIdFromString("Styler");
  2301.    psz = _somLocateClassFile(SOMClassMgrObject,
  2302.                              stylerId,
  2303.                              Styler_MajorVersion,
  2304.                              Styler_MinorVersion);
  2305.    SOMFree(stylerId);
  2306.  
  2307.    if (psz != NULL)
  2308.      DosQueryModuleHandle(psz, &_hmod);
  2309.  
  2310.    /*
  2311.     * Load the icon and store it in the class data
  2312.     */
  2313.    _hicon = WinLoadPointer(HWND_DESKTOP, _hmod, ID_OBJECTICON);
  2314. }
  2315.  
  2316. /*
  2317.  *   Method: wpclsQueryIcon
  2318.  *
  2319.  *   Description:
  2320.  *     Set the Styler's icon handle
  2321.  */
  2322.  
  2323. SOM_Scope HPOINTER SOMLINK StyM_wpclsQueryIcon(M_Styler *somSelf)
  2324. {
  2325.    M_StylerData *somThis = M_StylerGetData(somSelf);
  2326.    M_StylerMethodDebug("M_Styler", "StyM_wpclsQueryIcon");
  2327.  
  2328.    return _hicon;
  2329. }
  2330.  
  2331. /*
  2332.  *   Method: wpclsQueryStyle
  2333.  *
  2334.  *   Description:
  2335.  *     wpclsQueryStyle is called to allow the class object to
  2336.  *     specify the default object class style for its instances.
  2337.  *
  2338.  *   Remarks:
  2339.  *     This method can be called at any time in order to determine the
  2340.  *     default style for instances of this class.
  2341.  *     This method should be overridden in order to modify the default
  2342.  *     object style for instances of this class.
  2343.  */
  2344.  
  2345. SOM_Scope ULONG SOMLINK StyM_wpclsQueryStyle(M_Styler *somSelf)
  2346. {
  2347.    /* M_StylerData *somThis = M_StylerGetData(somSelf); */
  2348.    M_StylerMethodDebug("M_Styler","StyM_wpclsQueryStyle");
  2349.  
  2350.    return parent_wpclsQueryStyle(somSelf) | CLSSTYLE_NEVERTEMPLATE;
  2351. }
  2352.  
  2353. /*
  2354.  *   Method: wpclsQueryDefaultView
  2355.  *
  2356.  *   Description:
  2357.  *     Return the default view for a new instance of this object.
  2358.  *     Tell the system what the Styler's default view is.
  2359.  */
  2360.  
  2361. SOM_Scope ULONG SOMLINK StyM_wpclsQueryDefaultView(M_Styler *somSelf)
  2362. {
  2363.    /* M_StylerData *somThis = M_StylerGetData(somSelf); */
  2364.    M_StylerMethodDebug("M_Styler", "StyM_wpclsQueryDefaultView");
  2365.  
  2366.    return OPEN_STYLER;
  2367. }
  2368.  
  2369. typedef struct _WINDATA
  2370. {
  2371.    SOMAny     *somSelf;
  2372.    StylerData *somThis;
  2373.    BOOL       fClose;
  2374. } WINDATA, *PWINDATA;
  2375.  
  2376. /*
  2377.  *   Dialog window Procedure
  2378.  */
  2379.  
  2380. MRESULT EXPENTRY DialogProc(HWND hwndDlg,
  2381.                             ULONG msg,
  2382.                             MPARAM mp1,
  2383.                             MPARAM mp2)
  2384. {
  2385.    MRESULT  mresultWpRtnCd = MRFALSE;
  2386.    PWINDATA pwin = (PWINDATA) WinQueryWindowPtr(hwndDlg, QWL_USER);
  2387.  
  2388.    switch(msg)
  2389.    {
  2390.       case WM_INITDLG:
  2391.       {
  2392.          pwin = (PWINDATA) _wpAllocMem((SOMAny *) mp2,
  2393.                                        sizeof(WINDATA), NULL);
  2394.          WinSetWindowPtr(hwndDlg, QWL_USER, pwin);
  2395.  
  2396.          /*
  2397.           * Initialize the WINDATA data structure
  2398.           */
  2399.          pwin->somSelf     = (SOMAny *) mp2;
  2400.          pwin->somThis     = StylerGetData(pwin->somSelf);
  2401.          pwin->fClose      = FALSE;
  2402.  
  2403.          /*
  2404.           * Query the style of the object and set the checkboxes
  2405.           */
  2406.          _QueryObjectStyle(pwin->somSelf, hwndDlg);
  2407.  
  2408.          /*
  2409.           * Set the status line font size
  2410.           */
  2411.          WinSetDialogFont(hwndDlg, DLG_STATUS, "8.Helv");
  2412.  
  2413.          /*
  2414.           * Return TRUE to tell PM that focus has changed
  2415.           */
  2416.          mresultWpRtnCd = (MRESULT) TRUE;
  2417.          break;
  2418.       }  /* End of case WM_INITDLG */
  2419.  
  2420.       case WM_FOCUSCHANGE:
  2421.       {
  2422.          HWND   hwndFocus  = HWNDFROMMP(mp1);
  2423.  
  2424.          mresultWpRtnCd = WinDefDlgProc(hwndDlg, msg, mp1, mp2);
  2425.  
  2426.          /*
  2427.           * When mp2 is FALSE, then hwndFocus is the
  2428.           * control window that is receiving focus
  2429.           */
  2430.          if (SHORT1FROMMP(mp2))
  2431.            break;
  2432.  
  2433.          /* Title text MLE */
  2434.          if (hwndFocus == WinWindowFromID(hwndDlg, DLG_OBJECTNAME))
  2435.          {
  2436.             WinSetDlgItemText(hwndDlg,
  2437.                               DLG_STATUS,
  2438.                               "Change the title of the object");
  2439.             break;
  2440.          }
  2441.          else
  2442.          /* Apply push button */
  2443.          if (hwndFocus == WinWindowFromID(hwndDlg, DLG_APPLY))
  2444.          {
  2445.             WinSetDlgItemText(hwndDlg,
  2446.                               DLG_STATUS,
  2447.                               "Save all changes to the system .INI file");
  2448.             break;
  2449.          }
  2450.          else
  2451.          /* Undo push button */
  2452.          if (hwndFocus == WinWindowFromID(hwndDlg, DLG_UNDO))
  2453.          {
  2454.             WinSetDlgItemText(hwndDlg,
  2455.                               DLG_STATUS,
  2456.                               "Undo all changes made since last apply");
  2457.             break;
  2458.          }
  2459.          else
  2460.          /* Cancel push button */
  2461.          if (hwndFocus == WinWindowFromID(hwndDlg, DLG_CANCEL))
  2462.          {
  2463.             WinSetDlgItemText(hwndDlg,
  2464.                               DLG_STATUS,
  2465.                               "Cancel processing the current object");
  2466.             break;
  2467.          }
  2468.          else
  2469.          /* Help push button */
  2470.          if (hwndFocus == WinWindowFromID(hwndDlg, DLG_HELP))
  2471.          {
  2472.             WinSetDlgItemText(hwndDlg,
  2473.                               DLG_STATUS,
  2474.                               "Display the user help for Styler");
  2475.             break;
  2476.          }
  2477.          else
  2478.          /* Copy checkbox */
  2479.          if (hwndFocus == WinWindowFromID(hwndDlg, DLG_COPY))
  2480.          {
  2481.             WinSetDlgItemText(hwndDlg,
  2482.                               DLG_STATUS,
  2483.                               "Allow the object to be copied");
  2484.             break;
  2485.          }
  2486.          else
  2487.          /* Delete checkbox */
  2488.          if (hwndFocus == WinWindowFromID(hwndDlg, DLG_DELETE))
  2489.          {
  2490.             WinSetDlgItemText(hwndDlg,
  2491.                               DLG_STATUS,
  2492.                               "Make object deletable");
  2493.             break;
  2494.          }
  2495.          else
  2496.          /* Drag checkbox */
  2497.          if (hwndFocus == WinWindowFromID(hwndDlg, DLG_DRAG))
  2498.          {
  2499.             WinSetDlgItemText(hwndDlg,
  2500.                               DLG_STATUS,
  2501.                               "Allow the object to be dragged");
  2502.             break;
  2503.          }
  2504.          else
  2505.          /* Drop checkbox */
  2506.          if (hwndFocus == WinWindowFromID(hwndDlg, DLG_DROP))
  2507.          {
  2508.             WinSetDlgItemText(hwndDlg,
  2509.                               DLG_STATUS,
  2510.                               "Allow objects to be drop on object");
  2511.             break;
  2512.          }
  2513.          else
  2514.          /* Settings checkbox */
  2515.          if (hwndFocus == WinWindowFromID(hwndDlg, DLG_SETTINGS))
  2516.          {
  2517.             WinSetDlgItemText(hwndDlg,
  2518.                               DLG_STATUS,
  2519.                               "Settings checkbox");
  2520.             break;
  2521.          }
  2522.          else
  2523.          /* Move checkbox */
  2524.          if (hwndFocus == WinWindowFromID(hwndDlg, DLG_MOVE))
  2525.          {
  2526.             WinSetDlgItemText(hwndDlg,
  2527.                               DLG_STATUS,
  2528.                               "Allow this object to be moved");
  2529.             break;
  2530.          }
  2531.          else
  2532.          /* Print checkbox */
  2533.          if (hwndFocus == WinWindowFromID(hwndDlg, DLG_PRINT))
  2534.          {
  2535.             WinSetDlgItemText(hwndDlg,
  2536.                               DLG_STATUS,
  2537.                               "Make object printable");
  2538.             break;
  2539.          }
  2540.          else
  2541.          /* Template checkbox */
  2542.          if (hwndFocus == WinWindowFromID(hwndDlg, DLG_TEMPLATE))
  2543.          {
  2544.             WinSetDlgItemText(hwndDlg,
  2545.                               DLG_STATUS,
  2546.                               "Make a template from the object");
  2547.             break;
  2548.          }
  2549.          else
  2550.          /* Rename checkbox */
  2551.          if (hwndFocus == WinWindowFromID(hwndDlg, DLG_RENAME))
  2552.          {
  2553.             WinSetDlgItemText(hwndDlg,
  2554.                               DLG_STATUS,
  2555.                               "Allow the object to be renamed");
  2556.             break;
  2557.          }
  2558.          else
  2559.          /* Shadow checkbox */
  2560.          if (hwndFocus == WinWindowFromID(hwndDlg, DLG_SHADOW))
  2561.          {
  2562.             WinSetDlgItemText(hwndDlg,
  2563.                               DLG_STATUS,
  2564.                               "Allow the object to be shadowed");
  2565.             break;
  2566.          }
  2567.          else
  2568.          {
  2569.             WinSetDlgItemText(hwndDlg, DLG_STATUS, "");
  2570.          }
  2571.  
  2572.          break;
  2573.       }  /* End of case WM_FOCUSCHANGE */
  2574.  
  2575.       case WM_COMMAND:
  2576.       {
  2577.          switch(SHORT1FROMMP(mp1))
  2578.          {
  2579.             case DLG_APPLY:   /* Apply push button */
  2580.             {
  2581.                _SetObjectStyle(pwin->somSelf, hwndDlg);
  2582.  
  2583.                // Save state to the .INI file now!
  2584.                _wpSaveImmediate(pwin->somSelf);
  2585.  
  2586.                WinSetDlgItemText(hwndDlg,
  2587.                                  DLG_STATUS,
  2588.                                  "Changes applied to object");
  2589.                break;
  2590.             }
  2591.  
  2592.             case DLG_UNDO:   /* Undo push button   */
  2593.             {
  2594.                _QueryObjectStyle(pwin->somSelf, hwndDlg);
  2595.                WinSetDlgItemText(hwndDlg,
  2596.                                  DLG_STATUS,
  2597.                                  "Changes undone");
  2598.                break;
  2599.             }
  2600.  
  2601.             case DLG_CANCEL:   /* Cancel push button */
  2602.             {
  2603.                pwin->fClose = TRUE;
  2604.                WinPostMsg(WinQueryWindow(hwndDlg, QW_OWNER),
  2605.                           WM_CLOSE, 0L, 0L);
  2606.                break;
  2607.             }
  2608.  
  2609.             case DLG_HELP:   /* Help push button */
  2610.             {
  2611.                _wpDisplayHelp(pwin->somSelf,
  2612.                               ID_HELP_STYLER,
  2613.                               szHelpLibrary);
  2614.                break;
  2615.             }
  2616.  
  2617.             default:
  2618.                break;
  2619.          }
  2620.          break;
  2621.       }  /* End of case WM_COMMAND */
  2622.  
  2623.       case WM_DESTROY:
  2624.       {
  2625.          /*
  2626.           * Set the style of the object from the checkbox settings
  2627.           */
  2628.          if (!pwin->fClose)
  2629.            _SetObjectStyle(pwin->somSelf, hwndDlg);
  2630.  
  2631.          _wpFreeMem(pwin->somSelf, (PBYTE) pwin);
  2632.          mresultWpRtnCd = WinDefDlgProc(hwndDlg, msg, mp1, mp2);
  2633.       }  /* End of case WM_DESTROY */
  2634.  
  2635.       default:
  2636.       {
  2637.          mresultWpRtnCd = WinDefDlgProc(hwndDlg, msg, mp1, mp2);
  2638.          break;
  2639.       } // End of default:
  2640.    }
  2641.    return mresultWpRtnCd;
  2642. }
  2643.  
  2644. /*
  2645.  *   Function: MLEImportText
  2646.  *
  2647.  *   Description:
  2648.  *     Import the text into an MLE window.
  2649.  */
  2650.  
  2651. ULONG EXPENTRY MLEImportText(HWND hwndMLE,
  2652.                              CHAR *pText,
  2653.                              ULONG ulSize)
  2654. {
  2655.    ULONG  ulLen = ulSize;
  2656.    ULONG  cch;
  2657.    LINE   lBegin = 0;
  2658.    IPT    lOffset = 0;
  2659.  
  2660.    WinSendMsg(hwndMLE, MLM_DISABLEREFRESH, 0L, 0L);
  2661.  
  2662.    /*
  2663.     * Get the current number of characters in the MLE box
  2664.     * then send a message to delete them
  2665.     */
  2666.    cch = (ULONG) WinSendMsg(hwndMLE,
  2667.                             MLM_QUERYTEXTLENGTH,
  2668.                             0L, 0L);
  2669.    WinSendMsg(hwndMLE,
  2670.               MLM_DELETE,
  2671.               MPFROMLONG(lBegin),
  2672.               MPFROMLONG(cch));
  2673.  
  2674.    if (pText)
  2675.    {
  2676.       if (ulLen <= 0L)
  2677.         ulLen = (ULONG) strlen(pText);
  2678.       WinSendMsg(hwndMLE,
  2679.                  MLM_SETIMPORTEXPORT,
  2680.                  MPFROMP(pText),
  2681.                  MPFROMSHORT((SHORT) ulLen));
  2682.  
  2683.       cch = (ULONG) WinSendMsg(hwndMLE, MLM_IMPORT,
  2684.                                MPFROMP(&lOffset),
  2685.                                MPFROMP(&ulLen));
  2686.    }
  2687.    WinSendMsg(hwndMLE, MLM_ENABLEREFRESH, 0L, 0L);
  2688.    return cch;
  2689. } /* End of Function: MLEImportText() */
  2690.  
  2691. /*
  2692.  *   Function: MLEImportText
  2693.  *
  2694.  *   Description:
  2695.  *     Export the text from an MLE window.
  2696.  */
  2697. APIRET EXPENTRY MLEExportText(HWND hwndMLE, PSZ *pBuf)
  2698. {
  2699.    APIRET apiRtnCd = 0;
  2700.    LONG   cch;
  2701.    LONG   cchnl;
  2702.    IPT    lOffset = 0;
  2703.    LONG   cbChar = -1;
  2704.    CHAR   *ptr;
  2705.  
  2706.    *pBuf = (CHAR *) NULL;
  2707.  
  2708.    /*
  2709.     * Get the length of the data field.
  2710.     * Query text length using the selected format.
  2711.     */
  2712.    cch = (ULONG) WinSendMsg(hwndMLE,
  2713.                             MLM_QUERYFORMATTEXTLENGTH,
  2714.                             MPFROMLONG(lOffset),
  2715.                             MPFROMLONG(cbChar));
  2716.    if (cch > 0L)
  2717.    {
  2718.       if ((ptr = (CHAR *) malloc((USHORT) (cch + 1L))) == (CHAR *) NULL)
  2719.          return PMERR_MEMORY_ALLOCATION_ERR;
  2720.  
  2721.       /*
  2722.        * Get the text from the MLE window.
  2723.        */
  2724.       *pBuf = ptr;
  2725.       WinSendMsg(hwndMLE,
  2726.                  MLM_SETIMPORTEXPORT,
  2727.                  MPFROMP(ptr),
  2728.                  MPFROMSHORT(cch));
  2729.       cchnl = (ULONG) WinSendMsg(hwndMLE,
  2730.                                  MLM_EXPORT,
  2731.                                  MPFROMP(&lOffset),
  2732.                                  MPFROMP((ULONG) &cch));
  2733.       *(*pBuf + cchnl) = (CHAR) NULL;
  2734.    }
  2735.    return apiRtnCd;
  2736. } /* End of Function: MLEExportText() */
  2737.  
  2738. #pragma info(nouse)
  2739.  
  2740.  
  2741. ΓòÉΓòÉΓòÉ 3.3.1.3. Resource Header File for Styler ΓòÉΓòÉΓòÉ
  2742.  
  2743. The following sample illustrates the resource header file (RCH): 
  2744.  
  2745. /*
  2746.  * Resouce header module: WPSTYLER.RCH
  2747.  */
  2748.  
  2749. #define ID_OBJECTICON               255
  2750. #define ID_HELP_STYLER              256
  2751.  
  2752. #define DLG_STYLE                   100
  2753. #define DLG_COPY                    101
  2754. #define DLG_DELETE                  102
  2755. #define DLG_DRAG                    103
  2756. #define DLG_DROP                    104
  2757. #define DLG_SETTINGS                105
  2758. #define DLG_MOVE                    106
  2759. #define DLG_PRINT                   107
  2760. #define DLG_TEMPLATE                108
  2761. #define DLG_RENAME                  109
  2762. #define DLG_SHADOW                  110
  2763. #define DLG_OBJECTNAME              111
  2764. #define DLG_STATUS                  112
  2765. #define DLG_APPLY                   113
  2766. #define DLG_UNDO                    114
  2767. #define DLG_CANCEL                  115
  2768. #define DLG_HELP                    116
  2769.  
  2770.  
  2771. ΓòÉΓòÉΓòÉ 3.3.1.4. Resource Code for Styler ΓòÉΓòÉΓòÉ
  2772.  
  2773. The following sample illustrates the resource definition file (RC): 
  2774.  
  2775. /*
  2776.  * Resouce module: WPSTYLER.RC
  2777.  */
  2778.  
  2779. #include <os2.h>
  2780. #include "wpstyler.rch"
  2781.  
  2782. ICON ID_OBJECTICON WPSTYLER.ICO
  2783.  
  2784. DLGTEMPLATE DLG_STYLE LOADONCALL MOVEABLE DISCARDABLE
  2785. BEGIN
  2786.     DIALOG  "", DLG_STYLE, 0, 0, 224, 200, NOT FS_DLGBORDER
  2787.     BEGIN
  2788.         /*
  2789.          * Create a read only MLE window on the page to hold the
  2790.          * object's title, similar to the General page title
  2791.          */
  2792.         LTEXT           "Title:",
  2793.                         -1, 10, 133,  24,  8
  2794.         MLE             "", DLG_OBJECTNAME,
  2795.                         30, 111, 110, 30,
  2796.                         MLS_WORDWRAP |
  2797.                         WS_GROUP |
  2798.                         MLS_IGNORETAB
  2799.  
  2800.         /*
  2801.          * Place all the Styler checkboxes nicely on the page
  2802.          */
  2803.         LTEXT           "Select or deselect the desired style flags",
  2804.                         -1, 10, 101, 169, 10
  2805.         AUTOCHECKBOX    "~Copy",     DLG_COPY,     10,  91,  80, 10
  2806.         AUTOCHECKBOX    "~Move",     DLG_MOVE,    106,  91,  80, 10
  2807.         AUTOCHECKBOX    "~Delete",   DLG_DELETE,   10,  77,  80, 10
  2808.         AUTOCHECKBOX    "~Rename",   DLG_RENAME,  106,  77,  80, 10
  2809.         AUTOCHECKBOX    "~Shadow",   DLG_SHADOW,   10,  63,  80, 10
  2810.         AUTOCHECKBOX    "~Print",    DLG_PRINT,   106,  63,  80, 10
  2811.         AUTOCHECKBOX    "~Template", DLG_TEMPLATE, 10,  49,  80, 10
  2812.         AUTOCHECKBOX    "Dr~op",     DLG_DROP,    106,  49,  80, 10
  2813.  
  2814.         /*
  2815.          * Frame the Drag checkbox and set the text color to red
  2816.          * to bring attention to it and to warn of its danger
  2817.          */
  2818.         CONTROL         "", -1, 8, 36, 146, 11,
  2819.                         WC_STATIC,
  2820.                         SS_HALFTONEFRAME |
  2821.                         WS_GROUP |
  2822.                         WS_VISIBLE
  2823.         AUTOCHECKBOX    "Drag (De-select with Caution)",
  2824.                         DLG_DRAG, 10, 37, 136, 9
  2825.                         PRESPARAMS PP_FOREGROUNDCOLOR, 0x00FF0000L
  2826.  
  2827.         /*
  2828.          * Add a status line just above the push buttons
  2829.          */
  2830.         LTEXT           "", DLG_STATUS,
  2831.                         7, 23, 191, 10, DT_VCENTER
  2832.  
  2833.         /*
  2834.          * Align the push buttons along the bottom
  2835.          */
  2836.         PUSHBUTTON      "~Apply",  DLG_APPLY,       7, 7, 38, 14
  2837.         PUSHBUTTON      "~Undo",   DLG_UNDO,       57, 7, 38, 14
  2838.         PUSHBUTTON      "Cancel",  DLG_CANCEL,    107, 7, 38, 14
  2839.         PUSHBUTTON      "~Help",   DLG_HELP,      157, 7, 38, 14
  2840.     END
  2841. END
  2842.  
  2843.  
  2844. ΓòÉΓòÉΓòÉ 3.3.1.5. Help Source for Styler ΓòÉΓòÉΓòÉ
  2845.  
  2846. The following sample illustrates the Styler help source file (IPF): 
  2847.  
  2848. .*******************************************************************
  2849. .*  File Name:    WPSTYLER.IPF
  2850. .*  Description:  Information Tag Language file for help on the
  2851. .*                Workplace Shell Object Styler
  2852. .*******************************************************************
  2853. .*
  2854. :userdoc.
  2855. :h1 res=256 name=ID_HELP_STYLER.Workplace Shell Object Styler
  2856. :i1 id=aboutStyle.Workplace Shell Object Styler
  2857. :p.
  2858. The Workplace Shell Object Styler is a sample Workplace Shell SOM
  2859. application which demonstrates the basic functionality of a Workplace
  2860. Shell SOM application.
  2861. The application allows a user to change and save the basic style
  2862. attributes of any object that is dropped on it.
  2863. .*
  2864. :note.
  2865. Use this application with care, deselecting all of the items
  2866. (especially the Drag) will prevent you from using WPSTYLER again
  2867. in order to reinstate the styles.
  2868. .*
  2869. :p.
  2870. :hp2.Title Bar Text:ehp2.
  2871. :p.
  2872. You can modify the title bar text of the object from the Workplace
  2873. Shell Styler in addition to changing the object style.
  2874. Changing the title text here has the same effect as changing it
  2875. from the General page of the object itself.
  2876. :p.
  2877. :hp2.Items:ehp2.
  2878. .*
  2879. :ul.
  2880. :li.
  2881. Copy
  2882. :p.
  2883. Deselect this item to prevent the object from being copied.
  2884. The :hp2.Copy...:ehp2. item will be removed from the
  2885. pop-up menu.
  2886. :li.
  2887. Move
  2888. :p.
  2889. Deselect this item to prevent the object from being moved.
  2890. The :hp2.Move...:ehp2. item will be removed from the
  2891. pop-up menu.
  2892. :li.
  2893. Delete
  2894. :p.
  2895. Deselect this item to prevent the object from being deleted.
  2896. The :hp2.Delete...:ehp2. item will be removed from the
  2897. pop-up menu.
  2898. :li.
  2899. Rename
  2900. :p.
  2901. Deselect this item to prevent the object from being renamed.
  2902. No visual change can be observed.
  2903. :li.
  2904. Shadow
  2905. :p.
  2906. Deselect this item to prevent the object from being shadowed.
  2907. The :hp2.Create shadow...:ehp2. item will be removed
  2908. from the pop-up menu.
  2909. :li.
  2910. Print
  2911. :p.
  2912. Deselect this item to prevent the object from being printed.
  2913. The :hp2.Print...:ehp2. item will be removed from the
  2914. pop-up menu.
  2915. :p.
  2916. The print item is normally only visible on objects that can be printed
  2917. such as a document file viewed through the Drives folder.
  2918. Therefore, this item will have no effect on objects such as folders.
  2919. :li.
  2920. Template
  2921. :p.
  2922. Selecting this item will change the object into a template, at which
  2923. point you can only tear off objects from it.
  2924. :li.
  2925. Drop
  2926. :p.
  2927. Deselect this item to prevent objects from being dropped onto it.
  2928. :li.
  2929. Drag
  2930. :p.
  2931. Deselect this item with care.
  2932. This will prevent the object from being dragged; therefore you will
  2933. not be able to drag the object over the Workplace Shell Styler again
  2934. to change the item back.
  2935. :p.
  2936. Use this item where you wish to have an object remain on the Desktop
  2937. in a certain location and not give users the ability to change that location.
  2938. :eul.
  2939. .*
  2940. :p.
  2941. :hp2.Push buttons:ehp2.
  2942. .*
  2943. :ul.
  2944. :li.
  2945. Apply
  2946. :p.
  2947. Press this button to apply the changes immediately to the object while
  2948. remaining in the Workplace Shell Styler dialog window.
  2949. :li.
  2950. Undo
  2951. :p.
  2952. Press this button to undo any of the checkboxes changed since the
  2953. last apply.
  2954. :li.
  2955. Cancel
  2956. :p.
  2957. Press this button to cancel your changes and remain at the state you
  2958. started at or at the state of the last apply.
  2959. :note.
  2960. This is different than closing the window through the :hp2.Close:ehp2.
  2961. item on the system menu.
  2962. The system :hp2.Close:eph2. item saves the current state of the
  2963. checkboxes.
  2964. :li.
  2965. Help
  2966. :p.
  2967. This push button present this help panel.
  2968. :eul.
  2969. .*
  2970. :euserdoc.
  2971.  
  2972.  
  2973. ΓòÉΓòÉΓòÉ 3.3.1.6. Make File for Styler ΓòÉΓòÉΓòÉ
  2974.  
  2975. The following sample illustrates the make file (MAK): 
  2976.  
  2977. #
  2978. # Makefile module: WPSTYLER.MAK
  2979. #
  2980.  
  2981. .SUFFIXES: .c .obj .dll .idl .h .ih .rc .res
  2982.  
  2983. SC        = sc
  2984. SCFLAGS   = -maddstar -S128000 -C128000 -mnoint -v
  2985. SCLIST    = -s "ih;h;c;def"
  2986.  
  2987. TOOLKIT   = c:\toolkit
  2988. IBMCPP    = c:\ibmcpp
  2989.  
  2990. INCLUDE   = $(TOOLKIT)\h;$(IBMCPP)\include;.;$(INCLUDE)
  2991. SMINCLUDE = S(TOOLKIT)\idl;$(INCLUDE);$(SMINCLUDE)
  2992. LIB       = $(TOOLKIT)\lib;$(IBMCPP)\lib;$(LIB)
  2993. CFLAGS    = -Ge- -Ss+ -C+ -Kb -Q+ -Ms
  2994. LFLAGS    = /MAP /NOL /NOI /EXEPACK:2 /PACKCODE /PACKDATA /FAR /ALIGN:4
  2995.  
  2996. b=wpstyler
  2997.  
  2998. all:        $(b).dll $(b).ih $(b).hlp
  2999.  
  3000. .c.obj:     icc $(CFLAGS) $*.c
  3001.  
  3002. $(b).dll:   $(b).ih $(b).obj $(b).def $(b).res
  3003.             link386 $(b) $(LFLAGS), $(b).dll, $(b).map, somtk, $(b)
  3004.             rc $(b).res $(b).dll
  3005.             mapsym $(b).map
  3006.  
  3007. $(b).obj:   $(b).c $(b).h
  3008.  
  3009. $(b).res:   $(b).rc $(b).ico
  3010.             rc -r $(b).rc
  3011.  
  3012. $(b).ih:    $(b).idl
  3013.             $(SC) $(SCFLAGS) $(SCLIST) $(@B).idl
  3014.  
  3015. $(b).hlp:   $(b).ipf
  3016.             ipfc $(b).ipf
  3017.  
  3018. clean:
  3019.             -del $(b).ih  $(b).h  $(b).obj  $(b).dll
  3020.             -del $(b).map   $(b).sym  $(b).res  $(b).def
  3021.  
  3022.  
  3023. ΓòÉΓòÉΓòÉ 3.3.2. Representing the Styler Object ΓòÉΓòÉΓòÉ
  3024.  
  3025. Use the icon editor to create an icon that is suitable for representing the 
  3026. Styler object on the Desktop and save it as WPSTYLER.ICO. The following figure 
  3027. shows a sample icon for the Styler object: 
  3028.  
  3029. Now you are set to build and register your object with the Workplace Shell. 
  3030.  
  3031.  
  3032. ΓòÉΓòÉΓòÉ 4. Debugging Workplace Shell Applications ΓòÉΓòÉΓòÉ
  3033.  
  3034. Debugging a Workplace Shell application is somewhat like debugging a 
  3035. Presentation Manager application. But because Workplace Shell objects are 
  3036. implemented via DLLs instead of EXEs, they can be more of a challenge. This 
  3037. chapter describes the SOM and Workplace Shell facilities and techniques to aid 
  3038. debugging applications. 
  3039.  
  3040.  
  3041. ΓòÉΓòÉΓòÉ 4.1. About SOM Debugging Techniques ΓòÉΓòÉΓòÉ
  3042.  
  3043. Normally when an application is not working correctly, adding temporary printf 
  3044. statements or WinMessageBox calls can provide additional debugging information. 
  3045. SOM provides somPrintf that writes debugging information to the current stdout 
  3046. device. This is usually not convenient for Workplace Shell applications, 
  3047. because they are implemented in DLLs. 
  3048.  
  3049. To redirect the debugging output to another location, SOM provides a 
  3050. replaceable procedure called SOMOutCharRoutine. In addition to handling calls 
  3051. from somPrintf, the SOMOutCharRoutine is also invoked by the 
  3052. <classname>MethodDebug calls in every method. By replacing this procedure, 
  3053. output can be redirected from stdout to a more suitable location. When 
  3054. debugging is complete, the user-defined procedure can be removed or 
  3055. commented-out. 
  3056.  
  3057. Debugging information can be written to any number of places: 
  3058.  
  3059.    o  To stderr 
  3060.  
  3061.    o  To a window 
  3062.  
  3063.    o  To the clipboard 
  3064.  
  3065.    o  To a log file 
  3066.  
  3067.    o  Or any combination of the above. 
  3068.  
  3069.  
  3070. ΓòÉΓòÉΓòÉ 4.2. About Workplace Shell Debugging Techniques ΓòÉΓòÉΓòÉ
  3071.  
  3072. The Workplace process is the one under which all the Workplace Shell classes 
  3073. are loaded and initialized. Therefore, objects representing Workplace Shell 
  3074. classes and their subclasses must run on this process. The Workplace process is 
  3075. actually launched from the Shell process, which is the process indicated in the 
  3076. SET PROTSHELL= statement in the CONFIG.SYS file. Once the Shell process is 
  3077. running, it starts the Workplace process. It is the Shell process that is 
  3078. responsible for restarting the Workplace process in the event that it is killed 
  3079. as a result of a trap. The PROTSHELL= statement in the CONFIG.SYS file 
  3080. indicates which process is to be launched as the Shell process. The SET 
  3081. RUNWORKPLACE= statement in the CONFIG.SYS file indicates which process is to be 
  3082. the Workplace process. In the default configuration, both the PROTSHELL and 
  3083. RUNWORKPLACE environment variables are set to PMSHELL.EXE. PMSHELL.EXE is 
  3084. designed to distinguish between being started as the Shell process versus being 
  3085. started as the Workplace process. 
  3086.  
  3087.  
  3088. ΓòÉΓòÉΓòÉ 4.3. Using SOM Debugging Techniques ΓòÉΓòÉΓòÉ
  3089.  
  3090. This section describes two SOM techniques to aid debugging Workplace Shell 
  3091. applications: 
  3092.  
  3093.    o  One writes the information to a file 
  3094.  
  3095.    o  The other writes the information out through a serial port to an attached 
  3096.       computer or dumb terminal. 
  3097.  
  3098.  
  3099. ΓòÉΓòÉΓòÉ 4.3.1. Redirecting SOMOutCharRoutine to a File ΓòÉΓòÉΓòÉ
  3100.  
  3101. The following sample code shows how to direct somPrintf output to a file called 
  3102. C:\ERROR.TXT. Before enabling the replacement of SOMOutCharRoutine, the file is 
  3103. opened and a header is written to it. 
  3104.  
  3105. #define INCL_DOS
  3106. #define INCL_WINWORKPLACE
  3107.  
  3108. #include <os2.h>
  3109. #include <io.h>
  3110. #include <stdio.h>
  3111. #include <fcntl.h>
  3112. #include <sys\stat.h>
  3113. #include <string.h>
  3114. #include <som.h>
  3115.  
  3116. /* File to contain debugging error information */
  3117. static FILE *ErrorFile;
  3118.  
  3119. /**********************************************************************/
  3120. /*   This is the replacement for the default SOMOutCharRoutine.       */
  3121. /*   It writes the debugging information to a file on the hard drive  */
  3122. /*   instead of to stdout.                                            */
  3123. /**********************************************************************/
  3124.  
  3125. #pragma linkage(myCharacterOutputRoutine, system)
  3126.  
  3127. int SOMLINK myCharacterOutputRoutine(char chOut)
  3128. {
  3129.     fputc((int) chOut, ErrorFile);
  3130.     fflush(ErrorFile);
  3131.  
  3132.     return 1;   /* Indicate success */
  3133. }
  3134.    .
  3135.    .
  3136.    .
  3137.  
  3138. /**********************************************************************/
  3139. /*   Enable myCharacterOutputRoutine by opening the output error      */
  3140. /*   file and then changing the output character routine.             */
  3141. /**********************************************************************/
  3142.  
  3143. ErrorFile = fopen ("c:\\error.txt", "a");
  3144.  
  3145. fprintf (ErrorFile, "\nDebug information from my WPS Object\n");
  3146. fprintf (ErrorFile,   "------------------------------------\n");
  3147. setbuf  (ErrorFile, NULL);
  3148.  
  3149. SOM_TraceLevel  = 2;   /* Request maximum debugging information */
  3150. SOM_WarnLevel   = 2;
  3151. SOM_AssertLevel = 2;
  3152.  
  3153. /* All output goes to my routine after the next statement */
  3154.  
  3155. SOMOutCharRoutine = myCharacterOutputRoutine;
  3156.  
  3157.  
  3158. ΓòÉΓòÉΓòÉ 4.3.2. Redirecting SOMOutCharRoutine to a Serial Port ΓòÉΓòÉΓòÉ
  3159.  
  3160. Instead of directing the output to a file, the SOMOutCharRoutine procedure can 
  3161. be used to direct the output to a serial port. By connecting another computer 
  3162. or a dumb terminal to the serial port with a NULL modem cable, debugging 
  3163. information can be received on the remote terminal. A NULL modem cable is a 
  3164. specialized serial cable that has the transmit and receive wires crossed so 
  3165. that transmissions from one serial port are received by another. 
  3166.  
  3167. First, initialize the serial port using the OS/2 Mode command. This command can 
  3168. be added to the STARTUP.CMD file or entered from an OS/2 command prompt. The 
  3169. following example shows how to use the Mode command: 
  3170.  
  3171. MODE COM1 9600,n,8,1
  3172.  
  3173. Replace SOMOutCharRoutine with your procedure which directs somPrintf output to 
  3174. the COM1 serial port as shown in the following sample code: 
  3175.  
  3176. #define INCL_DOS
  3177. #define INCL_WINWORKPLACE
  3178.  
  3179. #include <os2.h>
  3180. #include <io.h>
  3181. #include <stdio.h>
  3182. #include <fcntl.h>
  3183. #include <sys\stat.h>
  3184. #include <string.h>
  3185. #include <som.h>
  3186.  
  3187. /* COM1 port for debugging information */
  3188. static FILE *DebugPort;
  3189.  
  3190. /**********************************************************************/
  3191. /*   This is the replacement for the default SOMOutCharRoutine.       */
  3192. /*   It writes the debugging information to the COM1 serial port      */
  3193. /*   instead of to stdout.                                            */
  3194. /**********************************************************************/
  3195.  
  3196. #pragma linkage(myCharacterOutputRoutine, system)
  3197.  
  3198. int SOMLINK myCharacterOutputRoutine(char chOut)
  3199. {
  3200.     fputc((int) chOut, DebugPort);
  3201.     fflush(DebugPort);
  3202.  
  3203.     return 1;   /* Indicate success */
  3204. }
  3205.    .
  3206.    .
  3207.    .
  3208.  
  3209. /**********************************************************************/
  3210. /*   Enable myCharacterOutputRoutine by opening the serial port       */
  3211. /*   and then changing the output character routine.                  */
  3212. /**********************************************************************/
  3213.  
  3214. DebugPort = fopen("COM1", "w");
  3215.  
  3216. fprintf(DebugPort, "\nDebug information from my WPS Object\n");
  3217. fprintf(DebugPort,   "------------------------------------\n");
  3218. setbuf(DebugPort, NULL);
  3219.  
  3220. SOM_TraceLevel  = 2;   /* Request maximum debugging information */
  3221. SOM_WarnLevel   = 2;
  3222. SOM_AssertLevel = 2;
  3223.  
  3224. /* All output goes to my routine after the next statement */
  3225.  
  3226. SOMOutCharRoutine = myCharacterOutputRoutine;
  3227.  
  3228.  
  3229. ΓòÉΓòÉΓòÉ 4.4. Using Workplace Shell Debugging Techniques ΓòÉΓòÉΓòÉ
  3230.  
  3231. This section describes how to use the PROTSHELL and RUNWORKPLACE variables to 
  3232. setup a development environment. It also provides two techniques to aid 
  3233. debugging Workplace Shell applications: 
  3234.  
  3235.    o  Lower level debugger, the Kernel Debugger 
  3236.  
  3237.    o  Source level debugger, IPMD 
  3238.  
  3239.  
  3240. ΓòÉΓòÉΓòÉ 4.4.1. Debugging with Useful CONFIG.SYS Statements ΓòÉΓòÉΓòÉ
  3241.  
  3242. The PROTSHELL= statement specifies the name of the program for the Shell 
  3243. process of the Workplace Shell. The default is PMSHELL.EXE. This program loads 
  3244. the Workplace process and handles restarting it, should it fail. 
  3245.  
  3246. The SET RUNWORKPLACE= statement specifies the name of the program for the 
  3247. Workplace process of the Workplace Shell. The default is also PMSHELL.EXE. 
  3248. PMSHELL recognizes whether it should act as the Shell process or as the 
  3249. Workplace process. Setting this to be CMD.EXE will cause an OS/2 command prompt 
  3250. to be started instead of the Workplace Shell process. 
  3251.  
  3252. The SET SHELLEXCEPTIONHANDLER=OFF statement disables the Workplace Shell trap 
  3253. handler. The default is ON, which can mask problems with a Workplace Shell 
  3254. application. 
  3255.  
  3256. The SET RESTARTOBJECTS=NO statement prevents objects from being re-opened or 
  3257. re-started when the Workplace Shell is initialized. This is useful when there 
  3258. is an object that is causing a problem in the Workplace Shell. 
  3259.  
  3260.  
  3261. ΓòÉΓòÉΓòÉ 4.4.2. Starting and Restarting the Workplace Shell ΓòÉΓòÉΓòÉ
  3262.  
  3263. The Workplace Shell starts automatically when OS/2 is booted. Because all 
  3264. Workplace Shell applications run under the Workplace process, one application 
  3265. with an error can cause the Workplace Shell to trap or to hang. Should the 
  3266. Workplace Shell become inoperative, the system must be rebooted. To avoid 
  3267. frequent reboots, one method that can be used is to start the Workplace Shell 
  3268. from an OS/2 window. Then should a hang occur, the Workplace Shell can be 
  3269. terminated by going to the OS/2 window and entering a Ctrl+Break. 
  3270.  
  3271. The procedure for manually starting and restarting the Workplace Shell is as 
  3272. follows: 
  3273.  
  3274.    1. Create a backup copy of your CONFIG.SYS file, for example: 
  3275.  
  3276.                COPY CONFIG.SYS CONFIG.WPS
  3277.  
  3278.    2. Edit CONFIG.SYS.  Find the following line: 
  3279.  
  3280.                SET RUNWORKPLACE=C:\OS2\PMSHELL.EXE
  3281.  
  3282.       where C: is your boot drive. This line sets the name of the interface to 
  3283.       be started for OS/2. PMSHELL.EXE is the program for the Workplace Shell. 
  3284.       Replace the line with the following: 
  3285.  
  3286.                SET RUNWORKPLACE=C:\OS2\CMD.EXE
  3287.  
  3288.       This changes the OS/2 interface from the Workplace Shell to an OS/2 
  3289.       session. 
  3290.  
  3291.    3. By default, the Workplace Shell attempts to recover from any traps caused 
  3292.       by itself or other Workplace Shell applications. Should this recovery 
  3293.       occur, you might see all the objects on the Desktop disappear temporarily 
  3294.       and then re-appear after the Workplace Shell re-initializes. The 
  3295.       Workplace Shell exception handler can be disabled by adding the following 
  3296.       line to the CONFIG.SYS file: 
  3297.  
  3298.                SET SHELLEXCEPTIONHANDLER=OFF
  3299.  
  3300.       With the exception handler disabled, errors will result in the typical 
  3301.       OS/2 error pop-up windows. Thus, errors encountered will not be masked by 
  3302.       the Workplace Shell's exception handler. However, the ability for the 
  3303.       Workplace Shell to recover from errors has been impacted. 
  3304.  
  3305.    4. Save the changes to CONFIG.SYS. These changes will not take effect until 
  3306.       a shutdown and reboot are performed. 
  3307.  
  3308.    5. Shutdown the system and then reboot. 
  3309.  
  3310.    6. After the system reboots, instead of bringing up the Workplace Shell 
  3311.       (PMSHELL.EXE), the system will bring up an OS/2 prompt (CMD.EXE). 
  3312.  
  3313.    7. Start another OS/2 session by issuing START or START /FS for a 
  3314.       full-screen session. This session can be used for running other programs 
  3315.       if needed. 
  3316.  
  3317.    8. Return to the original OS/2 session, and then manually start the 
  3318.       Workplace Shell by typing: 
  3319.  
  3320.                PMSHELL
  3321.  
  3322.  It is important to invoke PMSHELL from the first OS/2 session. There are two 
  3323.  reasons for this: 
  3324.  
  3325.    o  First, the Workplace Shell assumes that it is the first process in the 
  3326.       system. 
  3327.  
  3328.    o  Secondly, OS/2 assumes that the first application to create a message 
  3329.       queue is the Workplace Shell and allocates additional resources for it. 
  3330.       If another application creates a message queue before the Workplace 
  3331.       Shell, unpredictable problems occur when the Workplace Shell is started. 
  3332.  
  3333.  Now that the Workplace Shell has been started from an OS/2 session, should the 
  3334.  Workplace Shell trap or hang, it can be stopped by simply going back to that 
  3335.  OS/2 session and terminating the session, for example, by selecting the 
  3336.  Ctrl+Break keys. The Workplace Shell can then be restarted from the same 
  3337.  window by invoking PMSHELL again. 
  3338.  
  3339.  After the Workplace Shell has terminated, the DLLs containing Workplace Shell 
  3340.  objects should be unlocked. This allows them to be deleted or replaced before 
  3341.  restarting the Workplace Shell. 
  3342.  
  3343.  
  3344. ΓòÉΓòÉΓòÉ 4.4.3. Debugging with the Kernel Debugger ΓòÉΓòÉΓòÉ
  3345.  
  3346. The Kernel debugger included with the OS/2 Toolkit is a low-level debugger 
  3347. oriented toward system and device-driver debugging. The kernel debugger can 
  3348. assist in debugging Workplace Shell applications until higher-level debuggers, 
  3349. such as IPMD, can provide adequate debugging functions in complex situations. 
  3350.  
  3351. When the Kernel debugger is installed, two files are copied to the root 
  3352. directory of the boot drive:  OS2KRNL and OS2KRNL.SYM. OS2KRNL is a hidden 
  3353. file, which will be renamed OS2KRNL.RTL when debugging is active. Because the 
  3354. Kernel debugger supports symbolic debugging, numerous symbol files (.SYM files) 
  3355. are copied to the \OS2\DEBUG\DLL directory. These symbol files contain 
  3356. information on symbols defined and used by OS/2. 
  3357.  
  3358. To make symbols defined in your Workplace Shell application available to the 
  3359. Kernel debugger, use the MAPSYM program. MAPSYM converts the .MAP file 
  3360. generated by the linker to a .SYM file. The .SYM file should reside in the same 
  3361. directory as the .EXE or .DLL executable file it represents and it should have 
  3362. the same name. 
  3363.  
  3364. When using the Kernel debugger, it is a good idea to use the functionprefix= 
  3365. modifier in the IDL file implementation statement. There are three reasons for 
  3366. this: 
  3367.  
  3368.    o  All the methods in the class start with the same prefix 
  3369.  
  3370.    o  The methods are not static 
  3371.  
  3372.    o  It is easier to locate the appropriate methods in the debugger and to set 
  3373.       breakpoints. 
  3374.  
  3375.  In the following sample code, the methods generated are called Dogdisplay and 
  3376.  Dogbark. 
  3377.  
  3378.   /****************************************************************/
  3379.   /* By adding the functionprefix= modifier to the class, all     */
  3380.   /* methods defined will be unique, for example, Dogbark.        */
  3381.   /* This is useful when debugging, because every method in the   */
  3382.   /* class will start with this prefix and will not be static.    */
  3383.   /****************************************************************/
  3384.  
  3385.   #ifndef dogdbug_idl
  3386.     #define dogdbug_idl
  3387.  
  3388.     #include <somobj.idl>
  3389.  
  3390.     interface Dog : SOMObject
  3391.     {
  3392.       attribute string breed;
  3393.  
  3394.       // The breed for the dog
  3395.       void display();
  3396.  
  3397.       // Display characteristics for this dog
  3398.       void bark();
  3399.  
  3400.       // Have the dog bark
  3401.       #ifdef __SOMIDL__
  3402.         implementation
  3403.       {
  3404.         releaseorder:  _get_breed, _set_breed, display, bark;
  3405.  
  3406.         //# Class modifiers
  3407.         functionprefix = Dog;   // This will help when debugging
  3408.         callstyle      = oidl;
  3409.         majorversion   = 1;
  3410.         minorversion   = 2;
  3411.  
  3412.       }; #endif /* __SOMIDL__ */
  3413.  
  3414.     }; #endif
  3415.  
  3416.  As soon as the Kernel debugger is active, use the .p command to display 
  3417.  process information. The Process ID (pid) of the Shell process and the 
  3418.  Workplace process can be located quickly using this command. The following 
  3419.  figure shows an example of the information you obtain when using the .p 
  3420.  command: 
  3421.  
  3422.        ## .p
  3423.          Slot  Pid  Ppid Csid Ord  Sta Pri  pTSD     pPTDA    pTCB     Disp SG Name
  3424.          0001  0001 0000 0000 0001 blk 0100 ffe3a000 ffe3c7d4 ffe3c620 1e7c 00 *ager
  3425.          0002  0001 0000 0000 0002 blk 0200 7b92a000 ffe3c7d4 7bb28020 1f3c 00 *tsd
  3426.          0003  0001 0000 0000 0003 blk 0200 7b92c000 ffe3c7d4 7bb281d4 1f50 00 *ctxh
  3427.          0004  0001 0000 0000 0004 blk 081f 7b92e000 ffe3c7d4 7bb28388 1f48 00 *kdb
  3428.          0005  0001 0000 0000 0005 blk 0800 7b930000 ffe3c7d4 7bb2853c 1f20 00 *lazyw
  3429.          0006  0001 0000 0000 0006 blk 0800 7b932000 ffe3c7d4 7bb286f0 1f3c 00 *asyncr
  3430.          0008  0005 0001 0005 0001 blk 0200 7b936000 7bb458a4 7bb28a58      00 cmd
  3431.        *0009# 0006 0005 0006 0001+--------------------------+7bb28c0c 1eb8 01 pmshell
  3432.          000d  0006 0005 0006 0002|                          |7bb292dc      01 pmshell
  3433.          000e  0006 0005 0006 0003|   In this example,       |7bb29490      01 pmshell
  3434.          000f  0006 0005 0006 0004|   Pid #6 is the first    |7bb29644      01 pmshell
  3435.          0010  0006 0005 0006 0005|   PMSHELL process, or    |7bb297f8      01 pmshell
  3436.          0007  0006 0005 0006 0006|   the "Shell process".   |7bb288a4 1ecc 01 pmshell
  3437.          0013  0006 0005 0006 0007|                          |7bb29d14      01 pmshell
  3438.          0015  0006 0005 0006 0008+--------------------------+7bb2a07c      01 pmshell
  3439.          0016  0006 0005 0006 0009 blk 0200 7b952000 7bb44020 7bb2a230      01 pmshell
  3440.          0017  0006 0005 0006 000a blk 0800 7b954000 7bb44020 7bb2a3e4      01 pmshell
  3441.          0018  0006 0005 0006 000b blk 0800 7b956000 7bb44020 7bb2a598      01 pmshell
  3442.          0019  0006 0005 0006 000c blk 0800 7b958000 7bb44020 7bb2a74c      01 pmshell
  3443.          001a  0006 0005 0006 000d blk 0804 7b95a000 7bb44020 7bb2a900      01 pmshell
  3444.          001b  0006 0005 0006 000e blk 0804 7b95c000 7bb44020 7bb2aab4      01 pmshell
  3445.          001c  0006 0005 0006 000f blk 0500 7b95e000 7bb44020 7bb2ac68      01 pmshell
  3446.          001d  0006 0005 0006 0010 blk 0800 7b960000 7bb44020 7bb2ae1c 1bb0 01 pmshell
  3447.          Slot  Pid  Ppid Csid Ord  Sta Pri  pTSD     pPTDA    pTCB     Disp SG Name
  3448.          001e  0006 0005 0006 0011 blk 0800 7b962000 7bb44020 7bb2afd0 1b8c 01 pmshell
  3449.          001f  0006 0005 0006 0012 blk 0200 7b964000 7bb44020 7bb2b184      01 pmshell
  3450.          000a  0003 0000 0003 0001 blk 0200 7b93a000 7bb4484c 7bb28dc0      00 lanmsgex
  3451.          000b  0004 0000 0004 0001 blk 0200 7b93c000 7bb45078 7bb28f74      00 lsdaemon
  3452.          000c  0007 0006 0007 0001 blk 0800 7b93e000 7bb460d0 7bb29128      00 harderr
  3453.          0011  0007 0006 0007 0002 blk 0800 7b948000 7bb460d0 7bb299ac      00 harderr
  3454.          0012  0007 0006 0007 0003 blk 0800 7b94a000 7bb460d0 7bb29b60      00 harderr
  3455.          0014  0008 0000 0008 0001 blk 0200 7b94e000 7bb468fc 7bb29ec8      01 stoplan
  3456.          0020  0009 0006 0009 0001 blk 0500 7b966000 7bb47128 7bb2b338 1eb8 10 pmshell
  3457.          0021  0009 0006 0009 0002 blk 0200 7b968000 7bb47128 7bb2b4ec      10 pmshell
  3458.          0022  0009 0006 0009 0003+--------------------------+7bb2b6a0 1eb8 10 pmshell
  3459.          0023  0009 0006 0009 0004|                          |7bb2b854 1ecc 10 pmshell
  3460.          0024  0009 0006 0009 0005|   In this example,       |7bb2ba08      10 pmshell
  3461.          0025  0009 0006 0009 0006|   Pid #9 is the second   |7bb2bbbc      10 pmshell
  3462.          0026  0009 0006 0009 0007|   PMSHELL process, or    |7bb2bd70      10 pmshell
  3463.          0027  0009 0006 0009 0008|   the "Workplace         |7bb2bf24      10 pmshell
  3464.          0028  0009 0006 0009 0009|   process".              |7bb2c0d8      10 pmshell
  3465.          002a  0009 0006 0009 000b|                          |7bb2c440 1eac 10 pmshell
  3466.          002b  0009 0006 0009 000c+--------------------------+7bb2c5f4 1eb8 10 pmshell
  3467.          0029  000a 0006 000a 0001 blk 0200 7b978000 7bb47954 7bb2c28c      11 cmd
  3468.          002c  000b 0006 000b 0001 blk 0200 7b97e000 7bb48180 7bb2c7a8      12 cmd
  3469.          002f  001f 0006 001f 0001 blk 0200 7b984000 7bb4a230 7bb2ccc4      15 cmd
  3470.          Slot  Pid  Ppid Csid Ord  Sta Pri  pTSD     pPTDA    pTCB     Disp SG Name
  3471.          0030  001d 0006 001d 0001 blk 0200 7b986000 7bb49a04 7bb2ce78      13 cmd
  3472.        ##
  3473.  
  3474.  The Kernel debug command VSF * sets the trap vectors. This allows traps in the 
  3475.  Workplace Shell application to be located quickly. The Kernel debugger stops 
  3476.  on the instruction that is about to cause a trap when these vectors are set. 
  3477.  In this way, it is possible to examine the stack and registers to determine 
  3478.  the cause of the trap. 
  3479.  
  3480.  
  3481. ΓòÉΓòÉΓòÉ 4.4.4. Debugging with IPMD ΓòÉΓòÉΓòÉ
  3482.  
  3483. The Starting and Restarting the Workplace Shell technique can also be used when 
  3484. a source level debugger is needed. Follow the same steps as outlined in that 
  3485. section, but instead of simply invoking PMSHELL, invoke the debugger, as 
  3486. follows: 
  3487.  
  3488.    IPMD PMSHELL
  3489.  
  3490. The debugger initializes, but the Workplace Shell does not start running. The 
  3491. steps to be followed are: 
  3492.  
  3493.    1. Select the Startup option from the File pull-down menu, as shown in the 
  3494.       following figure: 
  3495.  
  3496.    2. Select the Debug program initialization option, as shown in the following 
  3497.       figure: 
  3498.  
  3499.    3. Select the Load Occurence option from the Breakpoints pull-down menu, as 
  3500.       shown in the following figure: 
  3501.  
  3502.    4. Enter a breakpoint by specifying the name (but not the path) of the DLL, 
  3503.       for example, DOG.DLL. Then, select the Set push button, as shown in the 
  3504.       following figure: 
  3505.  
  3506.    5. Set any other breakpoints you wish at this time. Select the OK push 
  3507.       button when finished. 
  3508.  
  3509.    6. Select the Run option from the Breakpoints pull-down menu, as shown in 
  3510.       the following figure: 
  3511.  
  3512.  
  3513.  The Workplace Shell will then initialize (very slowly) and the debugger will 
  3514.  stop when one of the specified breakpoints is reached. 
  3515.  
  3516.  Debugging a Workplace Shell application using IPMD will be much the same as 
  3517.  debugging a PM application. Remember that if you manually enter the name of a 
  3518.  class or instance variable into IPMD, you must prefix the name with somThis 
  3519.  instead of using the underscore ( _ ) macro. In the sample code fragment 
  3520.  illustrated in the following figure, to manipulate the _hIcon variable in 
  3521.  IPMD, use somThishIcon instead of _hIcon (selecting _hIcon with the mouse 
  3522.  works as expected). 
  3523.  
  3524.   /****************************************************/
  3525.   /*  Method: wpclsInitData                           */
  3526.   /*                                                  */
  3527.   /*  This sample shows how to initialize class data  */
  3528.   / *  associated with MyDataBase.                    */
  3529.   /****************************************************/
  3530.  
  3531.   SOM_Scope void SOMLINK MyDataBaseM_wpclsInitData(M_MyDataBase *somSelf)
  3532.   {
  3533.     /* M_MyDataBaseData *somThis = M_MyDataBaseGetData(somSelf); */
  3534.     M_MyDataBaseMethodDebug("M_MyDataBase","MyDataBaseM_wpclsInitData");
  3535.  
  3536.     hModule = _clsQueryModuleHandle(somSelf);
  3537.  
  3538.     _hIcon = WinLoadPointer(HWND_DESKTOP, hModule, ID_WINDOW);
  3539.  
  3540.     parent_wpclsInitData(somSelf);
  3541.   }
  3542.  
  3543.  
  3544. ΓòÉΓòÉΓòÉ 5. Object Aid: Help Methods ΓòÉΓòÉΓòÉ
  3545.  
  3546. This chapter describes how to write Workplace Shell applications that provide 
  3547. help information. 
  3548.  
  3549.  
  3550. ΓòÉΓòÉΓòÉ 5.1. About Help Methods ΓòÉΓòÉΓòÉ
  3551.  
  3552. While running an application or viewing a document, the user may require help 
  3553. on the application or document. For example, an application may be a descendant 
  3554. of WPFolder class, to which you added a new context menu. You then need to 
  3555. provide a help dialog for this new context menu. It is important to include the 
  3556. help information for all applications as it is used often. This chapter 
  3557. describes different methods that can be overridden in order to provide help 
  3558. from an application window when a user requests it either by: 
  3559.  
  3560.    o  Pressing the F1 key 
  3561.    o  Selecting a Help push button 
  3562.    o  Selecting an item from a Help submenu. 
  3563.  
  3564.  
  3565. ΓòÉΓòÉΓòÉ 5.1.1. Query and Set Object-Specific Help ΓòÉΓòÉΓòÉ
  3566.  
  3567. To query and set object-specific help for an instance of the object override 
  3568. wpQueryDefaultHelp and wpSetDefaultHelp. 
  3569.  
  3570. The wpQueryDefaultHelp method queries the default help panel ID and help 
  3571. library for this instance of the object class, as shown in the following 
  3572. figure: It automatically returns the class default help, if no object-specific 
  3573. help has been provided. 
  3574.  
  3575. wpQueryDefaultHelp (WPObject *somSelf,
  3576.                     PULONG pHelpPanelId,
  3577.                     PSZ HelpLibrary)
  3578.  
  3579. where
  3580.        pHelpPanelId  - Pointer to the help panel ID
  3581.        HelpLibrary   - Help library name returned in the buffer
  3582.  
  3583. The wpSetDefaultHelp method sets the default help panel ID and help library for 
  3584. this instance of the object class, as shown in the following figure: It allows 
  3585. different instances to have different helps displayed. Using the value zero for 
  3586. HelpPanelId and NULL for HelpLibrary, will reset the object to the default 
  3587. class help panel. 
  3588.  
  3589. wpSetDefaultHelp (WPObject *somSelf,
  3590.                   ULONG HelpPanelId,
  3591.                   PSZ HelpLibrary)
  3592.  
  3593. where
  3594.        HelpPanelId   - Help panel identity
  3595.        HelpLibrary   - Help library name returned in the buffer
  3596.  
  3597.  
  3598. ΓòÉΓòÉΓòÉ 5.1.2. Setup Strings ΓòÉΓòÉΓòÉ
  3599.  
  3600. An object's default help panel ID and help library can be set using setup 
  3601. strings. The pszSetupString contains a series of keynames in which each is 
  3602. separated by semicolons, and which changes the behavior of the object. The 
  3603. following table shows the keynames used to set the default help panel ID and 
  3604. help library: 
  3605.  
  3606. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3607. ΓöéKeyname                       ΓöéDescription                   Γöé
  3608. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3609. ΓöéHELPPANEL = id                ΓöéSets the object's default helpΓöé
  3610. Γöé                              Γöépanel. This is equivalent to  Γöé
  3611. Γöé                              Γöécalling wpSetDefaultHelp.     Γöé
  3612. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3613. ΓöéHELPLIBRARY = myobject.hlp    ΓöéSets the default help library Γöé
  3614. Γöé                              Γöéfor the object's instance.    Γöé
  3615. Γöé                              ΓöéThis is equivalent to calling Γöé
  3616. Γöé                              ΓöéwpSetDefaultHelp.             Γöé
  3617. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3618.  
  3619. The following methods can be called to set the object's default help panel ID 
  3620. and help library using setup strings: 
  3621.  
  3622.    o  wpSetup(WPObject *self, PSZ pszSetupString) 
  3623.  
  3624.    o  WinCreateObject(PSZ pszClassName, PSZ pszTitle, PSZ pszSetupString, PSZ 
  3625.       pszLocation, ULONG ulFlags) 
  3626.  
  3627.    o  WinSetObjectData(HOBJECT hObject, PSZ pszSetupString) 
  3628.  
  3629.  
  3630. ΓòÉΓòÉΓòÉ 5.1.3. REXX Functions ΓòÉΓòÉΓòÉ
  3631.  
  3632. The following REXX functions can be called to set the help panel ID and help 
  3633. library: 
  3634.  
  3635.    o  SysCreateObject(classname, title, location, setup, Flag) 
  3636.  
  3637.    o  SysSetObjectData(objectid, setup). 
  3638.  
  3639.  
  3640. ΓòÉΓòÉΓòÉ 5.2. Using Help Methods ΓòÉΓòÉΓòÉ
  3641.  
  3642. This section explains, through the use of sample code fragments, how to: 
  3643.  
  3644.    o  Display the Help dialog for a pop-up menu item 
  3645.    o  Modify the Help dialog for a pop-up menu item 
  3646.    o  Query when a user requests help from an application window. 
  3647.  
  3648.  
  3649. ΓòÉΓòÉΓòÉ 5.2.1. Displaying the Help Dialog for a Pop-Up Menu Item ΓòÉΓòÉΓòÉ
  3650.  
  3651. To display the Help dialog for a pop-up menu item, override 
  3652. wpMenuItemHelpSelected. Derived classes can override this method to: 
  3653.  
  3654.    o  Add the Help dialog for a new pop-up menu item 
  3655.    o  Modify the Help dialog for an existing menu item. 
  3656.  
  3657.  The three following sample codes show how to override wpMenuItemHelpSelected. 
  3658.  They present the class interface definition (IDL), source code (C), and 
  3659.  Information Presentation Facility (IPF) files, respectively. 
  3660.  
  3661.   passthru: C.ih;
  3662.      .
  3663.      .
  3664.      #define IDM_CLOSEVIEWS       (WPMENUID_USER+1)
  3665.      #define ID_HELP_CLOSEVIEWS   257
  3666.      .
  3667.      .
  3668.   endpassthru;
  3669.  
  3670.   //# Method modifiers
  3671.      .
  3672.      .
  3673.   wpMenuItemHelpSelected: override;
  3674.      .
  3675.      .
  3676.  
  3677.  The following sample code shows the source code for MYOBJECT when using 
  3678.  wpMenuItemHelpSelected: 
  3679.  
  3680.   /*
  3681.    *  METHOD: wpMenuItemHelpSelected
  3682.    *
  3683.    *  DESCRIPTION:
  3684.    *
  3685.    *    Process the help submenu item that was added.
  3686.    */
  3687.   SOM_Scope BOOL SOMLINK myobj_wpMenuItemHelpSelected(MYOBJECT *somSelf,
  3688.                                                       ULONG MenuId)
  3689.  
  3690.   {
  3691.     MYOBJECTData *somThis = MYOBJECTGetData(somSelf);
  3692.     MYOBJECTMethodDebug("MYOBJECT","myobj_wpMenuItemHelpSelected");
  3693.  
  3694.     switch(MenuId)
  3695.     {
  3696.       case IDM_CLOSEVIEWS:
  3697.  
  3698.       /* Append the new help library onto the system library, by calling
  3699.        * wpDisplayHelp(WPObject *self, ULONG HelpPanelId, PSZ HelpLibrary).
  3700.        * wpDisplayhelp sends a message to the help manager to display the help
  3701.        * panel.  ID_HELP_CLOSEVIEWS should have the same value as the resid in
  3702.        * the Information Presentation Facilty (MYOBJECT.IPF), that is, in this
  3703.        * particular case, ID_HELP_CLOSEVIEWS is defined as 257 and the resid
  3704.        * for the context menu help item in MYOBJECT.IPF is also 257.
  3705.        */
  3706.  
  3707.       return(_wpDisplayHelp(somSelf,ID_HELP_CLOSEVIEWS,szHelpLibrary));
  3708.       break;
  3709.  
  3710.       default:
  3711.       break;
  3712.     }
  3713.  
  3714.     /* Always return the parent's method in case of default */
  3715.     return (parent_wpMenuItemHelpSelected(somSelf,MenuId));
  3716.   }
  3717.  
  3718.  The following sample code illustrates the OS/2 Information Presentation 
  3719.  Facility (IPF) for the class MYOBJECT: 
  3720.  
  3721.   .*===============================================================*\
  3722.   .*                                                               *
  3723.   .* myobject.ipf - Information Tag Language file for the MYOBJECT *
  3724.   .*                Class sample application's help manager        *
  3725.   .*                                                               *
  3726.   .*===============================================================*/
  3727.   :userdoc.
  3728.  
  3729.   .*---------------------------------------------------------------*\
  3730.   .*  Default Help for MYOBJECT class                              *
  3731.   .*      res = ID_HELP_DEFAULT                                    *
  3732.   .*---------------------------------------------------------------*/
  3733.   :h1 res=256 name=ID_HELP_DEFAULT.MYOBJECT Class -- Help
  3734.   :i1 id=aboutMain.About MYOBJECT Class
  3735.   :p.This Class is a subclass of WPObject.
  3736.  
  3737.   .*---------------------------------------------------------------*\
  3738.   .*  Context Menu Item help                                       *
  3739.   .*      res = ID_HELP_CLOSEVIEWS                                 *
  3740.   .*---------------------------------------------------------------*/
  3741.   :h1 res=257 name=ID_HELP_CLOSEVIEWS.Close Views Menu Item
  3742.   :i1 id=IV.CloseViews
  3743.   :p.When this context menu item is chosen, all currently open views
  3744.   of this folder will be closed, except for the view that was
  3745.   initially opened.  If no views are currently open, then no action will
  3746.   be taken.
  3747.  
  3748.   :euserdoc.
  3749.  
  3750.  
  3751. ΓòÉΓòÉΓòÉ 5.2.2. Requesting Help from an Application Window ΓòÉΓòÉΓòÉ
  3752.  
  3753. When a user requests help from an application window by pressing the F1 key, 
  3754. the wpclsQueryDefaultHelp method should be overridden, as shown in the 
  3755. following figure: 
  3756.  
  3757. wpclsQueryDefaultHelp(M_MYOBJECT *somSelf,
  3758.                       PULONG pHelpPanelId,
  3759.                       PSZ HelpLibrary)
  3760.  
  3761. where
  3762.        pHelpPanelId  - Pointer to the help panel ID
  3763.        HelpLibrary   - Help library name returned in the buffer
  3764.  
  3765. This method is called to allow the class object to specify its default help 
  3766. panel for its instances. This class method is called during the default 
  3767. processing of wpQueryDefaultHelp. It can be called at any time in order to 
  3768. determine the default help panel for the object class. The WPObject class does 
  3769. not process this method other than returning FALSE. Derived classes can 
  3770. override this method to provide the default help panel ID and help module name 
  3771. for their object instances. All classes should override this method to tell the 
  3772. system what help they want displayed when the user selects the F1 key. In this 
  3773. case, also, the value of ID_HELP_DEFAULT should be the same as the resid for 
  3774. the default help for MYOBJECT class in the IPF file. The three following sample 
  3775. codes show how to override wpclsQueryDefaultHelp. They present the class 
  3776. interface definition (IDL), source code (C), and make (MAK) files, 
  3777. respectively. 
  3778.  
  3779. passthru: C.ih;
  3780.     .
  3781.     .
  3782.   #define ID_HELP_DEFAULT  256
  3783.     .
  3784.     .
  3785.  
  3786. endpassthru;
  3787.  
  3788. //# Class modifiers
  3789.     .
  3790.     .
  3791. wpclsQueryDefaultHelp: override;
  3792.     .
  3793.     .
  3794.  
  3795. The following sample code shows the source code of MYOBJECT when overriding 
  3796. wpclsQueryDefaultHelp: 
  3797.  
  3798. /*
  3799.  *  METHOD: wpclsQueryDefaultHelp
  3800.  *
  3801.  *  DESCRIPTION:
  3802.  *
  3803.  *    Process input from the help submenu item that was added.
  3804.  */
  3805. SOM_Scope BOOL SOMLINK myobjM_wpclsQueryDefaultHelp(M_MYOBJECT *somSelf,
  3806.                                                     PULONG pHelpPanelId,
  3807.                                                     PSZ pszHelpLibrary)
  3808.  
  3809. {
  3810.   /* M_MYOBJECTData *somThis = M_MYOBJECTGetData(somSelf); */
  3811.   M_MYOBJECTMethodDebug("M_MYOBJECT","myobjM_wpclsQueryDefaultHelp");
  3812.  
  3813.   if (pHelpPanelId)    /* Set the default help panel ID */
  3814.     *pHelpPanelId = ID_HELP_DEFAULT;
  3815.  
  3816.   if (pszHelpLibrary)  /* Copy the help file name */
  3817.     strcpy(pszHelpLibrary, szHelpLibrary);
  3818.  
  3819.   return (TRUE);
  3820. }
  3821.  
  3822. The help library can be created by using the IPFC compiler. The following 
  3823. figure shows the make file of MYOBJECT: 
  3824.  
  3825. myobject.hlp:  $$(@B).ipf
  3826.                ipfc $*.ipf
  3827.  
  3828.  
  3829. ΓòÉΓòÉΓòÉ 6. Object Containers: Container Methods ΓòÉΓòÉΓòÉ
  3830.  
  3831. A container is a visual component that holds objects. CUA container control is 
  3832. the primary way of interacting with Workplace Shell objects. All objects with 
  3833. which the user interacts are simply records that have been inserted into a 
  3834. container control. Any Workplace Shell object can be inserted into any 
  3835. container control created on the Workplace process. This chapter describes the 
  3836. different views available for containers, and the methods used to create and 
  3837. manipulate containers in Workplace Shell applications. 
  3838.  
  3839.  
  3840. ΓòÉΓòÉΓòÉ 6.1. About Container Methods ΓòÉΓòÉΓòÉ
  3841.  
  3842. A container can display objects in various formats and views. Generally 
  3843. speaking, each view displays different information about each object. If a 
  3844. container's data is too large for the window's work area, scrolling mechanisms 
  3845. are enabled. Containers are an integral component of the CUA user interface. 
  3846.  
  3847.  
  3848. ΓòÉΓòÉΓòÉ 6.1.1. Container Views ΓòÉΓòÉΓòÉ
  3849.  
  3850. A Container view lists the components of an object. The components can be 
  3851. ordered or unordered in the view; the order of the information displayed in a 
  3852. contents view does not affect the meaning of the object containing the 
  3853. information. CUA guidelines describe three kinds of Container views: 
  3854.  
  3855.    o  Icon view 
  3856.  
  3857.       An Icon view displays each object as an icon. Its purpose is to give the 
  3858.       user an easy way to change the position of objects or to otherwise 
  3859.       directly manipulate them. 
  3860.  
  3861.       An object usually is represented by only one icon. However, for some 
  3862.       tasks, the user might find it convenient to represent an object with more 
  3863.       than one icon. For example, the user might want a representation of a 
  3864.       printer object in more than one place so that the user can have easy 
  3865.       access to the printer from anywhere. The user can create an additional 
  3866.       icon, known as a shadow, to represent the same printer object. The 
  3867.       following figure shows an Icon view with objects: 
  3868.  
  3869.    o  Tree view 
  3870.  
  3871.       The Tree view displays container objects arranged hierarchically. 
  3872.  
  3873.       The leftmost objects displayed in the Tree view are at the root level and 
  3874.       are the same objects displayed in all the other Container views. Objects 
  3875.       that contain other objects are called parent objects. The objects that a 
  3876.       parent object contains are called child objects and can be displayed only 
  3877.       in the Tree view. Child objects that contain other objects serve a dual 
  3878.       role: they are the children of their parent object, but they are parent 
  3879.       objects as well, with children of their own. For example, a parent object 
  3880.       might be a book that contains individual child objects for its chapters 
  3881.       or a folder that contains several reports. The chapters or reports, in 
  3882.       turn, could be parent objects that contain their own children, such as 
  3883.       the major sections of a chapter or report. 
  3884.  
  3885.       If the child objects of a parent object are not displayed, the parent 
  3886.       object can be Expanded to display them as a new branch in the Tree view. 
  3887.       Once a parent item has been expanded, it can be Collapsed to remove its 
  3888.       child objects from the display. The following figure shows a Tree view 
  3889.       with objects: 
  3890.  
  3891.    o  Details view 
  3892.  
  3893.       A Details view combines small icons with text that provides additional 
  3894.       information about objects. The type of information displayed depends on 
  3895.       the type of object and the type of tasks the user wants to perform. A 
  3896.       Details view gives the user access to some of the object's more 
  3897.       frequently used information, without requiring the user to open the 
  3898.       object. Small icons are included in a Details view to provide a way for 
  3899.       the user to easily recognize objects and to directly manipulate each 
  3900.       object. Some Workplace Shell classes define a set of information that a 
  3901.       user can display in a Details view of all instances of objects belonging 
  3902.       to the class. The following figure shows a Details view with objects: 
  3903.  
  3904.  
  3905. ΓòÉΓòÉΓòÉ 6.1.2. Container Objects ΓòÉΓòÉΓòÉ
  3906.  
  3907. A container object holds other objects. Its primary purpose is to provide a way 
  3908. for the user to group related objects for easy access and retrieval. To 
  3909. illustrate its importance, consider the example of the design of a software 
  3910. model of a car dealership. A salesperson needs a car object to represent each 
  3911. car model on his lot. He also needs a customer object to represent each 
  3912. customer who purchases a car. He needs a worksheet object to track sales, 
  3913. profits, inventory, customers, and so on. Finally, he needs a container objects 
  3914. to group these objects. The following figure shows a container holding several 
  3915. related objects: 
  3916.  
  3917.  
  3918. ΓòÉΓòÉΓòÉ 6.2. Using Container Methods ΓòÉΓòÉΓòÉ
  3919.  
  3920. This section provides an example of what the Workplace Shell covers versus the 
  3921. container control. Secondly, it explains why the Workplace Shell subclasses the 
  3922. owner of a container and the frame window. Finally, this section describes the 
  3923. Workplace Shell container methods. More specifically, it explains how to: 
  3924.  
  3925.    o  Insert one object into a container 
  3926.  
  3927.    o  Insert multiple objects into a container 
  3928.  
  3929.    o  Remove an object from a container 
  3930.  
  3931.    o  Set emphasis on an object 
  3932.  
  3933.    o  Register a new open view 
  3934.  
  3935.    o  Obtain the object's MINIRECORDCORE pointer 
  3936.  
  3937.    o  Obtain a pointer to an object 
  3938.  
  3939.  
  3940. ΓòÉΓòÉΓòÉ 6.2.1. Workplace Shell and the Container Control ΓòÉΓòÉΓòÉ
  3941.  
  3942. CUA container control is the primary key of interacting with Workplace Shell 
  3943. objects. All objects with which the user interacts are simply records that have 
  3944. been inserted into a container control. 
  3945.  
  3946. The container control uses RECORDCORE and MINIRECORDCORE structures to 
  3947. represent the items that it holds. Memory for these structures is allocated by 
  3948. sending the container a CM_ALLOCRECORD message. When memory is allocated, the 
  3949. records may be inserted using the CM_INSERTRECORD message. The Workplace Shell 
  3950. provides object instance methods that perform all of this for you. 
  3951.  
  3952. When an object is created, the Workplace Shell automatically allocates memory 
  3953. for the MINIRECORDCORE structure and stores the pointer in the object's 
  3954. instance data. Only one MINIRECORDCORE per object is used even if the object 
  3955. exists in multiple views. 
  3956.  
  3957. The wpQueryCoreRecord method can be used to obtain the pointer to the 
  3958. MINIRECORDCORE structure that was allocated when the object was created. You 
  3959. would use this method to obtain a pointer to the MINIRECORDCORE structure that 
  3960. the container is using to represent the object. This may be necessary if you 
  3961. need to perform a task and no instance method for that task exists. If the 
  3962. container can perform the task, the application can use _wpQueryCoreRecord to 
  3963. obtain the PMINIRECORDCORE and send the container a message explicitly. The 
  3964. OBJECT_FROM_PREC macro performs the inverse function of _wpQueryCoreRecord and 
  3965. is used to obtain a pointer to the object (self) when the pointer to the 
  3966. MINIRECORDCORE structure is known. 
  3967.  
  3968.  
  3969. ΓòÉΓòÉΓòÉ 6.2.2. Workplace Shell Container Owner Subclass Procedure ΓòÉΓòÉΓòÉ
  3970.  
  3971. Any Workplace Shell object can be inserted into any container control created 
  3972. on the Workplace process using wpCnrInsertObject. When an object is inserted 
  3973. into a container via _wpCnrInsertObject, the Workplace Shell subclasses the 
  3974. owner of the container, and intercept some messages and notifications from the 
  3975. container. In this way, the Workplace Shell provides support that maps 
  3976. container records to their WPObject counterparts, and related behaviors. In 
  3977. other words, using the object's instance methods to insert an object into a 
  3978. container allows the object to inherit all of the Workplace Shell features, 
  3979. such as context menu, and Pickup and Drop operation. 
  3980.  
  3981. Note:  Since the Workplace Shell subclasses the container control's owner, you 
  3982.        can only have ONE container control into which you are inserting objects 
  3983.        per owner. This means you may have to expand your window hierarchy. 
  3984.  
  3985.  When a view is registered, the Workplace Shell subclasses the frame window. 
  3986.  The Workplace Shell adds the viewed object's context menu to the system menu 
  3987.  of the view. The Workplace Shell assumes that the container window has an ID 
  3988.  of FID_CLIENT and that the container's owner is a frame window. This means 
  3989.  that the container window is the client area of a frame window that was 
  3990.  created with WinCreateStdWindow. 
  3991.  
  3992.  When a view of an object is opened, a USAGE_OPENVIEW item is added to the 
  3993.  object's in-use list. The USAGE_OPENVIEW items are used to automatically 
  3994.  switch to the open view when the user chooses to open the same view again. 
  3995.  This behavior is controlled by wpOpen or wpSwitchTo. For more detail on the 
  3996.  USAGE_OPENVIEW item, see Object Usage: Usage Methods. 
  3997.  
  3998.  
  3999. ΓòÉΓòÉΓòÉ 6.2.3. Inserting Container Objects ΓòÉΓòÉΓòÉ
  4000.  
  4001. The wpCnrInsertObject and wpclsInsertMultipleObjects methods are used to insert 
  4002. objects into a container window. Objects inserted using these methods 
  4003. automatically inherit the default Workplace Shell behavior such as context 
  4004. menus, and Pickup and Drop capability. When an object is inserted into a 
  4005. container, the Workplace Shell will add a USAGE_RECORD item to the object's 
  4006. in-use list. There will be one of these USAGE_RECORD items for each view 
  4007. (container window) that the object is inserted in. These methods send the 
  4008. CM_INSERTRECORD message to the container window. 
  4009.  
  4010.  
  4011. ΓòÉΓòÉΓòÉ 6.2.3.1. Inserting One Object ΓòÉΓòÉΓòÉ
  4012.  
  4013. The wpCnrInsertObject method inserts a record into a container control window. 
  4014. The following shows the syntax of wpCnrInsertObject: 
  4015.  
  4016. #define INCL_WINWORKPLACE
  4017. #include <os2.h>
  4018.  
  4019. PMINIRECORDCORE wpCnrInsertObject (WPObject *self,
  4020.                                    HWND hwndCnr,
  4021.                                    PPOINTL pIcon,
  4022.                                    PMINIRECORDCORE pParent,
  4023.                                    PRECORDINSERT pRecInsert)
  4024.  
  4025. The self (WPObject *) parameter is the pointer to the object on which the 
  4026. method is being invoked. It points to an object of class WPObject. 
  4027.  
  4028. The hwndCnr (HWND) parameter is the handle of the container control window. 
  4029.  
  4030. The pIcon (PPOINTL) parameter is the pointer to a POINTL structure specifying 
  4031. the initial icon position in the container control window. 
  4032.  
  4033. The pParent (PMINIRECORDCORE) parameter is the pointer to the parent record. 
  4034. The pParent parameter specifies the record of the immediate parent of the 
  4035. record being inserted. This parameter should be set to NULL, if the record has 
  4036. no parent or if the Tree view is not supported. 
  4037.  
  4038. The pRecInsert (PRECORDINSERT) parameter is the pointer to the RECORDINSERT 
  4039. structure specifying how this record is to be inserted relative to other 
  4040. records in the same container. The possible values of this parameter are: 
  4041.  
  4042.  Value                    Description 
  4043.  
  4044.  NULL                     Insert the record into the next available position. 
  4045.  
  4046.  Other                    Insert the record into the position specified by 
  4047.                           pRecInsert. 
  4048.  
  4049.  The rc (PMINIRECORDCORE) parameter is returned with one of the following 
  4050.  values: 
  4051.  
  4052.  Value                    Description 
  4053.  
  4054.  NULL                     Error occurred. 
  4055.  
  4056.  Other                    Pointer to the inserted record. 
  4057.  
  4058.  This method is used to give Workplace Shell object behavior (such as context 
  4059.  menu support) to records inserted directly into a WC_CONTAINER control window. 
  4060.  To remove records from the container, a call to wpCnrRemoveObject should be 
  4061.  made. The following figure shows the insertion of an object into a container 
  4062.  control window: 
  4063.  
  4064.   /************************************************************************/
  4065.   /* This sample code assumes that the object has already been created    */
  4066.   /* using wpclsNew and object's pointer has been obtained                */
  4067.   /* using wpclsQueryObject.                                              */
  4068.   /************************************************************************/
  4069.  
  4070.   WPObject *self;                           /* The object to be inserted  */
  4071.   HWND hwndCnr;                             /* Handle of the container    */
  4072.                                             /* window                     */
  4073.   POINTL ptlIcon;                           /* Location within container  */
  4074.                                             /* to place record            */
  4075.   RECORDINSERT RecordInsert;                /* Container RECORDINSERT     */
  4076.                                             /* data structure             */
  4077.  
  4078.   /************************************************************************/
  4079.   /* Set up the RECORDINSERT data structure.                              */
  4080.   /* The object will be inserted at the beginning of the list of records. */
  4081.   /************************************************************************/
  4082.  
  4083.   RecordInsert.cb = sizeof(RECORDINSERT);   /* Size of the RECORDINSERT   */
  4084.                                             /* data structure             */
  4085.   RecordInsert.pRecordParent = NULL;        /* Insert record at root      */
  4086.                                             /* level                      */
  4087.   RecordInsert.zOrder = CMA_TOP;            /* Top of the z-order         */
  4088.   RecordInsert.cRecordsInsert = 1;          /* Inserting 1 record         */
  4089.   RecordInsert.fInvalidateRecord = TRUE;    /* Invalidate record at the   */
  4090.                                             /* time it is inserted        */
  4091.   RecordInsert.pRecordOrder =               /* Place record at beginning  */
  4092.     (PRECORDCORE)CMA_FIRST;                 /* of the list of records     */
  4093.                                             /* already inserted           */
  4094.  
  4095.   /************************************************************************/
  4096.   /* Initialize the location where the object will be inserted.           */
  4097.   /************************************************************************/
  4098.  
  4099.   ptlIcon.x = 50;
  4100.   ptlIcon.y = 50;
  4101.  
  4102.   /************************************************************************/
  4103.   /* Inserting object at location 50,50.                                  */
  4104.   /************************************************************************/
  4105.  
  4106.   _wpCnrInsertObject(self, hwndCnr, &ptlIcon, NULL, &RecordInsert)
  4107.  
  4108.  
  4109. ΓòÉΓòÉΓòÉ 6.2.3.2. Inserting Multiple Objects ΓòÉΓòÉΓòÉ
  4110.  
  4111. The wpclsInsertMultipleObjects method is used to insert multiple objects into a 
  4112. container window at one time. The following shows the syntax of 
  4113. wpclsInsertMultipleObjects: 
  4114.  
  4115. #define INCL_WINWORKPLACE
  4116. #include <os2.h>
  4117.  
  4118. BOOL wpclsInsertMultipleObjects(M_WPObject *self,
  4119.                                 HWND hwndCnr,
  4120.                                 PPOINTL pptlIcon,
  4121.                                 PVOID *pObjectArray,
  4122.                                 PVOID pRecordParent,
  4123.                                 ULONG NumRecords)
  4124.  
  4125. The self (M_WPObject *) parameter is the pointer to the WPObject class object. 
  4126.  
  4127. The hwndCnr (HWND) parameter is the handle of the container window to insert 
  4128. objects into. 
  4129.  
  4130. The pptlIcon (PPOINTL) parameter is the pointer to a POINTL structure 
  4131. specifying the coordinates for the position of the first object inserted. 
  4132.  
  4133. The pObjectArray (PVOID *) parameter is the pointer to an array of object 
  4134. pointers. The objects in this array are to be inserted into the container. 
  4135.  
  4136. The pRecordParent (PVOID) parameter is the parent record pointer. This 
  4137. parameter should be set to NULL if the records being inserted will not have a 
  4138. parent or if the Tree view is not supported. 
  4139.  
  4140. The NumRecords (ULONG) parameter is the number of objects in the pObjectArray 
  4141. parameter. 
  4142.  
  4143. The rc (BOOL) parameter is returned with one of the following values: 
  4144.  
  4145.  Boolean                  Description 
  4146.  
  4147.  TRUE                     Objects successfully inserted into the container. 
  4148.  
  4149.  FALSE                    Error occurred. 
  4150.  
  4151.  This method is used for the rapid insertion of multiple objects into the 
  4152.  container all at once. The wpCnrInsertObject method performs the same function 
  4153.  as this method but operates on only one object at a time. This method will add 
  4154.  each of the objects to the in-use list. The following figure shows the 
  4155.  insertion of multiple objects into a container control window: 
  4156.  
  4157.   BOOL wpclsInsertMultipleObjects(M_WPObject *self,
  4158.                                   HWND hwndCnr,
  4159.                                   PPOINTL pptlIcon,
  4160.                                   PVOID *pObjectArray,
  4161.                                   PVOID pRecordParent,
  4162.                                   ULONG NumRecords)
  4163.  
  4164.   M_WPObject *self;
  4165.   HWND hwndCnr;
  4166.   POINTL ptlIcon;
  4167.   PVOID pObjectArray{5};
  4168.   ULONG i;
  4169.  
  4170.   /************************************************************************/
  4171.   /* pObjectArray has been filled in with pointers to objects             */
  4172.   /* created using WinCreateObject or wpClsNew                            */
  4173.   /************************************************************************/
  4174.  
  4175.   /************************************************************************/
  4176.   /* Initial location for first object being inserted.                    */
  4177.   /************************************************************************/
  4178.  
  4179.   ptlIcon.x = 50;
  4180.   ptlIcon.y = 50;
  4181.  
  4182.   /************************************************************************/
  4183.   /* Inserting multiple objects.                                          */
  4184.   /************************************************************************/
  4185.  
  4186.   _wpclsInsertMultipleObjects(self, hwndCnr, &ptlIcon, &pObjectArray, NULL,5);
  4187.  
  4188.  
  4189. ΓòÉΓòÉΓòÉ 6.2.4. Removing Container Objects ΓòÉΓòÉΓòÉ
  4190.  
  4191. The wpCnrRemoveObject method should be called to remove an object from a 
  4192. container, if that object was inserted using either wpCnrInsertObject or 
  4193. wpclsInsertMultipleObjects. When the object is removed from a container, the 
  4194. USAGE_RECORD item, which was added to the in-use list when the object was 
  4195. inserted, will be removed. This method sends the CM_REMOVERECORD message to the 
  4196. container. The following shows the syntax of wpCnrRemoveObject: 
  4197.  
  4198. #define INCL_WINWORKPLACE
  4199. #include <os2.h>
  4200.  
  4201. BOOL wpCnrRemoveObject (WPObject *self,
  4202.                         HWND hwndCnr,
  4203.                         PMINIRECORDCORE pRecord)
  4204.  
  4205. The self (WPObject *) parameter is the pointer to the object on which the 
  4206. method is being invoked. It points to an object of class WPObject. 
  4207.  
  4208. The hwndCnr (HWND) parameter is the handle of the container control window. 
  4209.  
  4210. The pRecord (PMINIRECORDCORE) parameter is the pointer to the record to be 
  4211. removed. 
  4212.  
  4213. rc (BOOL) is returned with one of the following values: 
  4214.  
  4215.  Boolean                  Description 
  4216.  
  4217.  TRUE                     Record successfully removed. 
  4218.  
  4219.  FALSE                    Error occurred. 
  4220.  
  4221.  The following figure shows the deletion of an object from a container control 
  4222.  window: 
  4223.  
  4224.   /************************************************************************/
  4225.   /* This sample code assumes that the object has already been            */
  4226.   /* created using wpclsNew and object's point has been                   */
  4227.   /* obtained using wpclsQueryObject.                                     */
  4228.   /************************************************************************/
  4229.  
  4230.   WPObject *self;               /* The object to be removed               */
  4231.   HWND hwndCnr;                 /* Handle of the container window         */
  4232.   PMINIRECORDCORE pRecord;      /* Pointer to container record            */
  4233.  
  4234.   /************************************************************************/
  4235.   /* Removing the record from the container window.                       */
  4236.   /************************************************************************/
  4237.  
  4238.   _wpCnrRemoveObject(self, hwndCnr, pRecord);
  4239.  
  4240.  
  4241. ΓòÉΓòÉΓòÉ 6.2.5. Setting Emphasis on Objects ΓòÉΓòÉΓòÉ
  4242.  
  4243. The wpCnrSetEmphasis method provides a way to change the visual emphasis of an 
  4244. object. Visual emphasis can be used to give the user feedback as to the state 
  4245. of the object. For example, when a folder is opened on the Desktop, in-use 
  4246. emphasis is added to the folder icon. The Workplace Shell accomplishes this by 
  4247. calling wpCnrSetEmphasis on the object. 
  4248.  
  4249. This method sends the CM_SETRECORDEMPHASIS message to the container. The CRA_* 
  4250. flags that are specified for the ulEmphasisAttr parameter are the same as those 
  4251. for the CM_SETRECORDEMPHASIS container message. The following shows the syntax 
  4252. of wpCnrSetEmphasis: 
  4253.  
  4254. #define INCL_WINWORKPLACE
  4255. #include <os2.h>
  4256.  
  4257. BOOL wpCnrSetEmphasis (WPObject *self, ULONG ulEmphasisAttr, BOOL fTurnOn)
  4258.  
  4259. The self (WPObject *) parameter is the pointer to the object on which the 
  4260. method is being invoked. It points to an object of class WPObject. 
  4261.  
  4262. The ulEmphasisAttr (ULONG) parameter is the type of emphasis to set on the 
  4263. object. The CRA_* flags are as follows. These flags are the container's record 
  4264. attribute flags. The flags may be combined using the logical OR ( | ) operator. 
  4265.  
  4266.  Emphasis Type            Description 
  4267.  
  4268.  CRA_CURSORED             Specifies that the record will be drawn with a 
  4269.                           selection cursor. 
  4270.  
  4271.  CRA_DISABLED             Specifies that the record will be drawn with 
  4272.                           unavailable-state emphasis. 
  4273.  
  4274.  CRA_INUSE                Specifies that a record will be drawn with in-use 
  4275.                           emphasis. 
  4276.  
  4277.  CRA_PICKED               Specifies that the record will be drawn with "picked" 
  4278.                           emphasis. It is part of the Pickup and Drop 
  4279.                           operation. 
  4280.  
  4281.  CRA_SELECTED             Specifies that a record will be drawn with 
  4282.                           selected-state emphasis. 
  4283.  
  4284.  CRA_SOURCE               Specifies that the record will be drawn with 
  4285.                           source-menu emphasis. 
  4286.  
  4287.  The fTurnOn (BOOL) parameter sets or resets the specified attribute. 
  4288.  
  4289.  Boolean                  Description 
  4290.  
  4291.  TRUE                     Set the specified attribute. 
  4292.  
  4293.  FALSE                    Reset the specified attribute. 
  4294.  
  4295.  rc (BOOL) is returned with one of the following values: 
  4296.  
  4297.  Boolean                  Description 
  4298.  
  4299.  TRUE                     Attribute successfully set. 
  4300.  
  4301.  FALSE                    Error occurred. 
  4302.  
  4303.  The following figure shows how to set the emphasis on a container object: 
  4304.  
  4305.   /************************************************************************/
  4306.   /* This sample code assumes that the object has already been created    */
  4307.   /* using wpclsNew and object's pointer has been obtained                */
  4308.   /* using wpclsQueryObject.                                              */
  4309.   /************************************************************************/
  4310.  
  4311.   WPObject *self;              /* The object whose emphasis is being set  */
  4312.   ULONG ulEmphasis;            /* ULONG data structure                    */
  4313.  
  4314.   ulEmphasis = CRA_INUSE;      /* Emphasis type desired                   */
  4315.  
  4316.   /************************************************************************/
  4317.   /* Setting emphasis on the object.                                      */
  4318.   /************************************************************************/
  4319.  
  4320.   _wpCnrSetEmphasis(self, ulEmphasis, TRUE);
  4321.  
  4322.  
  4323. ΓòÉΓòÉΓòÉ 6.2.6. Registering a New Open View ΓòÉΓòÉΓòÉ
  4324.  
  4325. The wpRegisterView method should be called whenever a new view of an object is 
  4326. created. Registering a view will set the title of the frame window to the 
  4327. object's title and add the view title as the current view in the window list. 
  4328. The wpRegisterView method is used to allow an object to register a new open 
  4329. view. The following shows the syntax of wpRegisterView: 
  4330.  
  4331. #define INCL_WINWORKPLACE
  4332. #include <os2.h>
  4333.  
  4334. BOOL wpRegisterView (WPObject *self, HWND hwndFrame, PSZ pszViewTitle)
  4335.  
  4336. The self (WPObject *) parameter is the pointer to the object on which the 
  4337. method is being invoked. It points to an object of class WPObject. 
  4338.  
  4339. The hwndFrame (HWND) parameter is the handle of the frame window containing the 
  4340. new view. 
  4341.  
  4342. The pszViewTitle (PSZ) parameter is the pointer to a string containing the name 
  4343. of the view. 
  4344.  
  4345. The rc (BOOL) parameter is returned with one of the following values: 
  4346.  
  4347.  Boolean                  Description 
  4348.  
  4349.  TRUE                     New view successfully registered. 
  4350.  
  4351.  FALSE                    Error occurred. 
  4352.  
  4353.  Registering a view will set the object title as the title of the frame window 
  4354.  and add a view title as the current view in the window list and titlebar. The 
  4355.  following figure shows how to register a new open view of an object: 
  4356.  
  4357.   WPObject *self;
  4358.   HWND hwndFrame;
  4359.   PSZ pszViewTitle="OS/2 Programs - Icon View";
  4360.  
  4361.   _wpRegisterView(self, hwndFrame, pszViewTitle);
  4362.  
  4363.  
  4364. ΓòÉΓòÉΓòÉ 6.2.7. Obtaining the Object's MINIRECORDCORE Pointer ΓòÉΓòÉΓòÉ
  4365.  
  4366.  The wpQueryCoreRecord method is used to obtain a pointer to the MINIRECORDCORE 
  4367. structure associated with a given object. When an object is created, the 
  4368. Workplace Shell automatically allocates memory for a MINIRECORDCORE structure 
  4369. and stores a pointer to it in the object's instance data. The following shows 
  4370. the syntax of wpQueryCoreRecord: 
  4371.  
  4372. #define INCL_WINWORKPLACE
  4373. #include <os2.h>
  4374.  
  4375. PMINIRECORDCORE wpQueryCoreRecord (WPObject *self);
  4376.  
  4377. The self (WPObject *) paramter is the pointer to the object on which the method 
  4378. is being invoked. It points to an object of class WPObject. 
  4379.  
  4380. The pRecord (PMINIRECORDCORE) parameter is returned. It points to the 
  4381. MINIRECORDCORE structure for the object. 
  4382.  
  4383. Every object has a MINIRECORDCORE structure associated with it so it can be 
  4384. placed into a container. This method is used to obtain the PMINIRECORDCORE when 
  4385. the pointer to the object is known. The following figure shows how to obtain a 
  4386. pointer to the MINIRECORDCORE structure associated with an object: 
  4387.  
  4388. PMINIRECORDCORE pRecord;
  4389. WPObject *self;
  4390.  
  4391. pRecord = _wpQueryCoreRecord(self);
  4392.  
  4393.  
  4394. ΓòÉΓòÉΓòÉ 6.2.7.1. Obtaining a Pointer to an Object ΓòÉΓòÉΓòÉ
  4395.  
  4396. The OBJECT_FROM_PREC macro is used to obtain a pointer to an object when the 
  4397. PMINIRECORDCORE is known. The following figure shows how to obtain a pointer to 
  4398. an object: 
  4399.  
  4400. WPObject *self;
  4401. PMINIRECORDCORE pRecord;
  4402.  
  4403. self = OBJECT_FROM_PREC(pRecord);
  4404.  
  4405.  
  4406. ΓòÉΓòÉΓòÉ 7. Object Criteria: Details Methods ΓòÉΓòÉΓòÉ
  4407.  
  4408. The class defines the object's instance data and methods. Details data are part 
  4409. of instance data and define more accurately the behavior of the object. This 
  4410. chapter describes the general concepts of Details data and explains how to use 
  4411. the details methods in Workplace Shell applications. 
  4412.  
  4413.  
  4414. ΓòÉΓòÉΓòÉ 7.1. About Details Methods ΓòÉΓòÉΓòÉ
  4415.  
  4416. The basic unit of organization of SOM programs is the object. SOM objects 
  4417. consist of instance data and methods. SOM classes define the behavior of sets 
  4418. of like objects. You can think of a SOM class as a description of an object. 
  4419. The class defines the object's instance data and methods. Details data are part 
  4420. of instance data and define more accurately the behavior of the object. 
  4421.  
  4422. Not all classes have the Details data section defined. Only those classes that 
  4423. have a requirement to store such information define this section as part of the 
  4424. instance data. After the Details data are defined, it is the class creator's 
  4425. responsibility to set and use them correctly. Details data allows you to: 
  4426.  
  4427.    o  Define, for a class of objects, some confidential data along with general 
  4428.       data 
  4429.  
  4430.    o  Have a special container Details view 
  4431.  
  4432.    o  Choose specific Details fields to be displayed in Details view by 
  4433.       filtering out unwanted fields 
  4434.  
  4435.    o  Filter objects that match or do not match a set of criteria 
  4436.  
  4437.    o  Search for objects based on a single or complex set of criteria 
  4438.  
  4439.    o  Sort objects. 
  4440.  
  4441.  The Details data of all objects contained in a container can be displayed in a 
  4442.  Details view. The fields that are displayed in the Details view correspond to 
  4443.  the Object type (class object) that is selected in the View page (page three 
  4444.  of the View pages) of the Settings notebook. Once the Object type selected, 
  4445.  the fields are listed in the Details to display drop-down list box. the 
  4446.  following figure shows an example of the Details view for a Workplace Shell 
  4447.  class. Each record provides information for a specific instance of an object 
  4448.  belonging to the class. 
  4449.  
  4450.                           Details for Instances of MyObject Class
  4451.                 ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4452.                 Γöé Icon  Γöé  Title  Γöé Object Class ΓöéΓöé Field1 Γöé Field2 Γöé Field3 Γöé
  4453.                 Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñΓö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4454.     Instance 1  Γöé       Γöé         Γöé              ΓöéΓöé        Γöé        Γöé        Γöé
  4455.                 Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñΓö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4456.     Instance 2  Γöé       Γöé         Γöé              ΓöéΓöé        Γöé        Γöé        Γöé
  4457.                 Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñΓö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4458.                 Γöé       Γöé         Γöé              ΓöéΓöé        Γöé        Γöé        Γöé
  4459.                 Γöé       Γöé         Γöé              ΓöéΓöé        Γöé        Γöé        Γöé
  4460.                 ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤Γö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4461.  
  4462.  This Details view window is two windows separated by a split bar. The left 
  4463.  side of the window contains, at least, the Title column (the default column) 
  4464.  and can also contain the Details fields available for all classes and, in 
  4465.  turn, for all objects. The right side of the window can be empty, if the 
  4466.  objects to be represented are not descended from the chosen class. The user 
  4467.  can choose: 
  4468.  
  4469.    o  Which class provides Details fields to the window 
  4470.  
  4471.    o  Which Details fields of this class are visible. 
  4472.  
  4473.  By default, the system sets the WPFileSystem class that provides all Details 
  4474.  fields to be visible. The Workplace Shell provides a Settings notebook, page 
  4475.  three of the View pages, to set the class and Details fields to be displayed 
  4476.  in the Details view. The following figure shows the Settings notebook, page 
  4477.  three of the View pages: 
  4478.  
  4479.  A record that contains information for an object instance of the class is 
  4480.  created by overriding wpQueryDetailsData. The column headings for a Details 
  4481.  view are specified by overriding wpclsQueryDetailsInfo. 
  4482.  
  4483.  An object can inherit the set of Details data defined by its ancestors. A 
  4484.  record containing Details data for an object can also contain sets of Details 
  4485.  data from objects that are defined by its parent or ancestors. The Workplace 
  4486.  Shell handles this by creating records of contiguous blocks of memory. To 
  4487.  inherit the details defined by ancestor classes, wpQueryDetailsData calls the 
  4488.  parent class wpQueryDetailsData, which calls its parent class 
  4489.  wpQueryDetailsData, and so forth, until the oldest ancestor that defined 
  4490.  Details data is reached. In addition to inheriting Details data from its 
  4491.  ancestors, the object can have some of its own. For each call to 
  4492.  wpQueryDetailsData, a variable-length block of memory containing a set of 
  4493.  Details data for the object is added to the record. A pointer is moved to the 
  4494.  end of the last block of memory added to the record, where the next call to 
  4495.  wpQueryDetailsData adds the next block of memory. Each block in the record 
  4496.  contains a set of Details data for the object defined by its class or by one 
  4497.  of its ancestor classes, as shown in the following figure: 
  4498.  
  4499.  
  4500.       ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4501.              Γöé Details Defined Γöé Details Defined Γöé Details Defined Γöé
  4502.              Γöé by MyObject's   Γöé by MyObject's   Γöé by MyObject     Γöé
  4503.              Γöé Ancestor        Γöé Parent          Γöé                 Γöé
  4504.       ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4505.  
  4506.  The format for Details data contained in a record is defined by overriding 
  4507.  wpclsQueryDetailsInfo. The format is defined in a linked list of 
  4508.  CLASSFIELDINFO data structures for each Details field in a record. This linked 
  4509.  list is created the same way as a record: wpclsQueryDetailsInfo calls its 
  4510.  parent class wpclsQueryDetailsInfo, which calls its parent class 
  4511.  wpclsQueryDetailsInfo, and so forth. Each call adds a set of CLASSFIELDINFO 
  4512.  data structures to the linked list until the list contains all CLASSFIELDINFO 
  4513.  data structures for each Details field of the object's Details record, as 
  4514.  shown in the following figure: 
  4515.  
  4516.  
  4517.        Format of          Format of                   Format of
  4518.        Details Data       Details Data                Details Data
  4519.        Defined by         Defined by                  Defined by
  4520.        its Ancestor       its Parent                  MyObject
  4521.       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ     ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ     ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4522.    ΓöÇΓöÇ>Field1ΓöÇ>Field2ΓöÇΓöÇΓöÇΓöÇ>Field3ΓöÇ>Field4ΓöÇΓöÇΓöÇΓöÇ>Field5ΓöÇ>Field6ΓöÇ>Field7ΓöÇ>Field8ΓöÇΓöÇΓöÇ>
  4523.  
  4524.  The CLASSFIELDINFO data structure describes the attributes of Details data for 
  4525.  each field. 
  4526.  
  4527.  
  4528. ΓòÉΓòÉΓòÉ 7.2. Using Details Methods ΓòÉΓòÉΓòÉ
  4529.  
  4530. The CAR sample Workplace Shell object in the Toolkit can be used to illustrate 
  4531. the requirements for defining Details data for a class of objects. CAR can 
  4532. provide Details data for CAR objects by: 
  4533.  
  4534.    1. Defining a data structure for the Details fields to be included in the 
  4535.       Details view, as shown in the following sample code: 
  4536.  
  4537.             /* CARDETAILS:  Structure used for Details view  */
  4538.  
  4539.             typedef struct _CARDETAILS
  4540.             {
  4541.                PSZ      pszMake;     /* Manufacturer     */
  4542.                PSZ      pszModel;    /* Model            */
  4543.                PSZ      pszColor;    /* Color of car     */
  4544.                CDATE    cdateSale;   /* Date of sale     */
  4545.                ULONG    ulPrice;     /* Price in dollars */
  4546.             }
  4547.             CARDETAILS;
  4548.             typedef CARDETAILS *PCARDETAILS;
  4549.  
  4550.    2. Defining and initializing a static array of CLASSFIELDINFO structures for 
  4551.       each set of Details data, as shown in the following sample code. This is 
  4552.       done on class initialization, when wpclsInitData is called. 
  4553.  
  4554.       Note:  Title and Icon details are defined for CAR objects by its ancestor 
  4555.              class WPObject. This means that the CLASSFIELDINFO data structures 
  4556.              for Title and Icon details are defined and initialized in the 
  4557.              WPObject class definition. 
  4558.  
  4559.             #define NUM_CAR_FIELDS 5
  4560.  
  4561.             CLASSFIELDINFO fieldinfo[NUM_CAR_FIELDS];
  4562.  
  4563.             PSZ pszCarColTitles[] =
  4564.             {
  4565.                "Make",           /* Details column 1 */
  4566.                "Model",          /* Details column 2 */
  4567.                "Color",          /* Details column 3 */
  4568.                "Sale date",      /* Details column 4 */
  4569.                "Price ($)"       /* Details column 5 */
  4570.             };
  4571.                 .
  4572.                 .
  4573.                 .
  4574.  
  4575.             /****************************************************************/
  4576.             /* Method:  wpclsInitData                                       */
  4577.             /* Purpose: Initialize the Details data                         */
  4578.             /****************************************************************/
  4579.  
  4580.             SOM_Scope void SOMLINK carM_wpclsInitData(M_Car *somSelf)
  4581.  
  4582.             {
  4583.               USHORT          rc, i;
  4584.               PCLASSFIELDINFO pCFI;
  4585.  
  4586.               /* M_CarData *somThis  = M_CarGetData(somSelf); */
  4587.               M_CarMethodDebug("M_Car","carM_wpclsInitData");
  4588.  
  4589.               /* Call the parent class method first */
  4590.               parent_wpclsInitData(somSelf);
  4591.  
  4592.               /*   Get the class title */
  4593.               if (!WinLoadString(WinQueryAnchorBlock(HWND_DESKTOP),
  4594.                                  _clsQueryModuleHandle(somSelf),
  4595.                                  ID_TITLE,
  4596.                                  sizeof(szCarClassTitle), szCarClassTitle))
  4597.                 /* If the load string has failed, use the parent's string */
  4598.                 strcpy(szCarClassTitle, parent_wpclsQueryTitle(somSelf));
  4599.  
  4600.               /* Initialize everything needed for the CLASSFIELDINFO */
  4601.               /* data structure for the CAR object class             */
  4602.               for (i=0,pCFI=fieldinfo;i<NUM_CAR_FIELDS;i++,pCFI++)
  4603.  
  4604.               {
  4605.                 /* Memset the structure to zero's */
  4606.                 memset((PCH)pCFI,0,sizeof(CLASSFIELDINFO));
  4607.  
  4608.                 pCFI->cb             = sizeof(CLASSFIELDINFO);
  4609.  
  4610.                 pCFI->flData         = CFA_RIGHT     |
  4611.                                        CFA_SEPARATOR |
  4612.                                        CFA_FIREADONLY;
  4613.  
  4614.                 pCFI->flTitle        = CFA_CENTER        |
  4615.                                        CFA_SEPARATOR     |
  4616.                                        CFA_HORZSEPARATOR |
  4617.                                        CFA_STRING        |
  4618.                                        CFA_FITITLEREADONLY;
  4619.  
  4620.                 pCFI->pNextFieldInfo = pCFI + 1;   /* Point to the next CLASSFIELDINFO */
  4621.                 pCFI->pTitleData     = (PVOID) apszCarColTitles[i];
  4622.                 pCFI->flCompare      = COMPARE_SUPPORTED |
  4623.                                        SORTBY_SUPPORTED;
  4624.  
  4625.                 switch (i)
  4626.                 {
  4627.                   case INDEX_MAKE:
  4628.                     pCFI->flData           |= CFA_STRING;
  4629.                     pCFI->offFieldData      = (ULONG)(FIELDOFFSET(CARDETAILS,pszMake));
  4630.                     pCFI->ulLenFieldData    = sizeof(PSZ);
  4631.                     pCFI->DefaultComparison = CMP_EQUAL;
  4632.                     break;
  4633.  
  4634.                   case INDEX_MODEL:
  4635.                     pCFI->flData           |= CFA_STRING;
  4636.                     pCFI->offFieldData      = (ULONG)(FIELDOFFSET(CARDETAILS,pszModel));
  4637.                     pCFI->ulLenFieldData    = sizeof(PSZ);
  4638.                     pCFI->DefaultComparison = CMP_EQUAL;
  4639.                     break;
  4640.  
  4641.                   case INDEX_COLOR:
  4642.                     pCFI->flData           |= CFA_STRING;
  4643.                     pCFI->offFieldData      = (ULONG)(FIELDOFFSET(CARDETAILS,pszColor));
  4644.                     pCFI->ulLenFieldData    = sizeof(PSZ);
  4645.                     pCFI->DefaultComparison = CMP_EQUAL;
  4646.                     break;
  4647.  
  4648.                   case INDEX_SALE_DATE:
  4649.                     pCFI->flData           |= CFA_DATE;
  4650.                     pCFI->offFieldData      = (ULONG)(FIELDOFFSET(CARDETAILS,cdateSale));
  4651.                     pCFI->ulLenFieldData    = sizeof(CDATE);
  4652.                     pCFI->ulLenCompareValue = sizeof(CDATE);
  4653.                     pCFI->DefaultComparison = CMP_GREATER;
  4654.                     break;
  4655.  
  4656.                   case INDEX_PRICE:
  4657.                     pCFI->flData           |= CFA_ULONG;
  4658.                     pCFI->offFieldData      = (ULONG)(FIELDOFFSET(CARDETAILS,ulPrice));
  4659.                     pCFI->ulLenFieldData    = sizeof(ULONG);
  4660.                     pCFI->ulLenCompareValue = sizeof(ULONG);
  4661.                     pCFI->DefaultComparison = CMP_GREATER;
  4662.                     break;
  4663.  
  4664.                 }  /* End switch(i) */
  4665.               }   /* End for (i=0,pCFI=fieldinfo;i<NUM_CAR_FIELDS;i++,pCFI++) */
  4666.               /* Terminate linked list */
  4667.               fieldinfo[NUM_CAR_FIELDS-1].pNextFieldInfo = NULL;
  4668.             }   /* End carM_ wpclsInitData() */
  4669.  
  4670.    3. Defining the column headings and format of the Details data placed into 
  4671.       the object's Details record by overriding wpclsQueryDetailsInfo, as shown 
  4672.       in the following sample code: 
  4673.  
  4674.             /****************************************************************/
  4675.             /* Method: wpclsQueryDetailsInfo                                */
  4676.             /* Appends the CAR specific chain of FIELDINFO data structure   */
  4677.             /* describing the Details data of this object to                */
  4678.             /* *ppClassFieldInfo, if ppClassFieldInfo is non-NULL.          */
  4679.             /* In this case, it also sets *ppClasssFieldInfo to the head    */
  4680.             /* of the linked list.                                          */
  4681.             /*                                                              */
  4682.             /* Adds the number of bytes required by the Details data for    */
  4683.             /* car to *pSize, if pSize is non-NULL.                         */
  4684.             /*                                                              */
  4685.             /* Add Details data for this object.                            */
  4686.             /****************************************************************/
  4687.  
  4688.             SOM_Scope ULONG SOMLINK
  4689.               redcarM_wpclsQueryDetailsInfo(M_Car *somself,
  4690.                                             PCLASSFIELDINFO *ppClassFieldInfo,
  4691.                                             PULONG pSize)
  4692.  
  4693.             {
  4694.               ULONG           cParentColumns;
  4695.               PCLASSFIELDINFO pCFI;
  4696.               ULONG           i;
  4697.  
  4698.               /* M_CarData  *somThis = M_CarGetData(somself); */
  4699.               M_CarMethodDebug("M_Car","carM_wpclsQueryDetailsInfo");
  4700.  
  4701.               /* Always call the parent method first to retrieve the number */
  4702.               /* of Details columns and parent's data already defined in    */
  4703.               /* the Details buffer.                                        */
  4704.               cParentColumns =
  4705.                 parent_wpclsQueryDetailsInfo(somself,ppClassFieldInfo,pSize);
  4706.  
  4707.               /* If pSize is non-NULL, we must add the size of our */
  4708.               /* Details column data structure.                    */
  4709.               if (pSize)
  4710.                 *pSize += sizeof(CARDETAILS);  /* Adjust size */
  4711.  
  4712.               /*******************************************************************/
  4713.               /* If the request was for the chained FIELDINFO data structures    */
  4714.               /* (ppClassFieldInfo is non-NULL), link them in.                   */
  4715.               /* Eventually the chain will look like this:                       */
  4716.               /*                                                                 */
  4717.               /* Grandparent - Parent - Me - Child - Grandchild.                 */
  4718.               /*                                                                 */
  4719.               /* Get the pointer to the beginning of the chain.                  */
  4720.               /* If the beginning of the chain is 0, assign the address          */
  4721.               /* of the first CLASSFIELDINFO structure to *ppClassFieldInfo.     */
  4722.               /* Otherwise, *ppClassFieldInfo points to the first column         */
  4723.               /* description in the chain.  The chain is examined and            */
  4724.               /* the CLASSFIELDINFO data structure is linked to the end of it.   */
  4725.               /*******************************************************************/
  4726.  
  4727.               if (ppClassFieldInfo)
  4728.               {
  4729.                 /* Find the last link in the chain; then link the CLASSFIELDINFO */
  4730.                 /* data structures to the chain.                                 */
  4731.                 if (*ppClassFieldInfo)
  4732.                 {
  4733.                   pCFI = *ppClassFieldInfo;
  4734.                   for (i=0;i<cParentColumns;i++)
  4735.                     pCFI = (pCFI->pNextFieldInfo) ? pCFI->pNextFieldInfo : pCFI;
  4736.  
  4737.                   pCFI->pNextFieldInfo = fieldinfo;
  4738.                 }
  4739.                 else
  4740.                   *ppClassFieldInfo = fieldinfo;
  4741.               }
  4742.               return ((ULONG) (cParentColumns + NUM_CAR_FIELDS));
  4743.             }   /* End carM_wpclsQueryDetailsInfo() */
  4744.  
  4745.    4. Adding Details data to an object's Details record by overriding 
  4746.       wpQueryDetailsData, as shown in the following sample code: 
  4747.  
  4748.             /*
  4749.              *  Returns the car specific data for the Details view of this object.
  4750.              *  Sets the pointer (*ppDetailsData) to the beginning of the buffer
  4751.              *  into which the data is written.
  4752.              */
  4753.  
  4754.             SOM_Scope ULONG SOMLINK car_wpQueryDetailsData(Car *somSelf,
  4755.                                                            PVOID *ppDetailsData,
  4756.                                                            PULONG pcp)
  4757.  
  4758.             {
  4759.               PCARDETAILS pCarDetails;
  4760.               PBYTE       pSize;
  4761.               CarData *somThis = CarGetData(somSelf);
  4762.               CarMethodDebug("Car","car_wpQueryDetailsData");
  4763.  
  4764.               parent_wpQueryDetailsData(somSelf,ppDetailsData,pcp);
  4765.  
  4766.               if (ppDetailsData)    /* Query data */
  4767.               {
  4768.                 pCarDetails                  = (PCARDETAILS) *ppDetailsData;
  4769.                 pCarDetails->pszMake         = "Toyota";   /* Manufacturer     */
  4770.                 pCarDetails->pszModel        = "Camry";    /* Model name       */
  4771.                 pCarDetails->pszColor        = "BLUE";     /* Color of the car */
  4772.                 pCarDetails->cdateSale.day   = 24;         /* Date of sale     */
  4773.                 pCarDetails->cdateSale.month = 12;
  4774.                 pCarDetails->cdateSale.year  = 91;
  4775.                 pCarDetails->ulPrice         = 14000;      /* Price in dollars */
  4776.  
  4777.                 /* Point to buffer location after the Details data */
  4778.                 *ppDetailsData = ((PBYTE) (*ppDetailsData)) + sizeof(*pCarDetails);
  4779.  
  4780.               }   /* End if (ppDetailsData) */
  4781.               else   /* Query size of data */
  4782.               {
  4783.                 /* Caller is querying the buffer size */
  4784.                 *pcp += sizeof(*pCarDetails);
  4785.               }
  4786.               return(TRUE);
  4787.             }   /* End car_wpQueryDetailsData() */
  4788.  
  4789.  
  4790. ΓòÉΓòÉΓòÉ 7.2.1. Including Objects in a Container ΓòÉΓòÉΓòÉ
  4791.  
  4792. A container represents the standard mode to organize objects you work with. It 
  4793. simply stores objects and allows them to interact with the user. Sometimes, 
  4794. however, a container can contain unnecessary objects. For this reason, the 
  4795. Workplace Shell provides a powerful tool that allows you to filter objects you 
  4796. want to include in or to exclude from the container. You specify objects to be 
  4797. included in a container by selecting the Include tab of the Settings notebook. 
  4798. The filter for this container is specified by the criteria that tells the 
  4799. system to include, in the container, all objects that match the criteria. The 
  4800. default criteria is shown in the following figure: 
  4801.  
  4802. I Flags less than --H-
  4803.  
  4804. This criteria means that all objects that do not have the hidden attribute set 
  4805. will be included in the Open view of the container. The following figure shows 
  4806. the Include dialog, which is set with the default criteria: 
  4807.  
  4808. The Include dialog provides the following push buttons to manipulate criteria: 
  4809.  
  4810.  Push Button         Description 
  4811.  
  4812.  Add                 Brings up a dialog for adding new criteria. 
  4813.  
  4814.  Change              Brings up a dialog for changing the selected criteria. 
  4815.  
  4816.  Delete              Deletes the selected criteria. 
  4817.  
  4818.  Undo                Resets the criteria to the state it was in when you opened 
  4819.                      the Include tab. 
  4820.  
  4821.  Default             Resets the criteria to the default criteria as shown in 
  4822.                      the second previous figure. 
  4823.  
  4824.  Help                Provides help on the Include tab. 
  4825.  
  4826.  As an example, to set the criteria to include nothing (exclude everything), 
  4827.  delete the default criteria and add the criteria shown in the following 
  4828.  figure: 
  4829.  
  4830.   E  ObjectClass  is equal to  Object
  4831.  
  4832.  
  4833. ΓòÉΓòÉΓòÉ 7.2.1.1. Adding Criteria ΓòÉΓòÉΓòÉ
  4834.  
  4835. All objects in the system have properties such as name, date of creation, size, 
  4836. color, and so forth. A group of like objects make up a class. The objects in 
  4837. one class differ from the objects in another class by their properties. If a 
  4838. class is descended from another class, however, the objects from the descended 
  4839. class have, at least, all the properties of its parent, and can have some of 
  4840. their own. The following figure shows the Add Criteria dialog: 
  4841.  
  4842. To create a valid criteria, four elements must be specified: 
  4843.  
  4844.  Element                  Description 
  4845.  
  4846.  Attribute                Lists all the different attributes you can select for 
  4847.                           the criteria. 
  4848.  
  4849.  Comparison type          Lists all the different comparison types associated 
  4850.                           with the selected attribute. 
  4851.  
  4852.  Comparison value         Lists all the different values associated with the 
  4853.                           selected attribute. 
  4854.  
  4855.  Use of criteria          Contains two radio buttons: 
  4856.  
  4857.    o  To include objects that match the criteria. 
  4858.  
  4859.    o  To exclude objects that match the criteria. 
  4860.  
  4861.  The following table shows the attributes that are available in the system at 
  4862.  installation time. The attributes are listed in the same order as the ones 
  4863.  shown in the Attribute drop-down list box. 
  4864.  
  4865.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4866.   ΓöéAttribute                     ΓöéClass                         Γöé
  4867.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4868.   ΓöéObjectTitle                   ΓöéWPObject                      Γöé
  4869.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4870.   ΓöéObjectStyle                   ΓöéWPObject                      Γöé
  4871.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4872.   ΓöéObjectClass                   ΓöéWPObject                      Γöé
  4873.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4874.   ΓöéRealName                      ΓöéWPFileSystem                  Γöé
  4875.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4876.   ΓöéSize                          ΓöéWPFileSystem                  Γöé
  4877.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4878.   ΓöéLastWriteDate                 ΓöéWPFileSystem                  Γöé
  4879.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4880.   ΓöéLastWriteTime                 ΓöéWPFileSystem                  Γöé
  4881.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4882.   ΓöéLastAccessDate                ΓöéWPFileSystem                  Γöé
  4883.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4884.   ΓöéLastAccesTime                 ΓöéWPFileSystem                  Γöé
  4885.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4886.   ΓöéCreationDate                  ΓöéWPFileSystem                  Γöé
  4887.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4888.   ΓöéCreationTime                  ΓöéWPFileSystem                  Γöé
  4889.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4890.   ΓöéFlags                         ΓöéWPFileSystem                  Γöé
  4891.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4892.   ΓöéReadOnlyFlag                  ΓöéWPFileSystem                  Γöé
  4893.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4894.   ΓöéHiddenFlag                    ΓöéWPFileSystem                  Γöé
  4895.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4896.   ΓöéSystemFlag                    ΓöéWPFileSystem                  Γöé
  4897.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4898.   ΓöéDirectoryFlag                 ΓöéWPFileSystem                  Γöé
  4899.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4900.   ΓöéArchivedFlag                  ΓöéWPFileSystem                  Γöé
  4901.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4902.   ΓöéSubject                       ΓöéWPFileSystem                  Γöé
  4903.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4904.   ΓöéComments                      ΓöéWPFileSystem                  Γöé
  4905.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4906.   ΓöéKey Phases                    ΓöéWPFileSystem                  Γöé
  4907.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4908.   ΓöéHistory                       ΓöéWPFileSystem                  Γöé
  4909.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4910.   ΓöéExtended Attribute Size       ΓöéWPFileSystem                  Γöé
  4911.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4912.  
  4913.  After selecting the attribute, comparison type, and comparison value, select 
  4914.  the appropriate radio button to specify whether to include or exclude objects 
  4915.  that match the specified criteria. 
  4916.  
  4917.  
  4918. ΓòÉΓòÉΓòÉ 7.2.1.2. Changing Criteria ΓòÉΓòÉΓòÉ
  4919.  
  4920. The following figure shows the Change Criteria dialog: 
  4921.  
  4922. To change a criteria, specify the Attribute, Comparison type, Comparison value, 
  4923. or Use of criteria, and select the Change push button. 
  4924.  
  4925.  
  4926. ΓòÉΓòÉΓòÉ 7.2.2. Searching for Objects ΓòÉΓòÉΓòÉ
  4927.  
  4928. The Workplace Shell has a Find tool that allows you to search for objects based 
  4929. on several criteria. Every container pop-up menu in the system has a Find 
  4930. Objects dialog. The following figure shows the Find Objects dialog: 
  4931.  
  4932. You use the Find Objects dialog to search for objects by their names, or by 
  4933. selecting the More push button and by specifying several criteria. The Find 
  4934. Objects dialog comes with default values: 
  4935.  
  4936.  Default Values           Description 
  4937.  
  4938.  Name                     Specifies the name of the object to search for. The 
  4939.                           asterisk (*) is the default and means to search for 
  4940.                           all object names. 
  4941.  
  4942.  Start Folder             Specifies where the search begins. The default is the 
  4943.                           path of the container from which the Find process is 
  4944.                           started. For the Desktop, the default is <ALL 
  4945.                           DRIVES>. The drop-down list box contains additional 
  4946.                           options, including the specific drives available in 
  4947.                           the system. 
  4948.  
  4949.  Search All Subfolders    Specifies to search all subfolders. The default is to 
  4950.                           search the specified folder. 
  4951.  
  4952.  Save Results             Creates a folder containing the Find result objects. 
  4953.                           The Find result objects are shadows of the objects, 
  4954.                           not the objects themselves. If this option is not 
  4955.                           checked, Find creates a window with icons that 
  4956.                           represent pointers to the real objects. This is the 
  4957.                           default option. 
  4958.  
  4959.  Locate                   Allows you to specify another starting point for the 
  4960.                           Find process. The following figure shows the Locate 
  4961.                           dialog. The focus is on the Desktop tab. 
  4962.  
  4963.                           The Locate dialog contains five options: 
  4964.  
  4965.       Option         Description 
  4966.  
  4967.       Desktop        Lists all folders in the Desktop folder. 
  4968.  
  4969.       Drives         Displays the contents of a drive in Tree view. 
  4970.  
  4971.       Opened         Lists all folders currently open on the Desktop. 
  4972.  
  4973.       Path           Specifies, in command line format, where the search 
  4974.                      begins. This is an alternative to Start Folder. 
  4975.  
  4976.       Related        Gives the Tree view for the drive from which the Find 
  4977.                      process started. 
  4978.  
  4979.  More                     Specifies more criterias for the Find process. This 
  4980.                           brings up the same dialog window as the one used in 
  4981.                           "Changing Criteria". 
  4982.  
  4983.  Find                     Starts the search process. After the Find process is 
  4984.                           started, a Search in progress dialog is displayed. 
  4985.                           When the search is completed a Find results window 
  4986.                           comes up that shows the name of all objects found. 
  4987.  
  4988.  
  4989. ΓòÉΓòÉΓòÉ 7.2.3. Sorting Objects ΓòÉΓòÉΓòÉ
  4990.  
  4991. You specify objects to sort on by selecting the Sort tab of the Settings 
  4992. notebook. The following figure shows the Sort dialog: 
  4993.  
  4994. There are four elements to consider for sorting objects: 
  4995.  
  4996.  Element                            Description 
  4997.  
  4998.  Object type                        Defines the type of object to sort on. 
  4999.  
  5000.  Sort by attribute                  Defines the attributes to sort on. The 
  5001.                                     attributes are associated with the object 
  5002.                                     type selected. 
  5003.  
  5004.  Default sort attribute             Specifies the system default sort 
  5005.                                     attribute. 
  5006.  
  5007.  Always maintain sort order         Refreshes any Open views every time a 
  5008.                                     folder's object is moved, copied, or 
  5009.                                     shadowed inside or outside its folder. 
  5010.  
  5011.  To select the previous sort criteria, press the Undo push button. To select 
  5012.  the default sort criteria, press the Default push button. 
  5013.  
  5014.  Two object Details fields introduced by WPObject are sortable criteria: Name 
  5015.  and Type. WPFileSystem introduces eight other sortable criteria. The following 
  5016.  table shows the name of each detail as shown on the object's context menu: 
  5017.  
  5018.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5019.   ΓöéObject Details Field   ΓöéAttribute          Γöé
  5020.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5021.   ΓöéName                   ΓöéName               Γöé
  5022.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5023.   ΓöéType                   ΓöéType               Γöé
  5024.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5025.   ΓöéReal name              ΓöéReal name          Γöé
  5026.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5027.   ΓöéSize of the file       ΓöéSize               Γöé
  5028.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5029.   ΓöéLast modification date ΓöéLast write date    Γöé
  5030.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5031.   ΓöéLast modification time ΓöéLast write time    Γöé
  5032.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5033.   ΓöéLast access date       ΓöéLast access date   Γöé
  5034.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5035.   ΓöéLast access time       ΓöéLast access time   Γöé
  5036.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5037.   ΓöéDate of creation       ΓöéCreation date      Γöé
  5038.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5039.   ΓöéTime of creation       ΓöéCreation time      Γöé
  5040.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5041.  
  5042.  WPObject and WPFileSystem are the only system classes that contribute Details 
  5043.  fields to the Sort dialog of the Settings notebook. User-defined class may 
  5044.  introduce their own Details fields as sort criteria. 
  5045.  
  5046.  The sort class for a particular container determines what class' sort Details 
  5047.  fields will appear as active sort criteria on the container's Sort dialog of 
  5048.  the Settings page. The default sort class for all containers is WPFileSystem. 
  5049.  This sort class can be manually changed via the container's Settings page, and 
  5050.  it can also be programmatically changed by using wpSetFldrSortClass. 
  5051.  
  5052.  The wpSetFldrSortClass and wpQueryFldrSortClass methods are needed to set both 
  5053.  the Always maintain sort order checkbox on a container's Sort dialog, as well 
  5054.  as the chosen sort field. 
  5055.  
  5056.  
  5057. ΓòÉΓòÉΓòÉ 8. Object Errors: Error Handling Methods ΓòÉΓòÉΓòÉ
  5058.  
  5059. The Workplace Shell provides methods which you can override to design your own 
  5060. error handling system, using error objects. This chapter provides information 
  5061. on error handling methods for Workplace Shell applications. 
  5062.  
  5063.  
  5064. ΓòÉΓòÉΓòÉ 8.1. About Error Handling Methods ΓòÉΓòÉΓòÉ
  5065.  
  5066. The WPObject class provides methods which can be overridden to design your own 
  5067. error handling system. 
  5068.  
  5069. The wpQueryError method obtains the error identity that was set on an object by 
  5070. the last call to wpSetError. The wpQueryError method can be called at any time. 
  5071.  
  5072. The wpSetError method sets the error identity on an object. Typically, this 
  5073. method is called prior to returning from a method that is unsuccessful. The 
  5074. wpQueryError method is then called to identify the error. 
  5075.  
  5076. Similar to object errors, class errors can also be queried and set using 
  5077. wpclsQueryError and wpclsSetError. 
  5078.  
  5079. The wpclsQueryError method obtains the error identity that was set on a class 
  5080. object by the last call to wpclsSetError. The wpclsQueryError method can be 
  5081. called at any time. 
  5082.  
  5083. The wpclsSetError method sets the error identity on a class object. Typically, 
  5084. this method is called prior to returning from a class method that is 
  5085. unsuccessful. The wpclsQueryError method is then called to identify the error. 
  5086.  
  5087.  
  5088. ΓòÉΓòÉΓòÉ 8.2. Using Error Handling Methods ΓòÉΓòÉΓòÉ
  5089.  
  5090. This section describes, via sample code fragments, how you can use the error 
  5091. handling methods. Specifically the first sample code shows how wpQueryError 
  5092. retrieves the error identity that was set on an object. The second code 
  5093. fragment shows how to design your own error handling system by overriding 
  5094. wpSetError. 
  5095.  
  5096. The following sample code shows how wpQueryError retrieves the error identity 
  5097. that was set on an object: 
  5098.  
  5099. // METHOD: my_wpDrop
  5100. //
  5101. // DESCRIPTION:
  5102. //   SOMObject
  5103. //     |__ WPObject
  5104. //           |__ WPFileSystem
  5105. //                 |__ WPFolder
  5106. //                       |__ MyFolder
  5107. //
  5108. //   When an object is dropped on a folder,
  5109. //   this method is called on the target folder.
  5110. //
  5111. //   This sample code shows how wpQueryError retrieves
  5112. //   the error identity that was set on an object.
  5113. //
  5114. SOM_Scope MRESULT SOMLINK my_wpDrop(MyFolder *self,
  5115.                                     HWND      hwndCnr,
  5116.                                     PDRAGINFO pDragInfo,
  5117.                                     PDRAGITEM pDragItem)
  5118. {
  5119.   MRESULT       mr;        // Return value
  5120.   ULONG         ulError;   // Error code set on folder
  5121.  
  5122.   // Clear existing error code
  5123.   _wpSetError(self, NO_ERROR);
  5124.   // Call the parent to handle the drop
  5125.   mr = parent_wpDrop(self, hwndCnr, pDragInfo, pDragItem);
  5126.  
  5127.   // If parent returns an error, check to see if the disk is full
  5128.   if (mr == (MRESULT)RC_DROP_ERROR)
  5129.   {
  5130.     // Query the error code set on the folder
  5131.     ulError = _wpQueryError(self);
  5132.     // If the disk is full, display a message to the user
  5133.     if (ulError == ERROR_DISK_FULL)
  5134.     {
  5135.       WinMessageBox(HWND_DESKTOP,
  5136.                     NULLHANDLE,             // Owner Window
  5137.                     "Error Disk Full",      // Body of the message
  5138.                     "Unsuccessful Drop",    // Title of the message
  5139.                     0,                      // Message box id
  5140.                     MB_ERROR | MB_OK);      // Icon and button flags
  5141.     }
  5142.   }
  5143.   return mr;
  5144. }
  5145.  
  5146. The following sample code shows shows how to design your own error handling 
  5147. system by overriding wpSetError: 
  5148.  
  5149. // METHOD: my_wpSetError
  5150. //
  5151. // DESCRIPTION:
  5152. //   Sets the error on an object.
  5153. //   User-defined errors can be handled here.
  5154. //
  5155. //   This sample code shows how to design your own
  5156. //   error handling system by overriding wpSetError.
  5157.  
  5158. SOM_Scope BOOL SOMLINK my_wpSetError(MyFolder *self,
  5159.                                      ULONG ulErrorId)
  5160. {
  5161.   // Check to see if this is a user-defined error
  5162.   if (ulErrorId > WPERR_USER)
  5163.   {
  5164.     // Handle user-defined errors here
  5165.   }
  5166.   // Call the parent to set the error
  5167.   return (parent_wpSetError(self, ulErrorId));
  5168. }
  5169.  
  5170.  
  5171. ΓòÉΓòÉΓòÉ 9. Object Information: Set/Query Methods ΓòÉΓòÉΓòÉ
  5172.  
  5173. The Workplace Shell provides several set and query methods that you can use to 
  5174. set or to get object information, such as the default view of the object's 
  5175. in-use list, the object's icon, and the object's title. This chapter provides 
  5176. information for using object information methods. It describes how to define 
  5177. the behavior of Workplace Shell objects, using applicable styles. 
  5178.  
  5179.  
  5180. ΓòÉΓòÉΓòÉ 9.1. About Set/Query Methods ΓòÉΓòÉΓòÉ
  5181.  
  5182. The set and query methods are used to set and interrogate the properties of 
  5183. objects. The information associated with an object can be: 
  5184.  
  5185.    o  Default help 
  5186.    o  Default view 
  5187.    o  Error set 
  5188.    o  Handle 
  5189.    o  Icon 
  5190.    o  Icon data 
  5191.    o  Identifier 
  5192.    o  Settings page size 
  5193.    o  Title. 
  5194.  
  5195.  As some methods relate to one another, they have been grouped into the 
  5196.  following sections: 
  5197.  
  5198.    o  General (including Class style and Object style) 
  5199.    o  Data file 
  5200.    o  Desktop 
  5201.    o  Disk (File-System Device) 
  5202.    o  File System 
  5203.    o  Folder 
  5204.    o  Icon 
  5205.    o  Network 
  5206.    o  Palette 
  5207.    o  Power 
  5208.    o  Printer 
  5209.    o  Program reference and program file 
  5210.    o  Shadow 
  5211.    o  View. 
  5212.  
  5213.  Each section is divided into tables that are grouped as follows: 
  5214.  
  5215.    o  Methods that obtain information and that are overridden 
  5216.    o  Methods that obtain information but are not normally overridden 
  5217.    o  Methods that set information and that are overridden 
  5218.    o  Methods that set information but are not normally overridden. 
  5219.  
  5220.  Note:  The help, error, and sort methods are explained in the following 
  5221.         chapters: 
  5222.  
  5223.  Error handling methods        Object Errors: Error Handling Methods. 
  5224.  
  5225.  Sort methods                  Object Criteria: Details Methods. 
  5226.  
  5227.  Help methods                  Object Aid: Help Methods. 
  5228.  
  5229.  
  5230. ΓòÉΓòÉΓòÉ 9.1.1. General Characteristics Methods ΓòÉΓòÉΓòÉ
  5231.  
  5232. A program or Workplace Shell object would call the following methods to get 
  5233. general information about an object. A Workplace Shell object would override 
  5234. these methods to define its characteristics. 
  5235.  
  5236. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5237. ΓöéMethod Name                   ΓöéDescription                   Γöé
  5238. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5239. ΓöéwpQueryConfirmations          ΓöéReturns the set of            Γöé
  5240. Γöé                              Γöéconfirmations that are set forΓöé
  5241. Γöé                              Γöéthis object.                  Γöé
  5242. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5243. ΓöéwpQueryDefaultHelp            ΓöéReturns the object's default  Γöé
  5244. Γöé                              Γöéhelp panel.                   Γöé
  5245. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5246. ΓöéwpQueryNameClashOption        ΓöéReturns the set of options    Γöé
  5247. Γöé                              Γöéthat are not available on the Γöé
  5248. Γöé                              Γöéname clash dialog for this    Γöé
  5249. Γöé                              Γöéobject.                       Γöé
  5250. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5251. ΓöéwpQueryStyle                  ΓöéReturns the object's style.   Γöé
  5252. Γöé                              ΓöéSee Object Styles.            Γöé
  5253. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5254. ΓöéwpQueryTitle                  ΓöéReturns the object's title.   Γöé
  5255. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5256. ΓöéwpclsQueryDefaultHelp         ΓöéReturns the class default helpΓöé
  5257. Γöé                              Γöépanel. This help panel is usedΓöé
  5258. Γöé                              Γöéfor all objects of this class.Γöé
  5259. Γöé                              ΓöéThe default help panel can be Γöé
  5260. Γöé                              Γöéchanged for an individual     Γöé
  5261. Γöé                              Γöéobject if:                    Γöé
  5262. Γöé                              Γöé                              Γöé
  5263. Γöé                              Γöéo The object overrides        Γöé
  5264. Γöé                              Γöé  wpQueryDefaultHelp.         Γöé
  5265. Γöé                              Γöéo The wpSetDefaultHelp method Γöé
  5266. Γöé                              Γöé  is called.                  Γöé
  5267. Γöé                              Γöéo The wpSetup method is calledΓöé
  5268. Γöé                              Γöé  with the HELPPANEL keyword. Γöé
  5269. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5270. ΓöéwpclsQuerySetting             ΓöéReturns a settings value for  Γöé
  5271. Γöé                              Γöéan abstract class object. An  Γöé
  5272. Γöé                              Γöéabstract class object would   Γöé
  5273. Γöé                              Γöéoverride this method if it    Γöé
  5274. Γöé                              Γöésaved its class settings.     Γöé
  5275. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5276. ΓöéwpclsQueryStyle               ΓöéReturns the class style. See  Γöé
  5277. Γöé                              ΓöéClass Styles.                 Γöé
  5278. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5279. ΓöéwpclsQueryTitle               ΓöéReturns the class title. This Γöé
  5280. Γöé                              Γöétitle is used for all objects Γöé
  5281. Γöé                              Γöéof this class, including the  Γöé
  5282. Γöé                              Γöéclass template. The title can Γöé
  5283. Γöé                              Γöébe changed for an individual  Γöé
  5284. Γöé                              Γöéobject if:                    Γöé
  5285. Γöé                              Γöé                              Γöé
  5286. Γöé                              Γöéo The object overrides        Γöé
  5287. Γöé                              Γöé  wpQueryTitle.               Γöé
  5288. Γöé                              Γöéo The wpSetTitle method is    Γöé
  5289. Γöé                              Γöé  called.                     Γöé
  5290. Γöé                              Γöéo The wpSetup method is       Γöé
  5291. Γöé                              Γöé  called with the TITLE       Γöé
  5292. Γöé                              Γöé  keyword, when the user      Γöé
  5293. Γöé                              Γöé  edits the object's title    Γöé
  5294. Γöé                              Γöé  on the General page of the  Γöé
  5295. Γöé                              Γöé  Settings notebook, or when  Γöé
  5296. Γöé                              Γöé  the user edits the          Γöé
  5297. Γöé                              Γöé  object's title under        Γöé
  5298. Γöé                              Γöé  the icon.                   Γöé
  5299. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5300.  
  5301. A program or Workplace Shell object would call the following methods to get 
  5302. general information about an object. These methods are not normally overridden. 
  5303.  
  5304. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5305. ΓöéMethod Name                   ΓöéDescription                   Γöé
  5306. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5307. ΓöéwpQueryContainerFlagPrt       ΓöéReturns the pointer to a flag Γöé
  5308. Γöé                              Γöéindicating whether or not the Γöé
  5309. Γöé                              Γöéobject is in a container.     Γöé
  5310. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5311. ΓöéwpQueryCoreRecord             ΓöéReturns the pointer to the    Γöé
  5312. Γöé                              Γöéobject's MINIRECORDCORE data  Γöé
  5313. Γöé                              Γöéstructure.                    Γöé
  5314. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5315. ΓöéwpQueryDefaultIconPos         ΓöéReturns the default icon      Γöé
  5316. Γöé                              Γöéposition used when this objectΓöé
  5317. Γöé                              Γöéis first inserted into a      Γöé
  5318. Γöé                              Γöéfolder.                       Γöé
  5319. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5320. ΓöéwpQueryError                  ΓöéReturns the last error code   Γöé
  5321. Γöé                              Γöéset by calling the object's   Γöé
  5322. Γöé                              ΓöéwpSetError. This is normally  Γöé
  5323. Γöé                              Γöéan error code being returned  Γöé
  5324. Γöé                              Γöéby a failing instance method. Γöé
  5325. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5326. ΓöéwpQueryFolder                 ΓöéReturns the object pointer forΓöé
  5327. Γöé                              Γöéthe folder containing the     Γöé
  5328. Γöé                              Γöéobject.                       Γöé
  5329. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5330. ΓöéwpQueryHandle                 ΓöéReturns the object's unique   Γöé
  5331. Γöé                              Γöépersistent handle.            Γöé
  5332. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5333. ΓöéwpQueryObjectID               ΓöéReturns the object's          Γöé
  5334. Γöé                              Γöéidentifier. The object        Γöé
  5335. Γöé                              Γöéidentifier is set by calling  Γöé
  5336. Γöé                              ΓöéwpSetObjectID for the object  Γöé
  5337. Γöé                              Γöéor by calling wpSetup for the Γöé
  5338. Γöé                              Γöéobject with the OBJECTID      Γöé
  5339. Γöé                              Γöékeyword.                      Γöé
  5340. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5341. ΓöéwpQueryScreenGroupID          ΓöéReturns the screen group      Γöé
  5342. Γöé                              Γöéidentifier of the application Γöé
  5343. Γöé                              Γöérunning for this object.      Γöé
  5344. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5345. ΓöéwpQueryStyle                  ΓöéReturns the object's current  Γöé
  5346. Γöé                              Γöéstyle flags. See Object StylesΓöé
  5347. Γöé                              Γöé.                             Γöé
  5348. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5349. ΓöéwpclsQueryError               ΓöéReturns the last error code   Γöé
  5350. Γöé                              Γöéset by calling the class'     Γöé
  5351. Γöé                              ΓöéwpclsSetError. This is        Γöé
  5352. Γöé                              Γöénormally an error code that isΓöé
  5353. Γöé                              Γöéreturned by a failing class   Γöé
  5354. Γöé                              Γöémethod.                       Γöé
  5355. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5356. ΓöéwpclsQueryFolder              ΓöéReturns the pointer to the    Γöé
  5357. Γöé                              Γöéfolder object that correspondsΓöé
  5358. Γöé                              Γöéto the specified file system  Γöé
  5359. Γöé                              Γöépath.                         Γöé
  5360. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5361. ΓöéwpclsQueryObject              ΓöéReturns the pointer to the    Γöé
  5362. Γöé                              Γöéobject that corresponds to theΓöé
  5363. Γöé                              Γöéspecified persistent object   Γöé
  5364. Γöé                              Γöéhandle.                       Γöé
  5365. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5366. ΓöéwpclsQueryStyle               ΓöéReturns the object class'     Γöé
  5367. Γöé                              Γöéstyle. See Class Styles.      Γöé
  5368. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5369.  
  5370. A program or Workplace Shell object would call the following methods to set 
  5371. general information about an object. These methods are not normally overridden. 
  5372.  
  5373. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5374. ΓöéMethod Name                   ΓöéDescription                   Γöé
  5375. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5376. ΓöéwpModifyStyle                 ΓöéSets or clears individual     Γöé
  5377. Γöé                              Γöéflags within the object's     Γöé
  5378. Γöé                              Γöéstyle. This method call is an Γöé
  5379. Γöé                              Γöéatomic operation as only the  Γöé
  5380. Γöé                              Γöéspecified style flags are     Γöé
  5381. Γöé                              Γöéchanged, even if other runningΓöé
  5382. Γöé                              Γöéthreads try to modify the     Γöé
  5383. Γöé                              Γöéstyle flags at the same time. Γöé
  5384. Γöé                              ΓöéSee Object Styles.            Γöé
  5385. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5386. ΓöéwpSetDefaultHelp              ΓöéSets the object's default helpΓöé
  5387. Γöé                              Γöépanel.                        Γöé
  5388. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5389. ΓöéwpSetDefaultIconPos           ΓöéSets the object's default iconΓöé
  5390. Γöé                              Γöéposition which is used when itΓöé
  5391. Γöé                              Γöéis inserted into a folder.    Γöé
  5392. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5393. ΓöéwpSetError                    ΓöéSets the current error code   Γöé
  5394. Γöé                              Γöéfor the object. This method isΓöé
  5395. Γöé                              Γöénormally called by an instanceΓöé
  5396. Γöé                              Γöémethod to pass an error code  Γöé
  5397. Γöé                              Γöéback to the caller.           Γöé
  5398. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5399. ΓöéwpSetObjectID                 ΓöéSets the object's identifier. Γöé
  5400. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5401. ΓöéwpSetStyle                    ΓöéSets the object's style. This Γöé
  5402. Γöé                              Γöémethod exists only for        Γöé
  5403. Γöé                              Γöécompatibility with old        Γöé
  5404. Γöé                              Γöéobjects. All new or changed   Γöé
  5405. Γöé                              Γöéobjects should use            Γöé
  5406. Γöé                              ΓöéwpModifyStyle instead. See    Γöé
  5407. Γöé                              ΓöéObject Styles.                Γöé
  5408. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5409. ΓöéwpSetTitle                    ΓöéSets the object's title.      Γöé
  5410. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5411. ΓöéwpclsSetError                 ΓöéSets the current error code   Γöé
  5412. Γöé                              Γöéfor the class. This method is Γöé
  5413. Γöé                              Γöénormally called by a class    Γöé
  5414. Γöé                              Γöémethod to pass an error code  Γöé
  5415. Γöé                              Γöéback to the caller.           Γöé
  5416. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5417.  
  5418. A program or Workplace Shell object would call the following method to set 
  5419. general information about an object. A Workplace Shell object would override 
  5420. this method to define its characteristics. 
  5421.  
  5422. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5423. ΓöéMethod Name                   ΓöéDescription                   Γöé
  5424. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5425. ΓöéwpclsSetSetting               ΓöéSets a settings value for an  Γöé
  5426. Γöé                              Γöéabstract class object. An     Γöé
  5427. Γöé                              Γöéabstract class object would   Γöé
  5428. Γöé                              Γöéoverride this method if it    Γöé
  5429. Γöé                              Γöéwants to save its class       Γöé
  5430. Γöé                              Γöésettings.                     Γöé
  5431. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5432.  
  5433.  
  5434. ΓòÉΓòÉΓòÉ 9.1.1.1. Class Styles ΓòÉΓòÉΓòÉ
  5435.  
  5436. Workplace Shell object classes have styles that define the behavior of all 
  5437. objects of that class. The object class style is defined by wpclsQueryStyle. 
  5438. When an object is created, the object's style is initially inherited from the 
  5439. class. The following table lists the class style flags: 
  5440.  
  5441. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5442. ΓöéStyle Name                    ΓöéDescription                   Γöé
  5443. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5444. ΓöéCLSSTYLE_NEVERCOPY            ΓöéObjects of this class cannot  Γöé
  5445. Γöé                              Γöébe copied.                    Γöé
  5446. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5447. ΓöéCLSSTYLE_NEVERDELETE          ΓöéObjects of this class cannot  Γöé
  5448. Γöé                              Γöébe deleted.                   Γöé
  5449. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5450. ΓöéCLSSTYLE_NEVERDRAG            ΓöéObjects of this class cannot  Γöé
  5451. Γöé                              Γöébe dragged.                   Γöé
  5452. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5453. ΓöéCLSSTYLE_NEVERLINK            ΓöéObjects of this class cannot  Γöé
  5454. Γöé                              Γöéhave shadows.                 Γöé
  5455. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5456. ΓöéCLSSTYLE_NEVERMOVE            ΓöéObjects of this class cannot  Γöé
  5457. Γöé                              Γöébe moved.                     Γöé
  5458. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5459. ΓöéCLSSTYLE_NEVERPRINT           ΓöéObjects of this class cannot  Γöé
  5460. Γöé                              Γöébe printed.                   Γöé
  5461. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5462. ΓöéCLSSTYLE_NEVERRENAME          ΓöéObjects of this class cannot  Γöé
  5463. Γöé                              Γöébe renamed.                   Γöé
  5464. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5465. ΓöéCLSSTYLE_NEVERSETTINGS        ΓöéObjects of this class cannot  Γöé
  5466. Γöé                              Γöébe opened in Settings view.   Γöé
  5467. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5468. ΓöéCLSSTYLE_NEVERTEMPLATE        ΓöéThis class does not have a    Γöé
  5469. Γöé                              Γöétemplate. Also, objects of    Γöé
  5470. Γöé                              Γöéthis class will not have a    Γöé
  5471. Γöé                              ΓöéCreate another option in theirΓöé
  5472. Γöé                              Γöécontext menu.                 Γöé
  5473. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5474. ΓöéCLSSTYLE_NEVERVISIBLE         ΓöéObjects of this class are     Γöé
  5475. Γöé                              Γöénever visible.                Γöé
  5476. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5477.  
  5478.  
  5479. ΓòÉΓòÉΓòÉ 9.1.1.2. Object Styles ΓòÉΓòÉΓòÉ
  5480.  
  5481. Workplace Shell objects have styles that define their behavior. The object 
  5482. class style is defined by wpQueryStyle. When an object is created, the object's 
  5483. style is initially inherited from the class. The wpQueryStyle method can modify 
  5484. the style flags to tailor the object. Also, wpModifyStyle can be used to set or 
  5485. reset individual style flags for the object. The following table lists the 
  5486. object style flags: 
  5487.  
  5488. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5489. ΓöéStyle Name                    ΓöéDescription                   Γöé
  5490. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5491. ΓöéOBJSTYLE_NOCOPY               ΓöéThe object cannot be copied.  Γöé
  5492. Γöé                              ΓöéThe Copy option is not valid  Γöé
  5493. Γöé                              Γöéfor a direct manipulation     Γöé
  5494. Γöé                              Γöéoperation (Pickup and Drop)   Γöé
  5495. Γöé                              Γöéand there is no Copy option inΓöé
  5496. Γöé                              Γöéthe object's context menu.    Γöé
  5497. Γöé                              ΓöéThis option is inherited from Γöé
  5498. Γöé                              Γöéthe class' CLSSTYLE_NEVERCOPY Γöé
  5499. Γöé                              Γöéstyle.                        Γöé
  5500. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5501. ΓöéOBJSTYLE_NODELETE             ΓöéThe object cannot be deleted. Γöé
  5502. Γöé                              ΓöéThe object cannot be dragged  Γöé
  5503. Γöé                              Γöéto the shredder and there is  Γöé
  5504. Γöé                              Γöéno Delete option in the       Γöé
  5505. Γöé                              Γöéobject's context menu. This   Γöé
  5506. Γöé                              Γöéoption is inherited from the  Γöé
  5507. Γöé                              Γöéclass' CLSSTYLE_NEVERDELETE   Γöé
  5508. Γöé                              Γöéstyle.                        Γöé
  5509. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5510. ΓöéOBJSTYLE_NODRAG               ΓöéThe object cannot be copied orΓöé
  5511. Γöé                              Γöémoved. Direct manipulation    Γöé
  5512. Γöé                              Γöéoperations (Pickup and Drop)  Γöé
  5513. Γöé                              Γöéare not valid for this object Γöé
  5514. Γöé                              Γöéand there are no Copy, Move,  Γöé
  5515. Γöé                              Γöéor Pickup options in the      Γöé
  5516. Γöé                              Γöéobject's context menu. This   Γöé
  5517. Γöé                              Γöéoption is inherited from the  Γöé
  5518. Γöé                              Γöéclass' CLSSTYLE_NEVERDRAG     Γöé
  5519. Γöé                              Γöéstyle.                        Γöé
  5520. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5521. ΓöéOBJSTYLE_NODROPON             ΓöéNo other object can be droppedΓöé
  5522. Γöé                              Γöéon this object using a direct Γöé
  5523. Γöé                              Γöémanipulation operation (PickupΓöé
  5524. Γöé                              Γöéand Drop).                    Γöé
  5525. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5526. ΓöéOBJSTYLE_NOLINK               ΓöéThe object cannot have        Γöé
  5527. Γöé                              Γöéshadows. The Link option is   Γöé
  5528. Γöé                              Γöénot valid for a direct        Γöé
  5529. Γöé                              Γöémanipulation operation (PickupΓöé
  5530. Γöé                              Γöéand Drop) and there is no     Γöé
  5531. Γöé                              ΓöéCreate shadow option in the   Γöé
  5532. Γöé                              Γöéobject's context menu. This   Γöé
  5533. Γöé                              Γöéoption is inherited from the  Γöé
  5534. Γöé                              Γöéclass' CLSSTYLE_NEVERLINK     Γöé
  5535. Γöé                              Γöéstyle.                        Γöé
  5536. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5537. ΓöéOBJSTYLE_NOMOVE               ΓöéThe object cannot be moved.   Γöé
  5538. Γöé                              ΓöéThe Move option is not valid  Γöé
  5539. Γöé                              Γöéfor a direct manipulation     Γöé
  5540. Γöé                              Γöéoperation (Pickup and Drop)   Γöé
  5541. Γöé                              Γöéand there is no Move option inΓöé
  5542. Γöé                              Γöéthe object's context menu.    Γöé
  5543. Γöé                              ΓöéThis option is inherited from Γöé
  5544. Γöé                              Γöéthe class' CLSSTYLE_NEVERMOVE Γöé
  5545. Γöé                              Γöéstyle.                        Γöé
  5546. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5547. ΓöéOBJSTYLE_NOPRINT              ΓöéThe object cannot be printed. Γöé
  5548. Γöé                              ΓöéThe object cannot be dragged  Γöé
  5549. Γöé                              Γöéto a Printer object and there Γöé
  5550. Γöé                              Γöéis no Print option in the     Γöé
  5551. Γöé                              Γöéobject's context menu. This   Γöé
  5552. Γöé                              Γöéoption is inherited from the  Γöé
  5553. Γöé                              Γöéclass' CLSSTYLE_NEVERPRINT    Γöé
  5554. Γöé                              Γöéstyle.                        Γöé
  5555. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5556. ΓöéOBJSTYLE_NORENAME             ΓöéThis object cannot be renamed.Γöé
  5557. Γöé                              ΓöéIts title cannot be changed   Γöé
  5558. Γöé                              Γöéeither by directly editing theΓöé
  5559. Γöé                              Γöétitle under the icon or by    Γöé
  5560. Γöé                              Γöéchanging the title on the     Γöé
  5561. Γöé                              ΓöéGeneral page of the Settings  Γöé
  5562. Γöé                              Γöénotebook.                     Γöé
  5563. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5564. ΓöéOBJSTYLE_NOSETTINGS           ΓöéThis object cannot be opened  Γöé
  5565. Γöé                              Γöéin Settings view. There is no Γöé
  5566. Γöé                              ΓöéSettings option in the        Γöé
  5567. Γöé                              Γöéobject's context menu. This   Γöé
  5568. Γöé                              Γöéoption is inherited from the  Γöé
  5569. Γöé                              Γöéclass' CLSSTYLE_NEVERSETTINGS Γöé
  5570. Γöé                              Γöéstyle.                        Γöé
  5571. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5572. ΓöéOBJSTYLE_NOTDEFAULTICON       ΓöéThe icon associated with this Γöé
  5573. Γöé                              Γöéobject is not the class       Γöé
  5574. Γöé                              Γöédefault icon.                 Γöé
  5575. Γöé                              Γöé                              Γöé
  5576. Γöé                              ΓöéNote:                         Γöé
  5577. Γöé                              ΓöéYou should never modify this  Γöé
  5578. Γöé                              Γöéstyle option because the      Γöé
  5579. Γöé                              ΓöéWorkplace Shell uses it for   Γöé
  5580. Γöé                              Γöéthe following reasons:        Γöé
  5581. Γöé                              Γöé                              Γöé
  5582. Γöé                              Γöéo When you copy an object,    Γöé
  5583. Γöé                              Γöé  the Workplace Shell         Γöé
  5584. Γöé                              Γöé  determines when to create   Γöé
  5585. Γöé                              Γöé  a copy of the object's      Γöé
  5586. Γöé                              Γöé  icon.                       Γöé
  5587. Γöé                              Γöéo When the Workplace Shell    Γöé
  5588. Γöé                              Γöé  frees an icon.              Γöé
  5589. Γöé                              Γöé                              Γöé
  5590. Γöé                              ΓöéIf this style flag is set     Γöé
  5591. Γöé                              Γöéincorrectly, the object's     Γöé
  5592. Γöé                              Γöéicon could disappear or       Γöé
  5593. Γöé                              Γöécould not be freed when       Γöé
  5594. Γöé                              Γöénecessary, thereby wasting    Γöé
  5595. Γöé                              Γöésystem memory.                Γöé
  5596. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5597. ΓöéOBJSTYLE_TEMPLATE             ΓöéThis object is a template.    Γöé
  5598. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5599.  
  5600.  
  5601. ΓòÉΓòÉΓòÉ 9.1.2. Data File Related Methods ΓòÉΓòÉΓòÉ
  5602.  
  5603. A program or Workplace Shell object would call the following methods to get 
  5604. information about a data file object. These methods are not normally 
  5605. overridden. 
  5606.  
  5607. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5608. ΓöéMethod Name                   ΓöéDescription                   Γöé
  5609. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5610. ΓöéwpQueryAssociatedFileIcon     ΓöéReturns the handle of the iconΓöé
  5611. Γöé                              Γöéfor the WPProgram or          Γöé
  5612. Γöé                              ΓöéWPProgramFile object          Γöé
  5613. Γöé                              Γöéassociated with the data file Γöé
  5614. Γöé                              Γöéobject.                       Γöé
  5615. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5616. ΓöéwpQueryAssociatedProgram      ΓöéReturns the pointer to the    Γöé
  5617. Γöé                              ΓöéWPProgram or WPProgramFile    Γöé
  5618. Γöé                              Γöéobject associated with the    Γöé
  5619. Γöé                              Γöédata file object.             Γöé
  5620. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5621.  
  5622. A program or Workplace Shell object would call the following method to set 
  5623. information about a data file object. This method may be overridden to force 
  5624. the association of a specific icon with a data file. 
  5625.  
  5626. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5627. ΓöéMethod Name                   ΓöéDescription                   Γöé
  5628. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5629. ΓöéwpSetAssociatedFileIcon       ΓöéChange the icon associated    Γöé
  5630. Γöé                              Γöéwith the data file object.    Γöé
  5631. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5632.  
  5633.  
  5634. ΓòÉΓòÉΓòÉ 9.1.3. Desktop Related Methods ΓòÉΓòÉΓòÉ
  5635.  
  5636. A program or Workplace Shell object would call the following methods to get 
  5637. information about a Desktop object. These methods are not normally overridden. 
  5638.  
  5639. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5640. ΓöéMethod Name                   ΓöéDescription                   Γöé
  5641. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5642. ΓöéwpIsCurrentDesktop            ΓöéReturns an indication of      Γöé
  5643. Γöé                              Γöéwhether or not the Desktop    Γöé
  5644. Γöé                              Γöéobject is the active Desktop. Γöé
  5645. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5646. ΓöéwpclsQueryActiveDesktop       ΓöéReturns the pointer to the    Γöé
  5647. Γöé                              Γöéactive Desktop object.        Γöé
  5648. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5649. ΓöéwpclsQueryActiveDesktopHWND   ΓöéReturns the window handle for Γöé
  5650. Γöé                              Γöéthe active Desktop.           Γöé
  5651. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5652. ΓöéwpclsQueryObjectFromFrame     ΓöéReturns the pointer to the    Γöé
  5653. Γöé                              Γöéobject associated with the    Γöé
  5654. Γöé                              Γöéspecified frame window.       Γöé
  5655. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5656.  
  5657.  
  5658. ΓòÉΓòÉΓòÉ 9.1.4. Disk (File-System Device) Related Methods ΓòÉΓòÉΓòÉ
  5659.  
  5660. A program or Workplace Shell object would call the following methods to set 
  5661. information about a disk object. These methods are not normally overridden. 
  5662.  
  5663. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5664. ΓöéMethod Name                   ΓöéDescription                   Γöé
  5665. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5666. ΓöéwpQueryDriveLockStatus        ΓöéReturns the lock status of a  Γöé
  5667. Γöé                              Γöédisk object.                  Γöé
  5668. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5669. ΓöéwpQueryLogicalDrive           ΓöéReturns the logical drive     Γöé
  5670. Γöé                              Γöénumber for a disk object.     Γöé
  5671. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5672. ΓöéwpQueryRootFolder             ΓöéReturns the root folder objectΓöé
  5673. Γöé                              Γöéfor the logical drive         Γöé
  5674. Γöé                              Γöérepresented by a disk object. Γöé
  5675. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5676.  
  5677. A program or Workplace Shell object would call the following method to set 
  5678. information about a disk object. A disk object would override this method to 
  5679. define its characteristics. 
  5680.  
  5681. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5682. ΓöéMethod Name                   ΓöéDescription                   Γöé
  5683. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5684. ΓöéwpSetCorrectDiskIcon          ΓöéSets the correct icon for the Γöé
  5685. Γöé                              Γöédisk object.                  Γöé
  5686. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5687.  
  5688.  
  5689. ΓòÉΓòÉΓòÉ 9.1.5. File System Related Methods ΓòÉΓòÉΓòÉ
  5690.  
  5691. A program or Workplace Shell object would call the following methods to get 
  5692. information about a file system object. These methods are not normally 
  5693. overridden. 
  5694.  
  5695. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5696. ΓöéMethod Name                   ΓöéDescription                   Γöé
  5697. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5698. ΓöéwpQueryAttr                   ΓöéReturns the file attributes ofΓöé
  5699. Γöé                              Γöéthe file system object.       Γöé
  5700. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5701. ΓöéwpQueryCreation               ΓöéReturns the creation date and Γöé
  5702. Γöé                              Γöétime of the file system       Γöé
  5703. Γöé                              Γöéobject.                       Γöé
  5704. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5705. ΓöéwpQueryDateInfo               ΓöéReturns the file system       Γöé
  5706. Γöé                              Γöéobject's:                     Γöé
  5707. Γöé                              Γöé                              Γöé
  5708. Γöé                              Γöéo Creation date and time      Γöé
  5709. Γöé                              Γöéo Last access date and timeo  Γöé
  5710. Γöé                              Γöéo Last update date and time.  Γöé
  5711. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5712. ΓöéwpQueryDisk                   ΓöéReturns the pointer to the    Γöé
  5713. Γöé                              Γöédisk object for the drive on  Γöé
  5714. Γöé                              Γöéwhich the file system object  Γöé
  5715. Γöé                              Γöéresides.                      Γöé
  5716. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5717. ΓöéwpQueryEASize                 ΓöéReturns the size, in bytes, ofΓöé
  5718. Γöé                              Γöéthe extended attributes of theΓöé
  5719. Γöé                              Γöéfile system object.           Γöé
  5720. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5721. ΓöéwpQueryFilename               ΓöéReturns the name of the file  Γöé
  5722. Γöé                              Γöésystem object.                Γöé
  5723. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5724. ΓöéwpQueryFileSize               ΓöéReturns the size, in bytes, ofΓöé
  5725. Γöé                              Γöéthe file system object.       Γöé
  5726. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5727. ΓöéwpQueryLastAccess             ΓöéReturns the last access date  Γöé
  5728. Γöé                              Γöéand time of the file system   Γöé
  5729. Γöé                              Γöéobject.                       Γöé
  5730. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5731. ΓöéwpQueryLastWrite              ΓöéReturns the last write date   Γöé
  5732. Γöé                              Γöéand time of the file system   Γöé
  5733. Γöé                              Γöéobject.                       Γöé
  5734. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5735. ΓöéwpQueryRealName               ΓöéReturns the real name of the  Γöé
  5736. Γöé                              Γöéfile system object. For file  Γöé
  5737. Γöé                              Γöésystems that do not support   Γöé
  5738. Γöé                              Γöélong file names, such as the  Γöé
  5739. Γöé                              ΓöéFAT file system which allows 8Γöé
  5740. Γöé                              Γöécharacters for the file name  Γöé
  5741. Γöé                              Γöéand 3 for the extension, the  Γöé
  5742. Γöé                              Γöéreal name may be different    Γöé
  5743. Γöé                              Γöéthan the object's title.      Γöé
  5744. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5745. ΓöéwpQueryType                   ΓöéReturns the type of the file  Γöé
  5746. Γöé                              Γöésystem object.                Γöé
  5747. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5748. ΓöéwpclsQueryAwakeObject         ΓöéReturns the pointer to the    Γöé
  5749. Γöé                              Γöéfile system object            Γöé
  5750. Γöé                              Γöécorresponding to the specifiedΓöé
  5751. Γöé                              Γöépath name, if the file system Γöé
  5752. Γöé                              Γöéobject is awake.              Γöé
  5753. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5754. ΓöéwpclsQueryInstanceFilter      ΓöéReturns a string containing   Γöé
  5755. Γöé                              Γöéthe filter for files that     Γöé
  5756. Γöé                              Γöécomprise the object class.    Γöé
  5757. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5758. ΓöéwpclsQueryInstanceType        ΓöéReturns a string containing   Γöé
  5759. Γöé                              Γöéthe .TYPE attribute for the   Γöé
  5760. Γöé                              Γöéfiles that comprise the objectΓöé
  5761. Γöé                              Γöéclass.                        Γöé
  5762. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5763. ΓöéwpclsQueryObjectFromPath      ΓöéReturns the pointer to an     Γöé
  5764. Γöé                              Γöéobject which represents the   Γöé
  5765. Γöé                              Γöégiven file or directory.      Γöé
  5766. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5767.  
  5768. i1.wpSetRealName A program or Workplace Shell object would call the following 
  5769. methods to set information about a file system object. These methods are not 
  5770. normally overridden. 
  5771.  
  5772. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5773. ΓöéMethod Name                   ΓöéDescription                   Γöé
  5774. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5775. ΓöéwpSetAttr                     ΓöéChanges the file attributes ofΓöé
  5776. Γöé                              Γöéthe file system object.       Γöé
  5777. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5778. ΓöéwpSetDateInfo                 ΓöéChanges the file system       Γöé
  5779. Γöé                              Γöéobject's:                     Γöé
  5780. Γöé                              Γöé                              Γöé
  5781. Γöé                              Γöéo Creation date and time      Γöé
  5782. Γöé                              Γöéo Last access date and timeo  Γöé
  5783. Γöé                              Γöéo Last update date and time.  Γöé
  5784. Γöé                              Γöé                              Γöé
  5785. Γöé                              ΓöéNote:                         Γöé
  5786. Γöé                              ΓöéThis method changes only the  Γöé
  5787. Γöé                              Γöédates and times kept in the   Γöé
  5788. Γöé                              Γöépersistent data of the file   Γöé
  5789. Γöé                              Γöésystem object.  It does not   Γöé
  5790. Γöé                              Γöéchange the actual dates and   Γöé
  5791. Γöé                              Γöétimes kept by the underlying  Γöé
  5792. Γöé                              Γöéfile system.                  Γöé
  5793. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5794. ΓöéwpSetFileSizeInfo             ΓöéChanges the file size and     Γöé
  5795. Γöé                              Γöéextended attribute size of theΓöé
  5796. Γöé                              Γöéfile system object.           Γöé
  5797. Γöé                              Γöé                              Γöé
  5798. Γöé                              ΓöéNote:                         Γöé
  5799. Γöé                              ΓöéThis method changes only      Γöé
  5800. Γöé                              Γöéthe sizes kept in the         Γöé
  5801. Γöé                              Γöépersistent data of the file   Γöé
  5802. Γöé                              Γöésystem object.  It does not   Γöé
  5803. Γöé                              Γöéchange the actual sizes used  Γöé
  5804. Γöé                              Γöéby the underlying file        Γöé
  5805. Γöé                              Γöésystem.                       Γöé
  5806. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5807. ΓöéwpSetRealName                 ΓöéChanges the real name of the  Γöé
  5808. Γöé                              Γöéfile system object. This is   Γöé
  5809. Γöé                              Γöéthe name of the object        Γöé
  5810. Γöé                              Γöémaintained by the underlying  Γöé
  5811. Γöé                              Γöéfile system.                  Γöé
  5812. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5813. ΓöéwpSetTitleAndRenameFile       ΓöéChanges the file system       Γöé
  5814. Γöé                              Γöéobject's title and real name, Γöé
  5815. Γöé                              Γöéso that they match.           Γöé
  5816. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5817. ΓöéwpSetType                     ΓöéChanges the .TYPE attribute ofΓöé
  5818. Γöé                              Γöéthe file system object.       Γöé
  5819. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5820.  
  5821.  
  5822. ΓòÉΓòÉΓòÉ 9.1.6. Folder Related Methods ΓòÉΓòÉΓòÉ
  5823.  
  5824. A program or Workplace Shell object would call the following methods to get 
  5825. information about a folder object. These methods are not normally overridden. 
  5826.  
  5827. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5828. ΓöéMethod Name                   ΓöéDescription                   Γöé
  5829. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5830. ΓöéwpIsDetailsColumnVisible      ΓöéReturns the visibility state  Γöé
  5831. Γöé                              Γöéof a specified Details view   Γöé
  5832. Γöé                              Γöécolumn of the folder object.  Γöé
  5833. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5834. ΓöéwpIsSortAttribAvailable       ΓöéReturns an indication of      Γöé
  5835. Γöé                              Γöéwhether or not a sort         Γöé
  5836. Γöé                              Γöéattribute is available for a  Γöé
  5837. Γöé                              Γöécolumn of the Details view of Γöé
  5838. Γöé                              Γöéthe folder object.            Γöé
  5839. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5840. ΓöéwpQueryContent                ΓöéReturns the pointer to an     Γöé
  5841. Γöé                              Γöéobject contained in the       Γöé
  5842. Γöé                              Γöéfolder. This method may be    Γöé
  5843. Γöé                              Γöécalled within a loop to       Γöé
  5844. Γöé                              Γöéenumerate all of the objects  Γöé
  5845. Γöé                              Γöécontained in the folder.      Γöé
  5846. Γöé                              Γöé                              Γöé
  5847. Γöé                              ΓöéNote:                         Γöé
  5848. Γöé                              ΓöéThe folder must be awake for  Γöé
  5849. Γöé                              Γöéthis method to return the     Γöé
  5850. Γöé                              Γöépointers to all objects       Γöé
  5851. Γöé                              Γöécontained in the folder.      Γöé
  5852. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5853. ΓöéwpQueryFldrAttr               ΓöéReturns the folder object's   Γöé
  5854. Γöé                              Γöéattributes.                   Γöé
  5855. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5856. ΓöéwpQueryFldrDetailsClass       ΓöéReturns the class for which   Γöé
  5857. Γöé                              Γöédata is displayed in the      Γöé
  5858. Γöé                              ΓöéDetails view of the folder    Γöé
  5859. Γöé                              Γöéobject.                       Γöé
  5860. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5861. ΓöéwpQueryFldrFlags              ΓöéReturns the current state of  Γöé
  5862. Γöé                              Γöéthe folder object's flags.    Γöé
  5863. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5864. ΓöéwpQueryFldrFont               ΓöéReturns the name of the font  Γöé
  5865. Γöé                              Γöéused for the specified view ofΓöé
  5866. Γöé                              Γöéthe folder object.            Γöé
  5867. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5868. ΓöéwpQueryFldrSort               ΓöéReturns the sort attribute    Γöé
  5869. Γöé                              Γöéused for the specified view ofΓöé
  5870. Γöé                              Γöéthe folder object.            Γöé
  5871. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5872. ΓöéwpQueryFldrSortClass          ΓöéReturns the object class for  Γöé
  5873. Γöé                              Γöéwhich sorting is performed forΓöé
  5874. Γöé                              Γöéthe folder object.            Γöé
  5875. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5876. ΓöéwpQueryIconViewPos            ΓöéReturns a pointer to the      Γöé
  5877. Γöé                              ΓöéIconViewPos array of the      Γöé
  5878. Γöé                              Γöéfolder object.                Γöé
  5879. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5880. ΓöéwpQueryNextIconPos            ΓöéReturns the next position at  Γöé
  5881. Γöé                              Γöéwhich an icon is inserted intoΓöé
  5882. Γöé                              Γöéthe folder object.            Γöé
  5883. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5884. ΓöéwpclsQueryOpenFolders         ΓöéReturns the pointer to an openΓöé
  5885. Γöé                              Γöéfolder object. This method mayΓöé
  5886. Γöé                              Γöébe called in a loop to        Γöé
  5887. Γöé                              Γöéenumerate all currently open  Γöé
  5888. Γöé                              Γöéfolders.                      Γöé
  5889. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5890.  
  5891. A program or Workplace Shell object would call the following methods to set 
  5892. information about a folder object. These methods are not normally overridden. 
  5893.  
  5894. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5895. ΓöéMethod Name                   ΓöéDescription                   Γöé
  5896. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5897. ΓöéwpModifyFldrFlags             ΓöéSets or clears individual     Γöé
  5898. Γöé                              Γöéflags within the folder       Γöé
  5899. Γöé                              Γöéobject.                       Γöé
  5900. Γöé                              Γöé                              Γöé
  5901. Γöé                              ΓöéNote:                         Γöé
  5902. Γöé                              ΓöéThis method is an atomic      Γöé
  5903. Γöé                              Γöéoperation as only the         Γöé
  5904. Γöé                              Γöéspecified flags are changed,  Γöé
  5905. Γöé                              Γöéeven if other running threads Γöé
  5906. Γöé                              Γöétry to modify the flags at    Γöé
  5907. Γöé                              Γöéthe same time.                Γöé
  5908. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5909. ΓöéwpSetDetailsColumnVisibility  ΓöéChanges the visibility state  Γöé
  5910. Γöé                              Γöéof a specified column of data Γöé
  5911. Γöé                              Γöéfor the Details view of the   Γöé
  5912. Γöé                              Γöéfolder object.                Γöé
  5913. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5914. ΓöéwpSetFldrAttr                 ΓöéChanges the folder object's   Γöé
  5915. Γöé                              Γöéattributes.                   Γöé
  5916. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5917. ΓöéwpSetFldrDetailsClass         ΓöéChanges the object class for  Γöé
  5918. Γöé                              Γöéwhich data is displayed in a  Γöé
  5919. Γöé                              ΓöéDetails view of the folder    Γöé
  5920. Γöé                              Γöéobject.                       Γöé
  5921. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5922. ΓöéwpSetFldrFlags                ΓöéChanges the folder object's   Γöé
  5923. Γöé                              Γöéflags.                        Γöé
  5924. Γöé                              Γöé                              Γöé
  5925. Γöé                              ΓöéNote:                         Γöé
  5926. Γöé                              ΓöéThis method exists only for   Γöé
  5927. Γöé                              Γöécompatibility with old        Γöé
  5928. Γöé                              Γöéobjects.  All new or changed  Γöé
  5929. Γöé                              Γöéobjects should use            Γöé
  5930. Γöé                              ΓöéwpModifyFldrFlags instead.    Γöé
  5931. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5932. ΓöéwpSetFldrFont                 ΓöéChanges the font used for the Γöé
  5933. Γöé                              Γöéspecified view of the folder  Γöé
  5934. Γöé                              Γöéobject.                       Γöé
  5935. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5936. ΓöéwpSetFldrSort                 ΓöéChanges the sort attribute forΓöé
  5937. Γöé                              Γöéthe specified view of the     Γöé
  5938. Γöé                              Γöéfolder object.                Γöé
  5939. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5940. ΓöéwpSetFldrSortClass            ΓöéChanges the object class for  Γöé
  5941. Γöé                              Γöéwhich data is sorted for the  Γöé
  5942. Γöé                              Γöéfolder object.                Γöé
  5943. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5944. ΓöéwpSetNextIconPos              ΓöéChanges the next position at  Γöé
  5945. Γöé                              Γöéwhich an icon is inserted intoΓöé
  5946. Γöé                              Γöéthe folder object. This methodΓöé
  5947. Γöé                              Γöécan be used to ensure that    Γöé
  5948. Γöé                              Γöéobjects inserted into the     Γöé
  5949. Γöé                              Γöéfolder are displayed where youΓöé
  5950. Γöé                              Γöéwant them.                    Γöé
  5951. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5952. ΓöéwpSetSortAttributeAvailable   ΓöéChanges the indication of     Γöé
  5953. Γöé                              Γöéwhether or not a sort         Γöé
  5954. Γöé                              Γöéattribute is available for a  Γöé
  5955. Γöé                              Γöécolumn of a Details view of   Γöé
  5956. Γöé                              Γöéthe folder object.            Γöé
  5957. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5958.  
  5959.  
  5960. ΓòÉΓòÉΓòÉ 9.1.7. Icon Related Methods ΓòÉΓòÉΓòÉ
  5961.  
  5962. A program or Workplace Shell object would call the following methods to get 
  5963. information about an object's icons. A Workplace Shell object would override 
  5964. these methods to define its icons. 
  5965.  
  5966. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5967. ΓöéMethod Name                   ΓöéDescription                   Γöé
  5968. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5969. ΓöéwpQueryIconData               ΓöéReturns the information that  Γöé
  5970. Γöé                              Γöédefines the object's icon.    Γöé
  5971. Γöé                              ΓöéThis overrides the class      Γöé
  5972. Γöé                              Γöédefault icon defined by       Γöé
  5973. Γöé                              ΓöéwpclsQueryIconData.           Γöé
  5974. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5975. ΓöéwpclsQueryIconData            ΓöéReturns the information that  Γöé
  5976. Γöé                              Γöédefines the class default     Γöé
  5977. Γöé                              Γöéicon. This icon is associated Γöé
  5978. Γöé                              Γöéwith every object of this     Γöé
  5979. Γöé                              Γöéclass. This icon can be       Γöé
  5980. Γöé                              Γöéchanged for an individual     Γöé
  5981. Γöé                              Γöéobject if:                    Γöé
  5982. Γöé                              Γöé                              Γöé
  5983. Γöé                              Γöéo The object overrides        Γöé
  5984. Γöé                              Γöé  wpQueryIconData.            Γöé
  5985. Γöé                              Γöéo The wpSetIconData method    Γöé
  5986. Γöé                              Γöé  is called.                  Γöé
  5987. Γöé                              Γöéo The wpSetup method is calledΓöé
  5988. Γöé                              Γöé  with the ICONFILE or        Γöé
  5989. Γöé                              Γöé  ICONRESOURCE keyword, or if Γöé
  5990. Γöé                              Γöé  the user edits the icon on  Γöé
  5991. Γöé                              Γöé  the General page of the     Γöé
  5992. Γöé                              Γöé  Settings notebook.          Γöé
  5993. Γöé                              Γöé                              Γöé
  5994. Γöé                              ΓöéFor a folder class, this is   Γöé
  5995. Γöé                              Γöéthe closed folder icon.       Γöé
  5996. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5997. ΓöéwpclsQueryIconDataN           ΓöéReturns the information that  Γöé
  5998. Γöé                              Γöédefines the nth class default Γöé
  5999. Γöé                              Γöéanimation icon.               Γöé
  6000. Γöé                              Γöé                              Γöé
  6001. Γöé                              ΓöéNote:                         Γöé
  6002. Γöé                              ΓöéThis method is available only Γöé
  6003. Γöé                              Γöéfor a folder class.  It       Γöé
  6004. Γöé                              Γöédefines the default open      Γöé
  6005. Γöé                              Γöéfolder icon for all objects   Γöé
  6006. Γöé                              Γöéof this class.  This icon can Γöé
  6007. Γöé                              Γöébe changed for an individual  Γöé
  6008. Γöé                              Γöéobject if wpSetup is called   Γöé
  6009. Γöé                              Γöéwith the ICONNFILE or         Γöé
  6010. Γöé                              ΓöéICONNRESOURCE keyword, or if  Γöé
  6011. Γöé                              Γöéthe user edits the animation  Γöé
  6012. Γöé                              Γöéicon on General page 2 of the Γöé
  6013. Γöé                              ΓöéSettings notebook.            Γöé
  6014. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6015.  
  6016. A program or Workplace Shell object would call the following methods to get 
  6017. information about an object's icons. These methods are not normally overridden 
  6018. by the object. 
  6019.  
  6020. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6021. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6022. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6023. ΓöéwpQueryIcon                   ΓöéReturns the handle of the     Γöé
  6024. Γöé                              Γöéobject's icon.                Γöé
  6025. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6026. ΓöéwpclsQueryIcon                ΓöéReturns the handle of the     Γöé
  6027. Γöé                              Γöéclass default icon. For a     Γöé
  6028. Γöé                              Γöéfolder class, this method     Γöé
  6029. Γöé                              Γöéreturns the handle of the     Γöé
  6030. Γöé                              Γöéclass' default closed folder  Γöé
  6031. Γöé                              Γöéicon.                         Γöé
  6032. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6033. ΓöéwpclsQueryIconN               ΓöéReturns the handle of the nth Γöé
  6034. Γöé                              Γöéclass default animation icon. Γöé
  6035. Γöé                              ΓöéThis method is available only Γöé
  6036. Γöé                              Γöéfor a folder class. It returnsΓöé
  6037. Γöé                              Γöéthe handle of the class'      Γöé
  6038. Γöé                              Γöédefault open folder icon.     Γöé
  6039. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6040.  
  6041. A program or Workplace Shell object would call the following methods to change 
  6042. the icon for an object. These methods are not normally overridden by the 
  6043. object. 
  6044.  
  6045. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6046. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6047. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6048. ΓöéwpSetIcon                     ΓöéSets the handle of the        Γöé
  6049. Γöé                              Γöéobject's icon. This handle is Γöé
  6050. Γöé                              Γöénot saved in the persistent   Γöé
  6051. Γöé                              Γöédata of the object, so it has Γöé
  6052. Γöé                              Γöéeffect until the object goes  Γöé
  6053. Γöé                              Γöédormant. This method affects  Γöé
  6054. Γöé                              Γöéall open views of the object. Γöé
  6055. Γöé                              ΓöéFor a folder object, wpSetIconΓöé
  6056. Γöé                              Γöéaffects the icon displayed:   Γöé
  6057. Γöé                              Γöé                              Γöé
  6058. Γöé                              Γöéo In the title bar.           Γöé
  6059. Γöé                              Γöéo On the Launch Pad.          Γöé
  6060. Γöé                              Γöéo On the General page 1 of    Γöé
  6061. Γöé                              Γöé  the Settings notebook.      Γöé
  6062. Γöé                              Γöéo In all containers if the    Γöé
  6063. Γöé                              Γöé  object is closed.           Γöé
  6064. Γöé                              Γöé  If the object is open, all  Γöé
  6065. Γöé                              Γöé  containers continue to show Γöé
  6066. Γöé                              Γöé  the object's animation      Γöé
  6067. Γöé                              Γöé  icon.                       Γöé
  6068. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6069. ΓöéwpSetIconData                 ΓöéSets the definition for the   Γöé
  6070. Γöé                              Γöéobject's icon. This icon      Γöé
  6071. Γöé                              Γöédefinition is saved with the  Γöé
  6072. Γöé                              Γöépersistent data of the object.Γöé
  6073. Γöé                              ΓöéIt permanently changes the    Γöé
  6074. Γöé                              Γöéobject's icon. This method    Γöé
  6075. Γöé                              Γöéautomatically calls wpSetIcon Γöé
  6076. Γöé                              Γöéto update the visual display  Γöé
  6077. Γöé                              Γöéof the object's icon.         Γöé
  6078. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6079. ΓöéwpSetProgIcon                 ΓöéSets the visible icon         Γöé
  6080. Γöé                              Γöéassociated with the program   Γöé
  6081. Γöé                              Γöéreference or program file     Γöé
  6082. Γöé                              Γöéobject. This method is        Γöé
  6083. Γöé                              Γöéavailable only for a program  Γöé
  6084. Γöé                              Γöéreference or program file     Γöé
  6085. Γöé                              Γöéobject.                       Γöé
  6086. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6087. ΓöéwpclsSetIcon                  ΓöéSets the handle of the defaultΓöé
  6088. Γöé                              Γöéclass icon.                   Γöé
  6089. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6090. ΓöéwpclsSetIconData              ΓöéSets the definition of the    Γöé
  6091. Γöé                              Γöédefault class icon.           Γöé
  6092. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6093.  
  6094.  
  6095. ΓòÉΓòÉΓòÉ 9.1.8. Network Related Methods ΓòÉΓòÉΓòÉ
  6096.  
  6097. A program or Workplace Shell object would call the following methods to get 
  6098. information about a network object. These methods are not normally overridden. 
  6099.  
  6100. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6101. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6102. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6103. ΓöéwpQueryNetIdentity            ΓöéReturns the fully qualified   Γöé
  6104. Γöé                              Γöénetwork name for a network    Γöé
  6105. Γöé                              Γöégroup object.                 Γöé
  6106. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6107. ΓöéwpQueryObjectNetId            ΓöéReturns the network ID of the Γöé
  6108. Γöé                              Γöéshared directory object that  Γöé
  6109. Γöé                              Γöéthis object is linked to.     Γöé
  6110. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6111. ΓöéwpQuerySrvrIdentity           ΓöéReturns the fully qualified   Γöé
  6112. Γöé                              Γöénetwork name for this server  Γöé
  6113. Γöé                              Γöéobject.                       Γöé
  6114. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6115.  
  6116. A program or Workplace Shell object would call the following methods to set 
  6117. information about a network object. These methods are not normally overridden. 
  6118.  
  6119. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6120. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6121. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6122. ΓöéwpSetNetIdentity              ΓöéSets the fully qualified      Γöé
  6123. Γöé                              Γöénetwork name for a network    Γöé
  6124. Γöé                              Γöégroup object.                 Γöé
  6125. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6126. ΓöéwpSetObjectNetId              ΓöéSets the network ID of the    Γöé
  6127. Γöé                              Γöéshared directory object that  Γöé
  6128. Γöé                              Γöéthis object is linked to.     Γöé
  6129. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6130.  
  6131.  
  6132. ΓòÉΓòÉΓòÉ 9.1.9. Palette Related Methods ΓòÉΓòÉΓòÉ
  6133.  
  6134. A program or Workplace Shell object would call the following methods to get 
  6135. information about a palette object. A palette object would override these 
  6136. methods to define its characteristics. 
  6137.  
  6138. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6139. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6140. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6141. ΓöéwpQueryPaletteHelp            ΓöéReturns the help panel ID thatΓöé
  6142. Γöé                              Γöéis displayed when the Help    Γöé
  6143. Γöé                              Γöépush button is pressed in an  Γöé
  6144. Γöé                              Γöéopen palette view.            Γöé
  6145. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6146. ΓöéwpclsQueryEditString          ΓöéReturns the title for the EditΓöé
  6147. Γöé                              Γöépush button.                  Γöé
  6148. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6149.  
  6150. A program or Workplace Shell object would call the following method to get 
  6151. information about a palette object. This method is normally not overridden. 
  6152.  
  6153. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6154. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6155. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6156. ΓöéwpQueryPaletteInfo            ΓöéReturns information about the Γöé
  6157. Γöé                              Γöépalette.                      Γöé
  6158. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6159.  
  6160. A program or Workplace Shell object would call the following method to set 
  6161. information about a palette object. This method is normally not overridden. 
  6162.  
  6163. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6164. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6165. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6166. ΓöéwpSetPaletteInfo              ΓöéChanges the current           Γöé
  6167. Γöé                              Γöéinformation about the palette.Γöé
  6168. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6169.  
  6170.  
  6171. ΓòÉΓòÉΓòÉ 9.1.10. Power Related Methods ΓòÉΓòÉΓòÉ
  6172.  
  6173. A program or Workplace Shell object would call the following methods to get 
  6174. information about a power object. A power object would override these methods 
  6175. to define its characteristics. 
  6176.  
  6177. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6178. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6179. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6180. ΓöéwpQueryAutoRefresh            ΓöéReturns the current state     Γöé
  6181. Γöé                              Γöé(enabled or disabled) for     Γöé
  6182. Γöé                              Γöéautomatic refresh of the powerΓöé
  6183. Γöé                              Γöéobject's status window.       Γöé
  6184. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6185. ΓöéwpQueryRefreshRate            ΓöéReturns the current refresh   Γöé
  6186. Γöé                              Γöérate (in minutes) for the     Γöé
  6187. Γöé                              Γöépower object's status window  Γöé
  6188. Γöé                              Γöéwhen automatic refresh is     Γöé
  6189. Γöé                              Γöéenabled.                      Γöé
  6190. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6191.  
  6192. A program or Workplace Shell object would call the following methods to get 
  6193. information about a power object. These methods are normally not overridden. 
  6194.  
  6195. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6196. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6197. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6198. ΓöéwpQueryDefStatusView          ΓöéReturns the default view for  Γöé
  6199. Γöé                              Γöéthe power object when         Γöé
  6200. Γöé                              Γöé"Advanced power management"   Γöé
  6201. Γöé                              Γöé(APM) is enabled.             Γöé
  6202. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6203. ΓöéwpQueryPowerConfirmation      ΓöéReturns the current state     Γöé
  6204. Γöé                              Γöé(enabled or disabled) for the Γöé
  6205. Γöé                              Γöépower object's confirmation   Γöé
  6206. Γöé                              Γöémessage. This message is      Γöé
  6207. Γöé                              Γöéoptionally displayed when     Γöé
  6208. Γöé                              Γöépower state changes are       Γöé
  6209. Γöé                              Γöérequested from its context    Γöé
  6210. Γöé                              Γöémenu.                         Γöé
  6211. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6212. ΓöéwpQueryPowerManagement        ΓöéReturns the current state     Γöé
  6213. Γöé                              Γöé(enabled or disabled) for     Γöé
  6214. Γöé                              Γöé"Advanced power management"   Γöé
  6215. Γöé                              Γöé(APM).                        Γöé
  6216. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6217.  
  6218. A program or Workplace Shell object would call the following methods to set 
  6219. information about a power object. These methods are normally not overridden. 
  6220.  
  6221. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6222. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6223. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6224. ΓöéwpSetAutoRefresh              ΓöéEnables or disables automatic Γöé
  6225. Γöé                              Γöérefresh of the power object's Γöé
  6226. Γöé                              Γöéstatus window.                Γöé
  6227. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6228. ΓöéwpSetDefStatusView            ΓöéSets the default status view  Γöé
  6229. Γöé                              Γöéfor the power object when     Γöé
  6230. Γöé                              Γöé"Advanced power management" isΓöé
  6231. Γöé                              Γöéenabled.                      Γöé
  6232. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6233. ΓöéwpSetPowerConfirmation        ΓöéEnables or disables the       Γöé
  6234. Γöé                              Γöédisplay of the power object's Γöé
  6235. Γöé                              Γöéconfirmation message when     Γöé
  6236. Γöé                              Γöépower state changes are       Γöé
  6237. Γöé                              Γöérequested from its context    Γöé
  6238. Γöé                              Γöémenu.                         Γöé
  6239. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6240. ΓöéwpSetPowerManagement          ΓöéEnables or disables "Advanced Γöé
  6241. Γöé                              Γöépower management".            Γöé
  6242. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6243. ΓöéwpSetRefreshRate              ΓöéSets the refresh rate for the Γöé
  6244. Γöé                              Γöépower object's status window  Γöé
  6245. Γöé                              Γöéwhen automatic refresh is     Γöé
  6246. Γöé                              Γöéenabled.                      Γöé
  6247. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6248.  
  6249.  
  6250. ΓòÉΓòÉΓòÉ 9.1.11. Printer and Print Job Related Methods ΓòÉΓòÉΓòÉ
  6251.  
  6252. A program or Workplace Shell object would call the following methods to get 
  6253. information about a printer or print job object. These methods are normally not 
  6254. overridden. 
  6255.  
  6256. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6257. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6258. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6259. ΓöéwpQueryComputerName           ΓöéReturns the name of the       Γöé
  6260. Γöé                              Γöécomputer on which the printer Γöé
  6261. Γöé                              Γöéobject exists.                Γöé
  6262. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6263. ΓöéwpQueryJobFile                ΓöéReturns the name of the spool Γöé
  6264. Γöé                              Γöéfile for the print job object.Γöé
  6265. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6266. ΓöéwpQueryJobId                  ΓöéReturns the job ID for the    Γöé
  6267. Γöé                              Γöéprint job object.             Γöé
  6268. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6269. ΓöéwpQueryJobType                ΓöéReturns the data type for the Γöé
  6270. Γöé                              Γöéprint job object.             Γöé
  6271. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6272. ΓöéwpQueryLocalAlias             ΓöéReturns the name of the local Γöé
  6273. Γöé                              Γöéprint queue for a remote      Γöé
  6274. Γöé                              Γöéprinter object.               Γöé
  6275. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6276. ΓöéwpQueryNetworkId              ΓöéReturns the fully qualified   Γöé
  6277. Γöé                              Γöénetwork ID of the remote      Γöé
  6278. Γöé                              Γöéprinter queue for a remote    Γöé
  6279. Γöé                              Γöéprinter object.               Γöé
  6280. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6281. ΓöéwpQueryPrintername            ΓöéReturns the name of the print Γöé
  6282. Γöé                              Γöéqueue for this printer object.Γöé
  6283. Γöé                              ΓöéFor a remote printer object,  Γöé
  6284. Γöé                              Γöéthis is the computer's printerΓöé
  6285. Γöé                              Γöéqueue name on which the       Γöé
  6286. Γöé                              Γöéprinter object exists. The    Γöé
  6287. Γöé                              Γöéname of the local print queue Γöé
  6288. Γöé                              Γöécan be obtained by calling    Γöé
  6289. Γöé                              ΓöéwpQueryLocalAlias.            Γöé
  6290. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6291. ΓöéwpQueryPrintObject            ΓöéReturns a pointer to the      Γöé
  6292. Γöé                              Γöéprinter object to which the   Γöé
  6293. Γöé                              Γöéprint job is associated with. Γöé
  6294. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6295. ΓöéwpQueryQueueOptions           ΓöéReturns the printer object's  Γöé
  6296. Γöé                              Γöéqueue options.                Γöé
  6297. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6298. ΓöéwpQueryRemoteOptions          ΓöéReturns the printer object's  Γöé
  6299. Γöé                              Γöéremote options.               Γöé
  6300. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6301.  
  6302. A program or Workplace Shell object would call the following methods to set 
  6303. information about a printer or print job object. These methods are normally not 
  6304. overridden. 
  6305.  
  6306. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6307. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6308. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6309. ΓöéwpSetComputerName             ΓöéSets the name of the computer Γöé
  6310. Γöé                              Γöéon which the printer object   Γöé
  6311. Γöé                              Γöéresides.                      Γöé
  6312. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6313. ΓöéwpSetDefaultPrinter           ΓöéSets the printer object as theΓöé
  6314. Γöé                              Γöédefault printer.              Γöé
  6315. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6316. ΓöéwpSetPrinterName              ΓöéSets the name of the printer  Γöé
  6317. Γöé                              Γöéobject.                       Γöé
  6318. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6319. ΓöéwpSetQueueOptions             ΓöéSets the printer object's     Γöé
  6320. Γöé                              Γöéqueue options.                Γöé
  6321. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6322. ΓöéwpSetRemoteOptions            ΓöéSets the printer object's     Γöé
  6323. Γöé                              Γöéremote options.               Γöé
  6324. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6325.  
  6326.  
  6327. ΓòÉΓòÉΓòÉ 9.1.12. Program Reference and Program File Related Methods ΓòÉΓòÉΓòÉ
  6328.  
  6329. A program or Workplace Shell object would call the following methods to get 
  6330. information about a program reference or a program file object. A program 
  6331. reference or program file object would override these methods to define its 
  6332. characteristics. 
  6333.  
  6334. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6335. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6336. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6337. ΓöéwpQueryAssociationFilter      ΓöéReturns the list of filters   Γöé
  6338. Γöé                              Γöéthat the program reference or Γöé
  6339. Γöé                              Γöéprogram file object is        Γöé
  6340. Γöé                              Γöéassociated to.                Γöé
  6341. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6342. ΓöéwpQueryAssociationType        ΓöéReturns the list of types thatΓöé
  6343. Γöé                              Γöéthe program reference or      Γöé
  6344. Γöé                              Γöéprogram file object is        Γöé
  6345. Γöé                              Γöéassociated to.                Γöé
  6346. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6347. ΓöéwpQueryProgramAssociations    ΓöéReturns the list of filters orΓöé
  6348. Γöé                              Γöétypes for the program         Γöé
  6349. Γöé                              Γöéreference or program file     Γöé
  6350. Γöé                              Γöéobject.                       Γöé
  6351. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6352.  
  6353. A program or Workplace Shell object would call the following method to get 
  6354. information about a program reference or a program file object. This method is 
  6355. not normally overriden. 
  6356.  
  6357. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6358. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6359. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6360. ΓöéwpQueryProgDetails            ΓöéReturns the program details   Γöé
  6361. Γöé                              Γöéfor the program reference or  Γöé
  6362. Γöé                              Γöéprogram file object.          Γöé
  6363. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6364.  
  6365. A program or Workplace Shell object would call the following methods to set 
  6366. information about a program reference or a program file object. These methods 
  6367. are not normally overridden. 
  6368.  
  6369. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6370. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6371. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6372. ΓöéwpSetAssociationFilter        ΓöéChanges the list of filters   Γöé
  6373. Γöé                              Γöéthat the program reference or Γöé
  6374. Γöé                              Γöéprogram file object is        Γöé
  6375. Γöé                              Γöéassociated to.                Γöé
  6376. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6377. ΓöéwpSetAssociationType          ΓöéChanges the list of types thatΓöé
  6378. Γöé                              Γöéthe program reference or      Γöé
  6379. Γöé                              Γöéprogram file object is        Γöé
  6380. Γöé                              Γöéassociated to.                Γöé
  6381. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6382. ΓöéwpSetProgDetails              ΓöéChanges the program details   Γöé
  6383. Γöé                              Γöéfor the program reference or  Γöé
  6384. Γöé                              Γöéprogram file object.          Γöé
  6385. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6386. ΓöéwpSetProgramAssociations      ΓöéChanges the list of filters orΓöé
  6387. Γöé                              Γöétypes that the program        Γöé
  6388. Γöé                              Γöéreference or program file     Γöé
  6389. Γöé                              Γöéobject is associated to.      Γöé
  6390. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6391.  
  6392.  
  6393. ΓòÉΓòÉΓòÉ 9.1.13. Shadow Related Methods ΓòÉΓòÉΓòÉ
  6394.  
  6395. A program or Workplace Shell object would call the following method to get 
  6396. information about a shadow object. This method is normally not overridden. 
  6397.  
  6398. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6399. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6400. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6401. ΓöéwpQueryShadowedObject         ΓöéReturns a pointer to the      Γöé
  6402. Γöé                              Γöéobject this shadow is linked  Γöé
  6403. Γöé                              Γöéto.                           Γöé
  6404. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6405.  
  6406. A program or Workplace Shell object would call the following methods to set 
  6407. information about a shadow object. These methods are normally not overridden. 
  6408.  
  6409. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6410. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6411. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6412. ΓöéwpSetLinkToObject             ΓöéChanges a shadow object to    Γöé
  6413. Γöé                              Γöélink to a new object.         Γöé
  6414. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6415. ΓöéwpSetShadowTitle              ΓöéChanges the title of a shadow Γöé
  6416. Γöé                              Γöéobject without changing the   Γöé
  6417. Γöé                              Γöétitle of the object the shadowΓöé
  6418. Γöé                              Γöéis linked to.                 Γöé
  6419. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6420.  
  6421.  
  6422. ΓòÉΓòÉΓòÉ 9.1.14. View Related Methods ΓòÉΓòÉΓòÉ
  6423.  
  6424. A program or Workplace Shell object would call the following methods to get 
  6425. information about a view of an object. A Workplace Shell object would override 
  6426. these methods to define the characteristics of its open views. 
  6427.  
  6428. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6429. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6430. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6431. ΓöéwpQueryButtonAppearance       ΓöéReturns which button          Γöé
  6432. Γöé                              Γöé(minimize, hide, or the systemΓöé
  6433. Γöé                              Γöédefault) appears in the frame Γöé
  6434. Γöé                              Γöécontrol for an open view of   Γöé
  6435. Γöé                              Γöéthe object.                   Γöé
  6436. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6437. ΓöéwpQueryConcurrentView         ΓöéReturns an indication of      Γöé
  6438. Γöé                              Γöéwhether or not this object    Γöé
  6439. Γöé                              Γöéallows multiple concurrent    Γöé
  6440. Γöé                              Γöéviews to be opened.           Γöé
  6441. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6442. ΓöéwpQueryDefaultView            ΓöéReturns the view of the objectΓöé
  6443. Γöé                              Γöéthat is opened when the       Γöé
  6444. Γöé                              Γöédefault view is opened.       Γöé
  6445. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6446. ΓöéwpQueryMinWindow              ΓöéReturns the behavior of the   Γöé
  6447. Γöé                              Γöéobject when it is minimized   Γöé
  6448. Γöé                              Γöé(Minimize window to Desktop,  Γöé
  6449. Γöé                              ΓöéMinimize window to viewer, or Γöé
  6450. Γöé                              Γöéuse the system default        Γöé
  6451. Γöé                              Γöébehavior).                    Γöé
  6452. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6453. ΓöéwpclsQueryButtonAppearance    ΓöéReturns the class default for Γöé
  6454. Γöé                              Γöéwhich button (minimize, hide, Γöé
  6455. Γöé                              Γöéor the system default) appearsΓöé
  6456. Γöé                              Γöéin the frame control for an   Γöé
  6457. Γöé                              Γöéopen view of any object of    Γöé
  6458. Γöé                              Γöéthis class.                   Γöé
  6459. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6460. ΓöéwpclsQueryDefaultView         ΓöéReturns the class default of  Γöé
  6461. Γöé                              Γöéwhich view of the object is   Γöé
  6462. Γöé                              Γöéopened when the default view  Γöé
  6463. Γöé                              Γöéis opened. The default view isΓöé
  6464. Γöé                              Γöéassociated with every object  Γöé
  6465. Γöé                              Γöéof the class. The default viewΓöé
  6466. Γöé                              Γöécan be changed for an         Γöé
  6467. Γöé                              Γöéindividual object if:         Γöé
  6468. Γöé                              Γöé                              Γöé
  6469. Γöé                              Γöéo The object overrides        Γöé
  6470. Γöé                              Γöé  wpQueryDefaultView.         Γöé
  6471. Γöé                              Γöéo The wpSetDefaultView method Γöé
  6472. Γöé                              Γöé  is called.                  Γöé
  6473. Γöé                              Γöéo The wpSetup method is calledΓöé
  6474. Γöé                              Γöé  with the DEFAULTVIEW        Γöé
  6475. Γöé                              Γöé  keyword.                    Γöé
  6476. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6477. ΓöéwpclsQuerySettingsPageSize    ΓöéReturns the size of the       Γöé
  6478. Γöé                              ΓöéSettings notebook pages       Γöé
  6479. Γöé                              Γöédisplayed for the object      Γöé
  6480. Γöé                              Γöéclass.                        Γöé
  6481. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6482.  
  6483. A program or Workplace Shell object would call the following methods to set the 
  6484. characteristics for the open views of the object. These methods are not 
  6485. normally overridden. 
  6486.  
  6487. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6488. ΓöéMethod Name                   ΓöéDescription                   Γöé
  6489. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6490. ΓöéwpSetButtonAppearance         ΓöéDefines which button          Γöé
  6491. Γöé                              Γöé(minimize, hide, or the systemΓöé
  6492. Γöé                              Γöédefault) appears in the frame Γöé
  6493. Γöé                              Γöécontrol for an open view of   Γöé
  6494. Γöé                              Γöéthe object. This value is     Γöé
  6495. Γöé                              Γöénormally returned by          Γöé
  6496. Γöé                              ΓöéwpQueryButtonAppearance.      Γöé
  6497. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6498. ΓöéwpSetConcurrentView           ΓöéDefines whether or not the    Γöé
  6499. Γöé                              Γöéobject allows multiple        Γöé
  6500. Γöé                              Γöéconcurrent views to be opened.Γöé
  6501. Γöé                              ΓöéThis value is normally        Γöé
  6502. Γöé                              Γöéreturned by                   Γöé
  6503. Γöé                              ΓöéwpQueryConcurrentView.        Γöé
  6504. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6505. ΓöéwpSetDefaultView              ΓöéDefines which view of the     Γöé
  6506. Γöé                              Γöéobject is opened when the     Γöé
  6507. Γöé                              Γöédefault view is opened. This  Γöé
  6508. Γöé                              Γöévalue is normally returned by Γöé
  6509. Γöé                              ΓöéwpQueryDefaultView.           Γöé
  6510. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6511. ΓöéwpSetMinWindow                ΓöéDefines the behavior of the   Γöé
  6512. Γöé                              Γöéobject when it is minimized   Γöé
  6513. Γöé                              Γöé(Minimize window to Desktop,  Γöé
  6514. Γöé                              ΓöéMinimize window to viewer, or Γöé
  6515. Γöé                              Γöéuse the system default        Γöé
  6516. Γöé                              Γöébehavior). This value is      Γöé
  6517. Γöé                              Γöénormally returned by          Γöé
  6518. Γöé                              ΓöéwpQueryMinWindow.             Γöé
  6519. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6520. ΓöéwpclsSetSettingsPageSize      ΓöéSets the size of the Settings Γöé
  6521. Γöé                              Γöénotebook pages displayed for  Γöé
  6522. Γöé                              Γöéthe object class.             Γöé
  6523. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6524.  
  6525.  
  6526. ΓòÉΓòÉΓòÉ 9.2. Using Set/Query Methods ΓòÉΓòÉΓòÉ
  6527.  
  6528. The set and query methods can be divided into four different groups of methods: 
  6529.  
  6530.    o  Instance query methods 
  6531.    o  Instance set methods 
  6532.    o  Class query methods 
  6533.    o  Class set methods. 
  6534.  
  6535.  This section describes each of them and provides sample code fragments. It 
  6536.  also explains their role, and whether or not they are used to override 
  6537.  methods. 
  6538.  
  6539.  
  6540. ΓòÉΓòÉΓòÉ 9.2.1. Instance Query Methods ΓòÉΓòÉΓòÉ
  6541.  
  6542. The instance query methods are used to define the properties of an instance of 
  6543. your object. You would normally override these methods to define the unique 
  6544. properties of the instance of the object. For example, you might override 
  6545. wpclsQueryStyle if you want to prevent all instances of your object from being 
  6546. deleted. However, you would override wpQueryStyle to prevent only certain 
  6547. instances of this object from being deleted, as shown in the following sample 
  6548. code: 
  6549.  
  6550. ULONG SOMLINK myfdr_wpQueryStyle(MyFolder *somSelf)
  6551. {
  6552.   ULONG ulStyle;
  6553.   ULONG ulAttr;
  6554.  
  6555.   MyFolderMethodDebug("MyFolder","myfdr_wpQueryStyle");
  6556.   ulStyle = parent_wpQueryStyle(somSelf);
  6557.   ulAttr  = _wpQueryAttr( somSelf );
  6558.  
  6559.   if (ulAttr & FILE_READONLY)
  6560.   {
  6561.     ulStyle |= OBJSTYLE_NODELETE;
  6562.   }
  6563.   return ulStyle;
  6564. }
  6565.  
  6566.  
  6567. ΓòÉΓòÉΓòÉ 9.2.2. Instance Set Methods ΓòÉΓòÉΓòÉ
  6568.  
  6569. The instance set methods are used to modify the properties of a specific object 
  6570. instance. You would not normally override these methods but would call these 
  6571. methods to change the behavior of the corresponding instance query method or 
  6572. the behavior of the object. For example, you might call wpSetIcon to change the 
  6573. current icon for your object, as shown in the following sample code: 
  6574.  
  6575.     .
  6576.     .
  6577.     .
  6578.  
  6579. /* Load the icon from the resource file */
  6580. hptrIcon = WinLoadPointer(HWND_DESKTOP,vhmod,IDP_Folder3);
  6581.  
  6582. /* Make this the current icon for the object */
  6583. _wpSetIcon(somSelf,hptrIcon);
  6584.  
  6585.     .
  6586.     .
  6587.     .
  6588.  
  6589.  
  6590. ΓòÉΓòÉΓòÉ 9.2.3. Class Query Methods ΓòÉΓòÉΓòÉ
  6591.  
  6592. The class query methods are used to define the properties of an object class. 
  6593. You would normally override these methods to define the unique properties of 
  6594. the class object. For example, you would override wpclsQueryTitle to provide a 
  6595. unique title for your object class. If you were defining a class called 
  6596. MyFolder, as a subclass of WPFolder, you might supply the following method to 
  6597. make the default title for all instances (including the template) of the 
  6598. MyFolder object "My Folder". 
  6599.  
  6600. PSZ  SOMLINK myfdrM_wpclsQueryTitle(M_MyFolder *self)
  6601. {
  6602.   M_MyFolderMethodDebug("M_MyFolder","myfdrM_wpclsQueryTitle");
  6603.   return ("My Folder");
  6604. }
  6605.  
  6606. If you want to provide a unique icon for all instances of your class, you would 
  6607. override wpclsQueryIconData, as shown in the following sample code: 
  6608.  
  6609. ULONG SOMLINK myfdrM_wpclsQueryIconData(M_MyFolder *self,
  6610.                                         PICONINFO pIconInfo)
  6611.  
  6612. {
  6613.   M_MyFolderMethodDebug("M_MyFolder","myfdrM_wpclsQueryIconData");
  6614.   if (pIconInfo)
  6615.   {
  6616.     /*
  6617.      *  vhmod is a global variable containing the
  6618.      *  module handle for your .DLL
  6619.      *  IDP_MyFolder is the resource number for the class icon
  6620.      */
  6621.     pIconInfo->fFormat = ICON_RESOURCE;
  6622.     pIconInfo->hmod    = vhmod;
  6623.     pIconInfo->resid   = IDP_MyFolder;
  6624.   }
  6625.   return (sizeof(ICONINFO));
  6626. }
  6627.  
  6628. If your class is a subclass of WPFolder (as in the above example) and you want 
  6629. to provide an animation icon, that is the icon that is displayed when an 
  6630. instance of your folder object is opened, you would override 
  6631. wpclsQueryIconDataN, as shown in the following sample code: 
  6632.  
  6633. ULONG SOMLINK fdrM_wpclsQueryIconDataN(M_MyFolder *self,
  6634.                                        PICONINFO pIconInfo,
  6635.                                        ULONG ulIconIndex)
  6636.  
  6637. {
  6638.   ULONG ulReturn;
  6639.  
  6640.   M_MyFolderMethodDebug("M_MyFolder","myfdrM_wpclsQueryIconDataN");
  6641.   switch (ulIconIndex)
  6642.   {
  6643.     case 0:
  6644.     /* Return the information for the closed folder icon */
  6645.     ulReturn = _wpclsQueryIconData(self,pIconInfo);
  6646.     break;
  6647.     case 1:
  6648.     /* Return the information for the open folder icon */
  6649.     if (pIconInfo)
  6650.     {
  6651.       pIconInfo->fFormat = ICON_RESOURCE;
  6652.       pIconInfo->hmod    = vhmod;
  6653.       pIconInfo->resid   = IDP_MyFolder2;
  6654.     }
  6655.     ulReturn = sizeof(ICONINFO);
  6656.     break;
  6657.  
  6658.     default:
  6659.     /* Invalid index value specified */
  6660.     ulReturn = 0;
  6661.   }
  6662.   return (ulReturn);
  6663. }
  6664.  
  6665.  
  6666. ΓòÉΓòÉΓòÉ 9.2.4. Class Set Methods ΓòÉΓòÉΓòÉ
  6667.  
  6668. The class set methods are used to modify the properties of an object class. You 
  6669. would not normally override these methods but would call these methods to 
  6670. change the behavior of the corresponding class query method. For example, you 
  6671. might call wpclsSetError to define an error code to be returned by the next 
  6672. call to wpclsQueryError, as shown in the following sample code: 
  6673.  
  6674. /* Set the class error code */
  6675. _wpclsSetError(_MyFolder,0x1234);
  6676.     .
  6677.     .
  6678.     .
  6679. /* Retrieve the last class error code */
  6680. ulLastError = _wpclsQueryError(_MyFolder);
  6681.  
  6682.  
  6683. ΓòÉΓòÉΓòÉ 10. Object Initialization and Termination: Setup/Cleanup Methods ΓòÉΓòÉΓòÉ
  6684.  
  6685. The Workplace Shell provides methods that you can use to setup the 
  6686. characteristics and behaviors of an object. Likewise, it also provides methods 
  6687. that you can use to cleanup after an object is no longer in use. This chapter 
  6688. provides information on setup and cleanup methods that are available in the 
  6689. Workplace Shell. 
  6690.  
  6691.  
  6692. ΓòÉΓòÉΓòÉ 10.1. About Setup/Cleanup Methods ΓòÉΓòÉΓòÉ
  6693.  
  6694. Setup and cleanup methods support object initialization and termination. The 
  6695. setup methods are used to set up object characteristics during creation of the 
  6696. object. The cleanup methods are used to ensure that memory and other resources 
  6697. allocated to an object are freed when the object is no longer in use. 
  6698.  
  6699.  
  6700. ΓòÉΓòÉΓòÉ 10.1.1. Create the Object ΓòÉΓòÉΓòÉ
  6701.  
  6702. When an object is created, by using WinCreateObject for example, wpclsNew is 
  6703. called. You will likely not be concerned with this method because it performs 
  6704. functions such as allocating memory for the object, getting SOM to initialize 
  6705. the object, and creating the persistent image of the object as file system 
  6706. attributes or .INI file entries. You will be interested in methods that it 
  6707. invokes. These include wpInitData and wpSetupOnce. 
  6708.  
  6709.  
  6710. ΓòÉΓòÉΓòÉ 10.1.2. Initialize the Object's Instance Data ΓòÉΓòÉΓòÉ
  6711.  
  6712. The wpInitData method is called from WPObject's override of somDefaultInit 
  6713. immediately after the memory for the object has been allocated. The allocated 
  6714. memory is zero filled. If the zero initialization is not adequate for the 
  6715. object instance data for your class, override this method and set the instance 
  6716. variable values appropriately. The wpInitData method is called whenever the 
  6717. object is instantiated, whether it be during initial object creation or 
  6718. awakening it from dormancy. In the latter case, wpRestoreState is invoked after 
  6719. wpInitData. 
  6720.  
  6721.  
  6722. ΓòÉΓòÉΓòÉ 10.1.3. Setup the Object's Characteristics and Behaviors ΓòÉΓòÉΓòÉ
  6723.  
  6724. The wpSetupOnce method is called during initial object creation following 
  6725. wpInitData and the creation of the persistent image. It is not called when an 
  6726. object is awakened from dormancy. The primary purpose of wpSetupOnce is to: 
  6727.  
  6728.    o  Call wpSetup to set the object characteristics and behaviors based on the 
  6729.       setup string input to WinCreateObject. 
  6730.  
  6731.    o  Perform non-setup string initialization that cannot be done during the 
  6732.       wpInitData processing. 
  6733.  
  6734.  The non-setup string initialization may have been deferred because it required 
  6735.  existence of the persistent image or because it was data other than instance 
  6736.  data that required initialization. Override wpSetupOnce only if your class has 
  6737.  non-setup string initialization to perform because WPObject wpSetupOnce calls 
  6738.  wpSetup. Override wpSetup if your object class has defined unique setup string 
  6739.  keywords or keyword values. 
  6740.  
  6741.  The wpSetup method is also invoked as a result of WinSetObjectData being 
  6742.  called on an existing object. The wpScanSetupString method exists as a helper 
  6743.  routine for parsing values from the setup string. 
  6744.  
  6745.  
  6746. ΓòÉΓòÉΓòÉ 10.1.4. Setup and Query the Object's State ΓòÉΓòÉΓòÉ
  6747.  
  6748. One of the last steps of object creation or awakening is setting the object to 
  6749. the initialized state. The wpIsObjectInitialized method queries the object for 
  6750. this indication. 
  6751.  
  6752. The last step is the invocation of wpObjectReady. This is a notification to the 
  6753. object indicating completion of the creation or awakening operation. Override 
  6754. this method if you want to receive this notification. The wpObjectReady method 
  6755. indicates when it is safe to call wpSaveDeferred on a newly instantiated 
  6756. object. 
  6757.  
  6758.  
  6759. ΓòÉΓòÉΓòÉ 10.1.5. Uninitialize the Object ΓòÉΓòÉΓòÉ
  6760.  
  6761. The wpUnInitData method is the opposite of wpInitData. It is called by 
  6762. WPObject's override of somDestruct just prior to freeing the object's memory, 
  6763. during the process of making the object dormant or destroying it. The object's 
  6764. instance data, and memory allocated via wpAllocMem, are automatically 
  6765. deallocated. Override this method if your object has allocated additional 
  6766. resources since the last time it was awakened. 
  6767.  
  6768.  
  6769. ΓòÉΓòÉΓòÉ 10.1.6. Destroy the Object ΓòÉΓòÉΓòÉ
  6770.  
  6771. The wpFree method is the opposite of wpclsNew. It destroys the persistent image 
  6772. of the object and frees the object's memory. Override this method to free 
  6773. resources you have allocated that are associated with the persistent image of 
  6774. the object. 
  6775.  
  6776.  
  6777. ΓòÉΓòÉΓòÉ 10.1.7. Workplace Shell Setup Strings ΓòÉΓòÉΓòÉ
  6778.  
  6779. Classes can define keynames and values that affect the behavior of their 
  6780. objects. Use keynames with setup methods as follows: 
  6781.  
  6782.    o  To set a certain behavior during object creation, specify the keyname in 
  6783.       the setup string of WinCreateObject. 
  6784.  
  6785.    o  To change the behavior of an existing object, specify the keyname in the 
  6786.       setup string of WinSetObjectData. 
  6787.  
  6788.  Because keynames have default values, setup strings are not required for these 
  6789.  calls. 
  6790.  
  6791.  Every class may define its own set of keynames and values. The Workplace 
  6792.  Object Classes section contains the definition of keynames for all classes. 
  6793.  Keynames and the values supported by the WPObject class are listed in the 
  6794.  following table: 
  6795.  
  6796.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6797.   ΓöéKeyname           ΓöéValue       ΓöéDescription                   Γöé
  6798.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6799.   ΓöéCCVIEW            ΓöéDEFAULT     ΓöéUses the default value of the Γöé
  6800.   Γöé                  Γöé            Γöéconcurrent view setting of theΓöé
  6801.   Γöé                  Γöé            Γöésystem, when the user selects Γöé
  6802.   Γöé                  Γöé            Γöéopen. This is the default     Γöé
  6803.   Γöé                  Γöé            Γöévalue.                        Γöé
  6804.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6805.   Γöé                  ΓöéYES         ΓöéCreates new views of the      Γöé
  6806.   Γöé                  Γöé            Γöéobject every time the user    Γöé
  6807.   Γöé                  Γöé            Γöéselects open.                 Γöé
  6808.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6809.   Γöé                  ΓöéNO          ΓöéResurfaces open views of      Γöé
  6810.   Γöé                  Γöé            Γöéobject, when the user selects Γöé
  6811.   Γöé                  Γöé            Γöéopen.                         Γöé
  6812.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6813.   ΓöéDEFAULTVIEW       ΓöéDEFAULT     ΓöéSets the default open view to Γöé
  6814.   Γöé                  Γöé            Γöéthe object's class default    Γöé
  6815.   Γöé                  Γöé            Γöéview as returned by           Γöé
  6816.   Γöé                  Γöé            ΓöéwpclsQueryDefaultView. This isΓöé
  6817.   Γöé                  Γöé            Γöéthe default value.            Γöé
  6818.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6819.   Γöé                  ΓöéSETTINGS    ΓöéSets the default open view to Γöé
  6820.   Γöé                  Γöé            Γöéthe Settings view.            Γöé
  6821.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6822.   Γöé                  ΓöéID          ΓöéSets the default open view to Γöé
  6823.   Γöé                  Γöé            Γöéthe "id" of a user-added view Γöé
  6824.   Γöé                  Γöé            Γöé(0 - 9).                      Γöé
  6825.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6826.   ΓöéHELPLIBRARY       Γöéfilename    ΓöéSets the help library.        Γöé
  6827.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6828.   ΓöéHELPPANEL         Γöéid          ΓöéSets the object's default helpΓöé
  6829.   Γöé                  Γöé            Γöépanel. This is equivalent to  Γöé
  6830.   Γöé                  Γöé            Γöécalling wpSetDefaultHelp.     Γöé
  6831.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6832.   ΓöéHIDEBUTTON        ΓöéYES         ΓöéViews of this object have a   Γöé
  6833.   Γöé                  Γöé            Γöéhide button as opposed to a   Γöé
  6834.   Γöé                  Γöé            Γöéminimize button.              Γöé
  6835.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6836.   Γöé                  ΓöéNO          ΓöéViews of this object have a   Γöé
  6837.   Γöé                  Γöé            Γöéminimize button as opposed to Γöé
  6838.   Γöé                  Γöé            Γöéa hide button.                Γöé
  6839.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6840.   Γöé                  Γöé            ΓöéThe default is the current    Γöé
  6841.   Γöé                  Γöé            Γöésystem Button appearance for  Γöé
  6842.   Γöé                  Γöé            Γöéwindows setting. This cannot  Γöé
  6843.   Γöé                  Γöé            Γöébe specified here.            Γöé
  6844.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6845.   ΓöéICONFILE          Γöéfilename    ΓöéSets the object's icon. This  Γöé
  6846.   Γöé                  Γöé            Γöéis equivalent to calling      Γöé
  6847.   Γöé                  Γöé            ΓöéwpSetIconData.                Γöé
  6848.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6849.   ΓöéICONPOS           Γöéx, y        ΓöéSets the object's initial iconΓöé
  6850.   Γöé                  Γöé            Γöéposition in a folder. The x   Γöé
  6851.   Γöé                  Γöé            Γöéand y values represent the    Γöé
  6852.   Γöé                  Γöé            Γöéposition in the folder in     Γöé
  6853.   Γöé                  Γöé            Γöépercentage coordinates.       Γöé
  6854.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6855.   ΓöéICONRESOURCE      Γöéid, module  ΓöéSets the object's icon. This  Γöé
  6856.   Γöé                  Γöé            Γöéis equivalent to calling      Γöé
  6857.   Γöé                  Γöé            ΓöéwpSetIconData. The "id" is theΓöé
  6858.   Γöé                  Γöé            Γöéicon resource ID in the       Γöé
  6859.   Γöé                  Γöé            Γöédynamic link library (DLL)    Γöé
  6860.   Γöé                  Γöé            Γöé"module".                     Γöé
  6861.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6862.   ΓöéMINWIN            ΓöéHIDE        ΓöéHides views of object, when   Γöé
  6863.   Γöé                  Γöé            Γöéthe minimize button is        Γöé
  6864.   Γöé                  Γöé            Γöéselected.                     Γöé
  6865.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6866.   Γöé                  ΓöéVIEWER      ΓöéMinimizes views of the object Γöé
  6867.   Γöé                  Γöé            Γöéto Minimize window to viewer, Γöé
  6868.   Γöé                  Γöé            Γöéwhen the minimize button is   Γöé
  6869.   Γöé                  Γöé            Γöéselected.                     Γöé
  6870.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6871.   Γöé                  ΓöéDESKTOP     ΓöéMinimizes views of the object Γöé
  6872.   Γöé                  Γöé            Γöéto Minimize window to Desktop,Γöé
  6873.   Γöé                  Γöé            Γöéwhen the minimize button is   Γöé
  6874.   Γöé                  Γöé            Γöéselected.                     Γöé
  6875.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6876.   Γöé                  Γöé            ΓöéThe default is the current    Γöé
  6877.   Γöé                  Γöé            ΓöéMinimize button setting. This Γöé
  6878.   Γöé                  Γöé            Γöécannot be specified here.     Γöé
  6879.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6880.   ΓöéNOCOPY            ΓöéYES         ΓöéUsers cannot copy objects.    Γöé
  6881.   Γöé                  Γöé            ΓöéThis is equivalent to calling Γöé
  6882.   Γöé                  Γöé            ΓöéwpSetStyle with the           Γöé
  6883.   Γöé                  Γöé            ΓöéOBJSTYLE_NOCOPY style.        Γöé
  6884.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6885.   Γöé                  ΓöéNO          ΓöéUsers can copy objects. This  Γöé
  6886.   Γöé                  Γöé            Γöéis the default value.         Γöé
  6887.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6888.   ΓöéNODELETE          ΓöéYES         ΓöéUsers cannot delete objects.  Γöé
  6889.   Γöé                  Γöé            ΓöéThis is equivalent to calling Γöé
  6890.   Γöé                  Γöé            ΓöéwpSetStyle with the           Γöé
  6891.   Γöé                  Γöé            ΓöéOBJSTYLE_NODELETE style.      Γöé
  6892.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6893.   Γöé                  ΓöéNO          ΓöéUsers can delete objects. ThisΓöé
  6894.   Γöé                  Γöé            Γöéis the default value.         Γöé
  6895.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6896.   ΓöéNODRAG            ΓöéYES         ΓöéUsers cannot drag objects.    Γöé
  6897.   Γöé                  Γöé            ΓöéThis is equivalent to calling Γöé
  6898.   Γöé                  Γöé            ΓöéwpSetStyle with the           Γöé
  6899.   Γöé                  Γöé            ΓöéOBJSTYLE_NODRAG style.        Γöé
  6900.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6901.   Γöé                  ΓöéNO          ΓöéUsers can drag objects. This  Γöé
  6902.   Γöé                  Γöé            Γöéis the default value.         Γöé
  6903.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6904.   ΓöéNODROP            ΓöéYES         ΓöéNo other objects can be       Γöé
  6905.   Γöé                  Γöé            Γöédropped on this object. This  Γöé
  6906.   Γöé                  Γöé            Γöéis equivalent to calling      Γöé
  6907.   Γöé                  Γöé            ΓöéwpSetStyle with the           Γöé
  6908.   Γöé                  Γöé            ΓöéOBJSTYLE_NODROPON style.      Γöé
  6909.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6910.   Γöé                  ΓöéNO          ΓöéObjects can be dropped on thisΓöé
  6911.   Γöé                  Γöé            Γöéobject. This is the default   Γöé
  6912.   Γöé                  Γöé            Γöévalue.                        Γöé
  6913.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6914.   ΓöéNOLINK            ΓöéYES         ΓöéObjects cannot be linked. ThisΓöé
  6915.   Γöé                  Γöé            Γöéis equivalent to calling      Γöé
  6916.   Γöé                  Γöé            ΓöéwpSetStyle with the           Γöé
  6917.   Γöé                  Γöé            ΓöéOBJSTYLE_NOLINK style.        Γöé
  6918.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6919.   Γöé                  ΓöéNO          ΓöéObjects can be linked. This isΓöé
  6920.   Γöé                  Γöé            Γöéthe default value.            Γöé
  6921.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6922.   ΓöéNOMOVE            ΓöéYES         ΓöéUsers cannot move objects.    Γöé
  6923.   Γöé                  Γöé            ΓöéThis is equivalent to calling Γöé
  6924.   Γöé                  Γöé            ΓöéwpSetStyle with the           Γöé
  6925.   Γöé                  Γöé            ΓöéOBJSTYLE_NOMOVE style.        Γöé
  6926.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6927.   Γöé                  ΓöéNO          ΓöéUsers can move objects. This  Γöé
  6928.   Γöé                  Γöé            Γöéis the default value.         Γöé
  6929.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6930.   ΓöéNOPRINT           ΓöéYES         ΓöéUsers cannot print objects.   Γöé
  6931.   Γöé                  Γöé            ΓöéThis is equivalent to calling Γöé
  6932.   Γöé                  Γöé            ΓöéwpSetStyle with the           Γöé
  6933.   Γöé                  Γöé            ΓöéOBJSTYLE_NOPRINT style.       Γöé
  6934.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6935.   Γöé                  ΓöéNO          ΓöéUsers can print objects. This Γöé
  6936.   Γöé                  Γöé            Γöéis the default value.         Γöé
  6937.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6938.   ΓöéNORENAME          ΓöéYES         ΓöéUsers cannot rename objects.  Γöé
  6939.   Γöé                  Γöé            ΓöéThis is equivalent to calling Γöé
  6940.   Γöé                  Γöé            ΓöéwpSetStyle with the           Γöé
  6941.   Γöé                  Γöé            ΓöéOBJSTYLE_NORENAME style.      Γöé
  6942.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6943.   Γöé                  ΓöéNO          ΓöéUsers can rename objects. ThisΓöé
  6944.   Γöé                  Γöé            Γöéis the default value.         Γöé
  6945.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6946.   ΓöéNOSETTINGS        ΓöéYES         ΓöéUsers cannot open the object'sΓöé
  6947.   Γöé                  Γöé            ΓöéSettings notebook. This is    Γöé
  6948.   Γöé                  Γöé            Γöéequivalent to calling         Γöé
  6949.   Γöé                  Γöé            ΓöéwpSetStyle with the           Γöé
  6950.   Γöé                  Γöé            ΓöéOBJSTYLE_NOSETTINGS style.    Γöé
  6951.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6952.   Γöé                  ΓöéNO          ΓöéUsers can open the object's   Γöé
  6953.   Γöé                  Γöé            ΓöéSettings notebook. This is theΓöé
  6954.   Γöé                  Γöé            Γöédefault value.                Γöé
  6955.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6956.   ΓöéNOSHADOW (Same as ΓöéYES         ΓöéUsers cannot create shadows ofΓöé
  6957.   ΓöéNOLINK)           Γöé            Γöéobjects. This is equivalent toΓöé
  6958.   Γöé                  Γöé            Γöécalling wpSetStyle with the   Γöé
  6959.   Γöé                  Γöé            ΓöéOBJSTYLE_NOLINK style.        Γöé
  6960.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6961.   Γöé                  ΓöéNO          ΓöéUsers can create shadows of   Γöé
  6962.   Γöé                  Γöé            Γöéobjects. This is the default  Γöé
  6963.   Γöé                  Γöé            Γöévalue.                        Γöé
  6964.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6965.   ΓöéNOTVISIBLE        ΓöéYES         ΓöéObjects are not visible. This Γöé
  6966.   Γöé                  Γöé            Γöéis equivalent to calling      Γöé
  6967.   Γöé                  Γöé            ΓöéwpSetStyle with the           Γöé
  6968.   Γöé                  Γöé            ΓöéOBJSTYLE_NOTVISIBLE style.    Γöé
  6969.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6970.   Γöé                  ΓöéNO          ΓöéObjects are visible. This is  Γöé
  6971.   Γöé                  Γöé            Γöéthe default value.            Γöé
  6972.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6973.   ΓöéOBJECTID          Γöé<name>      ΓöéSets a persistent ID for the  Γöé
  6974.   Γöé                  Γöé            Γöéobject. The OBJECTID can be   Γöé
  6975.   Γöé                  Γöé            Γöéused to obtain a pointer or   Γöé
  6976.   Γöé                  Γöé            Γöéhandle to the object by       Γöé
  6977.   Γöé                  Γöé            Γöécalling wpclsQueryObject or   Γöé
  6978.   Γöé                  Γöé            ΓöéWinQueryObject. An OBJECTID isΓöé
  6979.   Γöé                  Γöé            Γöéany unique string preceded    Γöé
  6980.   Γöé                  Γöé            Γöéwith a < and terminated with aΓöé
  6981.   Γöé                  Γöé            Γöé>.                            Γöé
  6982.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6983.   Γöé                  Γöé            ΓöéThe default is to not have an Γöé
  6984.   Γöé                  Γöé            ΓöéID.                           Γöé
  6985.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6986.   ΓöéOPEN              ΓöéSETTINGS    ΓöéOpens settings view when      Γöé
  6987.   Γöé                  Γöé            Γöéobject is created or when     Γöé
  6988.   Γöé                  Γöé            ΓöéWinSetObjectData is called.   Γöé
  6989.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6990.   Γöé                  ΓöéDEFAULT     ΓöéOpens the default view when anΓöé
  6991.   Γöé                  Γöé            Γöéobject is created or when     Γöé
  6992.   Γöé                  Γöé            ΓöéWinSetObjectData is called.   Γöé
  6993.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6994.   Γöé                  Γöé            ΓöéThe default is to not open a  Γöé
  6995.   Γöé                  Γöé            Γöéview.                         Γöé
  6996.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6997.   ΓöéTEMPLATE          ΓöéYES         ΓöéUsers can create object       Γöé
  6998.   Γöé                  Γöé            Γöétemplate. This is equivalent  Γöé
  6999.   Γöé                  Γöé            Γöéto calling wpSetStyle with theΓöé
  7000.   Γöé                  Γöé            ΓöéOBJSTYLE_TEMPLATE style.      Γöé
  7001.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7002.   Γöé                  ΓöéNO          ΓöéUsers cannot create object    Γöé
  7003.   Γöé                  Γöé            Γöétemplate. This is the default Γöé
  7004.   Γöé                  Γöé            Γöévalue.                        Γöé
  7005.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7006.   ΓöéTITLE             ΓöéTitle       ΓöéSets the object's title. This Γöé
  7007.   Γöé                  Γöé            Γöéis equivalent to calling      Γöé
  7008.   Γöé                  Γöé            ΓöéwpSetTitle.                   Γöé
  7009.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7010.  
  7011.  The following code fragments is an example of WPObject setup string: 
  7012.  
  7013.   PSZ pszSetupString = "TITLE    = MYObject;"
  7014.                        "ICONFILE = MYOBJ.ICO;"
  7015.                        "OBJECTID = <MyObjectID>";
  7016.  
  7017.  
  7018. ΓòÉΓòÉΓòÉ 10.2. Using Setup/Cleanup Methods ΓòÉΓòÉΓòÉ
  7019.  
  7020. This section describes how the setup and cleanup methods relate to one another 
  7021. using sample code fragments. 
  7022.  
  7023. Note:  The sample code fragments in this section are part of a complete program 
  7024.        that provides a new object class, Stack, whose instances implement 
  7025.        standard programming push down stacks. The program is illustrated in 
  7026.        Sample Code for Setup/Cleanup Methods. 
  7027.  
  7028.  The stack is implemented as a linked list of entries with the head of the list 
  7029.  being the top of the stack. The following code fragments shows the content of 
  7030.  the stack elements and the stack instance data: 
  7031.  
  7032.   typedef struct _STACKENTRY
  7033.   {
  7034.     PSTACKENTRY pNext;
  7035.     BYTE        ReserveZeros[8];
  7036.     ULONG       cbEntry;
  7037.     BYTE        Entry[1];
  7038.   } STACKENTRY *PSTACKENTRY;
  7039.  
  7040.   BOOL        bInitialized;   // Initialization flag
  7041.   PSTACKENTRY pStackTop;      // Head of stack linked list
  7042.   HMTX        hmtxStack;      // Stack serialization semaphore
  7043.  
  7044.  
  7045. ΓòÉΓòÉΓòÉ 10.2.1. Initializing the Object's Instance Data ΓòÉΓòÉΓòÉ
  7046.  
  7047. The wpInitData method initializes the Stack's instance data. Zero 
  7048. initialization is statisfactory for the stack top pointer (pStackTop), so there 
  7049. is nothing to do with respect to the instance data. However, I will take this 
  7050. opportunity to increment the awake stack instance count being maintained by the 
  7051. class because I want to decrement it in wpUnInitData. There are three 
  7052. additional items to note when overriding wpInitData: 
  7053.  
  7054.    1. The wpInitData method is invoked prior to the determination or 
  7055.       restoration of an object's state. It is therefore necessary to be 
  7056.       extremely careful about what other instance methods are called. It is 
  7057.       best to call none unless you wrote them. 
  7058.  
  7059.    2. It is safest to call the parent's wpInitData before doing your own 
  7060.       initialization. 
  7061.  
  7062.    3. If it is possible for this class to be a common ancestor in a multiple 
  7063.       inheritance scenario, then this method needs to be written such that 
  7064.       multiple invocations are handled. For example, if a class named Stack23 
  7065.       was derived from classes Stack2 and Stack3 which in turn were subclasses 
  7066.       of Stack, that situation would exist. Not all Workplace Shell classes 
  7067.       (WP*) currently take this precaution. Therefore, it is advisable to not 
  7068.       inherit from more than one Workplace Shell class. Using SOM initializers 
  7069.       and destructors is an alternative to overriding wpInitData in the 
  7070.       multiple inheritance situation. 
  7071.  
  7072.  The following sample code shows the use of wpInitData: 
  7073.  
  7074.   SOM_Scope void SOMLINK stk_wpInitData(
  7075.                          Stack *somSelf) // In  - pointer to the object
  7076.   {
  7077.     StackData *somThis = StackGetData(somSelf);
  7078.     StackMethodDebug("Stack","stk_wpInitData");
  7079.  
  7080.     parent_wpInitData(somSelf);
  7081.     if (!(_bInitialized))
  7082.     {
  7083.        _bInitialized = TRUE;
  7084.        _clsIncObjectCount(_somGetClass(somSelf), STK_AWAKECOUNT);
  7085.      } /* Endif */
  7086.      return;
  7087.  
  7088.   }  // End stk_wpInitData
  7089.  
  7090.  
  7091. ΓòÉΓòÉΓòÉ 10.2.2. Initializing a Newly Created Object ΓòÉΓòÉΓòÉ
  7092.  
  7093. The wpSetupOnce method is called once during the creation of an object. I will 
  7094. push one item onto the stack. Unless popped by the setup string, every newly 
  7095. created stack will have this item. The following sample code shows the use of 
  7096. wpSetupOnce: 
  7097.  
  7098. SOM_Scope BOOL SOMLINK stk_wpSetupOnce(
  7099.                        Stack *somSelf,      // In  - pointer to the object
  7100.                        PSZ pszSetupString)
  7101.  
  7102. // The method returns the value:
  7103. //     TRUE  = successful
  7104. //     FALSE = error
  7105. {
  7106.   PSZ pszStackItem = "***** BOTTOM OF STACK *****";
  7107.  
  7108.   // StackData *somThis = StackGetData(somSelf);
  7109.   StackMethodDebug("Stack","stk_wpSetupOnce");
  7110.  
  7111.   _Push(somSelf, pszStackItem, strlen(pszStackItem) + 1);
  7112.   return (parent_wpSetupOnce(somSelf, pszSetupString));
  7113.  
  7114. } // End stk_wpSetupOnce
  7115.  
  7116.  
  7117. ΓòÉΓòÉΓòÉ 10.2.3. Setting the Object's Characteristics and Behaviors ΓòÉΓòÉΓòÉ
  7118.  
  7119. Invoking wpSetupOnce parent causes wpSetup to be called. Two new keywords, 
  7120. PUSHITEM and POPITEM, have been defined for this class to push and pop items 
  7121. from the stack. This method is invoked when an object is created and when 
  7122. WinSetObjectData is called. Note the use of wpIsObjectInitialized and 
  7123. wpSaveDeferred to write the persistent image to the .INI file, if called as a 
  7124. result of WinSetObjectData. The wpScanSetupString method searches a setup 
  7125. string for a given keyname and returns its corresponding value. It also has a 
  7126. feature which returns just the length of the value when passed NULL as a 
  7127. pointer to the value buffer. Keynames and their values are separated by 
  7128. semicolons in the setup string. The escape character ( ^ ) followed by a 
  7129. semicolon can be used to represent a semicolon, if one is required in a keyname 
  7130. value specification. The following code fragments shows an example of a setup 
  7131. string for a stack object: 
  7132.  
  7133. PSZ pszSetupString = "TITLE    = MyStack;"
  7134.                      "OBJECTID = <MyStack>;"
  7135.                      "PUSHITEM = Pushed by Setup"
  7136.  
  7137. The following sample code shows the use of wpSetup: 
  7138.  
  7139. SOM_Scope BOOL SOMLINK stk_wpSetup(
  7140.                        Stack *somSelf,    // In - pointer to the object
  7141.                        PSZ   pszSetupString)
  7142.  
  7143. // The method returns the value:
  7144. //     TRUE  = successful
  7145. //     FALSE = error
  7146. {
  7147.   BOOL  bSaveObject = FALSE;
  7148.   BOOL  bStatus;
  7149.   ULONG cbValue;
  7150.   PSZ   pszValue;
  7151.  
  7152.   // StackData *somThis = StackGetData(somSelf);
  7153.   StackMethodDebug("Stack","stk_wpSetup");
  7154.  
  7155.   bStatus = parent_wpSetup(somSelf, pszSetupString);
  7156.   if (bStatus && pszSetupString && *pszSetupString)
  7157.   { //
  7158.     // Process PUSHITEM
  7159.     //
  7160.     if (_wpScanSetupString(somSelf,
  7161.                            pszSetupString,
  7162.                            "PUSHITEM",
  7163.                            NULL,
  7164.                            &cbValue))
  7165.     {
  7166.  
  7167.       pszValue = (PSZ)_wpAllocMem(somSelf, cbValue, NULL);
  7168.       bStatus  = FALSE;
  7169.       if (pszValue)
  7170.       {
  7171.         bStatus = _wpScanSetupString(somSelf,
  7172.                                      pszSetupString,
  7173.                                      "PUSHITEM",
  7174.                                      pszValue,
  7175.                                      &cbValue);
  7176.  
  7177.         if (bStatus)
  7178.         {
  7179.           bStatus     = _Push(somSelf, pszValue, cbValue);
  7180.           bSaveObject = bStatus;
  7181.         } /* Endif */
  7182.         _wpFreeMem(somSelf, (PBYTE)pszValue);
  7183.       } /* Endif */
  7184.     } /* Endif */
  7185.  
  7186.     //
  7187.     // Process POPITEM
  7188.     //
  7189.     if (bStatus && _wpScanSetupString(somSelf,
  7190.                                       pszSetupString,
  7191.                                       "POPITEM",
  7192.                                       NULL,
  7193.                                       &cbValue))
  7194.     {
  7195.       bStatus = FALSE;
  7196.  
  7197.       if (_Pop(somSelf, NULL, &cbValue))
  7198.       {
  7199.         pszValue = (PSZ)_wpAllocMem(somSelf, cbValue, NULL);
  7200.         if (pszValue)
  7201.         {
  7202.           bStatus     = _Pop(somSelf, pszValue, &cbValue);
  7203.           bSaveObject = bStatus;
  7204.           _wpFreeMem(somSelf, (PBYTE)pszValue);
  7205.         } /* Endif */
  7206.       } /* Endif */
  7207.     } /* Endif */
  7208.  
  7209.     if (bSaveObject && _wpIsObjectInitialized(somSelf))
  7210.     { //
  7211.       // Save the object to the INI file
  7212.       //
  7213.       _wpSaveDeferred(somSelf);
  7214.     } /* Endif */
  7215.   } /* Endif */
  7216.   return(bStatus);
  7217. } // End stk_wpSetup
  7218.  
  7219.  
  7220. ΓòÉΓòÉΓòÉ 10.2.4. Notifying the Object Is Ready ΓòÉΓòÉΓòÉ
  7221.  
  7222. The invocation of wpObjectReady is a signal that the object creation or 
  7223. awakening is complete. The following sample code uses this method to increment 
  7224. the persistent object count: 
  7225.  
  7226. SOM_Scope void SOMLINK stk_wpObjectReady(
  7227.           Stack *somSelf,       // In - pointer to the object
  7228.           ULONG ulCode,         // In - type of operation completed
  7229.           WPObject *refObject)  // In - pointer to the source
  7230.                                 //      object, if copy/shadow create
  7231.  
  7232. {
  7233.   // StackData *somThis = StackGetData(somSelf);
  7234.   StackMethodDebug("Stack","stk_wpObjectReady");
  7235.  
  7236.   parent_wpObjectReady(somSelf, ulCode, refObject);
  7237.   if (!(ulCode & OR_AWAKE))
  7238.   {
  7239.      _clsIncObjectCount(_somGetClass(somSelf), STK_PERSISTENTCOUNT);
  7240.   } /* Endif */
  7241.   return;
  7242. } // End stk_wpObjectReady
  7243.  
  7244.  
  7245. ΓòÉΓòÉΓòÉ 10.2.5. Uninitializing the Object ΓòÉΓòÉΓòÉ
  7246.  
  7247. The wpUnInitData method is executed just prior to deallocation of the object's 
  7248. memory during the process of making the object dormant or its permanent 
  7249. destruction. We want to deallocate all the memory and other resources allocated 
  7250. during this instantiation of the object. Memory allocated via wpAllocMem() is 
  7251. freed automatically by one of the Workplace Shell ancestors, so we need not do 
  7252. it here. As in the override of wpUnInitData, the multiple inheritance issue 
  7253. should be addressed here as well. The following sample code shows the use of 
  7254. wpUnInitData: 
  7255.  
  7256. SOM_Scope void SOMLINK stk_wpUnInitData(
  7257.                        Stack *somSelf)  // In - pointer to the object
  7258. {
  7259.   StackData *somThis = StackGetData(somSelf);
  7260.   StackMethodDebug("Stack","stk_wpUnInitData");
  7261.  
  7262.   if (_bInitialized)
  7263.   {
  7264.     _bInitialized = FALSE;
  7265.     _clsDecObjectCount(_somGetClass(somSelf), STK_AWAKECOUNT);
  7266.   } /* Endif */
  7267.   parent_wpUnInitData(somSelf);
  7268. } // End stk_wpUnInitData
  7269.  
  7270.  
  7271. ΓòÉΓòÉΓòÉ 10.2.6. Destroying the Object ΓòÉΓòÉΓòÉ
  7272.  
  7273. The wpFree method is generally overridden by storage classes such as 
  7274. WPFileSystem and WPAbstract, which provide for the permanent storage of an 
  7275. object's instance data. In addition, if you have an application that needs to 
  7276. destroy an object, call wpDelete rather than wpFree since it provides the user 
  7277. a chance to confirm the deletion. In this example, wpFree is overridden so that 
  7278. a count of stack object instances can be maintained. It is important that the 
  7279. somSelf pointer for the object not be used again following the call to 
  7280. parent_wpFree. The following sample code shows the use of wpFree: 
  7281.  
  7282. SOM_Scope BOOL SOMLINK stk_wpFree(
  7283.                        Stack *somSelf)  // In - pointer to the object
  7284.  
  7285. // The method returns the value
  7286. //     TRUE  = successful
  7287. //     FALSE = error
  7288. {
  7289.   BOOL      bStatus;
  7290.   SOMClass  *Class;
  7291.  
  7292.   // StackData *somThis = StackGetData(somSelf);
  7293.   StackMethodDebug("Stack","stk_wpFree");
  7294.  
  7295.   Class = _somGetClass(somSelf);
  7296.   bStatus = parent_wpFree(somSelf);
  7297.  
  7298.   if (bStatus)
  7299.   {
  7300.     _clsDecObjectCount(Class, STK_PERSISTENTCOUNT);
  7301.   } /* Endif */
  7302.   return(bStatus);
  7303. }  // End stk_wpFree
  7304.  
  7305.  
  7306. ΓòÉΓòÉΓòÉ 10.3. Sample Code for Setup/Cleanup Methods ΓòÉΓòÉΓòÉ
  7307.  
  7308. This section illustrates a complete setup/cleanup sample program. 
  7309.  
  7310. The Workplace Shell Stack object is a sample Workplace Shell SOM application 
  7311. that demonstrates the use of the setup and cleanup methods. The complete 
  7312. program provides a new object class, Stack, whose instances implement standard 
  7313. programming push down stacks. WPAbstract is the parent class of the Stack class 
  7314. providing persistence of the stack entries, via the OS2.INI file. The Stack 
  7315. class also maintains the number of permanent object instances and currently 
  7316. awake objects (instantiated in memory). 
  7317.  
  7318. A Settings notebook page has been added to each object allowing the user to: 
  7319.  
  7320.    o  View a stack's contents 
  7321.  
  7322.    o  Push new items onto the stack 
  7323.  
  7324.    o  Pop existing items from the stack. 
  7325.  
  7326.  The awake and total object counts are also displayed on each object's new 
  7327.  notebook page. The following figure shows the Stack Settings notebook: 
  7328.  
  7329.  
  7330. ΓòÉΓòÉΓòÉ 10.3.1. Pushing Items onto the Stack ΓòÉΓòÉΓòÉ
  7331.  
  7332. To push a new item onto the top of the stack, enter a text string in the New 
  7333. item to push field and click on the Push push button. The pushed item will 
  7334. appear at the top of the list. 
  7335.  
  7336.  
  7337. ΓòÉΓòÉΓòÉ 10.3.2. Popping Items from the Stack ΓòÉΓòÉΓòÉ
  7338.  
  7339. To pop the top item from the stack just click on the Pop push button. The 
  7340. popped item will be removed from the list and will appear in the New item to 
  7341. push field. 
  7342.  
  7343.  
  7344. ΓòÉΓòÉΓòÉ 10.3.3. Setup/Cleanup Application Sample Code ΓòÉΓòÉΓòÉ
  7345.  
  7346. Several parts of this program are explained in Using Setup/Cleanup Methods. 
  7347.  
  7348. The setup/cleanup application includes the following files: 
  7349.  
  7350.  File Name           Description 
  7351.  
  7352.  WPSTACK.IDL         Class interface definition 
  7353.  
  7354.  WPSTACK.C           Source code 
  7355.  
  7356.  WPSTACK.RCH         Resource header 
  7357.  
  7358.  WPSTACK.RC          Resource definition 
  7359.  
  7360.  WPSTACK.IPF         Stack help source 
  7361.  
  7362.  WPSTACK.MAK         Stack make file for building the application. 
  7363.  
  7364.  
  7365. ΓòÉΓòÉΓòÉ 10.3.3.1. Class Definition File for Stack ΓòÉΓòÉΓòÉ
  7366.  
  7367. The following sample illustrates the class interface definition file (IDL): 
  7368.  
  7369. //# CLASS: Stack
  7370. //#
  7371. //# CLASS HIERARCHY:
  7372. //#
  7373. //#    SOMObject
  7374. //#      ΓööΓöÇΓöÇΓöÇWPObject
  7375. //#            ΓööΓöÇΓöÇΓöÇWPAbstract
  7376. //#                  ΓööΓöÇΓöÇΓöÇStack
  7377. //#
  7378.  
  7379. #ifndef wpstack_idl
  7380. #define wpstack_idl
  7381.  
  7382. #include "wpabs.idl"
  7383. typedef somToken PSTACKENTRY;  //# Dummy typedef for instance variable
  7384.  
  7385. interface M_Stack;
  7386.  
  7387. interface Stack : WPAbstract
  7388. {
  7389.   ULONG InsertStackPage(in HWND hwndDlg);
  7390.   //# PARAMETERS:
  7391.   //#   HWND  hwndDlg   // In -  notebook dialog window handle
  7392.   //#   ULONG return    // Out - 0 = error occurred, else page #
  7393.   //#
  7394.   //# DESC: Adds the new Settings notebook page.
  7395.  
  7396.   BOOL Lock();
  7397.   //# PARAMETERS:
  7398.   //#   BOOL  return  // Out - TRUE  = successful
  7399.   //#                          FALSE = errror
  7400.   //#
  7401.   //# DESC: Lock the stack using a mutex semaphore so we don't have
  7402.   //#       to worry about multiple threads messing up the linked list.
  7403.  
  7404.   BOOL Pop(in PVOID pBuffer, inout ULONG pcbBuffer);
  7405.   //# PARAMETERS:
  7406.   //#   PVOID pBuffer,      // In    - pointer to buffer for popped item
  7407.   //#   PULONG pcbBuffer);  // InOut - size in bytes of pop buffer (in),
  7408.   //#                       //         size actually returned (out)
  7409.   //#   BOOL  return        // Out   - TRUE  = successful
  7410.   //#                                  FALSE = errror
  7411.   //# DESC: Pops an entry from the stack.
  7412.  
  7413.   BOOL Push(in PVOID pNewItem, in ULONG cbNewItem);
  7414.   //# PARAMETERS:
  7415.   //#   PVOID pNewItem,   // In  - pointer to the item to push
  7416.   //#   ULONG cbNewItem   // In  - size in bytes of item to push
  7417.   //#   BOOL  return      // Out - TRUE  = successful
  7418.   //#                              FALSE = errror
  7419.   //# DESC: Pushes an entry onto the stack.
  7420.  
  7421.   BOOL Unlock();
  7422.   //# PARAMETERS:
  7423.   //#   BOOL  return  // Out - TRUE  = successful
  7424.   //#                          FALSE = errror
  7425.   //#
  7426.   //# DESC: Unlock the stack, releasing the mutex semaphore.
  7427.  
  7428.   #ifdef __SOMIDL__
  7429.   implementation
  7430.   {
  7431.     releaseorder: InsertStackPage, Lock, Pop, Push, Unlock;
  7432.  
  7433.     /*
  7434.      * Class modifiers
  7435.      */
  7436.     functionprefix = stk_;
  7437.     majorversion   = 1;
  7438.     minorversion   = 2;
  7439.     filestem       = wpstack;
  7440.     metaclass      = M_Stack;
  7441.     callstyle      = oidl;
  7442.     dllname        = "wpstack.dll";
  7443.  
  7444.     /*
  7445.      * Internal instance variables
  7446.      */
  7447.     BOOL        bInitialized;
  7448.     PSTACKENTRY pStackTop;
  7449.     HMTX        hmtxStack;
  7450.  
  7451.     /*
  7452.      * Passthru to the .IH file the following:
  7453.      */
  7454.     passthru C_ih =
  7455.     "#define STK_APPLICATION        \"wpstack class\""
  7456.     "#define STK_PERSISTENTCOUNTKEY \"object count\""
  7457.     "#define MPNULL                 (MPFROMP( NULL ))"
  7458.     "#define MPZERO                 (MPFROMSHORT( 0 ))"
  7459.     "#define MRTRUE                 (MRFROMSHORT( (SHORT) TRUE ))"
  7460.     "#define MRFALSE                (MRFROMSHORT( (SHORT) FALSE ))"
  7461.     ""
  7462.     "typedef struct _STACKENTRY"
  7463.     "{"
  7464.     "   struct _STACKENTRY *Next;"
  7465.     "   BYTE        ReserveZeros[8];"
  7466.     "   ULONG       cbEntry;"
  7467.     "   BYTE        Entry[1];"
  7468.     "} STACKENTRY, *PSTACKENTRY;"
  7469.     "";
  7470.  
  7471.     /*
  7472.      * Passthru to the .H file the following:
  7473.      */
  7474.     passthru C_h =
  7475.     "#define STK_AWAKECOUNT      1"
  7476.     "#define STK_PERSISTENTCOUNT 2"
  7477.     "";
  7478.  
  7479.     /*
  7480.      * Method modifiers
  7481.      */
  7482.     wpAddSettingsPages:              override;
  7483.     wpFree:                          override;
  7484.     wpInitData:                      override;
  7485.     wpObjectReady:                   override;
  7486.     wpRestoreState:                  override;
  7487.     wpSaveState:                     override;
  7488.     wpSetup:                         override;
  7489.     wpSetupOnce:                     override;
  7490.     wpUnInitData:                    override;
  7491.   };
  7492.   #Endif /* __SOMIDL__ */
  7493. };
  7494.  
  7495. interface M_Stack : M_WPAbstract
  7496. {
  7497.   ULONG clsDecObjectCount(in ULONG ulCountType);
  7498.   //# PARAMETERS:
  7499.   //#   ULONG ulCountType  // In  - STK_AWAKECOUNT,
  7500.   //#                               STK_PERSISTENTCOUNT
  7501.   //#   ULONG return       // Out - new count value
  7502.   //#
  7503.   //# DESC: Decrements the number of defined object instances.
  7504.  
  7505.   ULONG clsIncObjectCount(in ULONG ulCountType);
  7506.   //# PARAMETERS:
  7507.   //#   ULONG ulCountType  // In  - STK_AWAKECOUNT,
  7508.   //#                               STK_PERSISTENTCOUNT
  7509.   //#   ULONG return       // Out - new count value
  7510.   //#
  7511.   //# DESC: Increments the number of defined object instances.
  7512.  
  7513.   HMODULE clsQueryModuleHandle();
  7514.   //# PARAMETERS: HMODULE return // Out - DLL module handle
  7515.   //#
  7516.   //# DESC: Gets resource module handle.
  7517.  
  7518.   ULONG clsQueryObjectCount(in ULONG ulCountType);
  7519.   //# PARAMETERS:
  7520.   //#   ULONG ulCountType  // In  - STK_AWAKECOUNT,
  7521.   //#                               STK_PERSISTENTCOUNT
  7522.   //#   ULONG return       // Out - count of awake/persistent instances
  7523.   //#
  7524.   //# DESC: Returns the current number of defined object instances.
  7525.  
  7526.   #ifdef __SOMIDL__
  7527.   implementation
  7528.   {
  7529.     releaseorder: clsDecObjectCount,
  7530.                   clsIncObjectCount,
  7531.                   clsQueryModuleHandle,
  7532.                   clsQueryObjectCount;
  7533.  
  7534.     /*
  7535.      * Class modifiers
  7536.      */
  7537.     functionprefix = stkM_;
  7538.     majorversion   = 1;
  7539.     minorversion   = 2;
  7540.     filestem       = wpstack;
  7541.     callstyle      = oidl;
  7542.     dllname        = "wpstack.dll";
  7543.  
  7544.     /*
  7545.      * Internal instance variables
  7546.      */
  7547.     HMODULE  hmod;              /* Resource module handle            */
  7548.     ULONG    ulAwakeCount;      /* No. of stack instances in memory  */
  7549.     ULONG    ulPersistentCount; /* Total number of stack instances   */
  7550.  
  7551.     /*
  7552.      * Method modifiers
  7553.      */
  7554.     wpclsInitData:                   override;
  7555.     wpclsQueryDefaultHelp:           override;
  7556.     wpclsQueryDefaultView:           override;
  7557.     wpclsQueryIconData:              override;
  7558.   };
  7559.   #Endif /* __SOMIDL__ */
  7560. };
  7561. #Endif  /* wpstack_idl */
  7562.  
  7563.  
  7564. ΓòÉΓòÉΓòÉ 10.3.3.2. Source Code for Stack ΓòÉΓòÉΓòÉ
  7565.  
  7566. The following sample illustrates the source code (C): 
  7567.  
  7568. // Description...... M_Stack, Stack
  7569. //
  7570. //     SOMObject
  7571. //       ΓööΓöÇΓöÇΓöÇWPObject
  7572. //             ΓööΓöÇΓöÇΓöÇWPAbstract
  7573. //                   ΓööΓöÇΓöÇΓöÇStack
  7574. //
  7575. // This class implements a persistent stack whose data is saved in the
  7576. // OS2.INI file by inheritance from WPAbstract.
  7577. //
  7578. // Instance Methods..........
  7579. //
  7580. //                  InsertStackPage             introduced
  7581. //                  Lock                        introduced
  7582. //                  Pop                         introduced
  7583. //                  Push                        introduced
  7584. //                  Unlock                      introduced
  7585. //                  wpAddSettingsPages          override
  7586. //                  wpFree                      override
  7587. //                  wpInitData                  override
  7588. //                  wpObjectReady               override
  7589. //                  wpRestoreState              override
  7590. //                  wpSaveState                 override
  7591. //                  wpSetup                     override
  7592. //                  wpSetupOnce                 override
  7593. //                  wpUnInitData                override
  7594. //
  7595. // Class Methods..........
  7596. //
  7597. //                  clsDecObjectCount           introduced
  7598. //                  clsIncObjectCount           introduced
  7599. //                  clsQueryModuleHandle        introduced
  7600. //                  clsQueryObjectCount         introduced
  7601. //                  wpclsInitData               override
  7602. //                  wpclsQueryDefaultHelp       override
  7603. //                  wpclsQueryDefaultView       override
  7604. //                  wpclsQueryIconData          override
  7605. //
  7606. // Non-Method Functions.......
  7607. //
  7608. //                  DialogProc
  7609. //
  7610. // *******************************************************************
  7611.  
  7612. #ifndef SOM_Module_wpstack_Source
  7613. #define SOM_Module_wpstack_Source
  7614. #endif
  7615. #define Stack_Class_Source
  7616. #define M_Stack_Class_Source
  7617.  
  7618. #include "stdlib.h"
  7619. #include "string.h"
  7620. #define  INCL_PM
  7621. #define  INCL_DOS
  7622. #define  INCL_DOSERRORS
  7623. #define  INCL_DEV
  7624. #define  INCL_WPCLASS
  7625. #define  INCL_WINWORKPLACE
  7626. #include "os2.h"
  7627. #include "wpstack.rch"
  7628. #include "wpstack.ih"
  7629.  
  7630. //
  7631. // Forward procedure declarations
  7632. //
  7633. MRESULT EXPENTRY DialogProc(HWND, ULONG, MPARAM, MPARAM);
  7634.  
  7635. //
  7636. // Global variables
  7637. //
  7638. PSZ vpszClassName   = "Stack";
  7639. PSZ vpszHelpLibrary = "wpstack.hlp";
  7640.  
  7641. // *********************************************************************
  7642. //
  7643. // METHOD NAME: stk_InsertStackPage
  7644. //
  7645. // FUNCTION: Inserts the new page into the Settings notebook.
  7646. //           This method exists so that subclassers can remove
  7647. //           or replace this page.
  7648. //
  7649. //**********************************************************************
  7650. SOM_Scope ULONG SOMLINK stk_InsertStackPage(
  7651.    Stack *somSelf,  // In - pointer to the object
  7652.    HWND hwndDlg)    // In - notebook window handle
  7653.  
  7654. // Method return value out - 0 = error, otherwise new page ID
  7655. {
  7656.    PAGEINFO  pi;
  7657.    // StackData *somThis = StackGetData(somSelf);
  7658.    StackMethodDebug("Stack","stk_InsertStackPage");
  7659.  
  7660.    memset((PCH) &pi, 0, sizeof(PAGEINFO));
  7661.    pi.cb                  = sizeof(PAGEINFO);
  7662.    pi.hwndPage            = NULLHANDLE;
  7663.    pi.usPageStyleFlags    = BKA_MAJOR;
  7664.    pi.usPageInsertFlags   = BKA_FIRST;
  7665.    pi.pfnwp               = DialogProc;
  7666.    pi.resid               = _clsQueryModuleHandle(_Stack);
  7667.    pi.dlgid               = DLG_STYLE;
  7668.    pi.pszName             = "~Stack";
  7669.    pi.pCreateParams       = somSelf;
  7670.    pi.pszHelpLibraryName  = vpszHelpLibrary;
  7671.    return(_wpInsertSettingsPage(somSelf, hwndDlg, &pi));
  7672.  
  7673. }  // End stk_InsertStackPage
  7674.  
  7675. // *********************************************************************
  7676. //
  7677. // METHOD NAME: stk_Lock
  7678. //
  7679. // FUNCTION: Locks the stack using a mutex semaphore so it does not
  7680. //           have to worry about multiple threads messing up the
  7681. //           linked list.
  7682. //
  7683. //**********************************************************************
  7684. SOM_Scope BOOL SOMLINK stk_Lock(
  7685.    Stack *somSelf) // In - pointer to the object
  7686.  
  7687. // Method return value out - TRUE = successful, False = error
  7688. {
  7689.    ULONG rc;
  7690.    QMSG   qmsg;
  7691.    MQINFO mqinfo;
  7692.    StackData *somThis = StackGetData(somSelf);
  7693.    StackMethodDebug("Stack","stk_Lock");
  7694.  
  7695.    if (!_hmtxStack)
  7696.    {
  7697.       rc = DosCreateMutexSem(NULL, &_hmtxStack, 0, TRUE);
  7698.    }
  7699.    else
  7700.    {
  7701.       rc = DosRequestMutexSem(_hmtxStack,100);
  7702.       if (rc)
  7703.       {
  7704.  
  7705.          if (WinQueryQueueInfo(HMQ_CURRENT,&mqinfo,sizeof(MQINFO)))
  7706.          {  //
  7707.             // For a PM process/thread, do a fake WinMsgSemWait
  7708.             //
  7709.             while (rc)
  7710.             {
  7711.                if (rc==ERROR_TIMEOUT)
  7712.                {
  7713.                   WinPeekMsg(WinQueryAnchorBlock(HWND_DESKTOP),
  7714.                              &qmsg,
  7715.                              NULLHANDLE,
  7716.                              0,0,
  7717.                              PM_NOREMOVE);  /* For example,         */
  7718.                                             /* fake a WinMsgSemWait */
  7719.                } /* Endthen */
  7720.  
  7721.                else
  7722.                {
  7723.                   break;
  7724.                } /* Endif */
  7725.                rc = DosRequestMutexSem(_hmtxStack, 100);
  7726.             } /* Endwhile */
  7727.          } /* Endthen */
  7728.  
  7729.          else
  7730.          {  //
  7731.             // For a non PM process/thread, just block on the semaphore
  7732.             //
  7733.             rc = DosRequestMutexSem(_hmtxStack, SEM_INDEFINITE_WAIT);
  7734.          } /* Endif */
  7735.       } /* Endif */
  7736.    } /* Endif */
  7737.    return(!rc);
  7738.  
  7739. }  // End stk_Lock
  7740.  
  7741. // *********************************************************************
  7742. //
  7743. // METHOD NAME: stk_Pop
  7744. //
  7745. // FUNCTION:  Pops an item from the stack.
  7746. //
  7747. //**********************************************************************
  7748. SOM_Scope BOOL SOMLINK stk_Pop(
  7749.    Stack  *somSelf,   // In    - pointer to the object
  7750.    PVOID  pBuffer,    // In    - pointer to the buffer for popped item.
  7751.                       //         NULL means return the buffer's size
  7752.    PULONG pcbBuffer)  // InOut - size in bytes of the pop buffer (in),
  7753.                       //         size actually returned (out)
  7754.  
  7755. // Method return value out - TRUE = successful, FALSE = error
  7756. {
  7757.    BOOL        bSem;
  7758.    PSTACKENTRY pNextEntry;
  7759.    BOOL        bStatus = FALSE;
  7760.    StackData *somThis = StackGetData(somSelf);
  7761.    StackMethodDebug("Stack","stk_Pop");
  7762.  
  7763.    /*
  7764.     * pStackTop is an instance variable, initialized to NULL,
  7765.     * which points to the top (first) entry
  7766.     * on the stack (list).
  7767.     */
  7768.    bSem = _Lock(somSelf);  // Semaphore that protects the stack chain
  7769.    if (_pStackTop)
  7770.    {
  7771.       if (pBuffer)
  7772.       {
  7773.  
  7774.          if (*pcbBuffer >= _pStackTop->cbEntry)
  7775.          {
  7776.             memcpy(pBuffer, _pStackTop->Entry, _pStackTop->cbEntry);
  7777.             *pcbBuffer = _pStackTop->cbEntry;
  7778.             pNextEntry = _pStackTop->Next;
  7779.             bStatus    = _wpFreeMem(somSelf, (PBYTE)_pStackTop);
  7780.             if (bStatus)
  7781.             {
  7782.                _pStackTop = pNextEntry;
  7783.             } /* Endif */
  7784.          } /* Endif */
  7785.       } /* Endthen */
  7786.  
  7787.       else
  7788.       {
  7789.          *pcbBuffer = _pStackTop->cbEntry;
  7790.          bStatus    = TRUE;
  7791.       } /* Endif */
  7792.    } /* Endif */
  7793.    if (bSem) _Unlock(somSelf);
  7794.    return(bStatus);
  7795.  
  7796. } // End stk_Pop
  7797.  
  7798. // *********************************************************************
  7799. //
  7800. // METHOD NAME: stk_Push
  7801. //
  7802. // FUNCTION: Pushes an item onto the stack.
  7803. //
  7804. //**********************************************************************
  7805. SOM_Scope BOOL  SOMLINK stk_Push(
  7806.    Stack *somSelf,     // In - pointer to the object
  7807.    PVOID pNewItem,     // In - pointer to the item to push
  7808.    ULONG cbNewItem)    // In - size in bytes of item to push
  7809.  
  7810. // Method return value out - TRUE = successful, FALSE = error
  7811. {
  7812.    BOOL        bSem;
  7813.    PSTACKENTRY pNewEntry;
  7814.    BOOL        bStatus  = FALSE;
  7815.    StackData   *somThis = StackGetData(somSelf);
  7816.    StackMethodDebug("Stack","stk_Push");
  7817.  
  7818.    pNewEntry = (PSTACKENTRY)_wpAllocMem(somSelf,
  7819.                 cbNewItem +
  7820.                 sizeof(STACKENTRY) -
  7821.                 sizeof(BYTE),
  7822.                 NULL);
  7823.  
  7824.    if (pNewEntry)
  7825.    {
  7826.       /*
  7827.        * pStackTop is an instance variable, initialized to NULL,
  7828.        * which points to the top (first) entry
  7829.        * on the stack (list)
  7830.        */
  7831.       memset(pNewEntry, 0, sizeof(STACKENTRY));
  7832.       bSem = _Lock(somSelf);  // Semaphore protect the stack chain.
  7833.       pNewEntry->Next = _pStackTop;
  7834.       _pStackTop = pNewEntry;
  7835.  
  7836.       if (pNewItem && cbNewItem)
  7837.       {
  7838.          pNewEntry->cbEntry = cbNewItem;
  7839.          memcpy(pNewEntry->Entry, pNewItem, cbNewItem);
  7840.       } /* Endif */
  7841.       if (bSem) _Unlock(somSelf);
  7842.       bStatus = TRUE;
  7843.    } /* Endif */
  7844.    return(bStatus);
  7845. } /* End stk_Push */
  7846.  
  7847. // *********************************************************************
  7848. //
  7849. // METHOD NAME: stk_Unlock
  7850. //
  7851. // FUNCTION: Unlocks the stack, releasing the mutex semaphore.
  7852. //
  7853. //**********************************************************************
  7854. SOM_Scope BOOL SOMLINK stk_Unlock(
  7855.    Stack *somSelf) // In - pointer to the object
  7856.  
  7857. // Method return value out - TRUE = successful, False = error.
  7858. {
  7859.    ULONG rc = 0;
  7860.    StackData *somThis = StackGetData(somSelf);
  7861.    StackMethodDebug("Stack","stk_Unlock");
  7862.  
  7863.    if (_hmtxStack)
  7864.    {
  7865.       rc = DosReleaseMutexSem(_hmtxStack);
  7866.    } /* Endif */
  7867.    return(!rc);
  7868.  
  7869. }  // End stk_Unlock
  7870.  
  7871. // *********************************************************************
  7872. //
  7873. // METHOD NAME: stk_wpAddSettingsPages
  7874. //
  7875. // FUNCTION:
  7876. //
  7877. //   Adds the new stack page by calling InsertStackPage().  This page
  7878. //   shows the contents of the stack and allows pushing and popping
  7879. //   entries.  It is added on top of existing pages.
  7880. //
  7881. //***********************************************************************
  7882.  
  7883. SOM_Scope BOOL SOMLINK stk_wpAddSettingsPages(
  7884.    Stack *somSelf,    // In - pointer to the object
  7885.    HWND hwndNotebook) // In - Settings notebook window handle
  7886.  
  7887. // Method return value out - TRUE = successful, FALSE = error
  7888. {
  7889.     // StackData *somThis = StackGetData(somSelf);
  7890.     StackMethodDebug("Stack","stk_wpAddSettingsPages");
  7891.  
  7892.     parent_wpAddSettingsPages(somSelf, hwndNotebook);
  7893.     return(_InsertStackPage(somSelf, hwndNotebook) != 0);
  7894.  
  7895. } // End stk_wpAddSettingsPages
  7896.  
  7897. // *********************************************************************
  7898. //
  7899. // METHOD NAME: stk_wpFree
  7900. //
  7901. // FUNCTION:
  7902. //
  7903. //   wpFree is generally overridden by storage classes such as
  7904. //   WPFileSystem and WPAbstract, which provide for the permanent
  7905. //   storage of an object's instance data.  In addition, if you
  7906. //   are trying to destroy an object, call wpDelete rather than wpFree
  7907. //   since it provides a user confirmation capability.
  7908. //
  7909. //   In this example, wpFree is overridden so that a count of stack
  7910. //   object instances can be maintained.  It is important that the
  7911. //   somSelf pointer for the object not be used again following the
  7912. //   call to parent_wpFree.
  7913. //
  7914. //**********************************************************************
  7915. SOM_Scope BOOL SOMLINK stk_wpFree(
  7916.    Stack *somSelf)  // In - pointer to the object
  7917.  
  7918. // Method return value out - TRUE = successful, FALSE = error
  7919. {
  7920.    BOOL      bStatus;
  7921.    SOMClass  *Class;
  7922.    // StackData *somThis = StackGetData(somSelf);
  7923.    StackMethodDebug("Stack","stk_wpFree");
  7924.  
  7925.    Class   = _somGetClass(somSelf);
  7926.    bStatus = parent_wpFree(somSelf);
  7927.    if (bStatus)
  7928.    {
  7929.       _clsDecObjectCount(Class, STK_PERSISTENTCOUNT);
  7930.    } /* Endif */
  7931.    return(bStatus);
  7932.  
  7933. }  // End stk_wpFree
  7934.  
  7935. // *********************************************************************
  7936. //
  7937. // METHOD NAME:  stk_wpInitData
  7938. //
  7939. // FUNCTION:
  7940. //
  7941. //   Initializes the stack's instance data.  Zero initialization is
  7942. //   statisfactory for the stack top pointer (pStackTop), so there is
  7943. //   nothing to do with respect to the instance data.  However, I will take
  7944. //   this opportunity to increment the awake stack instance count being
  7945. //   maintained by the class because I want to decrement it in wpUnInitData.
  7946. //   There are three additional items to note when overriding wpInitData.
  7947.  
  7948. //   First, wpInitData is invoked prior to the determination or restoration
  7949. //   of an object's state.  It is therefore necessary to be extremely
  7950. //   careful about what other instance methods are called.  It is best to
  7951. //   call none unless you wrote them.
  7952. //
  7953. //   Second, it is safest to call the parent's wpInitData method before
  7954. //   doing your own initialization.
  7955. //
  7956. //   Third, if it is possible for this class to be a common ancestor in a
  7957. //   multiple inheritance scenario, then this method needs to be written
  7958. //   such that multiple invocations are handled.  For example, if a class
  7959. //   named Stack23 was derived from classes Stack2 and Stack3 which in
  7960. //   turn were subclasses of Stack, that situation would exist.  Not
  7961. //   all Workplace Shell classes (WP*.)  currently take this precaution.
  7962. //   Therefore, it is advisable not to inherit from more than one
  7963. //   Workplace Shell class.  Using SOM initializers and destructors is
  7964. //   an alternative to overriding wpInitData in the multiple
  7965. //   inheritance situation.
  7966. //
  7967. //***********************************************************************
  7968.  
  7969. SOM_Scope void SOMLINK stk_wpInitData(
  7970.    Stack *somSelf)  // In - pointer to the object
  7971. {
  7972.     StackData *somThis = StackGetData(somSelf);
  7973.     StackMethodDebug("Stack","stk_wpInitData");
  7974.  
  7975.     parent_wpInitData(somSelf);
  7976.     if (!(_bInitialized))
  7977.     {
  7978.        _bInitialized = TRUE;
  7979.        _clsIncObjectCount(_somGetClass(somSelf), STK_AWAKECOUNT);
  7980.     } /* Endif */
  7981.     return;
  7982.  
  7983. }  // End stk_wpInitData
  7984.  
  7985. // *********************************************************************
  7986. //
  7987. // METHOD NAME:  stk_wpObjectReady
  7988. //
  7989. // FUNCTION:
  7990. //
  7991. //   Notifies that the object's creation/awakening is complete.
  7992. //   This example uses this method to increment the persistent
  7993. //   object count.
  7994. //
  7995. //**********************************************************************
  7996.  
  7997. SOM_Scope void SOMLINK stk_wpObjectReady(
  7998.    Stack    *somSelf,    // In - pointer to the object
  7999.    ULONG    ulCode,      // In - type of operation completed
  8000.    WPObject *refObject)  // In - pointer to the source object
  8001.                          //      if an object's
  8002.                          //      copy/shadow is created
  8003.  
  8004. {
  8005.     // StackData *somThis = StackGetData(somSelf);
  8006.     StackMethodDebug("Stack","stk_wpObjectReady");
  8007.  
  8008.     parent_wpObjectReady(somSelf, ulCode, refObject);
  8009.     if (!(ulCode & OR_AWAKE))
  8010.     {
  8011.        _clsIncObjectCount(_somGetClass(somSelf), STK_PERSISTENTCOUNT);
  8012.     } /* Endif */
  8013.     return;
  8014.  
  8015. } // End stk_wpObjectReady
  8016.  
  8017. // *********************************************************************
  8018. //
  8019. // METHOD NAME:  stk_wpRestoreState
  8020. //
  8021. // FUNCTION:
  8022. //
  8023. //   Restores the stack items from the persistent INI file storage
  8024. //   into the memory resident linked list pointed to by the
  8025. //   pStackTop instance variable.
  8026. //
  8027. //**********************************************************************
  8028.  
  8029. SOM_Scope BOOL  SOMLINK stk_wpRestoreState(
  8030.    Stack *somSelf,    // In - pointer to the object
  8031.    ULONG ulReserved)
  8032.  
  8033. {
  8034.    ULONG       i;
  8035.    ULONG       ulItemCount;
  8036.    ULONG       cbItem;
  8037.    PBYTE       pItem;
  8038.    PSTACKENTRY pPrevItem = NULL;
  8039.    BOOL        bStatus;
  8040.    StackData *somThis = StackGetData(somSelf);
  8041.    StackMethodDebug("Stack","stk_wpRestoreState");
  8042.  
  8043.    bStatus = _wpRestoreLong(somSelf, vpszClassName, 0, &ulItemCount);
  8044.    for (i=1; (i<=ulItemCount) && bStatus; i++)
  8045.    {
  8046.       bStatus = _wpRestoreData(somSelf, vpszClassName, i, NULL, &cbItem);
  8047.       if (bStatus)
  8048.       {
  8049.          pItem = _wpAllocMem(somSelf, cbItem, NULL);
  8050.  
  8051.          if (pItem)
  8052.          {
  8053.             bStatus = _wpRestoreData(somSelf, vpszClassName, i, pItem, &cbItem);
  8054.             if (bStatus)
  8055.             {
  8056.                if (pPrevItem)
  8057.                {
  8058.                   pPrevItem->Next = (PSTACKENTRY)pItem;
  8059.                } /* Endthen */
  8060.  
  8061.                else
  8062.                {
  8063.                   _pStackTop = (PSTACKENTRY)pItem;
  8064.                } /* Endif */
  8065.                pPrevItem = (PSTACKENTRY)pItem;
  8066.             } /* Endthen */
  8067.  
  8068.             else
  8069.             {
  8070.                _wpFreeMem(somSelf, pItem);
  8071.             } /* Endif */
  8072.          } /* Endif */
  8073.       } /* Endif */
  8074.    } /* Endfor */
  8075.    return (parent_wpRestoreState(somSelf, ulReserved));
  8076.  
  8077. } // End stk_wpRestoreState
  8078.  
  8079. // *********************************************************************
  8080. //
  8081. // METHOD NAME: stk_wpSaveState
  8082. //
  8083. // FUNCTION:
  8084. //
  8085. //   Saves the memory resident linked list to a buffer, which will be
  8086. //   written to a permanent INI file storage by the WPAbstract class.
  8087. //   The memory resident linked list is pointed to by the
  8088. //   pStackTop instance variable.
  8089. //
  8090. //**********************************************************************
  8091.  
  8092. SOM_Scope BOOL  SOMLINK stk_wpSaveState(
  8093.    Stack *somSelf)    // In - pointer to the object
  8094.  
  8095. {
  8096.    BOOL        bSem;
  8097.    ULONG       i;
  8098.    ULONG       ulItemCount = 0;
  8099.    ULONG       cbItem;
  8100.    PSTACKENTRY pItem;
  8101.    BOOL        bStatus;
  8102.    StackData *somThis = StackGetData(somSelf);
  8103.    StackMethodDebug("Stack","stk_wpSaveState");
  8104.  
  8105.    bSem = _Lock(somSelf);  // Semaphore that protects the stack chain
  8106.    for (pItem = _pStackTop; pItem; pItem = pItem->Next, ulItemCount++){;};
  8107.    bStatus = _wpSaveLong(somSelf, vpszClassName, 0, ulItemCount);
  8108.    for (pItem = _pStackTop, i = 1; bStatus && pItem; pItem = pItem->Next, i++)
  8109.    {
  8110.       cbItem  = sizeof(STACKENTRY) + pItem->cbEntry - 1;
  8111.       bStatus = _wpSaveData(somSelf, vpszClassName, i, (PBYTE)pItem, cbItem);
  8112.    } /* Endfor */
  8113.    if (bSem) _Unlock(somSelf);
  8114.    return(parent_wpSaveState(somSelf));
  8115.  
  8116. } // End stk_wpSaveState
  8117.  
  8118. // *********************************************************************
  8119. //
  8120. // METHOD NAME:  stk_wpSetup
  8121. //
  8122. // FUNCTION:
  8123. //
  8124. //   Two new keywords, PUSHITEM and POPITEM, have been defined for this
  8125. //   class to push and pop items from the stack.  This method is invoked
  8126. //   when an object is created and when WinSetObjectData() is called.
  8127. //   wpIsObjectInitialized and wpSaveDeferred are used to write
  8128. //   the persistent image to the INI file, if they are called as a result
  8129. //   of WinSetObjectData.
  8130. //
  8131. //**********************************************************************
  8132.  
  8133. SOM_Scope BOOL  SOMLINK stk_wpSetup(
  8134.    Stack *somSelf,    // In - pointer to the object
  8135.    PSZ   pszSetupString)
  8136.  
  8137. // Method return value out - TRUE = successful, FALSE = error
  8138. {
  8139.    BOOL  bSaveObject = FALSE;
  8140.    BOOL  bStatus;
  8141.    ULONG cbValue;
  8142.    PSZ   pszValue;
  8143.  
  8144.    // StackData *somThis = StackGetData(somSelf);
  8145.    StackMethodDebug("Stack","stk_wpSetup");
  8146.  
  8147.    bStatus = parent_wpSetup(somSelf, pszSetupString);
  8148.    if (bStatus && pszSetupString && *pszSetupString)
  8149.  
  8150.    {  //
  8151.       // Process PUSHITEM
  8152.       //
  8153.       if (_wpScanSetupString(somSelf,
  8154.                              pszSetupString,
  8155.                              "PUSHITEM",
  8156.                              NULL,
  8157.                              &cbValue))
  8158.       {
  8159.          pszValue = (PSZ)_wpAllocMem(somSelf, cbValue, NULL);
  8160.          bStatus  = FALSE;
  8161.  
  8162.          if (pszValue)
  8163.          {
  8164.             bStatus = _wpScanSetupString(somSelf,
  8165.                                          pszSetupString,
  8166.                                          "PUSHITEM",
  8167.                                          pszValue,
  8168.                                          &cbValue);
  8169.  
  8170.             if (bStatus)
  8171.             {
  8172.                bStatus     = _Push(somSelf, pszValue, cbValue);
  8173.                bSaveObject = bStatus;
  8174.             } /* Endif */
  8175.             _wpFreeMem(somSelf, (PBYTE)pszValue);
  8176.          } /* Endif */
  8177.       } /* Endif */
  8178.  
  8179.       //
  8180.       // Process POPITEM
  8181.       //
  8182.       if (bStatus &&
  8183.           _wpScanSetupString(somSelf,
  8184.                              pszSetupString,
  8185.                              "POPITEM",
  8186.                              NULL,
  8187.                              &cbValue))
  8188.       {
  8189.          bStatus = FALSE;
  8190.  
  8191.          if (_Pop(somSelf, NULL, &cbValue))
  8192.          {
  8193.             pszValue = (PSZ)_wpAllocMem(somSelf, cbValue, NULL);
  8194.             if (pszValue)
  8195.             {
  8196.                bStatus     = _Pop(somSelf, pszValue, &cbValue);
  8197.                bSaveObject =  bStatus;
  8198.                _wpFreeMem(somSelf, (PBYTE)pszValue);
  8199.             } /* Endif */
  8200.          } /* Endif */
  8201.       } /* Endif */
  8202.  
  8203.       if (bSaveObject && _wpIsObjectInitialized(somSelf))
  8204.       {  //
  8205.          // Save the object to the INI file.
  8206.          //
  8207.          _wpSaveDeferred(somSelf);
  8208.       } /* Endif */
  8209.    } /* Endif */
  8210.    return(bStatus);
  8211.  
  8212. } // End stk_wpSetup
  8213.  
  8214. // *********************************************************************
  8215. //
  8216. // METHOD NAME:  stk_wpSetupOnce
  8217. //
  8218. // FUNCTION:
  8219. //
  8220. //   This method is called once during the creation of an object.
  8221. //   One item is pushed onto the stack.  Unless popped by the
  8222. //   setup string, every newly created stack will have this item.
  8223. //
  8224. //**********************************************************************
  8225.  
  8226. SOM_Scope BOOL  SOMLINK stk_wpSetupOnce(
  8227.    Stack *somSelf,    // In - pointer to the object
  8228.    PSZ   pszSetupString)
  8229.  
  8230. // Method return value out - TRUE = successful, FALSE = error
  8231. {
  8232.     PSZ pszStackItem = "***** BOTTOM OF STACK *****";
  8233.     // StackData *somThis = StackGetData(somSelf);
  8234.     StackMethodDebug("Stack","stk_wpSetupOnce");
  8235.  
  8236.     _Push(somSelf, pszStackItem, strlen(pszStackItem) + 1);
  8237.     return (parent_wpSetupOnce(somSelf, pszSetupString));
  8238.  
  8239. } // End stk_wpSetupOnce
  8240.  
  8241. // *********************************************************************
  8242. //
  8243. // METHOD NAME:  stk_wpUnInitData
  8244. //
  8245. // FUNCTION:
  8246. //
  8247. //    This method is executed just prior to the deallocation of the
  8248. //    object's memory, during the process of making the object dormant
  8249. //    or its permanent destruction.  All memory and other resources allocated
  8250. //    during the instantiation of the object will be deallocated.  Memory
  8251. //    allocated by wpAllocMem() will be freed automatically by one of the
  8252. //    Workplace Shell ancestors, so there is no need to do this here.  As in
  8253. //    the wpInitData() override, the multiple inheritance issue should be
  8254. //    addressed here as well.
  8255. //
  8256. //**********************************************************************
  8257.  
  8258. SOM_Scope void  SOMLINK stk_wpUnInitData(
  8259.    Stack *somSelf)    // In - pointer to the object
  8260. {
  8261.    StackData *somThis = StackGetData(somSelf);
  8262.    StackMethodDebug("Stack","stk_wpUnInitData");
  8263.  
  8264.    if (_bInitialized)
  8265.    {
  8266.       _bInitialized = FALSE;
  8267.       _clsDecObjectCount(_somGetClass(somSelf), STK_AWAKECOUNT);
  8268.    } /* Endif */
  8269.    parent_wpUnInitData(somSelf);
  8270.  
  8271. } // End stk_wpUnInitData
  8272.  
  8273. // *********************************************************************
  8274. //
  8275. // METHOD NAME:  stkM_clsDecObjectCount
  8276. //
  8277. // FUNCTION:
  8278. //
  8279. //    Decrements the "awake" or "persistent" object instance count
  8280. //    for the class.
  8281. //
  8282. //**********************************************************************
  8283.  
  8284. SOM_Scope ULONG SOMLINK stkM_clsDecObjectCount(
  8285.    M_Stack *somSelf,  // In - pointer to the class object
  8286.    ULONG ulCountType) // In - STK_AWAKECOUNT,
  8287.                       //      STK_PERSISTENTCOUNT
  8288.  
  8289. // Method return value out - new count value
  8290. {
  8291.    ULONG ulCount = 0;
  8292.  
  8293.    M_StackData *somThis = M_StackGetData(somSelf);
  8294.    M_StackMethodDebug("M_Stack","stkM_clsDecObjectCount");
  8295.  
  8296.    switch (ulCountType)
  8297.    {
  8298.       case STK_AWAKECOUNT:
  8299.          ulCount = --_ulAwakeCount;
  8300.          break;
  8301.  
  8302.       case STK_PERSISTENTCOUNT:
  8303.          ulCount = --_ulPersistentCount;
  8304.          //
  8305.          // Write this value to the INI file
  8306.          //
  8307.          PrfWriteProfileData(HINI_USERPROFILE,
  8308.                              STK_APPLICATION,
  8309.                              STK_PERSISTENTCOUNTKEY,
  8310.                              &_ulPersistentCount,
  8311.                              sizeof(ULONG));
  8312.          break;
  8313.  
  8314.       default:
  8315.          break;
  8316.    } /* Endswitch */
  8317.    return(ulCount);
  8318.  
  8319. }  // stkM_clsDecObjectCount
  8320.  
  8321. // *********************************************************************
  8322. //
  8323. // METHOD NAME:  stkM_clsIncObjectCount
  8324. //
  8325. // FUNCTION:
  8326. //
  8327. //    Increments the "awake" or "persistent" object instance count
  8328. //    for the class.
  8329. //
  8330. //**********************************************************************
  8331.  
  8332. SOM_Scope ULONG somlink stkM_clsIncObjectCount(
  8333.    M_Stack *somSelf,  // In - pointer to the class object
  8334.    ULONG ulCountType) // In - STK_AWAKECOUNT,
  8335.                       //      STK_PERSISTENTCOUNT
  8336.  
  8337. // Method return value out - new count value
  8338. {
  8339.    ULONG ulCount = 0;
  8340.  
  8341.    M_StackData *somThis = M_StackGetData(somSelf);
  8342.    M_StackMethodDebug("M_Stack","stkM_clsIncObjectCount");
  8343.  
  8344.    switch (ulCountType)
  8345.    {
  8346.       case STK_AWAKECOUNT:
  8347.          ulCount = ++_ulAwakeCount;
  8348.          break;
  8349.  
  8350.       case STK_PERSISTENTCOUNT:
  8351.          ulCount = ++_ulPersistentCount;
  8352.          //
  8353.          // Need to write this value to the INI file
  8354.          //
  8355.          PrfWriteProfileData(HINI_USERPROFILE,
  8356.                              STK_APPLICATION,
  8357.                              STK_PERSISTENTCOUNTKEY,
  8358.                              &_ulPersistentCount,
  8359.                              sizeof(ULONG));
  8360.          break;
  8361.  
  8362.       default:
  8363.          break;
  8364.    } /* Endswitch */
  8365.    return(ulCount);
  8366.  
  8367. } // stkM_clsIncObjectCount
  8368.  
  8369. // *********************************************************************
  8370. //
  8371. // METHOD NAME:  stkM_clsQueryModuleHandle
  8372. //
  8373. // FUNCTION:
  8374. //
  8375. //    Returns the resource file module handle which was obtained
  8376. //    by wpclsInitData during the initialization process.
  8377. //
  8378. //**********************************************************************
  8379.  
  8380. SOM_Scope HMODULE somlink stkM_clsQueryModuleHandle(
  8381.    M_Stack *somSelf)  // In - pointer to the class object
  8382.  
  8383. // Method return value out - resouce module handle
  8384. {
  8385.    M_StackData *somThis = M_StackGetData(somSelf);
  8386.    M_StackMethodDebug("M_Stack","stkM_clsQueryModuleHandle");
  8387.  
  8388.    return(_hmod);
  8389.  
  8390. } // End stkM_clsQueryModuleHandle
  8391.  
  8392. // *********************************************************************
  8393. //
  8394. // METHOD NAME:  stkM_clsQueryObjectCount
  8395. //
  8396. // FUNCTION:
  8397. //
  8398. //    Returns the "awake" or "persistent" object instance count
  8399. //    for the class.
  8400. //
  8401. //**********************************************************************
  8402.  
  8403. SOM_Scope ULONG somlink stkM_clsQueryObjectCount(
  8404.    M_Stack *somSelf,  // In - pointer to the class object
  8405.    ULONG ulCountType) // In - STK_AWAKECOUNT,
  8406.                       //      STK_PERSISTENTCOUNT
  8407.  
  8408. // Method return value out - current count value
  8409. {
  8410.    ULONG ulCount = 0;
  8411.  
  8412.    M_StackData *somThis = M_StackGetData(somSelf);
  8413.    M_StackMethodDebug("M_Stack","stkM_clsQueryObjectCount");
  8414.  
  8415.    switch (ulCountType)
  8416.    {
  8417.       case STK_AWAKECOUNT:
  8418.          ulCount = _ulAwakeCount;
  8419.          break;
  8420.  
  8421.       case STK_PERSISTENTCOUNT:
  8422.          ulCount = _ulPersistentCount;
  8423.          break;
  8424.  
  8425.       default:
  8426.          break;
  8427.    } /* Endswitch */
  8428.    return(ulCount);
  8429.  
  8430. } // End stkM_clsQueryObjectCount
  8431.  
  8432. // *********************************************************************
  8433. //
  8434. // METHOD NAME:  stkM_wpclsInitData
  8435. //
  8436. // FUNCTION:
  8437. //
  8438. //    Initializes the class data (resource file module handle).
  8439. //    In this case, the resouce file is linked with the code
  8440. //    (WPSTACK.DLL).  The parent initialization is usually done first so
  8441. //    that some ancestor methods can be called.
  8442. //
  8443. //**********************************************************************
  8444.  
  8445. SOM_Scope void somlink stkM_wpclsInitData(
  8446.    M_Stack *somSelf)  // In - pointer to the class object
  8447. {
  8448.    PSZ         psz;
  8449.    somId       stackId;
  8450.    ULONG       cbValue  = sizeof(ULONG);
  8451.    M_StackData *somThis = M_StackGetData(somSelf);
  8452.    M_StackMethodDebug("M_Stack","stkM_wpclsInitData");
  8453.  
  8454.    parent_wpclsInitData(somSelf);
  8455.    stackId = somIdFromString("Stack");
  8456.    psz = _somLocateClassFile(SOMClassMgrObject,
  8457.                              stackId,
  8458.                              Stack_MajorVersion,
  8459.                              Stack_MinorVersion);
  8460.    SOMFree(stackId);
  8461.  
  8462.    if (psz != NULL)
  8463.    {
  8464.       DosQueryModuleHandle(psz, &_hmod);
  8465.    } /* Endif */
  8466.  
  8467.    //
  8468.    // Get the persistent object count from the INI file
  8469.    //
  8470.    PrfQueryProfileData(HINI_USERPROFILE,
  8471.                        STK_APPLICATION,
  8472.                        STK_PERSISTENTCOUNTKEY,
  8473.                        &_ulPersistentCount,
  8474.                        &cbValue);
  8475.    return;
  8476.  
  8477. } // End stkM_wpclsInitData
  8478.  
  8479. // *********************************************************************
  8480. //
  8481. // METHOD NAME:  stkM_wpclsQueryDefaultHelp
  8482. //
  8483. // FUNCTION:
  8484. //
  8485. //    Returns the help panel DLL and ID.
  8486. //
  8487. //**********************************************************************
  8488.  
  8489. SOM_Scope BOOL somlink stkM_wpclsQueryDefaultHelp(
  8490.    M_Stack *somSelf,       // In - pointer to the class object
  8491.    PULONG  pHelpPanelId,
  8492.    PSZ     pszHelpLibrary)
  8493.  
  8494. // Method return value out - TRUE = successful, FALSE = error
  8495. {
  8496.     // M_StackData *somThis = M_StackGetData(somSelf);
  8497.     M_StackMethodDebug("M_Stack","stkM_wpclsQueryDefaultHelp");
  8498.  
  8499.     if (pHelpPanelId)
  8500.     {
  8501.        *pHelpPanelId = ID_HELP_STACK;
  8502.     } /* Endif */
  8503.  
  8504.     if (pszHelpLibrary)
  8505.     {
  8506.        strcpy(pszHelpLibrary, vpszHelpLibrary);
  8507.     } /* Endif */
  8508.     return(TRUE);
  8509.  
  8510. } // End stkM_wpclsQueryDefaultHelp
  8511.  
  8512. // *********************************************************************
  8513. //
  8514. // METHOD NAME:  stkM_wpclsQueryDefaultView
  8515. //
  8516. // FUNCTION:
  8517. //
  8518. //    Opens the Settings view as the default.
  8519. //
  8520. //**********************************************************************
  8521.  
  8522. SOM_Scope ULONG somlink stkM_wpclsQueryDefaultView(
  8523.    M_Stack *somSelf)  // In - pointer to the class object
  8524. {
  8525.    // M_StackData *somThis = M_StackGetData(somSelf);
  8526.    M_StackMethodDebug("M_Stack","stkM_wpclsQueryDefaultView");
  8527.  
  8528.    return OPEN_SETTINGS;
  8529.  
  8530. }  // End stkM_wpclsQueryDefaultView
  8531.  
  8532. // *********************************************************************
  8533. //
  8534. // METHOD NAME:  stkM_wpclsQueryIconData
  8535. //
  8536. // FUNCTION:
  8537. //
  8538. //    This method is overridden so that the class' objects has
  8539. //    a unique icon.
  8540. //
  8541. //**********************************************************************
  8542.  
  8543. SOM_Scope ULONG SOMLINK stkM_wpclsQueryIconData(
  8544.    M_Stack   *somSelf,   // In - pointer to the class object
  8545.    PICONINFO pIconInfo ) // In - buffer for the icon data
  8546.  
  8547. // Method return value out - size of data returned
  8548. {
  8549.     // M_StackData *somThis = M_StackGetData(somSelf);
  8550.     M_StackMethodDebug("M_Stack","stkM_wpclsQueryIcon");
  8551.  
  8552.    if (pIconInfo)
  8553.    {
  8554.       pIconInfo->fFormat = ICON_RESOURCE;
  8555.       pIconInfo->hmod    = _clsQueryModuleHandle(somSelf);
  8556.       pIconInfo->resid   = ID_OBJECTICON;
  8557.    }
  8558.    return sizeof(ICONINFO);
  8559.  
  8560. } // End stkM_wpclsQueryIconData
  8561.  
  8562. // *********************************************************************
  8563. //
  8564. // PROCEDURE NAME:  DialogProc
  8565. //
  8566. // FUNCTION:
  8567. //
  8568. //   This is the dialog procedure for the new Settings notebook page.
  8569. //
  8570. //**********************************************************************
  8571.  
  8572. MRESULT EXPENTRY DialogProc(HWND hwndDlg,
  8573.                             ULONG msg,
  8574.                             MPARAM mp1,
  8575.                             MPARAM mp2)
  8576.  
  8577. {
  8578.    typedef struct _WINDATA
  8579.    {
  8580.       SOMAny     *somSelf;
  8581.       StackData  *somThis;
  8582.    }  WINDATA, *PWINDATA;
  8583.  
  8584.    MRESULT     mresultWpRtnCd = MRFALSE;
  8585.    PWINDATA    pwin = (PWINDATA) WinQueryWindowPtr(hwndDlg, QWL_USER);
  8586.    CHAR        szNewItem[CCHMAXPATH];
  8587.    ULONG       cbNewItem;
  8588.    PSTACKENTRY pItem;
  8589.    BOOL        bSem;
  8590.  
  8591.    switch( msg )
  8592.    {
  8593.       case WM_INITDLG:
  8594.       {
  8595.          pwin = (PWINDATA) _wpAllocMem((SOMAny *) mp2,
  8596.                                        sizeof(WINDATA), NULL);
  8597.          WinSetWindowPtr(hwndDlg, QWL_USER, pwin);
  8598.  
  8599.          //
  8600.          // Initialize WINDATA structure
  8601.          //
  8602.          pwin->somSelf     = (SOMAny *) mp2;
  8603.          pwin->somThis     = StackGetData(pwin->somSelf);
  8604.  
  8605.          //
  8606.          // Display the stack object count statistics
  8607.          //
  8608.          _ltoa(_clsQueryObjectCount(_somGetClass(pwin->somSelf),
  8609.                                     STK_AWAKECOUNT),
  8610.                szNewItem, 10);
  8611.          WinSetDlgItemText(hwndDlg, DLG_AWAKECOUNT, szNewItem);
  8612.          _ltoa(_clsQueryObjectCount(_somGetClass(pwin->somSelf),
  8613.                                     STK_PERSISTENTCOUNT),
  8614.                szNewItem, 10);
  8615.          WinSetDlgItemText(hwndDlg, DLG_PERSISTENTCOUNT, szNewItem);
  8616.  
  8617.          //
  8618.          // Insert stack items into the list box
  8619.          //
  8620.          bSem = _Lock(pwin->somSelf);
  8621.          for (pItem = pwin->somThis->pStackTop; pItem; pItem = pItem->Next)
  8622.          {
  8623.             WinInsertLboxItem(WinWindowFromID(hwndDlg, DLG_ITEMLIST),
  8624.                               LIT_END, pItem->Entry);
  8625.          } /* Endfor */
  8626.          if (bSem) _Unlock(pwin->somSelf);
  8627.  
  8628.          //
  8629.          // Return TRUE to tell PM that we changed focus
  8630.          //
  8631.          mresultWpRtnCd = (MRESULT) TRUE;
  8632.          break;
  8633.       }  /* End of case WM_INITDLG */
  8634.  
  8635.       case WM_COMMAND:
  8636.       {
  8637.          switch(SHORT1FROMMP(mp1))
  8638.          {
  8639.             case DLG_PUSH:    /* Push pushbutton  */
  8640.             {
  8641.                szNewItem[0] = '\0';
  8642.                cbNewItem = WinQueryDlgItemText(hwndDlg,
  8643.                                                DLG_NEWITEM,
  8644.                                                sizeof(szNewItem),
  8645.                                                szNewItem);
  8646.  
  8647.                if (_Push(pwin->somSelf, szNewItem, cbNewItem+1))
  8648.                {
  8649.                   WinInsertLboxItem(WinWindowFromID(hwndDlg, DLG_ITEMLIST),
  8650.                                     0, szNewItem);
  8651.                   _wpSaveDeferred(pwin->somSelf);  // Save state to INI file
  8652.                } /* Endif */
  8653.                break;
  8654.             }
  8655.  
  8656.             case DLG_POP:   /* Pop pushbutton */
  8657.             {
  8658.                szNewItem[0] = '\0';
  8659.                cbNewItem = sizeof(szNewItem);
  8660.  
  8661.                if (_Pop(pwin->somSelf, szNewItem, &cbNewItem))
  8662.                {
  8663.                   cbNewItem = cbNewItem ? cbNewItem : 1;
  8664.                   WinSetDlgItemText(hwndDlg, DLG_NEWITEM, szNewItem);
  8665.                   WinDeleteLboxItem(WinWindowFromID
  8666.                                     (hwndDlg, DLG_ITEMLIST), 0);
  8667.                   _wpSaveDeferred(pwin->somSelf);  // Save state to INI file
  8668.                } /* Endif */
  8669.                break;
  8670.             }
  8671.  
  8672.             case DLG_HELP:    /* Help push button  */
  8673.             {
  8674.                _wpDisplayHelp(pwin->somSelf, ID_HELP_STACK, vpszHelpLibrary);
  8675.                break;
  8676.             }
  8677.  
  8678.             default:
  8679.                break;
  8680.          }
  8681.          break;
  8682.       }  /* End of case WM_COMMAND */
  8683.  
  8684.       case WM_DESTROY:
  8685.       {
  8686.          _wpFreeMem(pwin->somSelf, (PBYTE)pwin);
  8687.          mresultWpRtnCd = WinDefDlgProc(hwndDlg, msg, mp1, mp2);
  8688.          break;
  8689.       }  /* End of case WM_DESTROY */
  8690.  
  8691.       default:
  8692.       {
  8693.          mresultWpRtnCd = WinDefDlgProc(hwndDlg, msg, mp1, mp2);
  8694.          break;
  8695.       } // End of default:
  8696.    }
  8697.    return mresultWpRtnCd;
  8698. \}
  8699. #pragma info(nouse)
  8700.  
  8701.  
  8702. ΓòÉΓòÉΓòÉ 10.3.3.3. Resource Header File for Stack ΓòÉΓòÉΓòÉ
  8703.  
  8704. The following sample illustrates the resource header file (RCH): 
  8705.  
  8706. #define ID_OBJECTICON               255
  8707. #define ID_HELP_STACK               256
  8708.  
  8709. #define DLG_STYLE                   100
  8710. #define DLG_AWAKECOUNT              101
  8711. #define DLG_PERSISTENTCOUNT         102
  8712. #define DLG_NEWITEM                 103
  8713. #define DLG_ITEMLIST                104
  8714. #define DLG_PUSH                    105
  8715. #define DLG_POP                     106
  8716. #define DLG_HELP                    107
  8717.  
  8718. The following sample illustrates the resource definition file (RC): 
  8719.  
  8720. #include <os2.h>
  8721. #include "wpstack.rch"
  8722.  
  8723. ICON  ID_OBJECTICON    WPSTACK.ICO
  8724.  
  8725. DLGTEMPLATE DLG_STYLE LOADONCALL MOVEABLE DISCARDABLE
  8726. BEGIN
  8727.     DIALOG  "", DLG_STYLE, 0, 0, 224, 200, NOT FS_DLGBORDER
  8728.     BEGIN
  8729.         /*
  8730.          * Create output fields for stack object count statistics.
  8731.          * Will display them on every object.
  8732.          */
  8733.         LTEXT           "Awake Stack Count:"  -1,  10, 140,  85,  8
  8734.         LTEXT           ""        DLG_AWAKECOUNT, 100, 140,  25,  8
  8735.         LTEXT           "Total Stack Count:"  -1,  10, 130,  85,  8
  8736.         LTEXT           ""   DLG_PERSISTENTCOUNT, 100, 130,  25,  8
  8737.  
  8738.         /*
  8739.          * Create an entry field for specifying text to push
  8740.          * and a list box for the current stack contents
  8741.          */
  8742.         LTEXT           "New item to push:"  -1,  10, 120,  76,  8
  8743.         ENTRYFIELD      "",         DLG_NEWITEM,  10, 105, 180,  8,
  8744.                         ES_MARGIN
  8745.  
  8746.         LTEXT           "Stack contents:",   -1,  10,  90,  76,  8
  8747.         LISTBOX                    DLG_ITEMLIST,  10,  30, 180, 54,
  8748.                         LS_HORZSCROLL
  8749.  
  8750.         /*
  8751.          * Align the push button along the bottom
  8752.          */
  8753.         PUSHBUTTON      "P~ush",   DLG_PUSH,        7, 7, 38, 14
  8754.         PUSHBUTTON      "P~op",    DLG_POP,        57, 7, 38, 14
  8755.         PUSHBUTTON      "~Help",   DLG_HELP,      107, 7, 38, 14
  8756.     END
  8757. END
  8758.  
  8759.  
  8760. ΓòÉΓòÉΓòÉ 10.3.3.4. Help Source File for Stack ΓòÉΓòÉΓòÉ
  8761.  
  8762. The following sample illustrates the help source file (IPF): 
  8763.  
  8764. :userdoc.
  8765. .*--------------------------------------------------------------
  8766. .*  Main window extended help panel
  8767. .*--------------------------------------------------------------
  8768. .*
  8769. :h1 res=256 name=PANEL_MAIN.Workplace Shell Stack Object
  8770. :i1 id=abtStl.Workplace Shell Stack Object
  8771. :p.
  8772. The Workplace Shell Stack object is a sample Workplace Shell SOM
  8773. application that demonstrates the use of Workplace
  8774. Shell setup and cleanup methods.
  8775. The application provides a new object class, Stack, whose
  8776. instances implement standard programming push down stacks.
  8777. WPAbstract is the parent class of the Stack class providing persistence
  8778. of the stack entries, via the OS2.INI file.
  8779. The Stack class also maintains the number of permanent
  8780. object instances and currently awaken objects
  8781. (instantiated in memory).
  8782. :p.
  8783. A Settings notebook page has been added to each object allowing the
  8784. user to view a stacks contents, push new items onto the stack, and
  8785. pop existing items from the stack.
  8786. The awake and total object counts are also displayed on each
  8787. object's new notebook page.
  8788. :p.
  8789. :hp2.Pushing Items onto the Stack:ehp2.
  8790. :p.
  8791. To push a new item onto the top of the stack, enter a text string in
  8792. the input field labeled New item to push and click on the
  8793. Push push button.
  8794. The pushed item will appear at the top of the list.
  8795. :hp2.Popping Items from the Stack:ehp2.
  8796. :p.
  8797. To pop the top item from the stack just click on the
  8798. Pop push button.
  8799. The popped item will be removed from the list and appear in
  8800. the New item to push field.
  8801. .*
  8802. :euserdoc.
  8803.  
  8804.  
  8805. ΓòÉΓòÉΓòÉ 10.3.3.5. Make File for Stack ΓòÉΓòÉΓòÉ
  8806.  
  8807. The following sample illustrates the make file (MAK): 
  8808.  
  8809. .SUFFIXES: .c .obj .dll .idl .h .ih .rc .res
  8810.  
  8811. SC        = sc
  8812. SCFLAGS   = -maddstar -S128000 -C128000 -mnoint -v
  8813. SCLIST    = -s "ih;h;c;def"
  8814.  
  8815. INCLUDE   = .;d:\som\include;d:\wpshidl\h;$(INCLUDE)
  8816. SMINCLUDE = .;d:\som\include;d:\wpshidl\idl;$(SMINCLUDE)
  8817. LIB       = d:\som\lib;e:\ibmcpp\lib;e:\toolkt21\os2lib;$(LIB)
  8818. CFLAGS    = -Ge- -Ss+ -C+ -Kb -Q+ -Ms
  8819. LFLAGS    = /MAP /NOL /NOI /EXEPACK:2 /PACKCODE /PACKDATA /FAR /ALIGN:4
  8820.  
  8821. b=wpstack
  8822.  
  8823. all:         $(b).dll $(b).ih $(b).hlp
  8824.  
  8825. .c.obj:       icc $(CFLAGS) $*.c
  8826.  
  8827. $(b).dll:    $(b).ih $(b).obj $(b).def $(b).res
  8828.              link386 $(b) $(LFLAGS),$(b).dll,$(b).map,somtk,$(b)
  8829.              rc $(b).res $(b).dll
  8830.              mapsym $(b).map
  8831.  
  8832. $(b).obj:    $(b).c $(b).h
  8833.  
  8834. $(b).res:    $(b).rc $(b).ico
  8835.              rc -r $(b).rc
  8836.  
  8837. $(b).ih:     $(b).idl
  8838.              $(SC) $(SCFLAGS) $(SCLIST) $(@B).idl
  8839.  
  8840. $(b).hlp:    $(b).ipf
  8841.              ipfc $(b).ipf
  8842.  
  8843. clean:       -del $(b).ih  $(b).h   $(b).obj $(b).dll
  8844.              -del $(b).map $(b).sym $(b).res $(b).def
  8845.  
  8846.  
  8847. ΓòÉΓòÉΓòÉ 11. Object Memory: Memory Allocation Methods ΓòÉΓòÉΓòÉ
  8848.  
  8849. The Workplace Shell provides methods which you can override to design your own 
  8850. memory management system, or utilize to manage memory required for objects of 
  8851. your application. This chapter provides information on memory management 
  8852. methods for Workplace Shell applications. 
  8853.  
  8854.  
  8855. ΓòÉΓòÉΓòÉ 11.1. About Memory Allocation Methods ΓòÉΓòÉΓòÉ
  8856.  
  8857. The wpAllocMem method allocates memory for use by an object. A record of memory 
  8858. blocks allocated by calls to wpAllocMem is kept by adding USAGE_MEMORY type 
  8859. items to the object's USEITEM list. The USEITEM list is examined by 
  8860. wpUnInitData when the object is destroyed or made dormant to free previously 
  8861. allocated resources. 
  8862.  
  8863. Memory that is allocated to an object is de-allocated automatically when the 
  8864. object is no longer in use, assuming the memory has not already been cleaned up 
  8865. by the object. wpFreeMem is called to free allocated memory, even if the object 
  8866. is still in use. This method should be overriden to free memory that was 
  8867. allocated with an override method of wpAllocMem. 
  8868.  
  8869.  
  8870. ΓòÉΓòÉΓòÉ 11.2. Using Memory Allocation Methods ΓòÉΓòÉΓòÉ
  8871.  
  8872. As an example of the way these methods may be utilized, consider the definition 
  8873. of a WPAbstract subclass, Stack, with the Push() and Pop() methods. The 
  8874. following sample code fragments show the Push() and Pop() methods using the 
  8875. memory allocation methods. Push() allocates space for the new item, initializes 
  8876. its contents and places it on the stack while Pop() removes the top item from 
  8877. the stack, and returns its contents. The stack is implemented as a linked list 
  8878. of entries with the head of the list being the top of the stack. Assume the 
  8879. existence of methods, Lock() and Unlock(), which protect the stack linked list 
  8880. in a multithread environment. 
  8881.  
  8882. Note:  The sample code fragments in this section are part of a complete program 
  8883.        that provides a new object class, Stack, whose instances implement 
  8884.        standard programming push down stacks. The program is illustrated in 
  8885.        "Sample Code for Setup/Cleanup Methods". 
  8886.  
  8887.   #include "stack.ih"
  8888.  
  8889.   typedef struct _STACKENTRY
  8890.     {
  8891.       PSTACKENTRY pNext;
  8892.       BYTE        ReserveZeros[8];
  8893.       ULONG       cbEntry;
  8894.       BYTE        Entry[1];
  8895.     } STACKENTRY; *PSTACKENTRY;
  8896.  
  8897.   /************************  wpAllocMem Method  ************************/
  8898.  
  8899.   SOM_Scope BOOL SOMLINK stk_Push(
  8900.             Stack *somSelf,     // In - pointer to the object
  8901.             PVOID pNewItem,     // In - pointer to the item to push
  8902.             ULONG cbNewItem)    // In - size in bytes of item to push
  8903.  
  8904.   // The method returns the value:
  8905.   //     TRUE  = successful
  8906.   //     FALSE = error
  8907.   {
  8908.     BOOL        bSem;
  8909.     PSTACKENTRY pNewEntry;
  8910.     BOOL        bStatus = FALSE;
  8911.     StackData  *somThis = StackGetData(somSelf);
  8912.     StackMethodDebug("Stack","stk_Push");
  8913.  
  8914.     pNewEntry = (PSTACKENTRY)_wpAllocMem(somSelf,
  8915.                 cbNewItem +
  8916.                 sizeof(STACKENTRY) -
  8917.                 sizeof(BYTE),
  8918.                 NULL);
  8919.  
  8920.     if (pNewEntry)
  8921.     {
  8922.       /*
  8923.        * pStackTop is an instance variable, initialized to NULL,
  8924.        * which points to the top (first) entry
  8925.        * on the stack (list)
  8926.        */
  8927.       memset(pNewEntry, 0, sizeof(STACKENTRY));
  8928.       bSem = _Lock(somSelf);  // Semaphore that protects the stack chain
  8929.       pNewEntry->Next = _pStackTop;
  8930.       _pStackTop = pNewEntry;
  8931.  
  8932.       if (pNewItem && cbNewItem)
  8933.       {
  8934.         pNewEntry->cbEntry = cbNewItem;
  8935.         memcpy(pNewEntry->Entry, pNewItem, cbNewItem);
  8936.       } /* Endif */
  8937.  
  8938.       if (bSem) _Unlock(somSelf);
  8939.       bStatus = TRUE;
  8940.     } /* Endif */
  8941.     return(bStatus);
  8942.   } /* End stk_Push */
  8943.  
  8944.  
  8945.   /************************  wpFreeMem Method  *************************/
  8946.  
  8947.   SOM_Scope BOOL SOMLINK stk_Pop(
  8948.             Stack *somSelf,   // In    - pointer to the object
  8949.             PVOID  pBuffer,   // In    - pointer to buffer for popped item,
  8950.                               //         NULL means return size of buffer
  8951.             PULONG pcbBuffer) // InOut - size in bytes of pop buffer,
  8952.                               //         size actually returned
  8953.  
  8954.   // The method returns the value:
  8955.   //     TRUE  = successful
  8956.   //     FALSE = error
  8957.   {
  8958.     BOOL        bSem;
  8959.     PSTACKENTRY pNextEntry;
  8960.     BOOL        bStatus = FALSE;
  8961.     StackData  *somThis = StackGetData(somSelf);
  8962.     StackMethodDebug("Stack","stk_Pop");
  8963.  
  8964.     /*
  8965.      * pStackTop is an instance variable, initialized to NULL,
  8966.      * which points to the top (first) entry
  8967.      * on the stack (list).
  8968.      */
  8969.     bSem = _Lock(somSelf);  // Semaphore that protects the stack chain
  8970.  
  8971.     if (_pStackTop)
  8972.     {
  8973.       if (pBuffer)
  8974.       {
  8975.         if (*pcbBuffer >= _pStackTop->cbEntry)
  8976.         {
  8977.           memcpy(pBuffer, _pStackTop->Entry, _pStackTop->cbEntry);
  8978.           *pcbBuffer = _pStackTop->cbEntry;
  8979.  
  8980.           pNextEntry = _pStackTop->Next;
  8981.           bStatus    = _wpFreeMem(somSelf, (PBYTE)_pStackTop);
  8982.           if (bStatus)
  8983.           {
  8984.             _pStackTop = pNextEntry;
  8985.           } /* Endif */
  8986.         } /* Endif */
  8987.  
  8988.       } /* Endthen */
  8989.       else
  8990.       {
  8991.         *pcbBuffer = _pStackTop->cbEntry;
  8992.         bStatus    = TRUE;
  8993.       } /* Endif */
  8994.     } /* Endif */
  8995.  
  8996.     if (bSem) _Unlock(somSelf);
  8997.     return(bStatus);
  8998.   } // End stk_Pop
  8999.  
  9000.  
  9001. ΓòÉΓòÉΓòÉ 12. Object Mobility: Direct Manipulation Methods ΓòÉΓòÉΓòÉ
  9002.  
  9003. Direct manipulation is interaction with objects by way of a pointing device. 
  9004. For example, using direct manipulation, a user can move an object from one 
  9005. container to another by dragging an object icon from a source container and 
  9006. dropping it on a target container. Direct manipulation methods allow you to 
  9007. specify how objects that are directly effected by such a move communicate with 
  9008. each other. This chapter outlines the protocols of direct manipulation with 
  9009. respect to their interactions with the Workplace Shell. The following material 
  9010. is presented as a supplement to information on direct manipulation in the 
  9011. Presentation Manager Programming Guide - Advanced Topics. 
  9012.  
  9013.  
  9014. ΓòÉΓòÉΓòÉ 12.1. About Direct Manipulation Methods ΓòÉΓòÉΓòÉ
  9015.  
  9016. Direct manipulation enables the user to visually drag an object (the source 
  9017. object) and drop it on another object (the target object) causing an 
  9018. interaction, or data exchange, between the objects. The Workplace Shell tracks 
  9019. an object being dragged, notifying target objects and windows as the source 
  9020. object is being dragged over them and when it is dropped on them. The Workplace 
  9021. Shell notifies a target object by calling the object's direct manipulation 
  9022. methods that process the source object being dragged and dropped. Direct 
  9023. manipulation methods initialize the structures that convey information about 
  9024. objects being moved to the target and describe images to be displayed during 
  9025. the Drag operation. 
  9026.  
  9027.  
  9028. ΓòÉΓòÉΓòÉ 12.1.1. Direct Manipulation on Workplace Shell Objects ΓòÉΓòÉΓòÉ
  9029.  
  9030. Common objects are provided by the Workplace Shell for use in applications. 
  9031. When an icon is dragged over a Workplace Shell object, the target object sends 
  9032. a message to the source container to enable a direct manipulation exchange. The 
  9033. message explains what the target object does. Completion of a drop requires 
  9034. that the source and target objects share a common rendering mechanism. If the 
  9035. source object is not appropriate for a drop on the target and the drop is 
  9036. prohibited, a "do-not" symbol is shown. Workplace Shell handles standard 
  9037. Presentation Manager rendering mechanisms, as well as its own mechanisms, to 
  9038. allow easy integration of Presentation Manager applications. 
  9039.  
  9040. Workplace Shell simplifies implementation of a direct manipulation operation, 
  9041. handling the filling of data structures, the drag sequence, and notification of 
  9042. the target when a successful drop occurs. The standard direct manipulation 
  9043. capabilities of the Workplace Shell include Print, Delete and File Move/Copy. 
  9044.  
  9045.  
  9046. ΓòÉΓòÉΓòÉ 12.1.2. Direct Manipulation on PM Applications ΓòÉΓòÉΓòÉ
  9047.  
  9048. For PM applications, the Workplace Shell sends DM_ messages to PM windows using 
  9049. the standard or enhanced direct manipulation protocols. The Workplace Shell 
  9050. will drag source objects rendered as OBJECT or as OS2FILE and will accept 
  9051. source objects rendered in the same way. The Workplace Shell also will send a 
  9052. DM_PRINTOBJECT message to items dropped on the printer object. 
  9053.  
  9054. Users can drag source objects over windows that an object creates. When this 
  9055. occurs, the Workplace Shell sends DM_ messages to these windows. Therefore, 
  9056. window procedures associated with the windows that the object creates must be 
  9057. able to process DM_ messages. 
  9058.  
  9059. Target objects are not necessarily able to process every type of source object 
  9060. that is dropped on them. They are, however, capable of processing more than one 
  9061. type of dropped source object. Printer objects, for example, cannot print 
  9062. binary files, but they can print both text and graphics files. Because of 
  9063. differing capabilities, each target object should determine if it can process 
  9064. the source object being dropped on it. The following table shows the direct 
  9065. manipulation messages that are sent to target objects and the methods that are 
  9066. invoked by the Workplace Shell: 
  9067.  
  9068. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  9069. ΓöéDescription    ΓöéMethod Name      ΓöéInvoked OnΓöéMessage Name      Γöé
  9070. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9071. ΓöéFormat drag    ΓöéwpFormatDragItem ΓöéSource    ΓöéNone              Γöé
  9072. Γöéinformation    Γöé                 Γöé          Γöé                  Γöé
  9073. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9074. ΓöéRequest        ΓöéwpRender         ΓöéSource    ΓöéDM_RENDER         Γöé
  9075. Γöérendering      Γöé                 Γöé          Γöé                  Γöé
  9076. Γöéformat         Γöé                 Γöé          Γöé                  Γöé
  9077. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9078. ΓöéRendering      ΓöéwpRenderComplete ΓöéTarget    ΓöéDM_RENDERCOMPLETE Γöé
  9079. Γöérequest        Γöé                 Γöé          Γöé                  Γöé
  9080. Γöécompleted      Γöé                 Γöé          Γöé                  Γöé
  9081. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9082. ΓöéObjects being  ΓöéwpDragOver       ΓöéTarget    ΓöéDM_DRAGOVER       Γöé
  9083. Γöédragged over   Γöé                 Γöé          Γöé                  Γöé
  9084. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9085. ΓöéObject has beenΓöéwpDrop           ΓöéSource    ΓöéDM_DROP           Γöé
  9086. Γöédropped        Γöé                 Γöé          Γöé                  Γöé
  9087. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9088. ΓöéDrag/Drop is   ΓöéwpEndConversationΓöéTarget    ΓöéDM_ENDCONVERSATIONΓöé
  9089. Γöécomplete       Γöé                 Γöé          Γöé                  Γöé
  9090. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  9091.  
  9092. The "Source" and "Target" windows in the following diagram represent windows 
  9093. that have been subclassed, via CnrOwnerSubclassProc, by the Workplace Shell: 
  9094.  
  9095.  
  9096.                       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  9097.                       Γöé       Source                           Target        Γöé
  9098.                       ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  9099.                                 Γöé                                Γöé
  9100.         User begins drag        Γöé                                Γöé
  9101.          (WM_BEGINDRAG ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ>Γöé                                Γöé
  9102.                or               Γöé                                Γöé
  9103.            WM_PICKUP)           Γöé                                Γöé
  9104.                                 Γöé                                Γöé
  9105.                                 Γöé                                Γöé
  9106.                   wpFormatDragItem(sourceobject)                 Γöé
  9107.                                 Γöé                                Γöé
  9108.                                 Γöé          DM_DRAGOVER           Γöé
  9109.                               .>ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ>Γöé
  9110.                               . Γöé                                Γöé
  9111.                               . Γöé                    wpDragOver(targetobject)
  9112.                               . Γöé                                Γöé
  9113.                               . Γöé         DDR_  response         Γöé
  9114.                               ..Γöé<ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöé
  9115.                                 Γöé                                Γöé
  9116.         User ends drag          Γöé                                Γöé
  9117.          (WM_ENDDRAG)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ>Γöé                                Γöé
  9118.                                 Γöé            DM_DROP             Γöé
  9119.                                 ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ>Γöé
  9120.                                 Γöé                                Γöé
  9121.                                 Γöé                      wpDrop(targetobject)
  9122.                                 Γöé                                Γöé
  9123.                              ... If source rendering is indicated ...
  9124.                                 Γöé                                Γöé
  9125.                                 Γöé                                Γöé
  9126.                                 Γöé        DM_RENDERPREPARE        Γöé
  9127.                                 Γöé         (If necessary)         Γöé
  9128.                                 Γöé<ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöé<.
  9129.                                 Γöé                                Γöé .
  9130.                                 Γöé           DM_RENDER            Γöé .
  9131.                                 Γöé         (If supported)         Γöé .
  9132.                                 Γöé<ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöé .
  9133.                                 Γöé                                Γöé .
  9134.                       wpRender(sourceobject)                     Γöé .
  9135.                                 Γöé                                Γöé .
  9136.                                 Γöé        DM_RENDERCOMPLETE       Γöé .
  9137.                                 ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ>Γöé .
  9138.                                 Γöé                                Γöé..
  9139.                                 Γöé                                Γöé
  9140.                                 Γöé                 wpRenderComplete(targetobject)
  9141.                                 Γöé                                Γöé
  9142.                                 Γöé                                Γöé
  9143.                                 Γöé                                Γöé
  9144.                                 Γöé                                Γöé
  9145.                                 Γöé        DM_ENDCONVERSATION      Γöé
  9146.                                 Γöé<ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöé
  9147.                                 Γöé                                Γöé
  9148.                   wpEndConversation(sourceobject)
  9149.  
  9150.  
  9151. ΓòÉΓòÉΓòÉ 12.2. Using Direct Manipulation Methods ΓòÉΓòÉΓòÉ
  9152.  
  9153. This section shows the sequence of method flows for a typical direct 
  9154. manipulation operation. 
  9155.  
  9156.  
  9157. ΓòÉΓòÉΓòÉ 12.2.1. Starting a Drag Operation ΓòÉΓòÉΓòÉ
  9158.  
  9159. Folders are containers; therefore, they receive notification from the container 
  9160. controls when an object is added to a container. The Workplace Shell subclasses 
  9161. the owner of the container control. The Workplace Shell initiates the Drag 
  9162. operation, calls wpFormatDragItem to fill out the data structures, and calls 
  9163. DrgDrag or DrgLazyDrag to perform the actual dragging. A Workplace Shell object 
  9164. need not invoke DrgDrag or DrgLazyDrag, since this is done automatically by the 
  9165. Workplace Shell when the object completes the processing of wpFormatDragItem. 
  9166.  
  9167. When the user begins to drag an object, the source object is notified by the 
  9168. system, which invokes the object's wpFormatDragItem. This method is used to 
  9169. build a DRAGITEM structure, which is passed to a potential target object. The 
  9170. DRAGITEM structure contains the source object's rendering information, which is 
  9171. used to determine whether a Drop operation is valid at that point. Default 
  9172. information for the DRAGITEM structure is inserted by the default processing 
  9173. provided by the parent class, but an object class may override the method and 
  9174. include its own class-specific processing. The DRAGITEM structure is nested 
  9175. within a DRAGINFO structure, which is passed to any object over which the 
  9176. current item is being dragged. In a situation where more than one object is 
  9177. being dragged, a separate DRAGITEM is produced for each object and the set of 
  9178. structures is combined into a single DRAGINFO structure. The DRAGINFO 
  9179. structure, as shown in the following code fragments contains information about 
  9180. the Drag operation: 
  9181.  
  9182. typedef struct _DRAGINFO
  9183. {
  9184.   ULONG   cbDraginfo;             /* Size of DRAGINFO               */
  9185.   USHORT  cbDragitem;             /* Size of DRAGITEM               */
  9186.   USHORT  usOperation;            /* Current Drag operation         */
  9187.   HWND    hwndSource;             /* Window handle of source        */
  9188.   SHORT   xDrop;                  /* X coordinate of drop position  */
  9189.   SHORT   yDrop;                  /* Y coordinate of drop position  */
  9190.   USHORT  cditem;                 /* Count of DRAGITEM              */
  9191.   USHORT  usReserved;             /* Reserved for future use        */
  9192. } DRAGINFO;
  9193.  
  9194. The DRAGITEM data structure, as shown in the following code fragments is used 
  9195. to describe the items being dragged: 
  9196.  
  9197. typedef struct _DRAGITEM
  9198. {
  9199.   HWND    hwndItem;               /* Conversation partner          */
  9200.   ULONG   ulItemID;               /* Identifies item being dragged */
  9201.   HSTR    hstrType;               /* Type of item                  */
  9202.   HSTR    hstrRMF;                /* Rendering mechanism and format*/
  9203.   HSTR    hstrContainerName;      /* Name of source container      */
  9204.   HSTR    hstrSourceName;         /* Name of item at source        */
  9205.   HSTR    hstrTargetName;         /* Suggested name of item at dest*/
  9206.   SHORT   cxOffset;               /* X offset of the origin of the */
  9207.                                   /* image from the mouse hotspot  */
  9208.   SHORT   cyOffset;               /* Y offset of the origin of the */
  9209.                                   /* image from the mouse hotspot  */
  9210.   USHORT  fsControl;              /* Source item control flags     */
  9211.   USHORT  fsSupportedOps;         /* Ops supported by source       */
  9212. } DRAGITEM;
  9213.  
  9214. The Workplace Shell itself performs the intialization of the DRAGINFO 
  9215. structure. If class-specific processing is required, the object may perform its 
  9216. own initialization during processing of wpFormatDragItem. A Workplace Shell 
  9217. object does not need to allocate the DRAGITEM structure, since it is allocated 
  9218. by the Workplace Shell, and a pointer is passed to wpFormatDragItem. The 
  9219. following sample code shows an example of how to use wpFormatDragItem: 
  9220.  
  9221. /*
  9222.  *  Specify a unique RMF that will only be understood
  9223.  *  by my instances of class MYFOLDER.
  9224.  */
  9225.  
  9226. SOM_Scope BOOL SOMLINK myf_wpFormatDragItem(MYFILE *somSelf,
  9227.                  PDRAGITEM pdrgItem)
  9228.  
  9229. {
  9230.   /* MYFILEData *somThis = MYFILEGetData(somSelf); */
  9231.   MYFILEMethodDebug("MYFILE","myf_wpFormatDragItem");
  9232.  
  9233.   parent_wpFormatDragItem(somSelf,pdrgItem);
  9234.  
  9235.   /* We do NOT want to really let the workplace shell render
  9236.    * our object, so change the rendering mechanism and format
  9237.    * to be uniquely ours.
  9238.    */
  9239.  
  9240.   DrgDeleteStrHandle(pdrgItem->hstrRMF);
  9241.   pdrgItem->hstrRMF = DrgAddStrHandle("<DRM_OUROWNSPECIAL,DRF_OBJECT>");
  9242.   return(TRUE);
  9243. }
  9244.  
  9245.  
  9246. ΓòÉΓòÉΓòÉ 12.2.2. Determining whether Data Can Be Exchanged ΓòÉΓòÉΓòÉ
  9247.  
  9248. During the drag portion of a Drag and Drop operation, the target must determine 
  9249. if it can exchange or receive data from the source for each object involved in 
  9250. the operation. The target determines which rendering mechanism and format to 
  9251. use. There are four combinations of rendering mechanisms and formats supported 
  9252. by the Workplace Shell: 
  9253.  
  9254.    o  <DRM_OBJECT, DRF_OBJECT> 
  9255.  
  9256.    o  <DRM_OS2FILE, DRF_UNKNOWN> 
  9257.  
  9258.    o  <DRM_DISCARD, DRF_UNKNOWN> 
  9259.  
  9260.    o  (DRM_OS2FILE, DRM_PRINT) X (DRF_TEXT) 
  9261.  
  9262.  The DRAGITEM structure contains the source object's rendering information, 
  9263.  which is used to determine whether a Drop operation is valid at that point. 
  9264.  The pDragItemhstrRMF field in the DRAGITEM data structure is used to hold a 
  9265.  handle to a string containing the rendering mechanism and format. 
  9266.  
  9267.  
  9268. ΓòÉΓòÉΓòÉ 12.2.2.1. DRM_OBJECT ΓòÉΓòÉΓòÉ
  9269.  
  9270. The Workplace Shell interface uses the rendering mechanism of <DRM_OBJECT, 
  9271. DRF_OBJECT> to communicate information about the Workplace Shell objects 
  9272. involved in a direct manipulation. 
  9273.  
  9274. For the <DRM_OBJECT, DRF_OBJECT> rendering mechanism, pDragInfohwndSource is 
  9275. expected to be the window handle of the container holding objects which were 
  9276. inserted with wpCnrInsertObject. 
  9277.  
  9278. When you are using the DRM_OBJECT rendering mechanism, pDragItemulItemID 
  9279. indicates the object being dragged. For each item being dragged, 
  9280. pDragItemulItemID is the PMINIRECORDCORE or PRECORDCORE pointer associated 
  9281. with the object. The object can be retrieved using OBJECT_FROM_PREC on 
  9282. pDragItemulItemID. As soon as the target object has completed processing, a 
  9283. DM_ENDCONVERSATION message is sent to the window handle in pDragItemhwndItem. 
  9284.  
  9285. Note:  There is no way to force source rendering for DRM_OBJECT. 
  9286.  
  9287.  
  9288. ΓòÉΓòÉΓòÉ 12.2.2.2. DRM_OS2FILE ΓòÉΓòÉΓòÉ
  9289.  
  9290. This rendering mechanism can be used by various containers, including file 
  9291. folders and trash cans. These containers allow objects to be dragged and 
  9292. dropped on white space in the container to accomplish a Move or Copy operation. 
  9293. They also can allow objects in the same or another container to be dragged and 
  9294. dropped on objects within the container to accomplish an operation. 
  9295.  
  9296. When you are using DRM_OS2FILE, pDragItemulItemID is not used. 
  9297.  
  9298. If the Workplace Shell is to do target rendering, 
  9299. *(pDragItemhstrContainerName) is specified. It is the name of the directory 
  9300. that contains the file or the directory being dragged. Leave this field NULL if 
  9301. you want the Workplace Shell to send DM_RENDER messages, that is, to do source 
  9302. rendering for this object. 
  9303.  
  9304. *(pDragItemhstrSourceName) is the file or directory name being dragged and 
  9305. must be specified. 
  9306.  
  9307. *(pDragItemhstrTarget) is the suggested name of the file or directory at the 
  9308. target. 
  9309.  
  9310. Note:  If pDragItemhstrContainerName and pDragItemhstrSourceName are both 
  9311.        specified, the Workplace Shell converts the item being dragged to an 
  9312.        object and treats it like a DRM_OBJECT. 
  9313.  
  9314.  
  9315. ΓòÉΓòÉΓòÉ 12.2.2.2.1. Messages ΓòÉΓòÉΓòÉ
  9316.  
  9317.  
  9318. The following messages are used by the DRM_OS2FILE: 
  9319.  
  9320.    o  DM_RENDER 
  9321.  
  9322.       This message is sent by a target to a source, via wpRender, to request a 
  9323.       rendering for an object. When this message is received, the source 
  9324.       determines if it understands the rendering mechanism and format selected 
  9325.       by the target for the object. It also confirms that it allows the 
  9326.       operation selected by the user for that object. The source must respond 
  9327.       to this message before proceeding with the rendering operation. 
  9328.  
  9329.    o  DM_RENDERCOMPLETE 
  9330.  
  9331.       This message is posted by a source to a target, via wpRenderComplete, to 
  9332.       notify the target that the rendering operation has been completed by the 
  9333.       source, either successfully or unsuccessfully. The source can elect to 
  9334.       let the target retry a successful or an unsuccessful operation. In this 
  9335.       case, it should return to its state at the time of the drop for that 
  9336.       object and indicate, in the message, that a retry is allowed. Support for 
  9337.       this message by a source is optional. If this message is not supported, 
  9338.       then: 
  9339.  
  9340.         -  The source must convey all necessary information to the target order 
  9341.            to allow it to handle the rendering operation. 
  9342.  
  9343.         -  It must always indicate that native rendering is allowed when 
  9344.            replying to a DM_RENDER message. 
  9345.  
  9346.    o  DM_ENDCONVERSATION 
  9347.  
  9348.       This message is sent by a target to a source to notify the source that 
  9349.       the rendering operation is complete and that the conversation is 
  9350.       terminated. When this message is received, the entire Drop operation for 
  9351.       the object is complete. The source can now release any resources it had 
  9352.       allocated to the drop and rendering operations. When the reply is 
  9353.       received, the target can release the resources it had allocated to the 
  9354.       operation. 
  9355.  
  9356.  
  9357. ΓòÉΓòÉΓòÉ 12.2.3. Dragging over Another Object ΓòÉΓòÉΓòÉ
  9358.  
  9359. When an object is dragged over another object, the system invokes wpDragOver in 
  9360. the object being dragged over. This method receives a DRAGINFO structure, which 
  9361. contains pointers to DRAGITEM structures and other information. The potential 
  9362. target object examines this information to determine the validity of a Drop 
  9363. operation, and if the drop is not valid, changes the pointing device to 
  9364. indicate a "do not drop" situation. The following sample code shows an example 
  9365. of how to use wpDragOver: 
  9366.  
  9367. /*
  9368.  *  Rejects objects that are not file system objects from being dropped
  9369.  *  on the Browse_O_matic.
  9370.  */
  9371.  
  9372. SOM_Scope MRESULT SOMLINK Browse_O_Maticwps_wpDragOver(
  9373.                           Browse_O_Matic *somSelf,
  9374.                           HWND hwndCnr,
  9375.                           PDRAGINFO pdrgInfo)
  9376. {
  9377.   MRESULT mResult;
  9378.   ULONG   ulCount;
  9379.   ULONG   ulNumberOfObjects;
  9380.  
  9381.   /* Browse_O_MaticData *somThis = Browse_O_MaticGetData(somSelf); */
  9382.   Browse_O_MaticMethodDebug("Browse_O_Matic",
  9383.                             "Browse_O_Maticwps_wpDragOver");
  9384.  
  9385.   /* Don't call the parent. Initialize mResult to allow */
  9386.   /* the drag over to proceed                           */
  9387.   mResult = MRFROM2SHORT(DOR_DROP, DO_MOVE);
  9388.  
  9389.   /* Determine the number of objects dragged */
  9390.   /* over the Browse-O-Matic                 */
  9391.   ulNumberOfObjects = DrgQueryDragitemCount( pdrgInfo);
  9392.  
  9393.   /* Check all the objects */
  9394.   for (ulCount=0; ulCount < ulNumberOfObjects &&
  9395.                             SHORT1FROMMR(mResult) !=
  9396.                                          DOR_NEVERDROP; ulCount++)
  9397.  
  9398.   {
  9399.     /* It must be a file system type object */
  9400.     if(DrgVerifyRMF(DrgQueryDragitemPtr(pdrgInfo, ulCount),
  9401.                    "DRM_OS2FILE",
  9402.                     NULL))
  9403.       mResult = MRFROM2SHORT(DOR_DROP, SHORT2FROMMR(mResult));
  9404.     else
  9405.       mResult = MRFROM2SHORT(DOR_NEVERDROP, SHORT2FROMMR(mResult));
  9406.   }
  9407.   return(mResult);
  9408. }
  9409.  
  9410.  
  9411. ΓòÉΓòÉΓòÉ 12.2.4. Ending a Drop Operation ΓòÉΓòÉΓòÉ
  9412.  
  9413. When a Drop operation occurs, the object being dropped upon is notified by the 
  9414. system, which invokes wpDrop. This method accepts the DRAGINFO structure and 
  9415. determines whether the information is sufficient to take action, or whether 
  9416. further conversation is necessary to determine rendering information. 
  9417.  
  9418.  
  9419. ΓòÉΓòÉΓòÉ 12.2.4.1. When Dropping on a Folder ΓòÉΓòÉΓòÉ
  9420.  
  9421. When dropping DRM_OBJECT or DRM_OS2FILE on a folder, with 
  9422. pDragItemhstrContainerName or pDragItemhstrSourceName defined, the Workplace 
  9423. Shell will perform the action, for example, Copy, Move, Shadow, and notify the 
  9424. source with a DM_ENDCONVERSATION message. 
  9425.  
  9426. When dropping DRM_OS2FILE on a folder, with pDragItemhstrContainerName set to 
  9427. NULL, the Workplace Shell will initiate source rendering by sending a 
  9428. DM_RENDERPREPARE message, if DC_PREPARE is specified in the pDragItemfsControl 
  9429. word in the DRAGITEM structure. It then sends a DM_RENDER message. Again, 
  9430. DM_ENDCONVERSATION is sent as previously described. 
  9431.  
  9432.  
  9433. ΓòÉΓòÉΓòÉ 12.2.4.2. When Dropping on a Printer ΓòÉΓòÉΓòÉ
  9434.  
  9435. Workplace Shell implements the standard PM Print rendering mechanism, 
  9436. DRM_PRINT. When dropping DRM_OBJECT or DRM_OS2FILE on a printer, with 
  9437. pDragItemhstrContainerName or pDragItemhstrSourceName defined, the Workplace 
  9438. Shell will perform the action, and notify the source with a DM_ENDCONVERSATION 
  9439. message. 
  9440.  
  9441. When dropping DRM_OS2FILE, with pDragItemhstrContainerNameset to NULL, or 
  9442. dropping DRM_PRINT on a printer, the printer sends a DM_PRINTOBJECT message. 
  9443.  
  9444.  
  9445. ΓòÉΓòÉΓòÉ 12.2.4.3. When Dropping on the Shredder ΓòÉΓòÉΓòÉ
  9446.  
  9447. The Workplace Shell shredder object supports a rendering mechanism called 
  9448. DRM_DISCARD, not a standard PM mechanism. When dropping DRM_OBJECT or 
  9449. DRM_OS2FILE on a shredder, with pDragItemhstrContainerName or 
  9450. pDragItemhstrSourceName defined, the Workplace Shell will perform the action, 
  9451. and notify the source with a DM_ENDCONVERSATION message. 
  9452.  
  9453. When dropping DRM_OS2FILE, with pDragItemhstrContainerName set to NULL, or 
  9454. dropping DRM_DISCARD on the shredder, the shredder sends a DM_DISCARDOBJECT 
  9455. message. 
  9456.  
  9457. The following sample code shows an example of how to use wpDrop: 
  9458.  
  9459. /*
  9460.  *  Rejects objects that are not file system objects from being dropped
  9461.  *  from being dropped on the Browse_O_matic.
  9462.  */
  9463.  
  9464. SOM_Scope MRESULT SOMLINK Browse_O_Maticwps_wpDrop(
  9465.                           Browse_O_Matic *somSelf,
  9466.                           HWND hwndCnr,
  9467.                           PDRAGINFO pdrgInfo,
  9468.                           PDRAGITEM pdrgItem)
  9469.  
  9470. {
  9471.   CHAR    pszBuffer[255];
  9472.   MRESULT mResult;
  9473.  
  9474.   /* Browse_O_MaticData *somThis = Browse_O_MaticGetData(somSelf); */
  9475.   Browse_O_MaticMethodDebug("Browse_O_Matic",
  9476.                             "Browse_O_Maticwps_wpDrop");
  9477.  
  9478.   mResult = MRFROM2SHORT(DOR_DROP, 0);
  9479.  
  9480.   /* Don't call the parent. Initialize mResult to allow */
  9481.   /* the drop to proceed.                               */
  9482.   if(DOR_NEVERDROP != SHORT1FROMMR(mResult) &&
  9483.                       DrgVerifyRMF(pdrgItem, "DRM_OS2FILE", NULL))
  9484.  
  9485.   {
  9486.     /* Get the path */
  9487.     DrgQueryStrName(pdrgItem->hstrContainerName,
  9488.                     sizeof(pszBuffer),
  9489.                     pszBuffer);
  9490.  
  9491.     /* Append the name of the object to the path */
  9492.     DrgQueryStrName(pdrgItem->hstrSourceName,
  9493.                     sizeof(pszBuffer) - strlen(pszBuffer),
  9494.                     &pszBuffer[strlen(pszBuffer)]);
  9495.     _wpViewObject(somSelf, NULLHANDLE, OPEN_DEFAULT, (ULONG)pszBuffer);
  9496.     mResult = MRFROM2SHORT(DOR_DROP, SHORT2FROMMR(mResult));
  9497.   }
  9498.   else
  9499.     mResult = MRFROMSHORT(DOR_NEVERDROP);
  9500.  
  9501.   return(mResult);
  9502. }
  9503.  
  9504.  
  9505. ΓòÉΓòÉΓòÉ 13. Object Persistence: Save/Restore Methods ΓòÉΓòÉΓòÉ
  9506.  
  9507. The WPObject class provides methods that support persistent objects, that is, 
  9508. objects for which the system saves information. These methods include save and 
  9509. corresponding restore methods. This chapter provides information for using 
  9510. these state methods in Workplace Shell applications. 
  9511.  
  9512.  
  9513. ΓòÉΓòÉΓòÉ 13.1. About Save/Restore Methods ΓòÉΓòÉΓòÉ
  9514.  
  9515. A Workplace Shell object can exist in two states: 
  9516.  
  9517.    o  Dormant: persistent form of object when it is stored away on disk. If the 
  9518.       object's class is a descendant of WPFileSystem, its data is stored in the 
  9519.       object's extended attributes. If it is a descendant of WPAbstract, its 
  9520.       data is stored in the .INI file. 
  9521.  
  9522.    o  Awakened: object is instantiated as a SOM object that can have methods 
  9523.       invoked upon it. 
  9524.  
  9525.  The wpSaveState method will save the value of certain instance variables to a 
  9526.  persistent storage location. The wpRestoreState method will restore these 
  9527.  values for a newly awakened object. The Workplace Shell uses these methods to 
  9528.  maintain important instance data for each object. If you write a subclass of a 
  9529.  Workplace Shell class that includes its own new instance data, you must 
  9530.  override these methods to ensure that the new instance data values are 
  9531.  saved/restored along with the rest of the object's data. 
  9532.  
  9533.  The following events trigger the Save/Restore methods: 
  9534.  
  9535.    o  Workplace Shell calls wpRestoreState when an object is awakened. 
  9536.  
  9537.    o  The wpSaveImmediate method calls wpSaveState to save its data to disk. 
  9538.  
  9539.    o  An application must save an object to disk when a critical instance 
  9540.       variable is changed. The wpSaveImmediate method performs the save on the 
  9541.       Workplace User-interface thread, and is therefore a synchronous 
  9542.       operation. The wpSaveDeferred method causes the save to take place on a 
  9543.       separate thread, asynchronously. Therefore, for performance reasons, 
  9544.       wpSaveDeferred should be used in preference to wpSaveImmediate. 
  9545.  
  9546.    o  Workplace Shell calls wpSaveDeferred to asynchronously save the object's 
  9547.       state when: 
  9548.  
  9549.         -  An object is closed 
  9550.         -  An object is made dormant 
  9551.         -  The system is shut down. 
  9552.  
  9553.  The following figure shows the life cycle of an object: 
  9554.  
  9555.  If you are implementing a subclass of a Workplace Shell class with its own 
  9556.  instance variables that are supposed to persist, override wpSaveState and 
  9557.  wpRestoreState. In the override for wpSaveState, call wpSaveData, wpSaveLong, 
  9558.  or wpSaveString, for each piece of data you want saved, depending on the type 
  9559.  of each piece of instance data associated with the object. Likewise, the 
  9560.  override for wpRestoreState should call wpRestoreData, wpRestoreLong, or 
  9561.  wpRestoreString, for each piece of data to be restored. 
  9562.  
  9563.  The wpSaveState and wpRestoreState methods use a key to identify each piece of 
  9564.  data for an object. This key is made up of the class name and a unique ULONG. 
  9565.  Together, this key should uniquely identify a given piece of data for the 
  9566.  object. For user-defined subclass instance data, assign a ULONG to each piece 
  9567.  of data. Supply that ULONG along with your class name to wpSaveData, 
  9568.  wpSaveLong, or wpSaveString, when saving that piece of data. Likewise, supply 
  9569.  that ULONG along with your class name to wpRestoreData, wpRestoreLong, or 
  9570.  wpRestoreString, when restoring that piece of data. 
  9571.  
  9572.  
  9573. ΓòÉΓòÉΓòÉ 13.2. Using Save/Restore Methods ΓòÉΓòÉΓòÉ
  9574.  
  9575. The following sample codes (IDL and C files) serves as an example of how to use 
  9576. the Save/Restore methods. In this example, class X, a subclass of WPDataFile, 
  9577. introduces two pieces of persistent instance data. 
  9578.  
  9579. include wpdataf.idl
  9580.  
  9581. interface X : WPDataFile
  9582. {
  9583.   .
  9584.   .
  9585.   .
  9586.  
  9587.   implementation
  9588.   {
  9589.  
  9590.     ULONG ulA;     //# Persistent instance data introduced by class X
  9591.     PSZ   pszB;
  9592.  
  9593.     wpSaveState: override;    //# To save your data
  9594.     wpRestoreState: override; //# To restore your data
  9595.     wpInitData: override;     //# To supply default values for your data
  9596.   };
  9597. };
  9598.  
  9599. The following sample code shows the source code for X: 
  9600.  
  9601. BOOL SOMLINK x_wpSaveState(X * somSelf)
  9602. {
  9603.   _wpSaveLong(somSelf, "X", 1, _ulA);
  9604.   _wpSaveString(somSelf, "X", 2, _pszB);   // Key is X and 1 for _ulA
  9605.   return parent_wpSaveState(somSelf);      // Key is X and 2 for _pszB
  9606. }
  9607.   .
  9608.   .
  9609.   .
  9610.  
  9611. BOOL SOMLINK x_wpRestoreState(X * somSelf, ULONG ulReserved)
  9612. {
  9613.   ULONG ulSize;
  9614.  
  9615.   // Key is X and 1 for _ulA
  9616.   _wpRestoreLong(somSelf, "X", 1, &_ulA);
  9617.  
  9618.   // Key is X and 2 for _pszB
  9619.   _wpRestoreString(somSelf, "X", 2, &_pszB, &ulSize);
  9620.   return parent_wpRestoreState(somSelf, ulReserved);
  9621. }
  9622.   .
  9623.   .
  9624.   .
  9625.  
  9626. BOOL SOMLINK x_wpInitData(X * somSelf)
  9627. {
  9628.   BOOL rc;
  9629.   rc    = parent_wpInitData(somSelf);
  9630.   _ulA  = 1001;
  9631.   _pszB = "hello";
  9632.   return rc;
  9633. }
  9634.  
  9635. Note:  Some of the save and restore methods are used in a complete program that 
  9636.        is illustrated in Sample Code for Setup/Cleanup Methods. 
  9637.  
  9638.  
  9639. ΓòÉΓòÉΓòÉ 14. Object Properties: Notebook Methods ΓòÉΓòÉΓòÉ
  9640.  
  9641. A notebook is a visual component used to display the setttings for an object 
  9642. and to enable the user to change them. This chapter describes the General and 
  9643. Window pages of the Settings notebook, and explains how to use the notebook 
  9644. methods in Workplace Shell applications. 
  9645.  
  9646.  
  9647. ΓòÉΓòÉΓòÉ 14.1. About Notebook Methods ΓòÉΓòÉΓòÉ
  9648.  
  9649. WPObject defines a General page in the Settings notebook for all classes of 
  9650. objects. Because all Workplace Shell objects have general properties associated 
  9651. with them, therefore, all Workplace Shell objects have a General page in their 
  9652. Settings notebook. The General page describes all the general object properties 
  9653. such as the object's title, icon, and whether or not the object is a template. 
  9654.  
  9655. The title or icon of an object can be changed using the General page. For 
  9656. WPAbstract objects, the title and icon change is saved in the OS2.INI file. For 
  9657. the WPFileSystem objects, the title change is saved in the .LONGNAME extended 
  9658. attributes, and the icon change is saved in the .ICON extended attributes. 
  9659.  
  9660. WPObject also defines a Window page in the Settings notebook for all classes of 
  9661. objects. Most of the Abstract objects have both General and Window pages in the 
  9662. Settings notebook. Some Abstract objects like mouse and keyboard do not have a 
  9663. Window page because they have no open views other than Settings. 
  9664.  
  9665. Settings notebook pages for Workplace Shell objects are inherited from the 
  9666. ancestors of the Workplace Shell class. This means that they include pages that 
  9667. have been added or removed by their ancestor classes, in addition to the 
  9668. General and Window pages inherited from the root, WPObject class. 
  9669.  
  9670. For example, suppose that MyObject is a persistent object derived from the 
  9671. WPAbstract class. Because WPAbstract is derived from the WPObject class, 
  9672. MyObject inherits the characteristics and behaviors of WPAbstract and WPObject. 
  9673. WPAbstract inherits its Settings notebook from WPObject. MyObject, therefore, 
  9674. inherits WPObject's Settings notebook. 
  9675.  
  9676. Now suppose that MyObject class defines two additional pages in its Settings 
  9677. notebook, MyPage_1 and MyPage_2. This means that the Settings notebook for 
  9678. MyObject class has four pages: 
  9679.  
  9680.    o  General 
  9681.    o  Window 
  9682.    o  MyPage_1 
  9683.    o  MyPage_2 
  9684.  
  9685.  Consider that YourObject class is derived from MyObject class. Therefore, by 
  9686.  inheritance, YourObject class defines the following pages: 
  9687.  
  9688.    o  General 
  9689.    o  Window 
  9690.    o  MyPage_1 
  9691.    o  MyPage_2 
  9692.  
  9693.  in its Settings notebook. YourObject class defines an additional page in its 
  9694.  Settings notebook, YourPage. The Settings notebook for YourObject class has 
  9695.  now five pages: 
  9696.  
  9697.  General        Inherited from the WPObject class. 
  9698.  
  9699.  Window         Inherited from the WPObject class. 
  9700.  
  9701.  MyPage_1       Inherited from MyObject class. 
  9702.  
  9703.  MyPage_2       Inherited from MyObject class. 
  9704.  
  9705.  YourPage       Defined by YourObject. 
  9706.  
  9707.  The tabs in the Settings notebook for MyObject and YourObject are shown in the 
  9708.  following figure: 
  9709.  
  9710.  
  9711.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ                 ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  9712.   Γöé   MyObject Settings   Γöé                 Γöé  YourObject Settings  Γöé
  9713.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ                 Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9714.   Γöé                       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ    Γöé                       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  9715.   Γöé                       Γöé  General   Γöé    Γöé                       Γöé   General  Γöé
  9716.   Γöé                       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ    Γöé                       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  9717.   Γöé                       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ    Γöé                       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  9718.   Γöé                       Γöé  Window    Γöé    Γöé                       Γöé   Window   Γöé
  9719.   Γöé                       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ    Γöé                       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  9720.   Γöé  This Page Is not     ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ    Γöé  This Page Is not     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  9721.   Γöé  Inherited from          MyPage_1  Γöé    Γöé  Inherited from       Γöé   MyPage_1 Γöé
  9722.   Γöé  MyObject's           ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ    Γöé  YourObject's         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  9723.   Γöé  Ancestors.           Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ    Γöé  Ancestors.           Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  9724.   Γöé                       Γöé  MyPage_2  Γöé    Γöé                       Γöé   MyPage_2 Γöé
  9725.   Γöé                       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ    Γöé                       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  9726.   Γöé                       Γöé                 Γöé                       ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  9727.   Γöé                       Γöé                 Γöé                           YourPage Γöé
  9728.   Γöé                       Γöé                 Γöé                       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  9729.   Γöé                       Γöé                 Γöé                       Γöé
  9730.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ                 ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  9731.  
  9732.  Every Settings notebook in the Workplace Shell should have Undo, Default, and 
  9733.  Help push buttons. Any changes to the Settings notebook takes effect 
  9734.  immediately, although sometimes the changes are delayed until the focus is 
  9735.  changed. 
  9736.  
  9737.  
  9738. ΓòÉΓòÉΓòÉ 14.2. Using Notebook Methods ΓòÉΓòÉΓòÉ
  9739.  
  9740. This section describes how the Settings notebook methods are used to add or to 
  9741. remove pages that a class has inherited from its ancestors' Settings notebook. 
  9742.  
  9743.  
  9744. ΓòÉΓòÉΓòÉ 14.2.1. Inserting Notebook Pages ΓòÉΓòÉΓòÉ
  9745.  
  9746. An object's Settings notebook is created by the Workplace Shell by calling the 
  9747. object's wpAddSettingsPages. Adding pages to the Settings notebook that a class 
  9748. has inherited from its ancestors is accomplished by overriding 
  9749. wpAddSettingsPages and by calling a new method that inserts the page. The new 
  9750. method calls wpInsertSettingsPage to insert the page into the object's 
  9751. notebook. The following sample code shows how to insert pages to an object's 
  9752. notebook: 
  9753.  
  9754. /**************************  New Method   ****************************/
  9755.  
  9756. SOM_Scope ULONG SOMLINK MyObject_wpAddAnotherPage(
  9757.                         MyObject *somSelf, HWND hwndNotebook)
  9758.  
  9759. {
  9760.   PAGEINFO pageinfo;
  9761.   .
  9762.   .
  9763.   /* Setup the page information data structure for my new page */
  9764.   .
  9765.   .
  9766.   /* Add the page to the Settings notebook */
  9767.   return _wpInsertSettingsPage(somSelf, hwndNotebook, &pageinfo);
  9768. }
  9769.  
  9770. /************************  Method Overrides  *************************/
  9771.  
  9772. SOM_Scope BOOL32 SOMLINK MyObject_wpAddSettingsPage (
  9773.                          MyObject *somSelf, HWND hwndNotebook)
  9774.  
  9775. {
  9776.   .
  9777.   .
  9778.  
  9779.   if (parent_wpAddSettingsPage (somSelf, hwndNotebook)
  9780.       && _wpAddAnotherPage (somSelf, hwndNotebook))
  9781.     return (TRUE);   /* Page added successfully */
  9782.   else
  9783.     return (FALSE);  /* Something failed */
  9784. }
  9785.  
  9786. New pages for an object's Settings notebook can be placed at the top or bottom 
  9787. of pages inherited from the object's ancestor classes. By calling 
  9788. parent_wpAddSettingsPages before calling the new wpAddAnotherPage, the new page 
  9789. is added to the top of the Settings notebook, above pages inherited from 
  9790. ancestor classes. If the sequence is reversed, the new page is added to the 
  9791. bottom of the Settings notebook, below pages inherited from ancestor classes. 
  9792.  
  9793. When a new page is added to the Settings notebook, any changes made to the 
  9794. object's instance data can be refreshed from the file system, via 
  9795. wpCnrRefreshDetails. This instance method causes all currently visible 
  9796. RECORDCORE structures to be refreshed with the current object details. 
  9797.  
  9798.  
  9799. ΓòÉΓòÉΓòÉ 14.2.2. Removing Notebook Pages ΓòÉΓòÉΓòÉ
  9800.  
  9801. A page can be removed from an object's Settings notebook by overriding the 
  9802. ancestors' method that inserts it. The Settings notebook for YourObject class 
  9803. inherits the General, Window, MyPage_1, and MyPage_2 pages defined by its 
  9804. ancestors, MyObject and WPObject. YourObject class might have requirements for 
  9805. MyPage_1 but not MyPage_2. To remove MyPage_2 from YourObject's Settings 
  9806. notebook, YourObject must override the method inherited from MyObject that adds 
  9807. MyPage_2 to the Settings notebook, and return SETTINGS_PAGE_REMOVED without 
  9808. calling the parent method. The following sample code shows how to remove a page 
  9809. from an object's notebook: 
  9810.  
  9811. /*********************  Method Overrides  ****************************/
  9812.  
  9813. SOM_Scope ULONG SOMLINK YourObject_wpAddAnotherPage(
  9814.                            YourObject *somSelf HWND hwndNotebook)
  9815. {
  9816.   .
  9817.   .
  9818.   .
  9819.  
  9820.   /* Remove the page from the Settings notebook */
  9821.   return (SETTINGS_PAGE_REMOVED);
  9822. }
  9823.  
  9824. The same technique can be used to replace or to remove the General page from an 
  9825. object's Settings notebook by overriding wpAddSettingsPages and 
  9826. wpAddObjectGeneralPage. The override to wpAddSettingsPages calls 
  9827. wpAddObjectGeneralPage. To remove the General page, the override to 
  9828. wpAddObjectGeneralPage returns SETTINGS_PAGE_REMOVED without calling the parent 
  9829. method. To replace the General page with another page, the override to 
  9830. wpAddObjectGeneralPage calls wpInsertSettingsPage without calling the parent 
  9831. method. 
  9832.  
  9833.  
  9834. ΓòÉΓòÉΓòÉ 15. Object Usage: Usage Methods ΓòÉΓòÉΓòÉ
  9835.  
  9836. Every Workplace Shell object in the system has an in-use list. Object usage 
  9837. methods allow an object to keep track of its resources and how it is being 
  9838. used. This chapter provides information for using in-use lists that are 
  9839. associated with objects. 
  9840.  
  9841.  
  9842. ΓòÉΓòÉΓòÉ 15.1. About Usage Methods ΓòÉΓòÉΓòÉ
  9843.  
  9844. The in-use list provides the object with information such as: 
  9845.  
  9846.    o  The number of container windows into which the object has been inserted 
  9847.       (USAGE_RECORD) 
  9848.  
  9849.    o  The number of open views (contents and settings) of the object that 
  9850.       already exist (USAGE_OPENVIEW) 
  9851.  
  9852.    o  How much memory the object has allocated (USAGE_MEMORY) 
  9853.  
  9854.    o  How many awakened shadows there are of the object (USAGE_LINK) 
  9855.  
  9856.    o  Which application opened the object (USAGE_OPENFILE). Note that this 
  9857.       information only applies to data file objects. 
  9858.  
  9859.  All objects that the user interacts with are actually just records that have 
  9860.  been inserted into a container control. A container is an object, such as a 
  9861.  folder, which also has an in-use list. Because of the close relationship 
  9862.  between an object's in-use list and container objects, this chapter includes a 
  9863.  description of methods that are relevant to container usage as well as object 
  9864.  usage. Object Usage methods, as shown in the following table, allow an object 
  9865.  to keep track of its resources and how it is being used: 
  9866.  
  9867.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  9868.   ΓöéMethod Name              ΓöéDescription                        Γöé
  9869.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9870.   ΓöéwpAddToObjUseList        ΓöéAdds an object to the list of      Γöé
  9871.   Γöé                         Γöéobjects in use by the object.      Γöé
  9872.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9873.   ΓöéwpCnrDeleteUseItem       ΓöéDeletes the object's USAGE_RECORD  Γöé
  9874.   Γöé                         Γöéuse-item for the specified         Γöé
  9875.   Γöé                         Γöécontainer.                         Γöé
  9876.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9877.   ΓöéwpDeleteFromObjUseList   ΓöéDeletes an object from the list of Γöé
  9878.   Γöé                         Γöéobjects in use by the object.      Γöé
  9879.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9880.   ΓöéwpFindUseItem            ΓöéRetrieves an object from the list  Γöé
  9881.   Γöé                         Γöéof objects in use by the object.   Γöé
  9882.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9883.   ΓöéwpFindViewItem           ΓöéRetrieves a USAGE_OPENVIEW item    Γöé
  9884.   Γöé                         Γöéfrom the list of items in use by   Γöé
  9885.   Γöé                         Γöéthe object.                        Γöé
  9886.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9887.   ΓöéwpIsLocked               ΓöéTells you whether the object is    Γöé
  9888.   Γöé                         Γöélocked or not.                     Γöé
  9889.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9890.   ΓöéwpLockObject             ΓöéIncreases the lock counter for the Γöé
  9891.   Γöé                         Γöéobject. Objects that are locked    Γöé
  9892.   Γöé                         Γöéwill not be made dormant.          Γöé
  9893.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9894.   ΓöéwpUnlockObject           ΓöéUnlocks the object so that it can  Γöé
  9895.   Γöé                         Γöébe made dormant.                   Γöé
  9896.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  9897.  
  9898.  The in-use list is a linked list of USEITEM data structures. It consists of an 
  9899.  item type and a pointer to the next USEITEM data structure, immediately 
  9900.  followed by an item type-specific data structure. The types of items that can 
  9901.  be added to an object's in-use list and the type-specific data structures that 
  9902.  follow each USEITEM data structure are shown in the following table: 
  9903.  
  9904.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  9905.   ΓöéItem           ΓöéStructure ΓöéDescription                        Γöé
  9906.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9907.   ΓöéUSAGE_LINK     ΓöéLINKITEM  ΓöéA shadow of the object has been    Γöé
  9908.   Γöé               Γöé          Γöéawakened.                          Γöé
  9909.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9910.   ΓöéUSAGE_MEMORY   ΓöéMEMORYITEMΓöéMemory has been allocated by       Γöé
  9911.   Γöé               Γöé          ΓöéwpAllocMem.                        Γöé
  9912.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9913.   ΓöéUSAGE_OPENFILE ΓöéVIEWFILE  ΓöéThe object (if a data file) has    Γöé
  9914.   Γöé               Γöé          Γöébeen opened.                       Γöé
  9915.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9916.   ΓöéUSAGE_OPENVIEW ΓöéVIEWITEM  ΓöéA view of the object has been      Γöé
  9917.   Γöé               Γöé          Γöéopened.                            Γöé
  9918.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  9919.   ΓöéUSAGE_RECORD   ΓöéRECORDITEMΓöéThe object has been inserted into aΓöé
  9920.   Γöé               Γöé          Γöécontainer window.                  Γöé
  9921.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  9922.  
  9923.  
  9924. ΓòÉΓòÉΓòÉ 15.2. Using Usage Methods ΓòÉΓòÉΓòÉ
  9925.  
  9926. This section describes the different usage methods along with explaining how 
  9927. each of them relate to an in-use item. 
  9928.  
  9929.  
  9930. ΓòÉΓòÉΓòÉ 15.2.1. Adding Items to the Object's In-Use List ΓòÉΓòÉΓòÉ
  9931.  
  9932. The wpAddToObjUseList method adds items to the object's in-use list. When an 
  9933. object's memory is allocated, wpAllocMem calls wpAddToObjUseList to add a 
  9934. USAGE_MEMORY item to the object's in-use list. The allocated memory immediately 
  9935. follows the MEMORYITEM data structure. The following figure shows the syntax of 
  9936. the MEMORYITEM data structure: 
  9937.  
  9938. typedef struct _MEMORYITEM
  9939. {
  9940.   ULONG   cbBuffer;   /* Number of bytes in memory block */
  9941. }MEMORYITEM;
  9942.  
  9943. The wpOpen method calls wpAddToObjUseList to add a USAGE_OPENVIEW item to the 
  9944. object's in-use list. The wpSwitchTo method scans the in-use list for 
  9945. USAGE_OPENVIEW items to give focus to an already existing view. In general, 
  9946. wpViewObject is used instead of wpOpen because wpViewObject considers the 
  9947. setting in the Object open behavior group-box control on the Window page of the 
  9948. Settings notebook, and calls either  wpOpen or wpSwitchTo. The following figure 
  9949. shows the syntax of the VIEWITEM data structure: 
  9950.  
  9951. typedef struct _VIEWITEM
  9952. {
  9953.   ULONG   view;              /* Object view that this represents */
  9954.   LHANDLE handle;            /* Open handle                      */
  9955.   ULONG ulViewState;         /* View state flags                 */
  9956.   HWND hwndCnr;              /* Used only by system              */
  9957.   PMINIRECORDCORE pRecord;   /* Used only by system              */
  9958. }VIEWITEM;
  9959.  
  9960. When wpSetLinkToObject is called to link a shadow to the object it points to, 
  9961. wpAddToObjUseList is called to add the USAGE_LINK item to the original object's 
  9962. in-use list. The following figure shows the syntax of the LINKITEM data 
  9963. structure: 
  9964.  
  9965. typedef struct _LINKITEM
  9966. {
  9967.   WPObject *LinkObj;         /* The link object  */
  9968. }LINKITEM;
  9969.  
  9970. When a data file is opened, its associated program is started and a 
  9971. USAGE_OPENFILE use-item is added to the data file's in-use list. The following 
  9972. figure shows the syntax of the VIEWFILE data structure: 
  9973.  
  9974. typedef struct _VIEWFILE
  9975. {
  9976.   ULONG   ulMenuId;          /* Menu id if association or menu page */
  9977.   LHANDLE handle;            /* Open handle                         */
  9978.   HWND    hwndCnr;           /* Used only by system                 */
  9979.   PMINIRECORDCORE pRecord;   /* Used only by system                 */
  9980. }VIEWFILE;
  9981.  
  9982.  
  9983. ΓòÉΓòÉΓòÉ 15.2.2. Removing Items from the Object's In-Use List ΓòÉΓòÉΓòÉ
  9984.  
  9985. When wpCnrInsertObject puts an object into a container window, its adds a 
  9986. USAGE_RECORD item to the object's in-use list. Conversely, when 
  9987. wpCnrRemoveObject is called, the USAGE_RECORD item is deleted from the object's 
  9988. in-use list and the object is removed from the container. The following figure 
  9989. shows the syntax of the RECORDITEM data structure: 
  9990.  
  9991. typedef struct _RECORDITEM
  9992. {
  9993.   HWND   hwndCnr;            /* Container into which object      */
  9994.                              /* is being inserted                */
  9995.   PMINIRECORDCORE pRecord;   /* Record pointer within container  */
  9996.   ULONG  ulUser;             /* For application use              */
  9997. }RECORDITEM;
  9998.  
  9999. Likewise, when wpFreeMem is called to free memory, it calls 
  10000. wpDeleteFromObjUseList to delete a USAGE_MEMORY item from the object's in-use 
  10001. list. 
  10002.  
  10003. When views are closed by the object's wpClose, wpDeleteFromObjUseList removes 
  10004. the applicable USAGE_OPENVIEW item from the object's in-use list. The 
  10005. wpCnrDeleteUseItem method deletes the USAGE_RECORD use-item for the specified 
  10006. container, but does not remove the object from the container. Use 
  10007. wpCnrRemoveObject to delete the USAGE_RECORD use-item and also to remove the 
  10008. object from the container. 
  10009.  
  10010.  
  10011. ΓòÉΓòÉΓòÉ 15.2.3. Increasing or Decreasing the Object's Lock Count ΓòÉΓòÉΓòÉ
  10012.  
  10013. The wpLockObject method increases the object's lock count by one. The 
  10014. wpUnlockObject method decreases the object's lock count by one. If the lock 
  10015. count is zero, the object can be made dormant. The wpIsLocked method returns 
  10016. TRUE if the object is locked. Otherwise, it returns FALSE. 
  10017.  
  10018.  
  10019. ΓòÉΓòÉΓòÉ 15.2.4. Finding an Object's In-Use Item ΓòÉΓòÉΓòÉ
  10020.  
  10021. You can use wpFindUseItem to determine how an object is being used. It searches 
  10022. an object's in-use list for items of a specified type and returns a pointer to 
  10023. the USEITEM data structure that matches that specified type. The wpFindViewItem 
  10024. method finds USAGE_OPENVIEW items in the use list. The following figure shows 
  10025. the syntax of the USEITEM data structure: 
  10026.  
  10027. typedef struct _USEITEM
  10028. {
  10029.   ULONG   type;                 /* Type of this item     */
  10030.   struct _USEITEM FAR *pNext;   /* Next item in use list */
  10031. }USEITEM;
  10032.  
  10033. The following sample code shows an example of how you can use the usage 
  10034. methods. It uses the wpFindUseItem and wpFindViewItem along with the 
  10035. USAGE_OPENVIEW item. 
  10036.  
  10037. SOMAny    *Object;
  10038. PVIEWITEM pViewItem;
  10039. PUSEITEM  pUseFile;
  10040. ULONG     ulView;
  10041. // Are there any open views of this object?
  10042. if (_wpFindUseItem(Object, USAGE_OPENVIEW, NULL))
  10043. {
  10044.   // Find any views of this object
  10045.   for (pViewItem = _wpFindViewItem(Object, VIEW_ANY, NULL);
  10046.        pViewItem;
  10047.        pViewItem = _wpFindViewItem(Object, VIEW_ANY, pViewItem))
  10048.   {
  10049.     // Is a program running?
  10050.     if (pViewItem->view == OPEN_RUNNING)
  10051.     {
  10052.       ulView = (ULONG)0;
  10053.  
  10054.       // Find any open file use-items
  10055.       for (pUseFile = _wpFindUseItem(Object, USAGE_OPENFILE, NULL);
  10056.            pUseFile;
  10057.            pUseFile = _wpFindUseItem(Object, USAGE_OPENFILE, pUseFile))
  10058.       {
  10059.         // Does the VIEWFILE's open handle match the VIEWITEM's open handle?
  10060.         if (((PVIEWFILE)(pUseFile+1))->handle == pViewItem->handle)
  10061.         {
  10062.           // Save the VIEWFILE's menu id
  10063.           ulView = ((PVIEWFILE)(pUseFile+1))->ulMenuId;
  10064.           break;
  10065.         }
  10066.       }
  10067.     }
  10068.   }
  10069. }
  10070.  
  10071.  
  10072. ΓòÉΓòÉΓòÉ 16. Object User Action: Pop-Up Menu Methods ΓòÉΓòÉΓòÉ
  10073.  
  10074. This chapter describes the pop-up context menus that can be used to invoke 
  10075. actions on Workplace Shell objects. It also provides an overview of how to 
  10076. create and manipulate the pop-up context menu for your Workplace Shell objects. 
  10077.  
  10078.  
  10079. ΓòÉΓòÉΓòÉ 16.1. About Pop-Up Menu Methods ΓòÉΓòÉΓòÉ
  10080.  
  10081. Pop-up menu methods support the actions that the user can perform on an object. 
  10082. These actions appear in a context or pop-up menu when the user presses button 2 
  10083. of the pointing device. A pop-up menu contains action choices for an object in 
  10084. its current context or state. The contents of a pop-up menu depends on the 
  10085. state of the object. 
  10086.  
  10087. Pop-up menus consist of a set of selectable items and any pull-down or 
  10088. conditional cascaded menus associated with them. In the following figure, Open, 
  10089. Settings, Open parent, Refresh now, and so on, are items in the object's 
  10090. primary pop-up menu. Icon, Tree, and Details are items in the Open pull-down or 
  10091. conditional cascaded menu. 
  10092.  
  10093. Conditional cascaded menus have mini-push buttons displayed next to the pop-up 
  10094. menu item. When the user selects the mini-push button, the pull-down menu is 
  10095. displayed. As shown in the above figure, Open, Help, and Sort have mini-push 
  10096. buttons that are represented by a right arrow () surrounded by a square box. 
  10097. If the user selects one of these three pop-up menu items, a default action 
  10098. listed in the submenu is performed. The default action is represented by a 
  10099. check mark. The default action for the Open item is Icon view, the Help item is 
  10100. General help, and the Sort item is Name. This submenu is called a conditional 
  10101. cascaded menu because it is displayed only if the user selects the mini-push 
  10102. button. 
  10103.  
  10104. Like Settings notebook pages, pop-up menus are inherited from a class' ancestor 
  10105. classes. This means that they include pop-up menu items that ancestor classes 
  10106. have added to or removed from the pop-up menu inherited from WPObject. The 
  10107. pop-up methods permit you to add new menu items to or remove menu items from 
  10108. the pop-up menu inherited from an object's ancestor classes, as shown in the 
  10109. following table: 
  10110.  
  10111. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  10112. ΓöéMethod                   ΓöéDescription                        Γöé
  10113. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10114. ΓöéwpFilterPopupMenu        ΓöéFilters out options from the       Γöé
  10115. Γöé                         Γöéobject's pop-up menu that do not   Γöé
  10116. Γöé                         Γöéapply.                             Γöé
  10117. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10118. ΓöéwpInsertPopupMenuItems   ΓöéInserts items into the object's    Γöé
  10119. Γöé                         Γöépop-up menu.                       Γöé
  10120. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10121. ΓöéwpModifyPopupMenu        ΓöéAdds new options to the object's   Γöé
  10122. Γöé                         Γöépop-up menu.                       Γöé
  10123. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  10124.  
  10125. When the user requests an object's pop-up menu, the Workplace Shell builds it 
  10126. by calling the object's wpFilterPopupMenu and wpModifyPopupMenu. The 
  10127. wpInsertPopupMenuItems method is called by an override to wpModifyPopupMenu to 
  10128. add new options to an object's pop-up menu. 
  10129.  
  10130.  
  10131. ΓòÉΓòÉΓòÉ 16.1.1. Support for User Selection of Standard Pop-Up Menu Items ΓòÉΓòÉΓòÉ
  10132.  
  10133. When the user selects a standard action from a pop-up menu, the Workplace Shell 
  10134. calls one of the pop-up menu methods shown in the following table: 
  10135.  
  10136. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  10137. ΓöéMethod Name         ΓöéDescription                             Γöé
  10138. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10139. ΓöéwpClose             ΓöéCloses all open views of an object.     Γöé
  10140. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10141. ΓöéwpCopyObject        ΓöéCreates a new copy of the object.       Γöé
  10142. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10143. ΓöéwpCreateFromTemplateΓöéCreates an object from a template.      Γöé
  10144. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10145. ΓöéwpCreateShadowObjectΓöéCreates a shadow of an object.          Γöé
  10146. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10147. ΓöéwpDelete            ΓöéDeletes an object and prompts for       Γöé
  10148. Γöé                    Γöéconfirmation, if necessary.             Γöé
  10149. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10150. ΓöéwpDisplayHelp       ΓöéDisplays a help panel.                  Γöé
  10151. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10152. ΓöéwpHide              ΓöéHides or minimizes open views of an     Γöé
  10153. Γöé                    Γöéobject.                                 Γöé
  10154. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10155. ΓöéwpMoveObject        ΓöéMoves the object to a different         Γöé
  10156. Γöé                    Γöélocation.                               Γöé
  10157. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10158. ΓöéwpOpen              ΓöéOpens a view of the object.             Γöé
  10159. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10160. ΓöéwpPrintObject       ΓöéPrints a view of the object.            Γöé
  10161. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10162. ΓöéwpRestore           ΓöéRestores hidden or minimized views of anΓöé
  10163. Γöé                    Γöéobject.                                 Γöé
  10164. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  10165.  
  10166.  
  10167. ΓòÉΓòÉΓòÉ 16.1.2. Open Views ΓòÉΓòÉΓòÉ
  10168.  
  10169. Objects can have open actions or open views associated with them. Open views 
  10170. typically are the views of an object, for example, Icon, Tree, Details, and 
  10171. Settings. Open views, for data file objects, also include programs or program 
  10172. references that the user has associated with the object. Open views are 
  10173. displayed when the user selects the cascaded mini-push button that appears next 
  10174. to the Open action on the pop-up menu. The user then can select the default 
  10175. open view or any of the open views listed in the conditional cascaded menu. The 
  10176. Workplace Shell defines a set of predefined open views, as shown in the 
  10177. following table: 
  10178.  
  10179. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  10180. ΓöéView                ΓöéDescription                             Γöé
  10181. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10182. ΓöéOPEN_CONTENTS       ΓöéOpens content view.                     Γöé
  10183. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10184. ΓöéOPEN_DEFAULT        ΓöéOpens default view.                     Γöé
  10185. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10186. ΓöéOPEN_DETAILS        ΓöéOpens Details view.                     Γöé
  10187. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10188. ΓöéOPEN_HELP           ΓöéOpens help view.                        Γöé
  10189. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10190. ΓöéOPEN_RUNNING        ΓöéExecutes object.                        Γöé
  10191. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10192. ΓöéOPEN_SETTINGS       ΓöéOpens Settings notebook.                Γöé
  10193. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10194. ΓöéOPEN_TREE           ΓöéOpens Tree view.                        Γöé
  10195. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10196. ΓöéOPEN_USER           ΓöéOpens class-specific view (value greaterΓöé
  10197. Γöé                    Γöéthan OPEN_USER)                         Γöé
  10198. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  10199.  
  10200. Some of the predefined open views are meaningful only to certain Workplace 
  10201. Shell classes: 
  10202.  
  10203.    o  OPEN_RUNNING is meaningful only to a program or program reference object 
  10204.  
  10205.    o  OPEN_TREE is meaningful only to file system objects such as folders, 
  10206.       drives and directories. 
  10207.  
  10208.  Workplace Shell classes can define new open views for their objects by: 
  10209.  
  10210.    1. Adding the New view menu item to the Open submenu. 
  10211.  
  10212.    2. Overriding wpMenuItemSelected to support user selection of the New view 
  10213.       menu item. 
  10214.  
  10215.    3. Overriding wpOpen to open the New view. 
  10216.  
  10217.    4. Creating and opening a standard window for the New view by calling 
  10218.       WinCreateStdWindow. 
  10219.  
  10220.       Note:  The preferred method for displaying application views of an object 
  10221.              is for the object to start a separate process, using DosExecPgm, 
  10222.              for the application. This approach moves the larger part of the 
  10223.              application code out of the Workplace Shell's process, thus 
  10224.              conserving the its resources. It also helps prevent a misbehaved 
  10225.              application from potentially interfering with the execution of the 
  10226.              Workplace Shell. 
  10227.  
  10228.    5. Adding a USAGE_VIEW item to the object's in-use list by calling 
  10229.       wpAddToObjUseList. 
  10230.  
  10231.    6. Registering the New view by calling wpRegisterView. 
  10232.  
  10233.  Note:  The Sample Code for Pop-Up Menu Methods is a complete program that 
  10234.         demonstrates how to define and open a new open view. 
  10235.  
  10236.  
  10237. ΓòÉΓòÉΓòÉ 16.2. Using Pop-Up Menu Methods ΓòÉΓòÉΓòÉ
  10238.  
  10239. This section describes the following: 
  10240.  
  10241.    o  Adding and removing standard pop-up menu items 
  10242.  
  10243.    o  Adding and removing items to a pop-up menu inherited from an object's 
  10244.       ancestors 
  10245.  
  10246.    o  Adding conditional cascaded menus to a pop-up menu 
  10247.  
  10248.    o  Supporing user selection of new pop-up menu items. 
  10249.  
  10250.  Note:  A complete program is provided to demonstrate how to customize a 
  10251.         Workplace Shell pop-up menu. The program is illustrated in Sample Code 
  10252.         for Pop-Up Menu Methods. 
  10253.  
  10254.  
  10255. ΓòÉΓòÉΓòÉ 16.2.1. Adding and Removing Standard Pop-Up Menu Items ΓòÉΓòÉΓòÉ
  10256.  
  10257. The pop-up menu of a Workplace Shell object consists of a subset of the 
  10258. standard pop-up menu items and any new menu items defined for the object's 
  10259. class or inherited from other ancestors. The WPObject class defines a set of 
  10260. standard pop-up menu items that are inherited by all Workplace Shell objects. 
  10261. The WPDesktop, WPFolder, WPPalette, and WPProgram Workplace Shell classes 
  10262. define standard pop-up menu items for their descendants. Each standard pop-up 
  10263. menu item is associated with a flag, as shown in the following table: 
  10264.  
  10265. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  10266. ΓöéClass               ΓöéItem Flag           ΓöéDescription         Γöé
  10267. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10268. ΓöéWPDesktop           ΓöéCTXT_LOCKUP         ΓöéOpen Lockup now     Γöé
  10269. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10270. Γöé                    ΓöéCTXT_SHUTDOWN       ΓöéOpen Shut down      Γöé
  10271. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10272. ΓöéWPFolder            ΓöéCTXT_ARRANGE        ΓöéOpen Arrange        Γöé
  10273. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10274. Γöé                    ΓöéCTXT_DETAILS        ΓöéOpen Details view   Γöé
  10275. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10276. Γöé                    ΓöéCTXT_FIND           ΓöéOpen Find dialog    Γöé
  10277. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10278. Γöé                    ΓöéCTXT_ICON           ΓöéOpen Icon view      Γöé
  10279. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10280. Γöé                    ΓöéCTXT_SELECT         ΓöéOpen Select         Γöé
  10281. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10282. Γöé                    ΓöéCTXT_SORT           ΓöéOpen Sort dialog    Γöé
  10283. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10284. Γöé                    ΓöéCTXT_TREE           ΓöéOpen Tree view      Γöé
  10285. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10286. ΓöéWPObject            ΓöéCTXT_ARRANGE        ΓöéOpen Arrange        Γöé
  10287. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10288. Γöé                    ΓöéCTXT_CLOSE          ΓöéClose               Γöé
  10289. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10290. Γöé                    ΓöéCTXT_COPY           ΓöéCopy                Γöé
  10291. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10292. Γöé                    ΓöéCTXT_CRANOTHER      ΓöéCreate another      Γöé
  10293. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10294. Γöé                    ΓöéCTXT_DELETE         ΓöéDelete              Γöé
  10295. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10296. Γöé                    ΓöéCTXT_DETAILS        ΓöéOpen Details view   Γöé
  10297. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10298. Γöé                    ΓöéCTXT_HELP           ΓöéHelp                Γöé
  10299. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10300. Γöé                    ΓöéCTXT_ICON           ΓöéOpen Icon view      Γöé
  10301. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10302. Γöé                    ΓöéCTXT_LINK           ΓöéCreate shadow       Γöé
  10303. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10304. Γöé                    ΓöéCTXT_LOCKUP         ΓöéOpen Lockup dialog  Γöé
  10305. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10306. Γöé                    ΓöéCTXT_MOVE           ΓöéMove                Γöé
  10307. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10308. Γöé                    ΓöéCTXT_NEW            ΓöéCreate another      Γöé
  10309. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10310. Γöé                    ΓöéCTXT_OPEN           ΓöéOpen                Γöé
  10311. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10312. Γöé                    ΓöéCTXT_PALETTE        ΓöéOpen Palette        Γöé
  10313. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10314. Γöé                    ΓöéCTXT_PICKUP         ΓöéPick up an object   Γöé
  10315. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10316. Γöé                    ΓöéCTXT_PRINT          ΓöéPrint               Γöé
  10317. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10318. Γöé                    ΓöéCTXT_PROGRAM        ΓöéOpen program        Γöé
  10319. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10320. Γöé                    ΓöéCTXT_PUTDOWN        ΓöéPut an object down  Γöé
  10321. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10322. Γöé                    ΓöéCTXT_REFRESH        ΓöéRefresh             Γöé
  10323. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10324. Γöé                    ΓöéCTXT_SELECT         ΓöéOpen Select         Γöé
  10325. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10326. Γöé                    ΓöéCTXT_SETTINGS       ΓöéOpen Settings       Γöé
  10327. Γöé                    Γöé                    Γöénotebook            Γöé
  10328. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10329. Γöé                    ΓöéCTXT_SHADOW         ΓöéCreate shadow       Γöé
  10330. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10331. Γöé                    ΓöéCTXT_SHUTDOWN       ΓöéOpen Shut down      Γöé
  10332. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10333. Γöé                    ΓöéCTXT_SORT           ΓöéOpen Sort dialog    Γöé
  10334. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10335. Γöé                    ΓöéCTXT_SWITCHTO       ΓöéSwitch to           Γöé
  10336. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10337. Γöé                    ΓöéCTXT_TREE           ΓöéOpen Tree view      Γöé
  10338. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10339. Γöé                    ΓöéCTXT_WINDOW         ΓöéWindow              Γöé
  10340. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10341. ΓöéWPPalette           ΓöéCTXT_PALETTE        ΓöéOpen palette        Γöé
  10342. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10343. ΓöéWPProgram           ΓöéCTXT_PROGRAM        ΓöéOpen program        Γöé
  10344. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  10345.  
  10346. Workplace Shell classes can add or delete standard pop-up menu items from their 
  10347. pop-up menu by overriding wpFilterPopupMenu. The wpFilterPopupMenu method 
  10348. returns the flags that represent the standard pop-up menu items for the object. 
  10349. By removing a standard menu item from the pop-up menu, the override to 
  10350. wpFilterPopupMenu masks the flag that corresponds to the item being removed 
  10351. from the flags that represent the standard pop-up menu items inherited from the 
  10352. object's parent. For example, suppose that printing MyObject has no meaning. To 
  10353. remove the Print option from MyObject's pop-up menu, wpFilterPopupMenu is 
  10354. overridden as shown in the following figure: 
  10355.  
  10356. /************************* Method Overrides ****************************/
  10357.  
  10358. /* Filters out any options from the pop-up menu that don't apply */
  10359. SOM_Scope ULONG SOMLINK MyObject_wpFilterPopupMenu
  10360.    (MyObject *somSelf,ULONG ulFlags, HWND hwndCnr, BOOL32 fMultiSelect)
  10361.  
  10362. {
  10363.   MyObjectData *somThis = MyObjectGetData(somSelf);
  10364.   MyObjectMethodDebug("MyObject","MyObject_wpFilterPopupMenu");
  10365.  
  10366.   /* Don't allow anyone to print MyObject  */
  10367.   return(parent_wpFilterPopupMenu(somSelf,ulFlags,hwndCnr,fMultiSelect)
  10368.                                   & ~CTXT_PRINT);
  10369. }
  10370.  
  10371. The flags that represent the standard pop-up menu items of MyObject's parent 
  10372. class are returned from the call to parent_wpFilterPopupMenu. To remove the 
  10373. Print option from MyObject's pop-up menu, these flags are joined to the 
  10374. complement of CTXT_PRINT using the AND logical operand. Conversely, if the 
  10375. pop-up menu of MyObject's parent class did not include the Print option, the 
  10376. Print option can be added to MyObject's pop-up menu by joining these flags to 
  10377. CTXT_PRINT using the OR logical operand. 
  10378.  
  10379. Note:  An object's pop-up menu is inherited from its ancestors. To ensure that 
  10380.        calls to wpFilterPopupMenu belonging to the object's ancestors do not 
  10381.        add the menu item after it is deleted, or remove the menu item after it 
  10382.        is added, the parent_wpFilterPopupMenu is called first. 
  10383.  
  10384.  
  10385. ΓòÉΓòÉΓòÉ 16.2.2. Adding and Removing Class Items to a Pop-Up Menu ΓòÉΓòÉΓòÉ
  10386.  
  10387. New items are added to the pop-up menu inherited from an object's ancestors by 
  10388. overriding the object's wpModifyPopupMenu and calling wpInsertPopupMenuItems. 
  10389. For example, to add New item to MyObject's pop-up menu, the new menu item is 
  10390. defined in a resource file in the same manner as menus are defined in PM 
  10391. programs. An ID is assigned to the new menu and to the menu item, as shown in 
  10392. the following sample code: 
  10393.  
  10394. #define ID_MOREITEMS  WPMENUID_USER+1
  10395. #define ID_NEWITEMS   WPMENUID_USER+2
  10396.  
  10397. MENU ID_MOREITEMS LOADONCALL MOVEABLE DISCARDABLE
  10398.   BEGIN
  10399.     MENUITEM "New Item", ID_NEWITEMS
  10400.   END
  10401.  
  10402. Menu items can also be deleted by overriding wpModifyPopupMenu and by sending 
  10403. the MM_DELETEITEM message to the menu. 
  10404.  
  10405. IDs for class-specific menus and menu items have a value greater than 
  10406. WPMENUID_USER, so they do not conflict with IDs for menus and menu items 
  10407. defined by the Workplace Shell classes, as shown in the following sample code: 
  10408.  
  10409. /* Add a new item to MyObject's pop-up menu */
  10410. SOM_Scope BOOL32 SOMLINK MyObject_wpModifyPopupMenu
  10411.   (MyObject *somSelf,HWND hwndMenu, HWND hwndCnr, ULONG ulPosition)
  10412.  
  10413. /* Remove an item from MyObject's pop-up menu */
  10414. WinSendMsg(hwndMenu,
  10415.            MM_DELETEITEM,
  10416.            MPFROM2SHORT(MY_ITEMID,FALSE),
  10417.            NULL);
  10418.  
  10419. {
  10420.   /* Insert new items in MyObject's primary menu */
  10421.   _wpInsertPopupMenuItemsA(somSelf,
  10422.                            hwndMenu,
  10423.                            ulPosition,
  10424.                            hmod,
  10425.                            ID_MOREITEMS,
  10426.                            WPMENUID_PRIMARY);
  10427.  
  10428.   /* Add the items inherited from MyObject's parent */
  10429.   return (parent_wpModifyPopupMenu(somSelf,
  10430.                                    hwndMenu,
  10431.                                    hwndCnr,
  10432.                                    ulPosition));
  10433. }
  10434.  
  10435. The wpInsertPopupMenuItems method requires: 
  10436.  
  10437.    o  A handle to the module where the menu resource is defined 
  10438.  
  10439.    o  The ID for the menu resource 
  10440.  
  10441.    o  The ID for the menu where the item is being inserted. 
  10442.  
  10443.  In the above sample code, ID_MOREITEMS is the ID for the menu resource that 
  10444.  defines the new menu item being added to the object's primary pop-up menu. 
  10445.  WPMENUID_PRIMARY is the ID for the object's primary pop-up menu, where New 
  10446.  item is being inserted. 
  10447.  
  10448.  An item can be added to a pop-up submenu or conditional cascaded menu by 
  10449.  specifying the ID for the conditional cascaded menu on the call to 
  10450.  wpInsertPopupMenuItems. For example, to add New item to the Open conditional 
  10451.  cascaded menu, the call to wpInsertPopupMenuItems is modified as shown in the 
  10452.  following sample code: 
  10453.  
  10454.   /* Insert new items in MyObject's Open submenu */
  10455.   _wpInsertPopupMenuItemsA(somSelf,
  10456.                            hwndMenu,
  10457.                            ulPosition,
  10458.                            hmod,
  10459.                            ID_MOREITEMS,
  10460.                            WPMENUID_OPEN);
  10461.  
  10462.  
  10463. ΓòÉΓòÉΓòÉ 16.2.3. Adding Conditional Cascaded Menus to a Pop-Up Menu ΓòÉΓòÉΓòÉ
  10464.  
  10465. Items on an object's pop-up menu sometimes have pull-down menus or submenus 
  10466. associated with them. In the previous sample codes, New item is not a pull-down 
  10467. menu. However, New item can be defined as a pull-down menu by defining it as a 
  10468. submenu in MyObject's resource file, as shown in the following sample code: 
  10469.  
  10470. #define ID_MOREITEMS  WPMENUID_USER+1
  10471. #define ID_NEWITEMS   WPMENUID_USER+2
  10472. #define ID_SUBITEM1   WPMENUID_USER+3
  10473. #define ID_SUBITEM2   WPMENUID_USER+4
  10474. #define ID_SUBITEM3   WPMENUID_USER+5
  10475.  
  10476. MENU ID_MOREITEMS LOADONCALL MOVEABLE DISCARDABLE
  10477. BEGIN
  10478.   SUBMENU "New Item", ID_NEWITEMS
  10479.   BEGIN
  10480.     MENUITEM  "SubItem_1"  ID_SUBITEM1
  10481.     MENUITEM  "SubItem_2"  ID_SUBITEM2
  10482.     MENUITEM  "SubItem_3"  ID_SUBITEM3
  10483.   END
  10484. END
  10485.  
  10486. The New item submenu is added to MyObject's primary pop-up menu using the same 
  10487. technique as shown in the "Adding Items to Pop-Up Menu Inherited from an 
  10488. Object's Ancestors" section. For the Workplace Shell to display the submenu as 
  10489. a conditional cascaded menu with the mini-push button and default selection, 
  10490. the menu's style and default selection must be set, as shown in the following 
  10491. sample code: 
  10492.  
  10493. /**********************  Method Override  ******************************/
  10494.  
  10495. /* Add a new item to MyObject's pop-up menu  */
  10496. SOM_SCOPE BOOL32 SOMLINK MyObject_wpModifyPopupMenu
  10497.    (MyObject *somSelf, HWND hwndMenu, HWND hwndCnr, ULONG iPosition)
  10498.  
  10499. {
  10500.   .
  10501.   .
  10502.  
  10503.   MENUITEM mi;
  10504.   .
  10505.   .
  10506.  
  10507.   /* Get a handle to the New item submenu   */
  10508.   WinSendMsg(hwndMenu,
  10509.              MM_QUERYITEM,
  10510.              MPFROM2SHORT(ID_NEWITEMS),
  10511.              (MPARAM)&mi);
  10512.   hwndSubMenu = mi.hwndSubMenu;
  10513.  
  10514.   /* Query the menu's style  */
  10515.   ulstyle = WinQueryWindowULong(hwndSubMenu, QWL_STYLE);
  10516.  
  10517.   /* Add conditional cascaded capabilities to the existing menu style */
  10518.   ulstyle |= MS_CONDITIONALCASCADE;
  10519.  
  10520.   /* Set the menu style to include conditional cascaded capabilities  */
  10521.   WinSetWindowULong(hwndSubMenu, QWL_STYLE, ulstyle);
  10522.  
  10523.   /* Set the default selection in the submenu.  It must exist.  */
  10524.   WinSendMsg(hwndSubMenu,
  10525.              MM_SETDEFAULTITEMID,
  10526.              (MPARAM)ID_SUBITEM1, 0L);
  10527.   .
  10528.   .
  10529.  
  10530. }
  10531.  
  10532.  
  10533. ΓòÉΓòÉΓòÉ 16.2.4. Supporting User Selection of New Pop-Up Menu Items ΓòÉΓòÉΓòÉ
  10534.  
  10535. When a class defines new actions for its pop-up menu, it must provide for the 
  10536. processing of the actions when the user selects the action. This is done by 
  10537. overriding the following pop-up menu methods: 
  10538.  
  10539. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  10540. ΓöéMethod                   ΓöéDescription                        Γöé
  10541. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10542. ΓöéwpMenuItemHelpSelected   ΓöéDisplays the help associated with  Γöé
  10543. Γöé                         Γöéclass-specific pop-up menu item.   Γöé
  10544. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10545. ΓöéwpMenuItemSelected       ΓöéProcesses class-specific pop-up    Γöé
  10546. Γöé                         Γöémenu item.                         Γöé
  10547. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  10548.  
  10549. Using the previous sample code, MyObject supports SubItem_1 by overriding 
  10550. wpMenuItemSelected, as shown in the following sample code: 
  10551.  
  10552. /********************  Method Override  ********************************/
  10553.  
  10554. /* Process input from the extra menu option that we added */
  10555. SOM_Scope void SOMLINK MyObject_wpMenuItemSelected
  10556.   (MyObject *self, HWND hwndFrame, ULONG MenuID)
  10557.  
  10558. {
  10559.   .
  10560.   .
  10561.  
  10562.   /* Which of our menu items was selected?  */
  10563.   switch( MenuId )
  10564.   {
  10565.     case ID_SUBITEM1:
  10566.        .
  10567.        .
  10568.     case ID_SUBITEM2:
  10569.        .
  10570.        .
  10571.     case ID_SUBITEM3:
  10572.        .
  10573.        .
  10574.     case ID_SUBITEM4:
  10575.        .
  10576.        .
  10577.     default:
  10578.        parent_wpMenuItemSelected
  10579.   }
  10580. }
  10581.  
  10582. MyObject can support help for new pop-up menu items by overriding 
  10583. wpMenuItemHelpSelected in a similar manner. These help methods are explained in 
  10584. Object Aid: Help Methods. 
  10585.  
  10586.  
  10587. ΓòÉΓòÉΓòÉ 16.3. Sample Code for Pop-Up Menu Methods ΓòÉΓòÉΓòÉ
  10588.  
  10589. This section illustrates a complete pop-up menu sample program. The source code 
  10590. for a sample Hello application is provided here to demonstrate how to customize 
  10591. a Workplace Shell pop-up menu. The application creates a new class, Hello, from 
  10592. the WPDataFile class with a modified pop-up menu, and then creates an instance 
  10593. of the new class called MyHello. An instance of the Hello class will be just 
  10594. like a WPDataFile object with the following exceptions: 
  10595.  
  10596.    o  The Open submenu will have a Say Hello item. MyHello's primary menu will 
  10597.       have a Message Box item. The context menu will have the Move item 
  10598.       removed. The following figure shows MyHello object and its pop-up menu: 
  10599.  
  10600.    o  Selecting the Open Say Hello item or double clicking on the object will 
  10601.       cause a window to display the text "Hello, Workplace Shell.", as shown in 
  10602.       the following figure: 
  10603.  
  10604.    o  Double clicking on the Message Box item will display a message box with 
  10605.       information about this example, as shown in the following figure: 
  10606.  
  10607.  
  10608. ΓòÉΓòÉΓòÉ 16.3.1. Pop-Up Menu Application Sample Code ΓòÉΓòÉΓòÉ
  10609.  
  10610. The pop-up menu application includes the following files: 
  10611.  
  10612.  File Name           Description 
  10613.  
  10614.  HELLO.IDL           Class interface definition 
  10615.  
  10616.  HELLO.C             Source code 
  10617.  
  10618.  HELLO.RC            Resource code 
  10619.  
  10620.  HELLO.MAK           Hello make file for building the application 
  10621.  
  10622.  Following these files are three REXX files that register and deregister the 
  10623.  new class with the Workplace Shell, and create an instance of the class. 
  10624.  
  10625.  
  10626. ΓòÉΓòÉΓòÉ 16.3.1.1. Class Definition File for Hello ΓòÉΓòÉΓòÉ
  10627.  
  10628. The following sample illustrates the class interface definition file (IDL): 
  10629.  
  10630. //# Include the class definition file for the parent classes
  10631.  
  10632. #include <wpdataf.idl>
  10633. #include <somcls.idl>
  10634.  
  10635. interface M_Hello;   // Forward reference to metaclass
  10636.  
  10637. //#******************************************************************************
  10638. //#   Define the new class
  10639. //#******************************************************************************
  10640.  
  10641. interface Hello : WPDataFile
  10642. {
  10643. //
  10644. // CLASS: Hello
  10645. //
  10646. // CLASS HIERARCHY:
  10647. //
  10648. //     SOMObject
  10649. //       ΓööΓöÇΓöÇΓöÇWPObject
  10650. //             ΓööΓöÇΓöÇΓöÇWPFileSystem
  10651. //                   ΓööΓöÇΓöÇΓöÇWPDataFile
  10652. //                         ΓööΓöÇΓöÇΓöÇHello
  10653. //
  10654. // DESCRIPTION:
  10655. //
  10656. //    This is the sample class to demonstrate Workplace Shell menu
  10657. //    customization.
  10658. //
  10659. #ifdef __SOMIDL__
  10660. implementation
  10661. {
  10662.     //# Class modifiers
  10663.     externalstem   = hello;
  10664.     local;
  10665.     externalprefix = hlo_;
  10666.     majorversion   = 1;
  10667.     minorversion   = 2;
  10668.  
  10669.     filestem       = hello;
  10670.     metaclass      = M_Hello;
  10671.     callstyle      = idl;
  10672.     dllname        = "hello.dll";
  10673.  
  10674.     passthru C_h   =  ""
  10675.     "#define INCL_WIN"
  10676.     "#include <os2.h>"
  10677.     ""
  10678.     "/*"
  10679.     " *   The following user-defined pop-up menu items (ID_xxx) should"
  10680.     " *   be higher than WPMENUID_USER."
  10681.     " *"
  10682.     " *   The ID_OPENHELLO will become a submenu of the system's pop-up"
  10683.     " *   open menu id, WPMENUID_OPEN."
  10684.     " */"
  10685.     ""
  10686.     "#define ID_OPENHELLO   (WPMENUID_USER+1)  /* Menus to be added  */"
  10687.     "#define ID_MSGBOX      (WPMENUID_USER+2)"
  10688.     "#define IDM_OPENHELLO  (WPMENUID_USER+3)  /* Submenus of added menus */"
  10689.     "#define IDM_MSGBOX     (WPMENUID_USER+4)"
  10690.     "#define ID_FRAME       3000               /* Hello window frame ID */"
  10691.     ""
  10692.     "// The ID of the Hello window view. This is returned by the override"
  10693.     "// of wpclsQueryDefaultView to specify that the default view"
  10694.     "// is to open the Hello window. This ID MUST be the same as the ID of"
  10695.     "// the open menu item."
  10696.     ""
  10697.     "#define OPEN_HELLO     ID_OPENHELLO";
  10698.  
  10699. //#******************************************************************************
  10700. //#   Define overridden methods
  10701. //#******************************************************************************
  10702.  
  10703.     wpFilterPopupMenu: override;
  10704.  
  10705. // METHOD: wpFilterPopupMenu
  10706. //
  10707. // DESCRIPTION: Remove any menu items from the context
  10708. //              menu that don't apply.
  10709. //
  10710. // HOW TO OVERRIDE: No restrictions.
  10711. //
  10712. // NOTES:
  10713. //
  10714. //   This method is called when an objects' context menu has been requested
  10715. //   (i.e. right click or S-F10 on an object) before displaying the menu. It
  10716. //   is called before wpModifyPopupMenu.
  10717.  
  10718.     wpModifyPopupMenu: override;
  10719.  
  10720. // METHOD: wpModifyPopupMenu
  10721. //
  10722. // DESCRIPTION:  Add the menu items to the context menu.
  10723. //
  10724. // NOTES:
  10725. //
  10726. //   This method is called when an objects' context menu has been requested
  10727. //   (i.e. right click or S-F10 on an object) before displaying the menu. It
  10728. //   is called after wpFilterPopupMenu.
  10729.  
  10730.     wpMenuItemSelected: override;
  10731.  
  10732. // METHOD: wpMenuItemSelected
  10733. //
  10734. // DESCRIPTION: Processes input from the menu options that was added.
  10735. //
  10736. // NOTES:
  10737. //
  10738. //   This method is called when an item in an objects' context menu has been
  10739. //   selected.
  10740.  
  10741.     wpOpen: override;
  10742.  
  10743. // METHOD: wpOpen
  10744. //
  10745. // DESCRIPTION: Opens the Hello Workplace Shell window.
  10746. //
  10747. // NOTES:
  10748. //
  10749. //   This method is called when a new open view of an object is needed,
  10750. //   i.e. when an item in an object's Open submenu has been selected or
  10751. //   when an object is double clicked on.  This is equivalent to selecting
  10752. //   the default item in the object's Open submenu.
  10753. //
  10754. //   wpOpen should always open a new view. The Workplace Shell actually calls
  10755. //   wpViewObject first when an object is double clicked on or an open
  10756. //   submenu item is selected. wpViewObject will then call wpOpen if there
  10757. //   is currently no open view of the selected Open submenu item or if
  10758. //   mutliple concurrent views of the object are enabled.
  10759.  
  10760. };   /* End implementation */
  10761. #Endif /* __SOMIDL__ */
  10762. };
  10763.  
  10764. //#******************************************************************************
  10765. //#   Define the metaclass
  10766. //#******************************************************************************
  10767.  
  10768. interface M_Hello: M_WPDataFile
  10769. {
  10770.  
  10771. //#******************************************************************************
  10772. //#   Define metaclass methods
  10773. //#******************************************************************************
  10774.  
  10775.    HMODULE  clsQueryModuleHandle();
  10776.  
  10777. // METHOD: clsQueryModuleHandle
  10778. //
  10779. // DESCRIPTION:
  10780. //
  10781. //   Returns the module handle of this class.  If this is the
  10782. //   first invocation, DosQueryModuleHandle is called to save the handle
  10783. //   for future invocations.
  10784. //
  10785. // RETURN:
  10786. //
  10787. //   0              Unsuccessful
  10788. //   non-zero       Module handle
  10789. //
  10790. // NOTES:
  10791. //
  10792. //   This method is called when a new open view of an object is needed,
  10793. //   i.e. when an item in an object's Open submenu has been selected or
  10794. //   when an object is double clicked on.  This is equivalent to selecting
  10795. //   the default item in the object's Open submenu.
  10796. //
  10797.  
  10798. //#******************************************************************************
  10799. //#   Define metaclass data
  10800. //#******************************************************************************
  10801.  
  10802.    attribute HMODULE hmod;
  10803.  
  10804. #ifdef __SOMIDL__
  10805. implementation
  10806. {
  10807.     releaseorder: clsQueryModuleHandle;
  10808.  
  10809.     //# Class modifiers
  10810.     externalstem   = hello;
  10811.     local;
  10812.     externalprefix = hloM_;
  10813.     majorversion   = 1;
  10814.     minorversion   = 2;
  10815.     filestem       = hello;
  10816.     callstyle      = oidl;
  10817.     dllname        = "hello.dll";
  10818.  
  10819. //#******************************************************************************
  10820. //#   Define overridden metaclass methods
  10821. //#******************************************************************************
  10822.  
  10823.    wpclsQueryDefaultView: override;
  10824.  
  10825. // METHOD: wpclsQueryDefaultView
  10826. //
  10827. // DESCRIPTION: Returns the default view for a new instance
  10828. //              of this object.
  10829. //
  10830. // REMARKS:
  10831. //
  10832. //   Return the ID of the default view, OPEN_HELLO.
  10833. //   This ID must be the same as the ID of the open
  10834. //   submenu item, ID_OPENHELLO.
  10835. //
  10836. // NOTES:
  10837. //
  10838. //   This method is called to determine which view to open when an
  10839. //   object of class Hello is double clicked on.
  10840.  
  10841.    wpclsQueryTitle: override;
  10842.  
  10843. // METHOD: wpclsQueryTitle
  10844. //
  10845. // DESCRIPTION:  Return the string "Hello Workplace Shell".
  10846. //
  10847. // NOTES:
  10848. //
  10849. //   This method is called by the Workplace Shell to determine the object
  10850. //   title when an object of class Hello is created.
  10851. //
  10852.   }; /* End implementation */
  10853. #endif /* __SOMIDL__ */
  10854. };
  10855.  
  10856.  
  10857. ΓòÉΓòÉΓòÉ 16.3.1.2. Source Code for Hello ΓòÉΓòÉΓòÉ
  10858.  
  10859. The following sample illustrates the source code (C): 
  10860.  
  10861. /*
  10862.  *  This file was generated by the SOM Compiler and Emitter Framework.
  10863.  *  Generated using SOM Emitter emitctm: 2.40
  10864.  */
  10865.  
  10866. #ifndef SOM_Module_hello_Source
  10867. #define SOM_Module_hello_Source
  10868. #endif
  10869. #define Hello_Class_Source
  10870. #define M_Hello_Class_Source
  10871. #define INCL_DOS
  10872.  
  10873. #include "hello.ih"
  10874.  
  10875. MRESULT EXPENTRY ClientWinProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
  10876.  
  10877. // Structure to pass the object pointer and
  10878. // use list item to the window procedure
  10879. typedef struct
  10880. {
  10881.    WPObject *self;     /* Pointer to the object    */
  10882.    USEITEM  UseItem;   /* Use list item header     */
  10883.    VIEWITEM ViewItem;  /* Open view use list item  */
  10884. } WINDOWDATA;
  10885. typedef WINDOWDATA *PWINDOWDATA;
  10886.  
  10887. /*
  10888.  * METHOD: wpFilterPopupMenu
  10889.  *
  10890.  * DESCRIPTION: Removes any menu items from the context menu that don't apply.
  10891.  *
  10892.  * HOW TO OVERRIDE: No restrictions.
  10893.  *
  10894.  * NOTES:
  10895.  *
  10896.  *   This method is called when an object's context menu has been requested
  10897.  *   (i.e. right click or S-F10 on an object) before displaying the menu. It
  10898.  *   is called before wpModifyPopupMenu.
  10899.  */
  10900. SOM_Scope ULONG  SOMLINK hlo_wpFilterPopupMenu(Hello somSelf,
  10901.                                                ULONG ulFlags,
  10902.                                                HWND hwndCnr,
  10903.                                                BOOL fMultiSelect)
  10904. {
  10905.     /* HelloData *somThis = HelloGetData(somSelf); */
  10906.     HelloMethodDebug("Hello","hlo_wpFilterPopupMenu");
  10907.  
  10908.     // Return the parent class' menu bitstring minus the "move bit"
  10909.     return (parent_wpFilterPopupMenu(somSelf,
  10910.                                      ulFlags,
  10911.                                      hwndCnr,
  10912.                                      fMultiSelect) & ~CTXT_MOVE);
  10913. }
  10914.  
  10915. /*
  10916.  * METHOD: wpModifyPopupMenu
  10917.  *
  10918.  * DESCRIPTION: Adds the menu items to the context menu.
  10919.  *
  10920.  * NOTES:
  10921.  *
  10922.  *   This method is called when an object's context menu has been requested
  10923.  *   (i.e. right click or S-F10 on an object) before displaying the menu. It
  10924.  *   is called after wpFilterPopupMenu.
  10925.  */
  10926.  
  10927. SOM_Scope BOOL  SOMLINK hlo_wpModifyPopupMenu(Hello somSelf,
  10928.                                               HWND hwndMenu,
  10929.                                               HWND hwndCnr, ULONG iPosition)
  10930.  
  10931. {
  10932.     HMODULE hmod;
  10933.     /* HelloData *somThis = HelloGetData(somSelf); */
  10934.     HelloMethodDebug("Hello","hlo_wpModifyPopupMenu");
  10935.  
  10936.     /* Get the module handle of the .DLL */
  10937.     hmod = _clsQueryModuleHandle(_Hello);
  10938.  
  10939.     /*
  10940.      *   Put the "Say Hello" submenu item in the Open submenu
  10941.      */
  10942.     _wpInsertPopupMenuItems(somSelf,          // Object
  10943.                             hwndMenu,         // Main context menu
  10944.                             0,                // Position to insert menu at
  10945.                                               // 0 = top of menu
  10946.                             hmod,             // Module of menu to insert
  10947.                             ID_OPENHELLO,     // Menu to insert
  10948.                             WPMENUID_OPEN);   // Submenu to insert menu in
  10949.  
  10950.     /*
  10951.      *   Put the "Product Info" menu item at the end of the main context menu
  10952.      */
  10953.     _wpInsertPopupMenuItems(somSelf,          // Object
  10954.                             hwndMenu,         // Main context menu
  10955.                             iPosition,        // Position to insert menu at
  10956.                                               // iPosition = next available
  10957.                             hmod,             // Module of menu to insert
  10958.                             ID_MSGBOX,        // Menu to insert
  10959.                             0);               // Submenu to insert menu in
  10960.                                               // 0 = main context menu
  10961.  
  10962.     return (parent_wpModifyPopupMenu(somSelf,
  10963.                                      hwndMenu,
  10964.                                      hwndCnr,
  10965.                                      iPosition));
  10966. }
  10967.  
  10968. /*
  10969.  * METHOD: wpMenuItemSelected
  10970.  *
  10971.  * DESCRIPTION:  Processes input from the menu options that was added.
  10972.  *
  10973.  * NOTES:
  10974.  *
  10975.  *   This method is called when an item in an objects' context menu has been
  10976.  *   selected.
  10977.  */
  10978.  
  10979. SOM_Scope BOOL  SOMLINK hlo_wpMenuItemSelected(Hello somSelf,
  10980.                                                HWND hwndFrame,
  10981.                                                ULONG ulMenuId)
  10982.  
  10983. {
  10984.     /* HelloData *somThis = HelloGetData(somSelf); */
  10985.     HelloMethodDebug("Hello","hlo_wpMenuItemSelected");
  10986.  
  10987.     switch(ulMenuId)
  10988.     {
  10989.        case IDM_OPENHELLO:
  10990.           /*
  10991.            *   Either the object was double clicked on or the Say Hello
  10992.            *   item on the Open submenu was selected.
  10993.            *
  10994.            *   We could call wpOpen here, but wpOpen will open a new view
  10995.            *   no matter what. wpViewObject only opens a new view if
  10996.            *   no open view exists or if mutliple concurrent views are enabled.
  10997.            *   Otherwise, it will give focus to the current open view.
  10998.            *
  10999.            *   wpViewObject should be used whenever possible instead of wpOpen
  11000.            *   to prevent creating multiple open views inadvertently.
  11001.            */
  11002.           _wpViewObject(somSelf,              // Object
  11003.                         NULLHANDLE,           // Workplace Shell
  11004.                                               // internal use only
  11005.                         OPEN_HELLO,           // View to open. This ID must be the
  11006.                                               // same as the menu ID ID_OPENHELLO
  11007.                         0);                   // parameter passed to wpOpen
  11008.           break;
  11009.  
  11010.        case IDM_MSGBOX:
  11011.        {
  11012.           // Message Box menu item was selected
  11013.           WinMessageBox(HWND_DESKTOP,
  11014.                         HWND_DESKTOP,
  11015.                         "Message box displayed from a Hello object's pop-up menu.",
  11016.                         "Workplace Message",
  11017.                         1,
  11018.                         MB_OK       |
  11019.                         MB_MOVEABLE |
  11020.                         MB_INFORMATION);
  11021.           break;
  11022.        }
  11023.  
  11024.        default:
  11025.           return parent_wpMenuItemSelected(somSelf, hwndFrame, ulMenuId);
  11026.     }
  11027.     return TRUE;  /* We processed it */
  11028. }
  11029.  
  11030. /*
  11031.  * METHOD: wpOpen
  11032.  *
  11033.  * DESCRIPTION:  Opens the Hello Workplace Shell window.
  11034.  *
  11035.  * NOTES:
  11036.  *
  11037.  *   This method is called when a new open view of an object is needed,
  11038.  *   i.e. when an item in an object's Open submenu has been selected or
  11039.  *   when an object is double clicked on.  This is equivalent to selecting
  11040.  *   the default item in the object's Open submenu.
  11041.  *
  11042.  *   wpOpen should always open a new view. The Workplace Shell actually
  11043.  *   calls wpViewObject first when an object is double clicked on or an Open
  11044.  *   submenu item is selected. wpViewObject will then call wpOpen if there
  11045.  *   is currently no open view of the selected Open submenu item or if
  11046.  *   mutliple concurrent views of the object are enabled.
  11047.  */
  11048.  
  11049. SOM_Scope HWND  SOMLINK hlo_wpOpen(Hello somSelf,
  11050.                                    HWND hwndCnr,
  11051.                                    ULONG ulView,
  11052.                                    ULONG param)
  11053.  
  11054. {
  11055.    /* HelloData *somThis = HelloGetData(somSelf); */
  11056.    HelloMethodDebug("Hello","hlo_wpOpen");
  11057.  
  11058.    switch (ulView)
  11059.    {
  11060.       case OPEN_HELLO:
  11061.       {
  11062.          // Request to open a Hello Workplace Shell window
  11063.          // Create a standard window
  11064.          HAB     hab;                         // Anchor block handle
  11065.          HWND hwndClient;                     // Client window handle
  11066.          HWND hwndFrame;                      // Frame window handle
  11067.          PWINDOWDATA pWindowData;
  11068.          ULONG flCreate;                      // Window creation flags
  11069.          hab = WinQueryAnchorBlock(HWND_DESKTOP);
  11070.  
  11071.          // Create the class, adding a user word to the window data to
  11072.          // anchor the object use list item for this open view
  11073.          WinRegisterClass(hab,
  11074.                           "hello",
  11075.                           ClientWinProc,
  11076.                           CS_SIZEREDRAW,
  11077.                           sizeof(*pWindowData));
  11078.  
  11079.          flCreate = FCF_SYSMENU       |
  11080.                     FCF_SIZEBORDER    |
  11081.                     FCF_TITLEBAR      |
  11082.                     FCF_MINMAX        |
  11083.                     FCF_SHELLPOSITION |
  11084.                     FCF_TASKLIST;
  11085.  
  11086.          hwndFrame = WinCreateStdWindow(HWND_DESKTOP,
  11087.                                         WS_VISIBLE,
  11088.                                         &flCreate,
  11089.                                         "hello",
  11090.                                         _wpQueryTitle(somSelf),
  11091.                                         0L,
  11092.                                         0,
  11093.                                         ID_FRAME,
  11094.                                         &hwndClient);
  11095.  
  11096.          if (hwndFrame)
  11097.          {
  11098.             WinSetFocus(HWND_DESKTOP, hwndFrame);
  11099.  
  11100.             // Now that we have created an open view, add the view to the
  11101.             // object's use list. This use list is used by wpViewObject and
  11102.             // wpClose to check for existing open views.
  11103.  
  11104.  
  11105.             // Get storage for and initialize a use list item
  11106.             pWindowData = (PWINDOWDATA) _wpAllocMem(somSelf,
  11107.                                                     sizeof(*pWindowData),
  11108.                                                     NULL);
  11109.             memset((PVOID) pWindowData, 0, sizeof(*pWindowData));
  11110.             pWindowData->self            = somSelf;
  11111.             pWindowData->UseItem.type    = USAGE_OPENVIEW;
  11112.             pWindowData->ViewItem.view   = OPEN_HELLO;
  11113.             pWindowData->ViewItem.handle = hwndFrame;
  11114.  
  11115.             // Add the use list item to the object's use list
  11116.             _wpAddToObjUseList(somSelf, &(pWindowData->UseItem));
  11117.  
  11118.             // Save the pointer to the use item in the window words so that
  11119.             // the window procedure can remove it from the list when the window
  11120.             // is closed
  11121.             WinSetWindowPtr(hwndClient, QWL_USER, pWindowData);
  11122.          }
  11123.          return hwndFrame;
  11124.       }
  11125.  
  11126.       // Some other view was requested. Pass the request on to the
  11127.       // parent (WPDataFile) class
  11128.       default:
  11129.          return (parent_wpOpen(somSelf, hwndCnr, ulView, param));
  11130.    }   /* end switch (ulView) */
  11131. }
  11132.  
  11133. /*
  11134.  * METHOD: clsQueryModuleHandle
  11135.  *
  11136.  * DESCRIPTION:
  11137.  *
  11138.  *   Returns the module handle of this class.  If this is the
  11139.  *   first invocation, DosQueryModuleHandle is called to save the handle
  11140.  *   for future invocations.
  11141.  *
  11142.  * RETURN:
  11143.  *
  11144.  *   0              Unsuccessful
  11145.  *   non-zero       Module handle
  11146.  *
  11147.  * NOTES:
  11148.  *
  11149.  *   This method is called when a new open view of an object is needed,
  11150.  *   i.e. when an item in an object's Open submenu has been selected or
  11151.  *   when an object is double clicked on. This is equivalent to selecting
  11152.  *   the default item in the object's Open submenu.
  11153.  */
  11154.  
  11155. SOM_Scope HMODULE  SOMLINK hloM_clsQueryModuleHandle(M_Hello somSelf)
  11156. {
  11157.     M_HelloData *somThis = M_HelloGetData(somSelf);
  11158.     M_HelloMethodDebug("M_Hello","hloM_clsQueryModuleHandle");
  11159.  
  11160.     //  Make sure we already have the module handle
  11161.     if (_hmod == NULLHANDLE)
  11162.     {
  11163.        zString zsPathName;
  11164.        somId   Id;
  11165.  
  11166.         //   Retrieve registered path name of the module (DLL)
  11167.         //   and query the module handle
  11168.        Id = somIdFromString("M_Hello");
  11169.        zsPathName = _somLocateClassFile(SOMClassMgrObject,
  11170.                                         Id,
  11171.                                         M_Hello_MajorVersion,
  11172.                                         M_Hello_MinorVersion);
  11173.        SOMFree(Id);
  11174.        DosQueryModuleHandle(zsPathName, &_hmod);
  11175.     }
  11176.     return (_hmod);
  11177. }
  11178.  
  11179. /*
  11180.  * METHOD: wpclsQueryDefaultView
  11181.  *
  11182.  * DESCRIPTION: Returns the default view for a new instance of this object.
  11183.  *
  11184.  * REMARKS:
  11185.  *
  11186.  *   Return the ID of the default view, OPEN_HELLO. This ID must be the
  11187.  *   same as the ID of the Open submenu item, ID_OPENHELLO.
  11188.  *
  11189.  * NOTES:
  11190.  *
  11191.  *   This method is called to determine which view to open when an object
  11192.  *   of class Hello is double clicked on.
  11193.  */
  11194.  
  11195. SOM_Scope ULONG  SOMLINK hloM_wpclsQueryDefaultView(M_Hello somSelf)
  11196. {
  11197.     /* M_HelloData *somThis = M_HelloGetData(somSelf); */
  11198.     M_HelloMethodDebug("M_Hello","hloM_wpclsQueryDefaultView");
  11199.  
  11200.     return OPEN_HELLO;
  11201. }
  11202.  
  11203. /*
  11204.  * METHOD: wpclsQueryTitle
  11205.  *
  11206.  * DESCRIPTION: Returns the string "Hello Workplace Shell".
  11207.  *
  11208.  * NOTES:
  11209.  *
  11210.  *   This method is called by the Workplace Shell to determine the object
  11211.  *   title when an object of class Hello is created.
  11212.  */
  11213.  
  11214. SOM_Scope PSZ  SOMLINK hloM_wpclsQueryTitle(M_Hello somSelf)
  11215. {
  11216.     // M_HelloData *somThis = M_HelloGetData(somSelf);
  11217.     M_HelloMethodDebug("M_Hello","hloM_wpclsQueryTitle");
  11218.  
  11219.     return "Hello Workplace Shell";
  11220. }
  11221.  
  11222. /*
  11223.  * FUNCTION: ClientWinProc
  11224.  *
  11225.  * DESCRIPTION: Window procedure for the Hello, Workplace Shell window.
  11226.  */
  11227.  
  11228. MRESULT EXPENTRY ClientWinProc (HWND hwnd,
  11229.                                 ULONG msg,
  11230.                                 MPARAM mp1,
  11231.                                 MPARAM mp2)
  11232.  
  11233. {
  11234.     BOOL  fSuccess;  // Return from function
  11235.     switch(msg)
  11236.     {
  11237.         case WM_PAINT:
  11238.         {
  11239.             HPS     hps;               // Cached PS
  11240.             RECTL   rcl;               // Window rectangle
  11241.             CHAR    sz[25];            // String
  11242.  
  11243.             hps      = WinBeginPaint (hwnd , (HPS)0, NULL);
  11244.             fSuccess = GpiErase (hps);
  11245.  
  11246.             WinQueryWindowRect (hwnd, &rcl);
  11247.             strcpy (sz, "Hello, Workplace Shell.");
  11248.             WinDrawText(hps,
  11249.                         strlen(sz),
  11250.                         sz,
  11251.                         &rcl,
  11252.                         CLR_BLACK,
  11253.                         CLR_WHITE,
  11254.                         DT_CENTER |
  11255.                         DT_VCENTER);
  11256.  
  11257.             fSuccess = WinEndPaint (hps);
  11258.             return (MRESULT) NULL;
  11259.         }
  11260.  
  11261.         case WM_CLOSE:
  11262.         {
  11263.            // Get the object pointer and the use list item from the window
  11264.            PWINDOWDATA pWindowData = (PWINDOWDATA) WinQueryWindowPtr(hwnd, QWL_USER);
  11265.  
  11266.            // Remove this window from the object's use list
  11267.            _wpDeleteFromObjUseList(pWindowData->self,&pWindowData->UseItem);
  11268.  
  11269.            // Free the use list item. Note that there is no need to supply a
  11270.            // length since this storage was allocated with wpAllocMem
  11271.            _wpFreeMem(pWindowData->self,(PBYTE)pWindowData);
  11272.  
  11273.            // Destroy the window and return
  11274.            WinDestroyWindow(WinQueryWindow(hwnd, QW_PARENT));
  11275.            return (MRESULT) NULL;
  11276.         }
  11277.  
  11278.         default:
  11279.            return WinDefWindowProc(hwnd, msg, mp1, mp2);
  11280.     }
  11281. }
  11282.  
  11283.  
  11284. ΓòÉΓòÉΓòÉ 16.3.1.3. Resource Code for Hello ΓòÉΓòÉΓòÉ
  11285.  
  11286. The following sample illustrates the resource code (RC): 
  11287.  
  11288. #include "hello.ih"
  11289.  
  11290. MENU ID_OPENHELLO LOADONCALL MOVEABLE DISCARDABLE
  11291. BEGIN
  11292.    MENUITEM "~Say Hello", IDM_OPENHELLO
  11293. END
  11294.  
  11295. MENU ID_MSGBOX LOADONCALL MOVEABLE DISCARDABLE
  11296. BEGIN
  11297.    MENUITEM "~Message Box", IDM_MSGBOX
  11298. END
  11299.  
  11300.  
  11301. ΓòÉΓòÉΓòÉ 16.3.1.4. Make File for Hello ΓòÉΓòÉΓòÉ
  11302.  
  11303. The following sample illustrates the make file (MAK): 
  11304.  
  11305. all:        hello.dll
  11306.  
  11307. hello.dll:  hello.obj hello.res
  11308.             link386 /co /noi /noe /m hello,hello.dll,,somtk pmwp.lib,hello.def;
  11309.             rc hello.res hello.dll
  11310.  
  11311. hello.obj:  hello.c
  11312.             icc /c /Ti /Kb /Gm /Ss /Ge- hello.c
  11313.  
  11314. hello.res:  hello.rc
  11315.             rc -r hello.rc
  11316.  
  11317.  
  11318. ΓòÉΓòÉΓòÉ 16.3.1.5. REXX Files for Hello ΓòÉΓòÉΓòÉ
  11319.  
  11320. The following shows the REXX command file for registering the Hello class: 
  11321.  
  11322. /* */
  11323. call RxFuncAdd "SysLoadFuncs", "RexxUtil", "SysLoadFuncs"
  11324. call SysLoadFuncs
  11325. say  SysRegisterObjectClass("Hello", "C:\OS2\DLL\HELLO.DLL")
  11326.  
  11327. The following shows the REXX command file for creating an instance of the Hello 
  11328. class: 
  11329.  
  11330. /* */
  11331. call RxFuncAdd "SysLoadFuncs", "RexxUtil", "SysLoadFuncs"
  11332. call SysLoadFuncs
  11333. say  SysCreateObject("Hello",,
  11334.                      "My Hello",,
  11335.                      "<WP_DESKTOP>",,
  11336.                      "OBJECTID=<MY_HELLO>")
  11337.  
  11338. The following shows the REXX command file for deregistering the Hello class: 
  11339.  
  11340. /* */
  11341. call RxFuncAdd "SysLoadFuncs", "RexxUtil", "SysLoadFuncs"
  11342. call SysLoadFuncs
  11343. say  SysDeregisterObjectClass("Hello")
  11344.  
  11345.  
  11346. ΓòÉΓòÉΓòÉ 17. REXX Utility Workplace Shell Functions ΓòÉΓòÉΓòÉ
  11347.  
  11348. REXX combines the simplicity of a programming language such as BASIC with 
  11349. features that exist in more powerful languages such as C, PASCAL, or PL/1. Part 
  11350. of the success of REXX has been due in part to having been selected as the 
  11351. Systems Application Architecture Programming Language (SAA/PL). The purpose is 
  11352. to provide a common look and feel across all operating systems. This is 
  11353. important because CUA is the standard that the Workplace Shell uses which is 
  11354. also part of SAA. REXX provides the facility for the Workplace Shell to create, 
  11355. modify, and delete objects. This chapter describes the REXX functions and how 
  11356. to use them in Workplace Shell applications. 
  11357.  
  11358.  
  11359. ΓòÉΓòÉΓòÉ 17.1. About REXX Utility Functions ΓòÉΓòÉΓòÉ
  11360.  
  11361. The power of REXX is often overlooked by many people as to how much benefits 
  11362. one can receive by using a command based language. REXX which stands for 
  11363. restructured extended executor was created to offer an easy way to ask the 
  11364. operating system to perform a special task without writing hundreds or 
  11365. sometimes thousands of lines of computer code to do the same task. The 
  11366. simplicity of REXX is by far its strongest point along with its ease of use. 
  11367. REXX provides the facility for the Workplace Shell to create, modify, and 
  11368. delete objects in a very simplistic way. 
  11369.  
  11370. REXXUTIL is a dynamic link library (REXXUTIL.DLL) that provides specific 
  11371. functionality to the Workplace Shell, which allows manipulating Workplace Shell 
  11372. classes as well as objects. A complete description of the commands can be found 
  11373. in the OS/2 Command Reference or the online version which is located in the 
  11374. OS/2 Information folder. 
  11375.  
  11376. To use a REXXUTIL function in a REXX program, you must first register the 
  11377. function using RxFuncAdd. However, you have the choice of either registering 
  11378. one function using RxFuncAdd or you can register all functions by first 
  11379. registering SysLoadFuncs using RxFuncAdd. The following example shows how to 
  11380. register a single function: 
  11381.  
  11382. call RxFuncAdd 'SysSetObjectData', 'RexxUtil', 'SysSetObjectData'
  11383.  
  11384. The function SysSetObjectData is the only function in this case that is 
  11385. registered by RxFuncAdd. The following example shows how to register all of the 
  11386. functions using RxFuncAdd: 
  11387.  
  11388. call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  11389. call SysLoadFuncs
  11390.  
  11391. Using SysLoadFuncs allows all of the OS/2 sessions to use the REXXUTIL 
  11392. functions. 
  11393.  
  11394.  
  11395. ΓòÉΓòÉΓòÉ 17.2. Using REXX Utility Functions ΓòÉΓòÉΓòÉ
  11396.  
  11397. There are useful functions that pertain to the object oriented Workplace Shell. 
  11398. REXXUTIL provides useful functions that allow the creation, destruction, and 
  11399. the altering of the properties of objects. These functions are listed as 
  11400. follows: 
  11401.  
  11402.    o  SysCreateObject 
  11403.    o  SysDestroyObject 
  11404.    o  SysSetObjectData 
  11405.    o  SysSetIconData 
  11406.    o  SysRegisterObjectClass 
  11407.    o  SysDeregisterObjectClass 
  11408.    o  SysQueryClassList 
  11409.    o  SysGetEa 
  11410.    o  SysPutEa 
  11411.    o  SysIni 
  11412.  
  11413.  
  11414. ΓòÉΓòÉΓòÉ 17.2.1. Creating Objects ΓòÉΓòÉΓòÉ
  11415.  
  11416. The following figure shows the syntax of SysCreateObject: 
  11417.  
  11418. Syntax:  SysCreateObject(class_name,
  11419.                          title,
  11420.                          location,
  11421.                          <setup_string>,
  11422.                          <option>)
  11423.  
  11424. where
  11425.  
  11426. class_name       Name of the Workplace Shell class of which the object
  11427.                  is a member of, such as WPFolder.
  11428. title            New object's title.
  11429. location         Either an object ID, such as <WP_DESKTOP>, or a fully
  11430.                  qualified path name.
  11431. setup_string     A series of keynames that change the behavior of the
  11432.                  object.  The keynames are separated by a semicolons
  11433.                  and values are separated by commas.
  11434. option           An action to be taken if the object class already
  11435.                  exists.  The action could be FAIL, REPLACE, or UPDATE.
  11436.  
  11437. The following sample code creates two objects, one of the class WPFolder and 
  11438. one of the class WPProgram. The program object MyProgram is inserted into the 
  11439. Folder MyFolder. The location specified by MyProgram is the same as the object 
  11440. ID for MyFolder. 
  11441.  
  11442. /* */
  11443. call RxFuncAdd "SysLoadFuncs", "rexxutil", "SysLoadFuncs"
  11444. call SysLoadFuncs
  11445.  
  11446. say SysCreateObject("WPFolder",,
  11447.                     "MyFolder",,
  11448.                     "<WP_DESKTOP>",,
  11449.                     "OBJECTID=<Prefix_MyFolder>")
  11450.  
  11451. say SysCreateObject("WPProgram",,
  11452.                     "MyProgram",,
  11453.                     "<Prefix_MyFolder>",,
  11454.                     "EXENAME=C:\PGM\PGM.EXE;ASSOCFILTER=*.TXT" ,,
  11455.                     "OBJECTID=<Prefix_MyProgram>")
  11456.  
  11457.  
  11458. ΓòÉΓòÉΓòÉ 17.2.2. Destroying Objects ΓòÉΓòÉΓòÉ
  11459.  
  11460. The following figure shows the syntax of SysDestroyObject: 
  11461.  
  11462. Syntax:  SysDestroyObject(object_name)
  11463.  
  11464. where
  11465.  
  11466. object_name     Name of the object that is either the object's ID
  11467.                 assigned to the object when it was created, or the
  11468.                 fully qualified path name of the object to be destroyed.
  11469.  
  11470. The following sample code shows how to destroy and recreate the color palette 
  11471. objects. To destroy the objects first, the setup string must be modified to 
  11472. allow the color palette objects to be destroyed. The setup string NODLETE = NO 
  11473. must be changed to NODELETE = YES, so that the object can be destroyed. 
  11474.  
  11475. /***/
  11476. call RxFuncAdd 'SysLoadFuncs','RexxUtil','SysLoadFuncs'
  11477. call SysLoadFuncs
  11478.  
  11479. /* ColorObjectId  = "<WP_CLRPAL>" */
  11480. ColorObjectId1 = "<WP_LORESCLRPAL>"
  11481. ColorObjectId2 = "<WP_HIRESCLRPAL>"
  11482.  
  11483. ColorObjectLocation = "<WP_CONFIG>"
  11484. call SysSetObjectData ColorObjectId1, "NODELETE=NO"
  11485. call SysSetObjectData ColorObjectId2, "NODELETE=NO"
  11486.  
  11487. /* Call SysDestroyObject ColorObjectId */
  11488. call SysDestroyObject ColorObjectId1
  11489. call SysDestroyObject ColorObjectId2
  11490.  
  11491. rc = SysCreateObject('WPColorPalette',,
  11492.         'Solid Color Palette',,
  11493.         '<WP_CONFIG>',,
  11494.         'AUTOSETUP=LORES;NODELETE=NO;OBJECTID='ColorObjectId1,,
  11495.         'update');
  11496.  
  11497. rc = SysCreateObject('WPColorPalette',,
  11498.         'Mixed Color Palette',,
  11499.         '<WP_CONFIG>',,
  11500.         'AUTOSETUP=HIRES;NODELETE=NO;OBJECTID='ColorObjectId2,,
  11501.         'update');
  11502.  
  11503.  
  11504. ΓòÉΓòÉΓòÉ 17.2.3. Updating Objects ΓòÉΓòÉΓòÉ
  11505.  
  11506. The following figure shows the syntax of SysSetObjectData: 
  11507.  
  11508. Syntax:  SysSetObjectData(object_name, setup_string)
  11509.  
  11510. where
  11511.  
  11512. object_name      Name of the object that is either the object's ID
  11513.                  assigned to the object when it was created, or the
  11514.                  fully qualified path name of the object to be
  11515.                  destroyed.
  11516. setup_string     A series of keynames that change the behavior of the
  11517.                  object.  The keynames are separated by a semicolons
  11518.                  and values are separated by commas.
  11519.  
  11520. Each object's characteristics are modified by the setup string information that 
  11521. is passed to the object. The following sample code shows what types of setup 
  11522. information can be used to modify objects' characteristics: 
  11523.  
  11524. /* */
  11525. call RxFuncAdd "SysLoadFuncs", "rexxutil", "SysLoadFuncs"
  11526. call SysLoadFuncs
  11527.  
  11528. say SysSetObjectData("<WP_TEMPS>",,"NODELETE=NO");
  11529. say SysSetObjectData("C:\DESKTOP",,"OBJECTID=<WP_DESKTOP>")
  11530. say SysSetObjectData("<Prefix_MyProgram",,"OPEN=DEFAULT")
  11531. say SysSetObjectData("<WP_DESKTOP>",,"TITLE=Comany Name Desktop")
  11532. say SysSetObjectData("c:\pgm\pgm.exe",,"ASSOCTYPE=Plain Text, C Code")
  11533.  
  11534.  
  11535. ΓòÉΓòÉΓòÉ 17.2.4. Registering and Deregistering Objects ΓòÉΓòÉΓòÉ
  11536.  
  11537. The following figure shows the syntax of SysRegisterObjectClass: 
  11538.  
  11539. Syntax:  SysRegisterObjectClass(class_name, module_name)
  11540.  
  11541. where
  11542.  
  11543. class_name      Name of the Workplace Shell class of which the object
  11544.                 is a member, such as WPFolder.
  11545. module_name     Name of the DLL from which the object is loaded from.
  11546.  
  11547. The following figure shows the syntax of SysDeregisterObjectClass: 
  11548.  
  11549. Syntax:  SysDeregisterObjectClass(class_name)
  11550.  
  11551. where
  11552.  
  11553. class_name     Name of the Workplace Shell class to deregister.
  11554.  
  11555. In the following sample code REXX registers the class MyClass from the DLL 
  11556. defined with the fully qualified path to the system. All of the properties of 
  11557. the class MyClass are loaded through MYCLASS.DLL. Deregistering the class 
  11558. simply involves passing the class_name to successfully free the class from the 
  11559. system. 
  11560.  
  11561. /* */
  11562. call RxFuncAdd "SysLoadFuncs", "rexxutil", "SysLoadFuncs"
  11563. call SysLoadFuncs
  11564.  
  11565. say SysRegisterObjectClass("MyClass", "c:\pgm\myclass.dll")
  11566. say SysDeregisterObjectClass("MyClass")
  11567.  
  11568. call SysQueryClassList "list."
  11569.  
  11570. do i=1 to list.0
  11571.   say 'class ' i  ' is ' list.i
  11572. end
  11573.  
  11574.  
  11575. ΓòÉΓòÉΓòÉ 17.2.5. Getting Extended Attributes ΓòÉΓòÉΓòÉ
  11576.  
  11577. The following figure shows the syntax of SysGetEA: 
  11578.  
  11579. Syntax:  SysGetEA(file, name, variable)
  11580.  
  11581. where
  11582.  
  11583. file         File containing the extended attribute.
  11584. name         Name of the extended attribute, for example .ICON.
  11585. variable     Name of the REXX variable containing the extended
  11586.              attribute value.
  11587.  
  11588. The Workplace Shell uses the following extended attribute headers: 
  11589.  
  11590.  Extended Attribute       Description 
  11591.  
  11592.  .ASSOCTABLE              Enables an application to indicate the type, 
  11593.                           extension, and icon for the data file that it 
  11594.                           recognizes. 
  11595.  
  11596.  .CLASSINFO               Specifies the class type of the class object. 
  11597.  
  11598.  .ICON                    Specifies the icon that represents the file. 
  11599.  
  11600.  .LONGNAME                Stores or restores a long file name that is copied to 
  11601.                           media (floppy drive, hard drive, tape) not supporting 
  11602.                           long file names. 
  11603.  
  11604.  .TYPE                    Specifies the file type of the file object, such as 
  11605.                           plain text (TXT), bitmap (BMP), or executable (EXE). 
  11606.  
  11607.  The following sample code fragments stores the file's extended attribute icon 
  11608.  data to a temporary file. The icon data file is then modified by using the 
  11609.  icon editor. Once saved, the icon data extended attribute is updated in the 
  11610.  file. 
  11611.  
  11612.   /* */
  11613.   Arg Filename
  11614.   call RxFuncAdd "SysLoadFuncs", "rexxutil", "SysLoadFuncs"
  11615.   call SysLoadFuncs
  11616.  
  11617.   TempName = 'TEMP$.ICO'
  11618.   If (Stream (TempName, 'c', 'query exists') <> ' ') then
  11619.     'ERASE ' TempName     /* If the TempFile exists, erase it */
  11620.  
  11621.   If SysGetEA(Filename, '.icon', 'ICON') = 0 then
  11622.     do   /* Load the icon extended attribute to the TempFile */
  11623.       Parse Var ICON AInfo 5 ICON
  11624.       do I = 1 to Length(ICON)
  11625.         Rc = Charout(TmpName, Substr(Icon, I, 1))
  11626.       end
  11627.     If Length(Icon) \= 0 then Rc = Charout(TempName)
  11628.     end
  11629.  
  11630.   say
  11631.   say 'The icon data for the file ' Filename ' will now be open '
  11632.   say 'into the icon editor.'
  11633.   say 'You can update the icon.'
  11634.   say 'If this is a brand new icon, you will be prompted to '
  11635.   say 'save the data to a file.  Save it to ' TempName '.'
  11636.   say 'When you are ready, press the Enter key.'
  11637.  
  11638.   Rc=SysGetKey()
  11639.  
  11640.   '@ICONEDIT 'TempName                  /* Start the icon editor */
  11641.   Rc = SysSetIcon(Filename, TempName)   /* Update the icon data  */
  11642.                                         /* extended attributes   */
  11643.   '@DEL 'TempName
  11644.   return
  11645.  
  11646.  
  11647. ΓòÉΓòÉΓòÉ 17.2.5.1. Extended Attributes and the Workplace Shell ΓòÉΓòÉΓòÉ
  11648.  
  11649. Applications not written for the Workplace Shell need to be aware of how 
  11650. .LONGNAME and .ASSOCTABLE extended attributes are used by the Workplace Shell. 
  11651.  
  11652. In the Workplace Shell, the user can edit the name of an object. When an object 
  11653. is a file system object, the Workplace Shell renames the file object to match 
  11654. the name the user has entered. When the file system object resides on an HPFS 
  11655. disk, the new file name can have a long name and can accommodate whatever the 
  11656. user has entered. When the file system object resides on a FAT disk, the new 
  11657. file name must be no longer than eight characters. If the user has entered a 
  11658. name longer than eight characters, the Workplace Shell uses the first eight 
  11659. characters to rename the object and places the entire title in the .LONGNAME 
  11660. extended attribute associated with the file system object. This means that the 
  11661. title of a file object is the .LONGNAME extended attribute or the file name, if 
  11662. no .LONGNAME exists. 
  11663.  
  11664. An .ASSOCTABLE extended attribute contains information that associates data 
  11665. files with the applications that create them or that know how to use them. 
  11666. Applications that a data file has been associated with appear in the list of 
  11667. Open actions for the data file. This means that opening the file is equivalent 
  11668. to starting the application that creates or modifies that file. The application 
  11669. is passed the name of the file as a command-line parameter. 
  11670.  
  11671. .ASSOCTABLE extended attributes are defined in an application's resource file, 
  11672. as shown in the following example: 
  11673.  
  11674. ASSOCTABLE assoctable-id [load-option] [mem-option]
  11675. BEGIN
  11676.   association-name, file-match-string [,extended-attribute-flag] [,icon-filename]
  11677. END
  11678.  
  11679. When an application that defines an .ASSOCTABLE is installed in the Workplace 
  11680. Shell, the Workplace Shell automatically creates object templates for each type 
  11681. of data file that has been associated with the application. 
  11682.  
  11683.  
  11684. ΓòÉΓòÉΓòÉ 17.2.6. Updating Extended Attributes ΓòÉΓòÉΓòÉ
  11685.  
  11686. The following figure shows the syntax of SysPutEA: 
  11687.  
  11688. Syntax:  SysPutEA(file, name, variable)
  11689.  
  11690. where
  11691.  
  11692. file         File name containing the extended attribute.
  11693. name         Name of the extended attribute, for example, .ICON.
  11694. variable     New value of the extended attribute.
  11695.  
  11696. The following sample code fragments creates a new extended attribute called 
  11697. MYATTRIBUTE and adds a comment to it: 
  11698.  
  11699. /* */
  11700. call RxFuncAdd "SysLoadFuncs", "rexxutil", "SysLoadFuncs"
  11701. call SysLoadFuncs
  11702.  
  11703. SysPutEA('c:\myattr.cmd', MYATTRIBUTE, 'This is my attribute!!!!!')
  11704.  
  11705.  
  11706. ΓòÉΓòÉΓòÉ 17.2.7. Retrieving All Registered Object Classes ΓòÉΓòÉΓòÉ
  11707.  
  11708. The following figure shows the syntax of SysQueryClassList: 
  11709.  
  11710. Syntax:  SysQueryClassList(stem)
  11711.  
  11712. where
  11713.  
  11714. stem     Name of a stem variable in which all registered classes
  11715.          are placed.
  11716.  
  11717. The following sample code retrieves a complete list of registered objects: 
  11718.  
  11719. /* */
  11720. call RxFuncAdd 'SysLoadFuncs', 'rexxutil', 'SysLoadFuncs'
  11721. call SysLoadFuncs
  11722.  
  11723. SysQueryClassList('Class_list.')
  11724. do cnt = 1 to Class_list.0
  11725.   say Class_list.cnt
  11726. end
  11727.  
  11728.  
  11729. ΓòÉΓòÉΓòÉ 17.2.8. Setting, Querying, and Deleting Keys and Applications ΓòÉΓòÉΓòÉ
  11730.  
  11731. The following figure shows the syntaxes of SysIni: 
  11732.  
  11733. Syntax - Mode 1:  Setting single key value.
  11734.  
  11735.     SysIni([inifile], app, key, val)
  11736.  
  11737. Syntax - Mode 2:  Querying single key value.
  11738.  
  11739.     SysIni([inifile], app, key)
  11740.  
  11741. Syntax - Mode 3:  Deleting a single key.
  11742.  
  11743.     SysIni([inifile], app, key, 'DELETE:')
  11744.  
  11745. Syntax - Mode 4:  Deleting an application and all associated keys.
  11746.  
  11747.     SysIni([inifile], app, ['DELETE:'])
  11748.  
  11749. Syntax - Mode 5:  Querying names of all keys associated
  11750.                   with a certain application.
  11751.  
  11752.     SysIni([inifile], app, 'ALL:', 'stem')
  11753.  
  11754. Syntax - Mode 6:  Querying names of all applications.
  11755.  
  11756.     SysIni([inifile], 'ALL:', 'stem')
  11757.  
  11758. where
  11759.  
  11760. inifile     Name of the INI file that you work with.  This parameter
  11761.             should be a file specification, or one of the following:
  11762.  
  11763.             USER       User INI file (usually C:\OS2\OS2.INI).
  11764.                        This is the default.
  11765.             SYSTEM     System INI file
  11766.                        (usually C:\OS2\OS2SYS.INI).
  11767.             BOTH       For querying invocations, both the user and
  11768.                        system INI files are searched.  For setting
  11769.                        invocations, the user INI file is written to.
  11770.  
  11771. app         Application name or some other meaningful value with which
  11772.             you would like to store keywords.
  11773. key         Name of a keyword that is used to hold data.
  11774. val         Value to associate with the keyword of the specified
  11775.             application.
  11776. stem        Name of the stem variable to store the resultant
  11777.             information in.  STEM.0 will be set equal to the number of
  11778.             elements.
  11779.  
  11780. The following sample code shows how you can use the SysIni function. The code 
  11781. saves the value entered by the user, displays it, and deletes it. 
  11782.  
  11783. /***  Save the user-entered vlaue under the  ***/
  11784. /***  key 'NAME' of the 'MYAPP' application, ***/
  11785. /*** display it, then delete it.             ***/
  11786. pull name .
  11787. call SysIni , 'MYAPP', 'NAME', value  /* Save the value               */
  11788. say  SysIni(, 'MYAPP', 'NAME')        /* Query the value              */
  11789. call SysIni , 'MYAPP'                 /* Delete all MYAPP information */
  11790. exit
  11791.  
  11792. The following sample code displays the application name, keyname, and value of 
  11793. each line of the OS2.INI file: 
  11794.  
  11795. /***  Display all OS2.INI file information to the screen  ****/
  11796. call rxfuncadd sysloadfuncs, rexxutil, sysloadfuncs
  11797. call sysloadfuncs
  11798. call SysIni 'USER', 'All:', 'Apps.'
  11799.  
  11800. if Result \= 'ERROR:' then
  11801.   do i=1 to Apps.0
  11802.     call SysIni 'USER', Apps.i, 'All:', 'Keys'
  11803.  
  11804.     if Result \= 'ERROR:' then
  11805.       do j=1 to Keys.0
  11806.         val = SysIni('USER', Apps.i, Keys.j)
  11807.         say left(Apps.i, 20) left(Keys.j, 20),
  11808.         'Len=x'''Left(d2x(length(val)),4) left(val, 20)
  11809.       end
  11810.     end
  11811.  
  11812. The following sample code fragments retrieves a complete list of object ID 
  11813. information: 
  11814.  
  11815. /* */
  11816. call RxFuncAdd 'SysLoadFuncs', 'rexxutil', 'SysLoadFuncs'
  11817. call SysLoadFuncs
  11818.  
  11819. /* List of object IDs */
  11820. App='PM_Workplace : Location'
  11821. call RxFuncAdd 'SysLoadFuncs', 'rexxutil', 'SysLoadFuncs'
  11822. call SysLoadFuncs
  11823.  
  11824. call SysINI 'USER', App, 'All:', 'Keys'
  11825. if result \= 'Error:' then do
  11826.   call SysCls
  11827.   Say '';Say '';Say 'Listing of object ID information';Say '';
  11828.   parse value SysTextScreenSize() with row col
  11829.   j=row-10
  11830.   do i=1 to Keys.0
  11831.     if trunc(i/j)==i/j then
  11832.     do
  11833.       Say '';Say 'Press any key to display the next screen...'
  11834.       key=SysGetKey()
  11835.       call SysCls
  11836.       Say '';Say '';Say 'Listing of object ID information';Say '';
  11837.     end
  11838.     Say Keys.i
  11839.   end
  11840. end
  11841. else Say 'Error querying for' App
  11842. return
  11843.  
  11844.  
  11845. ΓòÉΓòÉΓòÉ 17.2.9. WorkPlace Shell Setup Strings ΓòÉΓòÉΓòÉ
  11846.  
  11847. The setup strings are used to specify custom attributes for creating Workplace 
  11848. Shell objects. The keynames can be concatenated together in some cases for 
  11849. defining the object. The INI.RC file that is located in the OS/2 subdirectory 
  11850. contain all of the Workplace Shell install objects. These objects are comprised 
  11851. of the title, class_name, setup string, and object ID. The keynames in the 
  11852. setup string might have to be set to values such as ON, OFF, YES, or NO. Every 
  11853. class may define its own set of keynames and values. The Workplace Object 
  11854. Classes section contains the definition of keynames for all classes. All 
  11855. keynames for WPObject class are listed in Workplace Shell Setup Strings. 
  11856.  
  11857.  
  11858. ΓòÉΓòÉΓòÉ 18. Workplace Shell and System Object Model ΓòÉΓòÉΓòÉ
  11859.  
  11860. SOM is the object technology used for the implementation of the Workplace 
  11861. Shell. It provides a language neutral, object-oriented programming methodology 
  11862. that you can use to create Workplace Shell objects and bind them to the 
  11863. Workplace Shell. This chapter describes SOM's architecture, its features and 
  11864. environment. It describes its methods, classes, and finally provides an example 
  11865. of its workings. This chapter is not intended to be a SOM programming guide. It 
  11866. is, however, intended to serve as an introduction to SOM at a level necessary 
  11867. to write Workplace Shell applications. 
  11868.  
  11869.  
  11870. ΓòÉΓòÉΓòÉ 18.1. About Workplace Shell and SOM ΓòÉΓòÉΓòÉ
  11871.  
  11872. The System Object Model (SOM) is IBM's object-oriented programming model which 
  11873. provides you language-neutral object-oriented programming mechanisms, a set of 
  11874. run times for the support and management of objects, frameworks for the 
  11875. implementation of classes and objects, and tools for associated application 
  11876. development. 
  11877.  
  11878. Workplace Shell is the OS/2 user interface and is implemented by using the SOM 
  11879. functions, methods, and structures. SOM's run-time support is what allows 
  11880. Workplace Shell applications to run on different levels of the operating system 
  11881. without having to be recompiled. 
  11882.  
  11883. Object-oriented programming is a programming paradigm based on objects, which 
  11884. are programming constructs designed to reflect items in the real world. An 
  11885. object consists of both the data necessary to describe a real-world item and 
  11886. the functions necessary to describe the behavior of the item. This is in 
  11887. contrast to the structured programming model, which focuses on things that can 
  11888. be done to the data (the functions) and which treats the data only as something 
  11889. to be acted on. Objects bind together the data that describes an item and the 
  11890. functions that act on the data. The data is called the object's state. The 
  11891. functions that define the object's behavior are called methods. Objects are 
  11892. instances, or instantiations of a class. A class is a description of an object. 
  11893. It defines the data that represents the object's state and the methods that the 
  11894. object supports. 
  11895.  
  11896. SOM is designed specifically to support the new, object-oriented paradigm, and 
  11897. to be usable with both procedural (non-object-oriented) languages and 
  11898. object-oriented languages. SOM is not a language-it is a system for defining, 
  11899. manipulating, and releasing class libraries. SOM is used to define classes and 
  11900. methods, while permitting you to choose a language for implementing these 
  11901. methods. Therefore, you will be able to use SOM quickly without having to learn 
  11902. a new language syntax. SOM consists of a run-time library and a set of utility 
  11903. programs that support building, externalizing, and manipulating software 
  11904. objects. 
  11905.  
  11906. SOM objects are language-neutral. They can be defined in one programming 
  11907. language and used by applications or objects written in another programming 
  11908. language. 
  11909.  
  11910.  
  11911. ΓòÉΓòÉΓòÉ 18.1.1. SOM Features ΓòÉΓòÉΓòÉ
  11912.  
  11913. SOM offers three important object-oriented programming features: 
  11914.  
  11915.    o  Encapsulation 
  11916.    o  Inheritance 
  11917.    o  Polymorphism. 
  11918.  
  11919.  
  11920. ΓòÉΓòÉΓòÉ 18.1.1.1. Encapsulation ΓòÉΓòÉΓòÉ
  11921.  
  11922. An object has an external or public view that prescribes how other objects or 
  11923. applications can interact with it. An object also has an internal or private 
  11924. view that prescribes how data and methods actually are implemented. Object 
  11925. implementation is hidden or encapsulated from the public view. 
  11926.  
  11927. You can externalize as much of an object's definition as they choose. However, 
  11928. you should carefully consider what to choose to externalize. Published methods 
  11929. and instance variables become a permanent part of an object's interface. 
  11930. Unnecessary externalization of an object's definition might compromise future 
  11931. compatibility. 
  11932.  
  11933. SOM permits changes to an object's internal implementation without affecting 
  11934. the compatibility of resulting binaries. This means that applications using SOM 
  11935. objects will not require recompilation when the SOM object definitions change. 
  11936. Full forward, binary compatibility can be retained when: 
  11937.  
  11938.    o  Adding new methods 
  11939.  
  11940.    o  Adding, changing, or deleting unpublished instance variables, provided 
  11941.       that old methods still are supported 
  11942.  
  11943.    o  Inserting new classes above your class in the inheritance hierarchy 
  11944.  
  11945.    o  Relocating methods upward in the class hierarchy. 
  11946.  
  11947.  
  11948. ΓòÉΓòÉΓòÉ 18.1.1.2. Inheritance ΓòÉΓòÉΓòÉ
  11949.  
  11950. Inheritance is the derivation of new child classes from existing parent 
  11951. classes. Child classes inherit the characteristics of their parent classes. 
  11952. This means that methods defined for a parent class automatically are defined 
  11953. for the child class. In addition to those they have inherited, child classes 
  11954. also can add their own characteristics. This means that child classes can 
  11955. define new behavior in terms of new methods. These child classes also are known 
  11956. as subclasses. 
  11957.  
  11958.  
  11959. ΓòÉΓòÉΓòÉ 18.1.1.3. Polymorphism ΓòÉΓòÉΓòÉ
  11960.  
  11961. Polymorphism, basically, is many implementations of the same method for two or 
  11962. more classes of objects. This is known in SOM as method overrides, or override 
  11963. resolution. SOM supports various types of polymorphism, so it readily can be 
  11964. mapped into different object-oriented languages. 
  11965.  
  11966. As child classes are derived from parent classes, inherited methods can be 
  11967. overridden. For example, suppose that ClassB is a child of ClassA, as 
  11968. illustrated in the following figure: 
  11969.  
  11970.  
  11971.      Definition of ClassA                       Definition of ClassB
  11972. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ        ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  11973. Γöé                               Γöé        Γöé                                Γöé
  11974. Γöé    MethodA:                   Γöé        Γöé      MethodA:                  Γöé
  11975. Γöé      Print something          ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöé        Print something else    Γöé
  11976. Γöé                               Γöé        Γöé                                Γöé
  11977. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ        ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  11978.  
  11979. MethodA is one of the methods defined for ClassA. It also is one of the methods 
  11980. defined for ClassB and is inherited from ClassA. In SOM, MethodA can be 
  11981. overridden in the definition of ClassB to do different things for ClassB. 
  11982. MethodA, therefore, is defined for both ClassA and ClassB but is implemented 
  11983. differently for ClassA and ClassB. This means that method resolution requires 
  11984. the name of the method as well as the object being acted upon. 
  11985.  
  11986.  
  11987. ΓòÉΓòÉΓòÉ 18.1.2. SOM Run-Time Environment ΓòÉΓòÉΓòÉ
  11988.  
  11989. The SOM run-time environment contains the basic data structures and functions 
  11990. that are used to define, create, and manage classes and objects in terms of 
  11991. other classes. 
  11992.  
  11993. Note:  OS/2 operating system Version 3 includes SOM 2.1 run time and 
  11994.        Workstation DSOM. The OS/2 Version 3 Toolkit contains a subset of the 
  11995.        SOMobjects* 2.1 Toolkit. 
  11996.  
  11997.  Classes are generic definitions of sets of objects and their behaviors. 
  11998.  Classes are defined at compilation time. Class objects are the SOM run-time 
  11999.  implementation of SOM classes. Because the terms class and class object refer 
  12000.  to the same thing, but in different contexts (compilation time and run time), 
  12001.  they can be used interchangeably. Objects are created dynamically during run 
  12002.  time. Objects are instances of classes. The methods that an object responds to 
  12003.  are referred to as instance methods, because any object instance can perform 
  12004.  them. An object's instance methods are defined in its class definition, and 
  12005.  cannot be used unless an object instance already exists. Object instances are 
  12006.  created by methods that operate on the class object to make it produce an 
  12007.  object instance. Class methods that create object instances are called factory 
  12008.  methods or constructors. SOM classes that define factory methods for classes 
  12009.  are called metaclasses. Metaclasses are classes of classes. A class object is 
  12010.  an instance of its metaclass. 
  12011.  
  12012.  The relationship between objects, classes, and metaclasses is shown in the 
  12013.  following figure. 
  12014.  
  12015.                                  Only One of These      Only One of These
  12016.                                    ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  12017.                                    Γöé    The    Γöé         Γöé The Object's Γöé
  12018.                            ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöé  Object's ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöé Metaclass,   Γöé
  12019.        Many of These       Γöé       Γöé Class, "C Γöé         Γöé     "M"      Γöé
  12020.       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ     Γöé       ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  12021.      ΓöîΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé     Γöé
  12022.    ΓöîΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé Γöé     Γöé       Defined here are       Defined here are
  12023.   ΓöîΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé Γöé Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ       instance methods       class methods
  12024.   Γöé     An     Γöé Γöé ΓöéΓöÇΓöÿ             for class "C" that     for class "M" that
  12025.   Γöé   Object,  Γöé ΓöéΓöÇΓöÿ               operate on objects     operate on class
  12026.   Γöé    "O"     ΓöéΓöÇΓöÿ                 "O" (instances of      (object) "C" to
  12027.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ                   class "C").            cause it to produce
  12028.                                                           instances of "C".
  12029.  
  12030.  The SOM environment can be created automatically or explicitly within any 
  12031.  process that uses it. SOM supplies three classes, as shown in the following 
  12032.  table. Classes that make up the SOM run-time environment are packaged with the 
  12033.  operating system in SOM.DLL. 
  12034.  
  12035.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  12036.   ΓöéObject                        ΓöéDescription                   Γöé
  12037.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12038.   ΓöéSOMClass                      ΓöéRoot class for all SOM        Γöé
  12039.   Γöé                              Γöémetaclasses.                  Γöé
  12040.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12041.   ΓöéSOMClassMgr                   ΓöéClass for SOMClassMgrObject.  Γöé
  12042.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12043.   ΓöéSOMObject                     ΓöéRoot class for all SOM        Γöé
  12044.   Γöé                              Γöéclasses.                      Γöé
  12045.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  12046.  
  12047.  SOMObject defines the essential behavior common to all SOM objects. All SOM 
  12048.  classes are subclasses of SOMObject. SOMClass defines the essential behavior 
  12049.  common to all SOM class objects. SOMClass is a subclass of SOMObject and is 
  12050.  the metaclass of the SOMObject class. By definition, SOMClass is its own 
  12051.  metaclass. SOMClassMgr is the class definition for the SOMClassMgrObject that 
  12052.  is created during SOM initialization. During SOM initialization, four objects 
  12053.  are created, as shown in the following figure. Three of these objects are 
  12054.  class objects. 
  12055.  
  12056.                             ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ        ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  12057.                             Γöé  SOMObject   ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöé    SOMClass   Γöé
  12058.                             Γöé Class Object Γöé   ΓöîΓöÇΓöÇΓöÇΓöé  Class Object Γöé
  12059.                             ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ   Γöé    ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  12060.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ   Γöé
  12061.   ΓöéSOMClassMgrObjectΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöé SOMClassMgr  Γöé   Γöé
  12062.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ       Γöé Class Object ΓöéΓöÇΓöÇΓöÇΓöÿ
  12063.                             ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  12064.  
  12065.  The SOMClass class object provides constructors for SOMObject class objects 
  12066.  and for the SOMClassMgr class object. SOMObject defines a set of methods 
  12067.  common to all SOM objects. Because all classes are subclasses of SOMObject, 
  12068.  they inherit the set of methods common to all SOM objects. SOMClassMgrObject 
  12069.  is an instance of the SOMClassMgr class object. SOMClassMgrObject dynamically 
  12070.  loads and unloads class libraries when referenced and tracks instances of 
  12071.  class objects. 
  12072.  
  12073.  
  12074. ΓòÉΓòÉΓòÉ 18.1.3. Creating SOM Classes ΓòÉΓòÉΓòÉ
  12075.  
  12076. The first step in creating a SOM class is to define the class and its 
  12077. relationship to other classes. In SOM, a class is defined in a formal 
  12078. specification language, the SOM interface definition language (IDL). IDL has a 
  12079. language-neutral core (appropriate for any programming language) to which some 
  12080. minor extensions have been added to simplify programming in C. IDL supports C 
  12081. and C++ programming languages. The class definition is saved in an ASCII text 
  12082. file with an extension of .IDL. 
  12083.  
  12084. The second step is to process the IDL file using the SOM compiler to produce a 
  12085. set of language-specific or use-specific binding files for the class. The 
  12086. binding files are then used to build class libraries that can be used by client 
  12087. applications; that is, applications that are to create subclasses or object 
  12088. instances. 
  12089.  
  12090. Note:  Hereafter, any information concerning SOM bindings is specifically 
  12091.        geared toward the SOM C-language bindings, as distinguished from other 
  12092.        SOM language bindings. 
  12093.  
  12094.  
  12095. ΓòÉΓòÉΓòÉ 18.1.3.1. Interface Definition Language ΓòÉΓòÉΓòÉ
  12096.  
  12097. The class definition file provides a complete description of a class, including 
  12098. its relationship to other classes, its instance data, and the methods that it 
  12099. supports and overrides. An interface definition language (IDL) file for the C 
  12100. language also describes information specific to building C-language binding 
  12101. files. 
  12102.  
  12103. An IDL specification for a single class in a single .IDL file generally has the 
  12104. sections specified in the sample code illustrated in the following sample code: 
  12105.  
  12106. //# Include directives
  12107.  
  12108. //# Type declarations
  12109.  
  12110. //# Constant declarations
  12111.  
  12112. //# Exception declarations
  12113.  
  12114. //# Interface declaration
  12115.  
  12116. interface class-name : parent-class
  12117. {
  12118.    //# Constant declarations
  12119.  
  12120.    //# Type declarations
  12121.  
  12122.    //# Exception declarations
  12123.  
  12124.    //# Attribute declarations
  12125.  
  12126.    //# Method declarations
  12127.  
  12128.    //# Implementation statement
  12129.  
  12130.    #ifdef __SOMIDL__
  12131.    implementation
  12132.    {
  12133.       //# Modifier statements
  12134.  
  12135.       //# Passthru statements
  12136.  
  12137.       //# Declarations for instance variables
  12138.    };
  12139.    #endif   // __SOMIDL__
  12140.  
  12141. //# Module declaration
  12142. };
  12143.  
  12144.  
  12145. ΓòÉΓòÉΓòÉ 18.1.3.1.1. Include Directive Statement ΓòÉΓòÉΓòÉ
  12146.  
  12147.  
  12148. Include directives tell the SOM compiler where to find the interface definition 
  12149. language (IDL) files associated with the class. These would be the IDL files 
  12150. for the class' immediate parents, its metaclass, and for any ancestor class for 
  12151. which this class overrides one or more of its methods. 
  12152.  
  12153.  
  12154. ΓòÉΓòÉΓòÉ 18.1.3.1.2. Type, Constant, and Exception Declarations ΓòÉΓòÉΓòÉ
  12155.  
  12156.  
  12157. The declaration section allows for the defining of types, constants, and 
  12158. exception structures. Any declarations defined here (outside of the interface 
  12159. declaration section described below) are not transferred to the binding files 
  12160. by the SOM compiler. 
  12161.  
  12162.  
  12163. ΓòÉΓòÉΓòÉ 18.1.3.1.3. Interface Declarations ΓòÉΓòÉΓòÉ
  12164.  
  12165.  
  12166. The interface declaration section describes the interfaces available to the 
  12167. class. By default, all interfaces defined in this section are public and 
  12168. available to client programs. These include any new methods defined for the 
  12169. class, as well as attributes. Additional types, constants, and exception 
  12170. structures may also be defined in this section. Any declarations defined in 
  12171. this section are exported by the SOM compiler to the language binding files. To 
  12172. make parts of the interface private, surround them with the preprocessor 
  12173. commands as shown in the following sample code: 
  12174.  
  12175. //# Two underscores (__) before and after the word PRIVATE
  12176. #ifdef __PRIVATE__
  12177.  
  12178. //# Private attributes. constants, types, exceptions, and methods here
  12179.  
  12180. #endif
  12181.  
  12182. Declaring attributes creates instance data plus two accessor methods: 
  12183.  
  12184.    o  One to set the value of the attribute 
  12185.  
  12186.    o  One to retrieve the value of the attribute. 
  12187.  
  12188.  
  12189. ΓòÉΓòÉΓòÉ 18.1.3.1.4. Implementation Statement ΓòÉΓòÉΓòÉ
  12190.  
  12191.  
  12192. The implementation statement in the IDL file specifies how the class will be 
  12193. implemented. This includes the following: 
  12194.  
  12195.    o  Names for the binding files 
  12196.  
  12197.    o  Names of inherited methods that will be overriden 
  12198.  
  12199.    o  Version number for the class 
  12200.  
  12201.    o  Metaclass (if any) 
  12202.  
  12203.    o  Release order for the methods 
  12204.  
  12205.    o  Other class information. 
  12206.  
  12207.  
  12208. ΓòÉΓòÉΓòÉ 18.1.3.1.5. Passthru Statement ΓòÉΓòÉΓòÉ
  12209.  
  12210.  
  12211. Passthru statements allow the class implementor to specify blocks of code that 
  12212. the SOM compiler will pass into the Header files it generates. It is 
  12213. recommended that only #include directives be exported to C and C++ programs. 
  12214. Declarations for other data should be written in SOM and exported by the SOM 
  12215. compiler itself. 
  12216.  
  12217.  
  12218. ΓòÉΓòÉΓòÉ 18.1.3.1.6. Instance Variables ΓòÉΓòÉΓòÉ
  12219.  
  12220.  
  12221. Instance variables are intended to be used only by the class' methods and not 
  12222. by client programs or subclasses' methods. Attributes should be used for data 
  12223. that is manipulated by client programs or subclassers. 
  12224.  
  12225.  
  12226. ΓòÉΓòÉΓòÉ 18.1.3.1.7. Default Processing Order ΓòÉΓòÉΓòÉ
  12227.  
  12228.  
  12229. The order in which the SOM compiler processes the attributes and methods 
  12230. described in the IDL file is critical for future compatibility when new 
  12231. attributes or methods might be introduced in the class definition. By default, 
  12232. when the SOM compiler processes the IDL file, it builds the internal data 
  12233. structures for the binding files based on the order in which the attributes and 
  12234. methods are described in the interface section of the IDL file. If, at a later 
  12235. date, new data or methods change the original ordering of methods for the 
  12236. class, the binding files and class library are built differently. Client 
  12237. applications then must be recompiled. 
  12238.  
  12239.  
  12240. ΓòÉΓòÉΓòÉ 18.1.3.1.8. Release Order List ΓòÉΓòÉΓòÉ
  12241.  
  12242.  
  12243. The default processing order for methods can be overriden, however, by 
  12244. including a release order list in the implementation section of the IDL file. 
  12245. The release order list directs the SOM compiler to process the method 
  12246. definitions in the order specified in the list, as opposed to the order in the 
  12247. interface section. New methods should always be added to the end of the release 
  12248. order list to preserve compatibility with client applications. This allows you 
  12249. to describe the methods in the interface section in any order. In particular, 
  12250. new methods may be inserted in the middle of the existing methods without 
  12251. affecting client applications. 
  12252.  
  12253.  
  12254. ΓòÉΓòÉΓòÉ 18.1.3.1.9. Comments ΓòÉΓòÉΓòÉ
  12255.  
  12256.  
  12257. An IDL file is made more readable by the use of comments. Several comment 
  12258. styles are supported by IDL, as shown in the following figure: 
  12259.  
  12260. /***************************************/
  12261. /* This is a comment that will appear  */
  12262. /* in the language binding files.      */
  12263. /***************************************/
  12264.  
  12265. /*
  12266.  * This is a comment that will appear
  12267.  * in the language binding files.
  12268.  */
  12269.  
  12270. // This is a comment that will appear
  12271. // in the language binding files.
  12272.  
  12273. //# This is a comment that will not appear
  12274. //# in the language binding files.
  12275.  
  12276. Because IDL files are used to generate language bindings, comments must be 
  12277. strictly associated with particular elements so that they appear at the 
  12278. appropriate points in the output files. If comments are not placed as 
  12279. prescribed by the IDL syntax, they might not appear where you expect to see 
  12280. them. 
  12281.  
  12282. Comments beginning with //# do not appear in any binding files. They can be 
  12283. placed anywhere in an IDL file. They can be used to comment out sections of an 
  12284. IDL file or to add historical or notational commentary. 
  12285.  
  12286.  
  12287. ΓòÉΓòÉΓòÉ 18.1.4. SOM Macros, Functions, and Data ΓòÉΓòÉΓòÉ
  12288.  
  12289. To effectively use the SOM C-language bindings, an understanding of the SOM 
  12290. naming conventions is needed. These are summarized in the following table: 
  12291.  
  12292. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  12293. ΓöéPrefix    ΓöéUse                                               Γöé
  12294. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12295. Γöésom       ΓöéFunction and method names.                        Γöé
  12296. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12297. ΓöéSOM       ΓöéData items.                                       Γöé
  12298. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  12299.  
  12300. For example, methods for the SOM objects provided by the SOM run time have the 
  12301. prefix, som. Constants, data structures, and pointers to functions, including 
  12302. macro names, have the prefix, SOM. 
  12303.  
  12304. Next, and most importantly, you need to understand SOM macros. SOM macros are 
  12305. used by class implementers and by client programs to: 
  12306.  
  12307.    o  Instantiate objects 
  12308.    o  Access object variables 
  12309.    o  Invoke object methods. 
  12310.  
  12311.  SOM macros shield you from the details and complexity of SOM data structures, 
  12312.  method resolution, and function invocations. There are two types of SOM 
  12313.  macros: 
  12314.  
  12315.    o  Class-specific 
  12316.    o  Non-class specific (or general). 
  12317.  
  12318.  
  12319. ΓòÉΓòÉΓòÉ 18.1.4.1. Class-Specific SOM Macros ΓòÉΓòÉΓòÉ
  12320.  
  12321. Class-specific macros resolve references to class methods, class functions, and 
  12322. class instance data. The macro name or macro parameters contain a class method 
  12323. name, a class function name, an instance variable name, or a class name. The 
  12324. SOM compiler automatically generates and places them in the class Header files. 
  12325. Class implementers can use them by including the class-implementation Header 
  12326. file (.IH) in their source programs. Client programs can use them by including 
  12327. the public class Header file (.H). Because the IH file includes the H file, the 
  12328. class macros defined in the H file are available to both class implementers and 
  12329. clients; and the ones defined in the IH file but not in the H file are 
  12330. available only to class implementers. 
  12331.  
  12332. The simplest macro is the " _ " (underscore) macro. Object instance data can be 
  12333. referred to by preceding the name of the data element with an underscore 
  12334. character, as shown in the following figure: 
  12335.  
  12336. return _var1;
  12337.  
  12338. Underscored-data-name macros are defined in the H public class Header file and 
  12339. are available to both class implementers and client programs. In addition, 
  12340. instance variables may be accessed by somThisvariable_name, as shown in the 
  12341. following figure: 
  12342.  
  12343. return somThisvar1;
  12344.  
  12345. Object methods can be referred to similarly and invoked by preceding the method 
  12346. name with an underscore ( _ ) character, as shown in the following figure: 
  12347.  
  12348. /* method A, with parameters x and y, operates on object obj */
  12349. _methodA(obj, x, y)
  12350.  
  12351. Underscored-method-name macros also are defined in the H public class Header 
  12352. file and are available to both class implementers and client programs. When 
  12353. nonrelated classes independently define methods with the same name, their 
  12354. methods can be invoked with a variation of this macro. The method name is 
  12355. prefixed with the underscore ( _ ) character and class name, as shown in the 
  12356. following figure: 
  12357.  
  12358. #include "classa.h"
  12359. #undef _methodA
  12360. #include "classa.h"
  12361.  
  12362. /* methodA, defined for ClassA objects,    */
  12363. /* operates on ClassA instance object obj1 */
  12364. ClassA_methodA (obj1);
  12365.  
  12366. /* methodA, defined for unrelated ClassB objects, */
  12367. /* operates on ClassB instance object obj2        */
  12368. ClassB_methodA (obj2);
  12369.  
  12370. Class objects also can be referred to by preceding the class name with an 
  12371. underscore character. Underscored-class-name macros also are defined in the H 
  12372. public class Header file and are available to both class implementers and 
  12373. client programs. 
  12374.  
  12375. Other class-specific macros are summarized in the following table: 
  12376.  
  12377. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  12378. ΓöéMacros              ΓöéFunction                                          Γöé
  12379. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12380. ΓöéAccess instance dataΓöéget_<instance variable>                           Γöé
  12381. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12382. Γöé                    Γöé<classname>GetData                                Γöé
  12383. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12384. ΓöéInstantiate objects Γöé<classname>New                                    Γöé
  12385. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12386. Γöé                    Γöé<classname>Renew                                  Γöé
  12387. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12388. ΓöéInvoke methods      ΓöéSOM_Resolve                                       Γöé
  12389. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12390. Γöé                    ΓöéSOM_ResolveNoCheck                                Γöé
  12391. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12392. ΓöéInvoke methods for  Γöé<classname>_parents_<methodname>                  Γöé
  12393. Γöéeach parent         Γöé                                                  Γöé
  12394. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12395. ΓöéInvoke parent       Γöé<classname>_parent_<parentclassname> _<methodname>Γöé
  12396. Γöémethods             Γöé                                                  Γöé
  12397. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12398. ΓöéTrace methods       Γöé<classname>MethodDebug                            Γöé
  12399. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  12400.  
  12401. Of the macros listed in the previous table, <classname>GetData and the parent 
  12402. method macros are defined in the IH file, but not in the H file. They are 
  12403. available only for class implementers. 
  12404.  
  12405. A class-specific function also is defined in the H file associated with a 
  12406. class. This function, <classname>NewClass, creates the class object. It is 
  12407. invoked automatically when an object is instantiated through the <classname>New 
  12408. class macro. 
  12409.  
  12410.  
  12411. ΓòÉΓòÉΓòÉ 18.1.4.2. General SOM Macros and Functions ΓòÉΓòÉΓòÉ
  12412.  
  12413. SOM provides a set of non-class-specific, or general SOM macros and functions 
  12414. that support: 
  12415.  
  12416.    o  ID manipulation 
  12417.    o  Debugging 
  12418.    o  Error handling 
  12419.    o  Getting object information. 
  12420.  
  12421.  General SOM macros are defined in the SOM.H Header file. Because SOM.H is 
  12422.  included in the class Header (H and IH) files, SOM macros are available to 
  12423.  class implementers and client programs. 
  12424.  
  12425.  
  12426. ΓòÉΓòÉΓòÉ 18.1.4.2.1. SOM ID Manipulation ΓòÉΓòÉΓòÉ
  12427.  
  12428.  
  12429. IDs are numbers that uniquely represent strings. They can be used in SOM to 
  12430. identify method names, class names, and descriptors. Typically, they are used 
  12431. to provide a fast and efficient means of comparing the strings they represent. 
  12432. SOM provides a set of macros and functions, as shown in the following table, 
  12433. that can be used to manipulate SOM IDs. 
  12434.  
  12435. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  12436. ΓöéType                ΓöéInterface                               Γöé
  12437. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12438. ΓöéFunctions           ΓöésomBeginPersistentIds                   Γöé
  12439. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12440. Γöé                    ΓöésomEndPersistentIds                     Γöé
  12441. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12442. Γöé                    ΓöésomRegisterId                           Γöé
  12443. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12444. Γöé                    ΓöésomSetExpectedIds                       Γöé
  12445. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12446. Γöé                    ΓöésomTotalRegIds                          Γöé
  12447. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12448. Γöé                    ΓöésomUniqueKey                            Γöé
  12449. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12450. ΓöéMacros              ΓöéSOM_CheckID                             Γöé
  12451. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12452. Γöé                    ΓöéSOM_CompareIDs                          Γöé
  12453. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12454. Γöé                    ΓöéSOM_IDFromString                        Γöé
  12455. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12456. Γöé                    ΓöéSOM_StringFromID                        Γöé
  12457. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  12458.  
  12459. Initially an ID is a pointer to a string. A SOM ID automatically is converted 
  12460. to an internal ID representation by the SOM_CheckID macro or by the first 
  12461. invocation of any of the ID manipulation macros. Because the representation of 
  12462. an ID changes, SOM IDs are of a special data type, somId. 
  12463.  
  12464.  
  12465. ΓòÉΓòÉΓòÉ 18.1.4.2.2. SOM Debugging ΓòÉΓòÉΓòÉ
  12466.  
  12467.  
  12468. The SOM run-time library provides a means of generating character output by 
  12469. invoking macros and functions that call a replaceable SOM procedure called 
  12470. SOMOutCharRoutine. These macros and functions are available to assist you with 
  12471. debugging an application. Output generated by the debug macros can be 
  12472. conditionally suppressed or produced based on the setting of four global 
  12473. variables. The following table summarizes the SOM debugging macros and the 
  12474. global variables that affect them: 
  12475.  
  12476. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  12477. ΓöéMacro                         ΓöéControl Variables             Γöé
  12478. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12479. ΓöéSOM_Assert                    ΓöéSOM_AssertLevel               Γöé
  12480. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12481. ΓöéSOM_Expect                    ΓöéSOM_WarnLevel                 Γöé
  12482. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12483. ΓöéSOM_TestC                     ΓöéSOM_WarnLevel                 Γöé
  12484. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12485. ΓöéSOM_WarnMsg                   ΓöéSOM_WarnLevel                 Γöé
  12486. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  12487.  
  12488. In addition to the debug macros, SOM provides a function, somPrintf, that 
  12489. unconditionally generates character output. The interface to somPrintf is 
  12490. identical to the C-library printf routine. 
  12491.  
  12492. Note:  For more detail on debugging SOM, see Debugging Workplace Shell 
  12493.        Applications. 
  12494.  
  12495.  
  12496. ΓòÉΓòÉΓòÉ 18.1.4.2.3. SOM Error Handling ΓòÉΓòÉΓòÉ
  12497.  
  12498.  
  12499. The SOM run-time library also provides a way to handle SOM errors by invoking 
  12500. macros (SOM_ERROR and SOM_TEST) that call a replaceable SOM procedure called 
  12501. SomError. SomError produces a message, an error code and, if appropriate, can 
  12502. end the process where the error occurred. SOM errors are classified by 
  12503. severity, which is indicated in the low-order digit of the SOM error code. 
  12504. There are three SOM error classes, or severity levels, as shown in the 
  12505. following table: 
  12506.  
  12507. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  12508. ΓöéSeverity Level ΓöéDescription                                  Γöé
  12509. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12510. ΓöéSOM_Fatal      ΓöéAbnormal and irrecoverable.                  Γöé
  12511. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12512. ΓöéSOM_Ignore     ΓöéNormal and informational only.               Γöé
  12513. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12514. ΓöéSOM_Warn       ΓöéAbnormal but not irrecoverable.              Γöé
  12515. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  12516.  
  12517.  
  12518. ΓòÉΓòÉΓòÉ 18.1.4.2.4. Obtaining SOM Object Information ΓòÉΓòÉΓòÉ
  12519.  
  12520.  
  12521. A SOM class implementer or client program can easily determine the class of an 
  12522. object by invoking the SOM_GetClass macro. This macro returns a pointer to the 
  12523. class object. All SOM class objects support methods, for example, 
  12524. somGetInstanceSize, that return information about objects they create. 
  12525. Therefore, by determining the class of an object and invoking class object 
  12526. methods, more can be learned about the original object. 
  12527.  
  12528.  
  12529. ΓòÉΓòÉΓòÉ 18.1.4.2.5. Replaceable SOM Functions ΓòÉΓòÉΓòÉ
  12530.  
  12531.  
  12532. The SOM run-time environment uses SOM functions that perform memory management, 
  12533. DLL management, character output, and error handling. These functions are 
  12534. replaceable, which means that you can override them by supplying your own 
  12535. version of the default SOM functions. Replaceable SOM functions are summarized 
  12536. in the followig table: 
  12537.  
  12538. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  12539. ΓöéCategory            ΓöéFunctions                               Γöé
  12540. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12541. ΓöéCharacter Output    ΓöéSOMOutCharRoutine                       Γöé
  12542. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12543. ΓöéDLL Management      ΓöéSOMClassInitFuncName                    Γöé
  12544. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12545. Γöé                    ΓöéSOMDeleteModule                         Γöé
  12546. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12547. Γöé                    ΓöéSOMLoadModule                           Γöé
  12548. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12549. ΓöéError Handling      ΓöéSOMError                                Γöé
  12550. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12551. ΓöéMemory Management   ΓöéSOMCalloc                               Γöé
  12552. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12553. Γöé                    ΓöéSOMFree                                 Γöé
  12554. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12555. Γöé                    ΓöéSOMMalloc                               Γöé
  12556. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12557. Γöé                    ΓöéSOMRealloc                              Γöé
  12558. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  12559.  
  12560.  
  12561. ΓòÉΓòÉΓòÉ 18.2. Using Workplace Shell and SOM ΓòÉΓòÉΓòÉ
  12562.  
  12563. This section describes how to: 
  12564.  
  12565.    o  Program with objects 
  12566.  
  12567.    o  Use a release order list 
  12568.  
  12569.    o  Process IDL files 
  12570.  
  12571.    o  Implement a simple class 
  12572.  
  12573.    o  Create and manipulate SOM objects 
  12574.  
  12575.    o  Override methods 
  12576.  
  12577.    o  Define metaclasses 
  12578.  
  12579.    o  Build SOM class libraries 
  12580.  
  12581.    o  Convert CSC files to IDL files. 
  12582.  
  12583.  
  12584. ΓòÉΓòÉΓòÉ 18.2.1. Programming with Objects ΓòÉΓòÉΓòÉ
  12585.  
  12586. An example might make object-oriented programming concepts clearer. A stack is 
  12587. a common programming construct, permitting data to be stored and retrieved in a 
  12588. Last-In, First-Out (LIFO) manner, that is, the last data element placed on the 
  12589. stack is the first element that is retrieved from the stack. 
  12590.  
  12591. The data structure for the stack describes the stack, a place to store the data 
  12592. put on the stack and a variable to keep track of the location of the top of the 
  12593. stack. Given the definition of the data structure, multiple instances of the 
  12594. stack can be declared within a program. 
  12595.  
  12596. There are two basic operations that can be performed on a stack: pushing data 
  12597. onto the stack and popping data off from the stack. It also is beneficial to 
  12598. dynamically create a stack. Functions to perform these activities must be 
  12599. defined. 
  12600.  
  12601. The following sample code shows the definition of a stack data structure and 
  12602. functions and the implementation for the Push function: 
  12603.  
  12604. /* Define the stack */
  12605. struct stackType
  12606. {
  12607.   void *stackArray[STACK_SIZE];
  12608.   int stackTop;
  12609. };
  12610. typedef struct stackType Stack;
  12611.  
  12612. /* Define the stack's functions */
  12613. Stack *Create();                /* Create a new stack                  */
  12614. void Push(Stack *thisStack,     /* Push an element onto the stack      */
  12615.           void *nextElement);
  12616. void *Pop(Stack *thisStack);    /* Pop an element off from the stack   */
  12617.  
  12618. /* The definition of the Push function is provided as an example.  */
  12619. /* The rest of the functions would be defined in a similar manner. */
  12620. void Push(Stack *thisStack, void *nextElement)
  12621. {
  12622.   thisStackstackArray[thisStackstackTop] = nextElement;
  12623.   thisStackstackTop++;
  12624. }
  12625.  
  12626. A client program might use this stack to create a stack of words needing 
  12627. interpretation, as in the following sample code: 
  12628.  
  12629. main()
  12630. {
  12631.   Stack *WordStack;
  12632.  
  12633.   char *Subject = "Emily";
  12634.   char *Verb    = "eats";
  12635.   char *Object  = "ice cream";
  12636.   char *NextWord;
  12637.  
  12638.   WordStack = Create();
  12639.   Push(WordStack, Object);
  12640.   Push(WordStack, Verb);
  12641.   Push(WordStack, Subject);
  12642.      .
  12643.      .
  12644.      .
  12645.  
  12646.   while (NextWord = Pop(WordStack))
  12647.   {
  12648.     printf("%s\n", NextWord);
  12649.      .
  12650.      .
  12651.      .
  12652.   }
  12653. }
  12654.  
  12655. The stack is an example of a class. The stack contains two data elements, 
  12656. stackArray and stackTop, and supports three methods: Create, Push, and Pop. 
  12657. WordStack is an object of class Stack; it also can be called an instance of a 
  12658. stack. 
  12659.  
  12660. Methods must know the specific object on which they are to operate, which is 
  12661. called the target object or, sometimes, the receiving object. Notice that each 
  12662. method (except Create) takes as its first parameter a pointer to the target 
  12663. object. This is because a program might have many objects of a given class, and 
  12664. each is a potential target for the class methods. 
  12665.  
  12666.  
  12667. ΓòÉΓòÉΓòÉ 18.2.2. Using a Release Order List ΓòÉΓòÉΓòÉ
  12668.  
  12669. The release order list is specified using the releaseorder modifier in the 
  12670. implementation section of the IDL file, as shown in the following sample code. 
  12671. In this example, the release order list groups related methods and data 
  12672. accordingly, that is, by instance variable and the functions that operate on 
  12673. that instance variable. 
  12674.  
  12675. #ifndef  example_idl
  12676. #define  example_idl
  12677. #include <somobj.idl>
  12678.  
  12679. interface Example : SOMObject
  12680.  
  12681. {
  12682.   attribute string         szVar1;
  12683.   attribute unsigned long  ulVar2;
  12684.  
  12685.   void Show_All_Vars();
  12686.  
  12687.   #ifdef __SOMIDL__
  12688.   implementation
  12689.   {
  12690.     releaseorder:  Show_All_Vars,
  12691.                    _get_szVar1,
  12692.                    _set_szVar1,
  12693.                    _get_ulVar2,
  12694.                    _set_ulVar2;
  12695.  
  12696.     //# Class modifiers
  12697.     callstyle    = oidl;    // For compatibility with SOM1
  12698.     majorversion = 1;
  12699.     minorversion = 2;
  12700.   };
  12701.  #endif /* __SOMIDL__ */
  12702. };
  12703. #endif  /* Example_idl */
  12704.  
  12705. If a third attribute variable is added to the class definition file, 
  12706. compatibility with clients of the Example class defined in the previous sample 
  12707. code can be maintained by modifying the release order, as shown in the 
  12708. following sample code: 
  12709.  
  12710. #ifndef  example_idl
  12711. #define  example_idl
  12712. #include <somobj.idl>
  12713.  
  12714. interface Example : SOMObject
  12715.  
  12716. {
  12717.   attribute string         szVar1;
  12718.   attribute char           chVar3;   /* New data added */
  12719.   attribute unsigned long  ulVar2;
  12720.  
  12721.   void Show_All_Vars();
  12722.  
  12723.   #ifdef __SOMIDL__
  12724.   implementation
  12725.   {
  12726.    /* Add new methods at the end of the release order */
  12727.    /* list to maintain compatibility with clients     */
  12728.     releaseorder:  Show_All_Vars,
  12729.                    _get_szVar1,
  12730.                    _set_szVar1,
  12731.                    _get_ulVar2,
  12732.                    _set_ulVar2,
  12733.                    _get_chVar3,
  12734.                    _set_chVar3;
  12735.  
  12736.     //# Class modifiers
  12737.  
  12738.     callstyle = oidl;    // For compatibility with SOM1
  12739.     majorversion = 1;
  12740.     minorversion = 2;
  12741.   };
  12742. #endif /* __SOMIDL__ */
  12743. };
  12744. #endif  /* example_idl */
  12745.  
  12746. In the previous figure, the new attribute chVar3 is added between the two 
  12747. existing attributes. The new method names, _get_chVar3 and _set_chVar3, are 
  12748. added to the end of the release order list. 
  12749.  
  12750. Without a release order list, the data and methods in the first version of the 
  12751. Example class are processed in the order in which they occur in the file, as 
  12752. shown in in the following figure: 
  12753.  
  12754. _get_szVar1, _set_szVar1, _get_ulVar2, _set_ulVar2, Show_All_Vars
  12755.  
  12756. Without a release order list, the methods in the second version of the Example 
  12757. class are processed in the order in which they occur in the file, as shown in 
  12758. in the following figure: 
  12759.  
  12760. _get_szVar1, _set_szVar1, _get_chVar3, _set_Var3, _get_ulVar2, _set_ulVar2, Show_All_Vars
  12761.  
  12762. The method information maintained by SOM in the object data structures built 
  12763. for the first version of the Example class does not match that built for the 
  12764. second version of the Example class. The second version is not compatible with 
  12765. clients of the first version. Specifying a release order list, and adding new 
  12766. data and methods at the end of the list, ensures client compatibility. 
  12767.  
  12768.  
  12769. ΓòÉΓòÉΓòÉ 18.2.3. Processing IDL Files ΓòÉΓòÉΓòÉ
  12770.  
  12771. The following figure shows how an IDL file is processed by the SOM compiler: 
  12772.  
  12773.  
  12774.      Environment Variables                               C Bindings
  12775.      ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ                           ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  12776.      ΓöéΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ  Γöé                           Γöé ΓöîΓöÇΓöÇΓöÇΓöÇΓöÉ ΓöîΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé
  12777.      ΓöéΓöé SET SMINCLUDE= Γöé  Γöé                           Γöé Γöé.IH Γöé Γöé .H Γöé Γöé
  12778.      ΓöéΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ  Γöé         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ        Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÿ ΓööΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé
  12779.      ΓöéΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ  ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöé        Γöé    ΓöîΓöÇΓöÇΓöé ΓöîΓöÇΓöÇΓöÇΓöÇΓöÉ ΓöîΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé
  12780.      ΓöéΓöé SET SMEMIT=    Γöé  Γöé         Γöé  SOM   Γöé    Γöé   Γöé Γöé .C Γöé Γöé.PDLΓöé Γöé
  12781.      ΓöéΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ  Γöé     ΓöîΓöÇΓöÇΓöéCompilerΓöéΓöÇΓöÇΓöÇΓöÇΓöñ   Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÿ ΓööΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé
  12782.      ΓöéΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ  Γöé     Γöé   Γöé        Γöé    Γöé   Γöé        ΓöîΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé
  12783.      ΓöéΓöé SET SMTMP=     Γöé  Γöé     Γöé   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ    Γöé   Γöé        Γöé.DEFΓöé Γöé
  12784.      ΓöéΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ  Γöé     Γöé                 Γöé   Γöé        ΓööΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé
  12785.      ΓöéΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ  Γöé     Γöé                 Γöé   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  12786.      ΓöéΓöé SET SOMIR=     Γöé  Γöé     Γöé                 ΓöéOR
  12787.      ΓöéΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ  Γöé     Γöé                 Γöé     C++ Bindings
  12788.      ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ     Γöé                 Γöé   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  12789.                                 Γöé                 Γöé   Γöé ΓöîΓöÇΓöÇΓöÇΓöÇΓöÉ ΓöîΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé
  12790.       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ        Γöé                 Γöé   Γöé Γöé.XIHΓöé Γöé.XH Γöé Γöé
  12791.       Γöé .IDL           ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ                 ΓööΓöÇΓöÇΓöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÿ ΓööΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé
  12792.       ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ                              Γöé ΓöîΓöÇΓöÇΓöÇΓöÇΓöÉ ΓöîΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé
  12793.                                                       Γöé Γöé.CPPΓöé Γöé.PDLΓöé Γöé
  12794.                                                       Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÿ ΓööΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé
  12795.                                                       Γöé        ΓöîΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé
  12796.                                                       Γöé        Γöé.DEFΓöé Γöé
  12797.                                                       Γöé        ΓööΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé
  12798.                                                       ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  12799.  
  12800. The SOM compiler processes the IDL file for a SOM class and generates a set of 
  12801. language binding files. The file name of a SOM C-language binding file 
  12802. corresponds to that of the IDL file processed by the SOM compiler, unless the 
  12803. filestem modifier was specified in the IDL file. Each SOM C-language file has a 
  12804. different extension. For example, the SOM compiler processes EXAMPLE.IDL and 
  12805. generates EXAMPLE.C, EXAMPLE.H, and so forth. The language binding files 
  12806. generated by the SOM compiler are described in the following table: 
  12807.  
  12808. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  12809. ΓöéC Extension ΓöéC++         ΓöéDescription                         Γöé
  12810. Γöé            ΓöéExtension   Γöé                                    Γöé
  12811. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12812. Γöé.C          Γöé.CPP        ΓöéTemplate for C-language source      Γöé
  12813. Γöé            Γöé            Γöéprogram for the class               Γöé
  12814. Γöé            Γöé            Γöéimplementation.                     Γöé
  12815. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12816. Γöé.DEF        Γöé.DEF        ΓöéInstructions to the Linker about howΓöé
  12817. Γöé            Γöé            Γöéto build a class library.           Γöé
  12818. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12819. Γöé.H          Γöé.XH         ΓöéPublic Include file for all         Γöé
  12820. Γöé            Γöé            ΓöéC-language programs that need to    Γöé
  12821. Γöé            Γöé            Γöéaccess the SOM class.               Γöé
  12822. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12823. Γöé.IH         Γöé.XIH        ΓöéImplementation header containing    Γöé
  12824. Γöé            Γöé            Γöémost of the automatically generated Γöé
  12825. Γöé            Γöé            Γöéimplementation details about the    Γöé
  12826. Γöé            Γöé            Γöéclass.                              Γöé
  12827. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12828. Γöé.PDL        Γöé.PDL        ΓöéLanguage-neutral form and subset of Γöé
  12829. Γöé            Γöé            Γöéthe SOM IDL file with               Γöé
  12830. Γöé            Γöé            Γöéprivate-implementation detail       Γöé
  12831. Γöé            Γöé            Γöéremoved. This file should be        Γöé
  12832. Γöé            Γöé            Γöé"published" (or exported, made      Γöé
  12833. Γöé            Γöé            Γöéavailable) to users of the class.   Γöé
  12834. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  12835.  
  12836. Some of these files contain the public interface for the class; others contain 
  12837. the private interface. Some files are used to implement the class and its 
  12838. subclasses, and some are used by client programs that create and manipulate 
  12839. object instances of the class. 
  12840.  
  12841. The IH and C files are the C-language source files for the class 
  12842. implementation. The IH file is included automatically in the C file. The IDL 
  12843. file is specified in the Include section of the class definition files for 
  12844. subclasses of the class. The H file must be included in client programs to 
  12845. create and manipulate object instances of the class. Separate public and 
  12846. private versions of the .H and .IDL files can be generated by the SOM tools. 
  12847.  
  12848. A set of environment variables, as shown in the following table, control the 
  12849. SOM-compiler processing. 
  12850.  
  12851. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  12852. ΓöéVariable       ΓöéDescription                                  Γöé
  12853. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12854. ΓöéSMEMIT         ΓöéSpecifies which output files are to be       Γöé
  12855. Γöé               Γöégenerated.                                   Γöé
  12856. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12857. ΓöéSMINCLUDE      ΓöéSpecifies the location of the class          Γöé
  12858. Γöé               Γöédefinition files (IDL).                      Γöé
  12859. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12860. ΓöéSMTMP          ΓöéSpecifies the directory to be used for       Γöé
  12861. Γöé               Γöéintermediate files.                          Γöé
  12862. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12863. ΓöéSOMIR          ΓöéSpecifies the names of interface repository  Γöé
  12864. Γöé               Γöéfiles.                                       Γöé
  12865. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  12866.  
  12867. SMTMP is optional and defaults to the root directory of the current drive. If 
  12868. the files specified in the Include section of the class definition file are 
  12869. enclosed in double quotation marks, SMINCLUDE is optional and defaults to the 
  12870. root directory of the current drive. If the files specified in the Include 
  12871. section of the class definition file are enclosed in angled brackets ( < > ), 
  12872. SMINCLUDE is required for the SOM-compiler processing. SMEMIT is used to 
  12873. indicate which bindings files are generated. 
  12874.  
  12875.  
  12876. ΓòÉΓòÉΓòÉ 18.2.4. Implementing a Simple Class ΓòÉΓòÉΓòÉ
  12877.  
  12878. The language binding files generated by the SOM compiler include a template for 
  12879. the C-language source program for the class implementation. This program 
  12880. template contains stub procedures for all new and override methods specified in 
  12881. the class definition file. You must supply the code implementation for the 
  12882. stub-method procedures. The sample codes illustrated in the following figures 
  12883. show the stages in this process: 
  12884.  
  12885. /*
  12886.  * A class defining a set of objects (dogs)
  12887. */
  12888. #ifndef dog1_idl
  12889. #define dog1_idl
  12890. #include <somobj.idl>
  12891.  
  12892. interface Dog : SOMObject
  12893. {
  12894.   void Bark();
  12895.  
  12896.   // Have the dog bark
  12897.  
  12898.   #ifdef __SOMIDL__
  12899.   implementation
  12900.   {
  12901.     releaseorder:  Bark;
  12902.  
  12903.     //# Class modifiers
  12904.  
  12905.     callstyle = oidl;    // For compatibility with SOM1
  12906.     majorversion = 1;
  12907.     minorversion = 2;
  12908.   };
  12909.   #endif /* __SOMIDL__ */
  12910. };
  12911. #endif  /* dog1_idl */
  12912.  
  12913. In the previous sample code, the Dog class is defined. According to this class 
  12914. definition file, the Dog class is derived from the SOMObject class. The 
  12915. behavior of the SOMObject class is defined in the file, SOMOBJ.IDL, which was 
  12916. generated by the SOM compiler when the SOMObject class was implemented. Object 
  12917. instances of the Dog class inherit the behavior of its parent class SOMObject 
  12918. by specifying the SOMOBJ.IDL file in the Include section of the Dog class 
  12919. definition file. This means that all methods that can act on instances of 
  12920. SOMObject can act on the Dog class objects. 
  12921.  
  12922. In the real world, dogs have many characteristics and behaviors. A 
  12923. comprehensive definition of the Dog class would include methods that relate to 
  12924. these characteristics and behaviors. In this example, the only behavior that is 
  12925. defined is barking. The behavior, "dogs can bark" corresponds to the prototype 
  12926. of the "bark" method specified in the Methods section of the class definition 
  12927. file. 
  12928.  
  12929. The SOM compiler processes the DOG.IDL file as shown in the previous sample 
  12930. code and generates the DOG.C C-language source-program template shown in the 
  12931. following figure. Notice that DOG.IH, another file generated by the SOM 
  12932. compiler, is included automatically in this program template. This file 
  12933. contains the data structures, macros, and functions for accessing data and 
  12934. methods for object instances of the Dog class. This file also provides stubs 
  12935. for all methods prototyped in the Methods section of the DOG.IDL file. 
  12936.  
  12937. /*
  12938. *  This file was generated by the SOM compiler and Emitter framework.
  12939. *  Generated using:  SOM Emitter emitctm: 2.38
  12940. */
  12941.  
  12942. #ifndef SOM_Module_dog1_Source
  12943. #define SOM_Module_dog1_Source
  12944. #endif
  12945.  
  12946. #define Dog_Class_Source
  12947.  
  12948. #include "dog1.ih"
  12949.  
  12950. /*
  12951.  * Have the dog bark
  12952. */
  12953.  
  12954. SOM_Scope void  SOMLINK Bark(Dog *somSelf)
  12955. {
  12956.     /* DogData *somThis = DogGetData(somSelf); */
  12957.     DogMethodDebug("Dog","Bark");
  12958. }
  12959.  
  12960. The general form for a method stub is shown in the following figure: 
  12961.  
  12962. SOM_Scope void SOMLINK <methodname>(<classname> *somSelf)
  12963. {
  12964.   <classname>Data *somThis = <classname>GetData(somSelf);
  12965.   <classname>MethodDebug("<classname>", "<methodname>");
  12966. }
  12967.  
  12968. SOM_Scope and SOMLINK are C macros used internally with the C-binding files. 
  12969.  
  12970.  
  12971. ΓòÉΓòÉΓòÉ 18.2.4.1. Using somSelf ΓòÉΓòÉΓòÉ
  12972.  
  12973. somSelf is a pointer to an object instance of the somSelf class <classname>. 
  12974. Because the same method can be invoked on different objects but implemented 
  12975. differently (polymorphism), a pointer to the object being operated on is 
  12976. required as a parameter in the method invocation. The first parameter in the 
  12977. method invocation always is somSelf. This means that if the method prototype in 
  12978. DOG.IDL for the "bark" method is specified as shown in the following figure, 
  12979. the SOM compiler generates the C-language source-program template file as shown 
  12980. in the next figure: 
  12981.  
  12982. void bark(long lCount);
  12983.  
  12984. SOM_Scope void SOMLINK bark(Dog *somSelf, long lCount)
  12985. {
  12986.   DogData *somThis = DogGetData(somSelf);
  12987.   DogMethodDebug("Dog", "Bark");
  12988. }
  12989.  
  12990.  
  12991. ΓòÉΓòÉΓòÉ 18.2.4.2. Using somThis ΓòÉΓòÉΓòÉ
  12992.  
  12993. The pointer somThis points to data for an object instance of the class 
  12994. <classname>. <classname>Data is a class data structure automatically generated 
  12995. by the SOM compiler and placed in the IH file. 
  12996.  
  12997.  
  12998. ΓòÉΓòÉΓòÉ 18.2.4.3. Tracing Code ΓòÉΓòÉΓòÉ
  12999.  
  13000. <classname>GetData and <classname>MethodDebug are class macros automatically 
  13001. generated by the SOM compiler and placed in the IH file. <classname>GetData 
  13002. gets the data for the object instance, somSelf, of the class. 
  13003.  
  13004. Note:  Methods that access the object's data use the <classname>GetData macro 
  13005.        to establish addressability. This macro must be one of the first 
  13006.        executable lines of code in each method, and the value it returns should 
  13007.        be assigned to a local variable named somThis. The SOM compiler 
  13008.        automatically generates the code that accomplishes this in each method 
  13009.        stub in a C file. 
  13010.  
  13011.  <classname>MethodDebug provides method-tracing capabilities. This custom macro 
  13012.  is generated as part of the method stubs produced in the C program template. 
  13013.  It takes two arguments: a class name and a method name. If SOM_TraceLevel 
  13014.  contains the value 1 or 2, the custom macro produces a message each time a 
  13015.  method is entered. Setting SOM_TraceLevel to 2 also causes the methods 
  13016.  supplied as part of the SOM run time to generate method trace output. To 
  13017.  suppress the generation of method tracing code, place lines similar to the 
  13018.  ones shown in the following figure in your C file after the #include statement 
  13019.  for <classname>.IH: 
  13020.  
  13021.   #undef  <classname>MethodDebug
  13022.   #define <classname>MethodDebug(c,m) SOM_NoTrace(c,m)
  13023.  
  13024.  
  13025. ΓòÉΓòÉΓòÉ 18.2.4.4. Completing the Class Implementation ΓòÉΓòÉΓòÉ
  13026.  
  13027. To complete the class-implementation process, you modify the C-language 
  13028. source-program template as shown in the following sample code. You must supply 
  13029. the code for each of the stubbed method procedures. In the example, "dog 
  13030. barking" is implemented as "printing the sound a dog makes," or, printing 
  13031. "Unknown dog noise." Because the C-library printf routine is used to implement 
  13032. this function, STDIO.H also must be included in the source program. 
  13033.  
  13034. /*
  13035.  *  This file was generated by the SOM compiler and Emitter framework.
  13036.  *  Generated using: SOM Emitter emitctm: 2.38
  13037.  */
  13038.  
  13039. #ifndef SOM_Module_dog3_Source
  13040. #define SOM_Module_dog3_Source
  13041. #endif
  13042.  
  13043. #define Dog_Class_Source
  13044.  
  13045. #include "dog3.ih"
  13046.  
  13047. /* This line is added because of the printf statement below */
  13048. #include <stdio.h>
  13049.  
  13050. /*
  13051.  * Have the dog bark
  13052.  */
  13053.  
  13054. SOM_Scope void  SOMLINK Bark(Dog *somSelf)
  13055. {
  13056.    /* DogData *somThis = DogGetData(somSelf); */
  13057.    DogMethodDebug("Dog","Bark");
  13058.    printf("Unknown dog noise\n");     /* The dog now speaks... */
  13059. }
  13060.  
  13061.  
  13062. ΓòÉΓòÉΓòÉ 18.2.5. Replacing SOM Functions ΓòÉΓòÉΓòÉ
  13063.  
  13064. The SOM run-time environment uses SOM functions that perform memory management, 
  13065. DLL management, character output, and error handling. These functions are 
  13066. replaceable, which means that you can override them by supplying your own 
  13067. version of the default SOM functions. 
  13068.  
  13069. The following sample code shows how a user-defined function can be substituted 
  13070. for one of the replaceable SOM functions: 
  13071.  
  13072. #define INCL_DOS
  13073. #define INCL_WINWORKPLACE
  13074.  
  13075. #include <os2.h>
  13076. #include <io.h>
  13077. #include <stdio.h>
  13078. #include <fcntl.h>
  13079. #include <sys\stat.h>
  13080. #include <string.h>
  13081. #include <som.h>
  13082.  
  13083. static FILE   *ErrorFile;     /* File to contain debugging error information */
  13084.  
  13085. /*
  13086.  * This is the replacement for the default SOMOutCharRoutine.
  13087.  * It writes the debugging information to a file on the hard drive.
  13088.  */
  13089.  
  13090. #pragma linkage(myCharacterOutputRoutine, system)
  13091.  
  13092. int  SOMLINK  myCharacterOutputRoutine (char chOut)
  13093. {
  13094.     fputc ((int) chOut, ErrorFile);
  13095.     fflush(ErrorFile);
  13096.     return 1;   /* Indicate success */
  13097. }
  13098.  
  13099. /*
  13100.  *   Enable myCharacterOutputRoutine by opening the output error
  13101.  *   file and then changing the output character routine.
  13102.  */
  13103.  
  13104. ErrorFile = fopen ("c:\\error.txt", "a" ;
  13105.  
  13106. fprintf (ErrorFile, "\nDebug information from my WPS Object\n");
  13107. fprintf (ErrorFile,   "------------------------------------\n");
  13108. setbuf (ErrorFile, NULL);
  13109.  
  13110. SOM_TraceLevel = 2;   /* Request maximum debugging information */
  13111. SOM_WarnLevel  = 2;
  13112.  
  13113. /* All output goes to my routine after the next statement */
  13114.  
  13115. SOMOutCharRoutine = myCharacterOutputRoutine;
  13116.  
  13117.  
  13118. ΓòÉΓòÉΓòÉ 18.2.6. Invoking Methods and Accessing Object Data ΓòÉΓòÉΓòÉ
  13119.  
  13120. The basic rules for invoking methods and accessing object data can be 
  13121. summarized as follows: 
  13122.  
  13123.    o  Object data can be referred to by preceding the name of the data element 
  13124.       with an underscore ( _ ) character. This is valid only in a method of the 
  13125.       class, and then only for the object being operated on. 
  13126.  
  13127.    o  Methods can be invoked by preceding the method name with an underscore 
  13128.       character. Method parameters always include a pointer to the object being 
  13129.       operated on. Invocation of instance methods requires a pointer to an 
  13130.       instance object. Invocation of class methods requires a pointer to a 
  13131.       class object. 
  13132.  
  13133.  These rules can be illustrated by introducing three new methods for the Dog 
  13134.  class that relate to more dog characteristics and getting and setting 
  13135.  behaviors. Because dogs can be characterized by their breed, a user should be 
  13136.  able to get and set the breed for a dog. It also would be desirable to display 
  13137.  the characteristics of a dog. In the following sample code, the action of 
  13138.  getting and setting a dog's breed corresponds to the prototype for the 
  13139.  getBreed and setBreed methods in the DOG.IDL file. 
  13140.  
  13141.   /*
  13142.    *   A class defining a set of objects (dogs)
  13143.    */
  13144.  
  13145.   #ifndef dog4_idl
  13146.   #define dog4_idl
  13147.  
  13148.   #include <somobj.idl>
  13149.  
  13150.   interface Dog : SOMObject
  13151.   {
  13152.     attribute string breed;
  13153.  
  13154.     // The breed for the dog
  13155.  
  13156.     void display();
  13157.  
  13158.     // Display the characteristics for this dog.
  13159.     // Show the breed and make the dog speak.
  13160.  
  13161.     void bark();
  13162.  
  13163.     // Have the dog bark
  13164.     #ifdef __SOMIDL__
  13165.     implementation
  13166.  
  13167.     {
  13168.       releaseorder:  _get_breed, _set_breed, display, bark;
  13169.  
  13170.       //# Class modifiers
  13171.  
  13172.       callstyle = oidl;    // For compatibility with SOM1
  13173.       majorversion = 1;
  13174.       minorversion = 2;
  13175.     };
  13176.     #endif /* __SOMIDL__ */
  13177.   };
  13178.   #endif  /* dog4_idl */
  13179.  
  13180.  The action of displaying a dog's characteristics corresponds to the prototype 
  13181.  for the display method. This example also introduces the use of an attribute. 
  13182.  Each dog has its own copy of the attribute associated with it. The breed of a 
  13183.  dog is stored in a string called "breed". By default, SOM provides a 
  13184.  _get_breed method to return the contents of the breed and a  _set_breed method 
  13185.  to set the contents of breed. If no set method was used, breed should be 
  13186.  defined as "readonly attribute" string breed. 
  13187.  
  13188.  From the new DOG.IDL file, the SOM compiler generates a new C-language 
  13189.  source-program template, as shown in the following sample code. This template 
  13190.  is used to complete the implementation of the new Dog class. 
  13191.  
  13192.   /*
  13193.    *  This file was generated by the SOM compiler and Emitter Framework.
  13194.    *  Generated using:  SOM Emitter emitctm: 2.38
  13195.    */
  13196.  
  13197.   #ifndef SOM_Module_dog_Source
  13198.   #define SOM_Module_dog_Source
  13199.   #endif
  13200.  
  13201.   #define Dog_Class_Source
  13202.  
  13203.   #include "dog.ih"
  13204.   #include <stdio.h>   /* Needed because of printf */
  13205.  
  13206.   /*
  13207.    * Display the characteristics for this dog.
  13208.    * Show the breed and make the dog speak.
  13209.    */
  13210.  
  13211.   SOM_Scope void  SOMLINK display(Dog *somSelf)
  13212.   {
  13213.     DogData *somThis = DogGetData(somSelf);
  13214.     DogMethodDebug("Dog","display");
  13215.  
  13216.     /* Note that there are two underscores before */
  13217.     /* the get_breed method                    */
  13218.     printf("\nMy breed is %s.\n", __get_breed(somSelf));
  13219.     printf("I say:\n");
  13220.  
  13221.     /* Prefix method name with either an underscore */
  13222.     /* ( _ ) or somThis                  */
  13223.     _bark(somSelf);
  13224.   }
  13225.  
  13226.   /*
  13227.    * Have the dog bark
  13228.    */
  13229.  
  13230.   SOM_Scope void  SOMLINK bark(Dog *somSelf)
  13231.   {
  13232.     DogData *somThis = DogGetData(somSelf);
  13233.     DogMethodDebug("Dog","bark");
  13234.  
  13235.     printf("Unknown dog noise\n");   /* Speak! */
  13236.   }
  13237.  
  13238.  The first thing that is noticeable in this sample code is that the attribute 
  13239.  declarations are not present. They have been placed in the 
  13240.  class-implementation file (DOG.IH) by the SOM compiler. As before, DOG.IH 
  13241.  contains all the definitions of the Dog class data, macros, and functions. 
  13242.  
  13243.  The _set_breed and _get_breed methods, also in the DOG.IH file, operate on the 
  13244.  string "breed" and refer to it by prefixing the string name with somThis. 
  13245.  
  13246.  The display method requires the dog's characteristics, that is, its breed and 
  13247.  its bark, to be displayed. To do this, the display method calls both the 
  13248.  _get_breed and bark methods, which are referenced by prefixing the method name 
  13249.  with the underscore ( _ ) character. 
  13250.  
  13251.  Finally, as in the previous implementation of the Dog class, the Include file, 
  13252.  STDIO.H, is added to the source program to resolve the reference to the 
  13253.  C-library routine, printf, which is used to display the dog's characteristics. 
  13254.  The SOM function, somPrintf, can be used in place of printf; no additional 
  13255.  Include file is required in this case. In fact, it is recommended that SOM 
  13256.  class implementations use the SOM functions, where appropriate, instead of the 
  13257.  C-library functions. SOM functions offer flexibility and replaceability. 
  13258.  
  13259.  
  13260. ΓòÉΓòÉΓòÉ 18.2.7. Creating and Manipulating SOM Objects ΓòÉΓòÉΓòÉ
  13261.  
  13262. So far, the examples have shown how to define and implement SOM classes but 
  13263. have only mentioned SOM client programs. SOM client programs are applications 
  13264. that create and manipulate SOM objects. A SOM client program can be a 
  13265. Presentation Manager program or a simple C or C++ program. 
  13266.  
  13267. A SOM client of the new Dog class can, for simplicity, create an instance of 
  13268. the Dog class, define its breed, and display its characteristics. This simple 
  13269. SOM client is shown in the following sample code: 
  13270.  
  13271. /*
  13272.  *  DogMain.C - A client C program to manipulate a Dog object
  13273.  */
  13274.  
  13275. #define INCL_NOPMAPI     /* Makes compile go faster */
  13276.                             /* for non-PM programs     */
  13277. #define INCL_DOSERRORS
  13278. #define INCL_DOS
  13279.  
  13280. #include <os2.h>
  13281. /* Include declarations for the Dog class */
  13282. #include "dog.h"
  13283.  
  13284. int main(int argc, char *argv[])
  13285. {
  13286.   /* Define a dog object called "Zack" */
  13287.   Dog  *Zack;
  13288.  
  13289.   /* Create an instance of the object */
  13290.   Zack = DogNew();
  13291.  
  13292.   /* Set the breed of the dog */
  13293.   __set_breed(Zack, "Yorkshire Terrier");
  13294.  
  13295.   /* Display information about it */
  13296.   _display(Zack);
  13297.  
  13298.   /* Delete the object */
  13299.   _somFree(Zack);
  13300.  
  13301.    return NO_ERROR;
  13302. }
  13303.  
  13304. To create and manipulate SOM objects, a client program must have access to the 
  13305. object's public methods. In the same way that class data, methods, and 
  13306. functions are available to class implementers through the .IH file associated 
  13307. with the class implementation, class data methods, and functions are available 
  13308. to client programs through the .H file associated with the class 
  13309. implementation. In the above example, DOG.H is included to resolve references 
  13310. to the dog object's public methods. 
  13311.  
  13312. The variable Zack is defined as a pointer to an instance (object) of the Dog 
  13313. class.  In general, a pointer to an instance of a class is declared, as shown 
  13314. in the following figure: 
  13315.  
  13316. <classname> *object;
  13317.  
  13318. The DogNew Dog class macro then is used to create an instance of the Dog class 
  13319. and return the pointer in the variable Zack. DogNew is defined in DOG.H and is 
  13320. a method inherited from the parent (SOMObject) of the Dog class and tailored 
  13321. for the Dog class. The DogNew macro expands to invoke somNew. somNew invokes 
  13322. DogNewClass, which creates the Dog class object, if it has not yet been 
  13323. created. The Dog class object must be created before its instances can be 
  13324. created. If instances of the Dog class are created through some mechanism other 
  13325. than DogNew, DogNewClass must be invoked in the client program. 
  13326.  
  13327. Because the _set_breed and display methods are public and are defined in DOG.H, 
  13328. the client program can invoke them in the same manner as the class 
  13329. implementation by prefixing the method name with the underscore ( _ ) 
  13330. character. In the client program, the pointer to the dog object (Zack) is the 
  13331. first parameter for these methods. The _set_breed method is called to set 
  13332. Zack's breed as "Yorkshire Terrier". The display method invokes the _get_breed 
  13333. and bark methods and prints the dog's breed and bark. 
  13334.  
  13335. Finally, somFree releases resources allocated when an object is created by 
  13336. somNew. As previously mentioned, somNew is invoked by the DogNew macro. 
  13337. somFree, like somNew, is a method inherited from the parent, SOMObject, of the 
  13338. Dog class. somFree must be called if somNew is used to create an object. 
  13339.  
  13340.  
  13341. ΓòÉΓòÉΓòÉ 18.2.7.1. Compiling a Program ΓòÉΓòÉΓòÉ
  13342.  
  13343. To run the DOGMAIN.C client program, it needs to be compiled and linked with 
  13344. the SOM library and the Dog class implemented in DOG.C. DOG.C is a file 
  13345. generated by the SOM compiler after processing DOG.IDL, and subsequently 
  13346. modified by the class implementor. 
  13347.  
  13348. The program can be compiled using the IBM CSet/2 compiler. The command line 
  13349. illustrated in the following command line shows how to compile the program 
  13350. assuming that the LIB and INCLUDE environment variables contain the Toolkit 
  13351. directories: 
  13352.  
  13353. icc -Fe dog dogmain.c dog.c somtk.lib
  13354.  
  13355. These environment variables are generally set appropriately after the Toolkit 
  13356. is installed. If the environment variables do not contain the correct 
  13357. libraries, the steps sequence shown in the following command lines are 
  13358. required: 
  13359.  
  13360. /* Assuming X:\TOOLKIT is the drive and directory */
  13361. /* where the toolkit and SOM are installed        */
  13362. set sombase=X:\TOOLKIT
  13363.  
  13364. set lib=%sombase%\LIB;%lib%
  13365. icc -I. -I%sombase%\INCLUDE dog domain.c dog.c somtk.lib
  13366.  
  13367. The output from the client program is shown in the following figure: 
  13368.  
  13369. My breed is Yorkshire Terrier
  13370. I say
  13371. Unknown Dog Noise
  13372.  
  13373.  
  13374. ΓòÉΓòÉΓòÉ 18.2.8. Overriding Methods: Inheritance and Polymorphism ΓòÉΓòÉΓòÉ
  13375.  
  13376. In the Dog class example, the Dog class is derived from SOMObject. Object 
  13377. instances of the Dog class inherit SOMObject behavior, that is, all SOMObject 
  13378. methods can operate on instances of the Dog class. In addition, the Dog class 
  13379. example defined methods not defined for SOMObject. The Dog class is a subclass 
  13380. of SOMObject. 
  13381.  
  13382. LittleDogs and BigDogs, subclasses of the Dog class, can be defined. These 
  13383. subclasses inherit the behavior of their parent class, Dog class, as well as 
  13384. the behavior of their parent's parent class, SOMObject. If the Dog class had 
  13385. been derived from other classes that were derived from SOMObject, the new 
  13386. subclasses would also inherit the behavior of these ancestor classes. In 
  13387. addition to adding new methods to those inherited from ancestor classes, 
  13388. subclasses can modify or override any inherited methods. 
  13389.  
  13390. The inheritance relationship between the new subclasses, LittleDog and BigDog 
  13391. and their ancestors, Dog and SOMObject, is shown in the following figure: 
  13392.  
  13393.  
  13394.     ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ        ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ      ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  13395.     Γöé           Γöé        Γöé          ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöé LittleDogs Γöé
  13396.     Γöé           Γöé        Γöé          Γöé      ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  13397.     Γöé SOMObject ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöé   Dogs   Γöé      ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  13398.     Γöé           Γöé        Γöé          ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöé BigDogs    Γöé
  13399.     ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ        ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ      ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  13400.  
  13401. LittleDogs and BigDogs can be differentiated by the sound, or bark, they make. 
  13402. For this example, instead of making an "Unknown dog noise," little dogs "Yap" 
  13403. and big dogs "WOOF." This means that the LittleDog and BigDog classes implement 
  13404. the bark method inherited from the Dog class differently. In the class 
  13405. definition files for the LittleDog class, this is indicated as a method 
  13406. override, as shown in the following sample code: 
  13407.  
  13408. /*
  13409.  *  Define a subclass of Dog for LittleDogs
  13410.  */
  13411.  
  13412. #ifndef ldog_idl
  13413. #define ldog_idl
  13414.  
  13415. #include <dog.idl>
  13416.  
  13417. interface LittleDog : Dog
  13418. {
  13419.   #ifdef __SOMIDL__
  13420.   implementation
  13421.  
  13422.   {
  13423.     //# Class modifiers
  13424.  
  13425.     callstyle = oidl;    // For compatibility with SOM1
  13426.     majorversion = 1;
  13427.     minorversion = 2;
  13428.  
  13429.     bark: override;
  13430.     // Override the bark method
  13431.   };
  13432.   #endif /* __SOMIDL__ */
  13433. };
  13434. #endif  /* ldog_idl */
  13435.  
  13436. In the class definition files for the BigDog class, this is also indicated as a 
  13437. method override, as shown in the following sample code: 
  13438.  
  13439. /*
  13440.  *  Define a subclass of the class Dog of BigDogs
  13441.  */
  13442.  
  13443. #ifndef bdog_idl
  13444. #define bdog_idl
  13445.  
  13446. #include <dog.idl>
  13447.  
  13448. interface BigDog : Dog
  13449. {
  13450.   #ifdef __SOMIDL__
  13451.   implementation
  13452.  
  13453.   {
  13454.     //# Class modifiers
  13455.  
  13456.     callstyle = oidl;    // For compatibility with SOM1
  13457.     majorversion = 1;
  13458.     minorversion = 2;
  13459.  
  13460.     bark: override;
  13461.     // Override the bark method
  13462.   };
  13463.   #endif /* __SOMIDL__ */
  13464. };
  13465. #endif  /* bdog_idl */
  13466.  
  13467. Because the parent of the LittleDog and BigDog classes is the Dog class, 
  13468. DOG.IDL must be included in the class definition files so that methods of the 
  13469. Dog class are inherited and can be referenced. 
  13470.  
  13471. The implementations of the LittleDog and BigDog classes are similar to the 
  13472. implementation of the Dog class. In the implementation of the LittleDog class, 
  13473. as shown in the following figure, the Include file, LDOG.IH, contains the 
  13474. definitions for LittleDog class data, macros, and functions. The implementation 
  13475. of the bark method reflects the yapping of little dogs. 
  13476.  
  13477. /*
  13478.  *  This file was generated by the SOM compiler and Emitter Framework.
  13479.  *  Generated using:  SOM Emitter emitctm: 2.38
  13480.  */
  13481.  
  13482. #ifndef SOM_Module_ldog_Source
  13483. #define SOM_Module_ldog_Source
  13484. #endif
  13485.  
  13486. #define LittleDog_Class_Source
  13487.  
  13488. #include "ldog.ih"
  13489.  
  13490. /*
  13491.  * Override the bark method
  13492.  */
  13493.  
  13494. SOM_Scope void  SOMLINK bark(LittleDog *somSelf)
  13495.  
  13496. {
  13497.   /* LittleDogData *somThis = LittleDogGetData(somSelf); */
  13498.   LittleDogMethodDebug("LittleDog","bark");
  13499.  
  13500.   /*  LittleDog_parent_Dog_bark(somSelf);  don't call the parent method */
  13501.   somPrintf("yap yap\n");   /* Do small yaps instead */
  13502.   somPrintf("yap yap\n");
  13503. }
  13504.  
  13505. In the implementation of the BigDog class, as shown in the following sample 
  13506. code, the Include file, BDOG.IH, contains the definitions for BigDog class 
  13507. data, macros, and functions. The implementation of the bark method reflects the 
  13508. woofing of big dogs. 
  13509.  
  13510. /*
  13511.  *  This file was generated by the SOM compiler and Emitter Framework.
  13512.  *  Generated using:  SOM Emitter emitctm: 2.38
  13513.  */
  13514.  
  13515. #ifndef SOM_Module_bdog_Source
  13516. #define SOM_Module_bdog_Source
  13517. #endif
  13518.  
  13519. #define BigDog_Class_Source
  13520.  
  13521. #include "bdog.ih"
  13522.  
  13523. /*
  13524.  * Override the bark method
  13525.  */
  13526.  
  13527. SOM_Scope void  SOMLINK bark(BigDog *somSelf)
  13528. {
  13529.   int  i  = 0;   /* Loop index */
  13530.  
  13531.   /* BigDogData *somThis = BigDogGetData(somSelf); */
  13532.   BigDogMethodDebug("BigDog","bark");
  13533.  
  13534.   /* BigDog_parent_Dog_bark(somSelf);  don't call the parent method */
  13535.   for (i=0; i<4; i++)
  13536.   {
  13537.     somPrintf("WOOF WOOF\n");   /* Do woof woof instead */
  13538.   }   /* endfor */
  13539. }
  13540.  
  13541.  
  13542. ΓòÉΓòÉΓòÉ 18.2.8.1. Accessing Public Methods ΓòÉΓòÉΓòÉ
  13543.  
  13544. For a client program of the Dog, BigDog, and LittleDog classes to access public 
  13545. methods for these classes, the client program must include the public class 
  13546. Header (H) files for the respective classes. In the following sample code, the 
  13547. client of these classes includes DOG.H, LDOG.H, and BDOG.H files. 
  13548.  
  13549. /*
  13550.  *  DogsMain.C - A client C program to manipulate Dog, LittleDog,
  13551.  *               and BigDog objects
  13552.  */
  13553.  
  13554. #define INCL_NOPMAPI        /* Makes compilation go faster */
  13555.                             /* for non-PM programs         */
  13556. #define INCL_DOSERRORS
  13557. #define INCL_DOS
  13558.  
  13559. #include <os2.h>
  13560. /* Include declarations for the Dog class       */
  13561. #include "dog.h"
  13562. /* Include declarations for the LittleDog class */
  13563. #include "ldog.h"
  13564. /* Include declarations for the BigDog class    */
  13565. #include "bdog.h"
  13566.  
  13567. int main(VOID)
  13568. {
  13569.   Dog        *Pokey;   /* Define a Dog       */
  13570.   LittleDog  *Zack;    /* Define a LittleDog */
  13571.   BigDog     *Pepper;  /* Define a BigDog    */
  13572.  
  13573.   /* Instantiate some objects */
  13574.   Pokey  = DogNew();
  13575.   Zack   = LittleDogNew();
  13576.   Pepper = BigDogNew();
  13577.  
  13578.   /* Set their breeds */
  13579.    __set_breed(Pokey, "Basset Hound");
  13580.    __set_breed(Zack, "Yorkshire Terrier");
  13581.    __set_breed(Pepper, "Rottweiler");
  13582.  
  13583.   /* Display the dog's characteristics */
  13584.    _display(Pokey);
  13585.    _display(Zack);
  13586.    _display(Pepper);
  13587.  
  13588.   /* Free the dogs  */
  13589.    _somFree(Pokey);
  13590.    _somFree(Zack);
  13591.    _somFree(Pepper);
  13592.  
  13593.    return NO_ERROR;
  13594. }
  13595.  
  13596. The next figure shows the output from this client program. 
  13597.  
  13598. My breed is Basset Hound
  13599. I say
  13600. Unknown Dog Noise
  13601.  
  13602. My breed is Yorkshire Terrier
  13603. I say
  13604. yap yap
  13605. yap yap
  13606.  
  13607. My breed is Rottweiler
  13608. I say
  13609. WOOF WOOF
  13610. WOOF WOOF
  13611. WOOF WOOF
  13612. WOOF WOOF
  13613.  
  13614.  
  13615. ΓòÉΓòÉΓòÉ 18.2.8.2. Defining Metaclasses ΓòÉΓòÉΓòÉ
  13616.  
  13617. In the implementation of the Dog, BigDog, and LittleDog classes, a metaclass is 
  13618. not specified in the Metaclass section of the class definition files. This 
  13619. means that the metaclass of each of these classes is the metaclass of their 
  13620. parent class. The metaclass of the BigDog and LittleDog classes is the 
  13621. metaclass of its parent class, Dog. The metaclass of the Dog class is the 
  13622. metaclass of its parent class, SOMObject. The metaclass of the SOMObject class 
  13623. is SOMClass. SOMClass, then, supplies the constructors for the Dog, BigDog, and 
  13624. LittleDog classes, as well as for SOMObject. 
  13625.  
  13626. If a metaclass is specified in the Metaclass section of the IDL files, a new 
  13627. metaclass is defined for the classes. The new metaclass provides new 
  13628. constructors for the classes. As an example, a new metaclass M_Dog is defined 
  13629. for the Dog class and added to DOG.IDL. The following sample code shows the new 
  13630. DOG.IDL file, including the changes made to the original DOG.IDL file. 
  13631.  
  13632. /*
  13633.  *  Define a metaclass of the Dog class.
  13634.  *  By convention, metaclasses are the class name prefixed with M_
  13635.  */
  13636.  
  13637. #ifndef dogmeta_idl
  13638. #define dogmeta_idl
  13639.  
  13640. #include <somcls.idl>
  13641. #include <somobj.idl>
  13642.  
  13643. interface Dog;   /* Declared later in this file */
  13644. interface M_Dog : SOMClass
  13645. {
  13646.   Dog   CreateADog();
  13647.  
  13648.   // Create an instance of the Dog class and return a pointer to it
  13649.   #ifdef __SOMIDL__
  13650.   implementation
  13651.  
  13652.   {
  13653.     releaseorder:  CreateADog;
  13654.  
  13655.     //# Class modifiers
  13656.  
  13657.     callstyle = oidl;    // For compatibility with SOM1
  13658.     majorversion = 1;
  13659.     minorversion = 2;
  13660.   };
  13661.   #endif   /* __SOMIDL__ */
  13662. };
  13663.  
  13664. /*
  13665.  *   A class defining a set of objects (dogs) with metaclass M_Dog
  13666.  */
  13667.  
  13668. interface Dog : SOMObject
  13669. {
  13670.   attribute string breed;
  13671.  
  13672.   // The breed for the dog
  13673.   void display();
  13674.  
  13675.   // Display characteristics for this dog.
  13676.   // Show the breed and make the dog speak.
  13677.   void bark();
  13678.  
  13679.   // Have the dog bark
  13680.   #ifdef __SOMIDL__
  13681.   implementation
  13682.  
  13683.   {
  13684.     releaseorder:  _get_breed, _set_breed, display, bark;
  13685.  
  13686.     //# Class modifiers
  13687.  
  13688.     callstyle = oidl;    // For compatibility with SOM1
  13689.     majorversion = 1;
  13690.     minorversion = 2;
  13691.     metaclass = M_Dog;   // Explicitly specify a metaclass
  13692.   };
  13693.   #endif   /* __SOMIDL__ */
  13694. };
  13695. #endif   /* dogmeta.idl */
  13696.  
  13697.  
  13698. ΓòÉΓòÉΓòÉ 18.2.8.3. Defining Methods ΓòÉΓòÉΓòÉ
  13699.  
  13700. Because SOMClass is the root class for all metaclasses, M_Dog is derived from 
  13701. SOMClass. This is reflected in the Parent and Include sections in the class 
  13702. definition file for the M_Dog class. The only method that M_Dog defines is 
  13703. CreateADog, that is, the constructor that creates an instance of the dog class, 
  13704. as shown in the following sample code: 
  13705.  
  13706. /*
  13707.  * This file was generated by the SOM compiler and Emitter Framework.
  13708.  * Generated using:  SOM Emitter emitctm: 2.38
  13709.  */
  13710.  
  13711. #ifndef SOM_Module_dogmeta_Source
  13712. #define SOM_Module_dogmeta_Source
  13713. #endif
  13714.  
  13715. #define M_Dog_Class_Source
  13716. #define Dog_Class_Source
  13717.  
  13718. #include "dogmeta.ih"
  13719.  
  13720. /*
  13721.  * Create an instance of the Dog class and return a pointer to it
  13722.  */
  13723.  
  13724. SOM_Scope Dog*  SOMLINK CreateADog(M_Dog *somSelf)
  13725. {
  13726.   Dog   *aNewDog;
  13727.   aNewDog = _somNew(somSelf);
  13728.  
  13729.   /* M_DogData *somThis = M_DogGetData(somSelf); */
  13730.   M_DogMethodDebug("M_Dog","CreateADog");
  13731.  
  13732.   /* Return statement to be customized */
  13733.   return(aNewDog);
  13734. }
  13735.  
  13736. /*
  13737.  * Display characteristics for this dog.
  13738.  * Show the breed and make the dog speak.
  13739.  */
  13740.  
  13741. SOM_Scope void  SOMLINK display(Dog *somSelf)
  13742. {
  13743.   DogData *somThis = DogGetData(somSelf);
  13744.   DogMethodDebug("Dog","display");
  13745.  
  13746.   /* Note there are two underscores before the get_breed below */
  13747.   printf("\nMy breed is %s.\n", __get_breed(somSelf));
  13748.   printf("I say:\n");
  13749.   /* Prefix method name with either an underscore or somThis */
  13750.   _bark(somSelf);
  13751. }
  13752.  
  13753. /*
  13754.  * Have the dog bark
  13755.  */
  13756.  
  13757. SOM_Scope void  SOMLINK bark(Dog *somSelf)
  13758. {
  13759.   DogData *somThis = DogGetData(somSelf);
  13760.   DogMethodDebug("Dog","bark");
  13761.   printf("Unknown dog noise\n");   /* Speak! */
  13762. }
  13763.  
  13764.  
  13765. ΓòÉΓòÉΓòÉ 18.2.8.4. Implementing Metaclasses ΓòÉΓòÉΓòÉ
  13766.  
  13767. The implementation of the M_Dog class is similar to the implementation of the 
  13768. Dog class. However, DOGMETA.C is also a client of the Dog class; CreateADog 
  13769. returns a pointer to an instance of the Dog class. 
  13770.  
  13771. The final implementation of the new Dog class is identical to the previous 
  13772. example. However, clients of the Dog class instantiate instances of the Dog 
  13773. class differently, as shown in the following sample code: 
  13774.  
  13775. /*
  13776.  *  DogMMain.C - Another client C program to manipulate a Dog object
  13777.  */
  13778.  
  13779. /* Makes compile go faster for non-PM programs */
  13780. #define INCL_NOPMAPI
  13781. #define INCL_DOSERRORS
  13782. #define INCL_DOS
  13783.  
  13784. #include <os2.h>
  13785. /* Include declarations for Dog and M_Dog */
  13786. #include "dogmeta.h"
  13787.  
  13788. int main(VOID)
  13789. {
  13790.   Dog  *Zack;
  13791.  
  13792.   /*
  13793.    * Create the Dog class and save a pointer to it.
  13794.    */
  13795.  
  13796.   M_Dog *DogClassObj;
  13797.   DogClassObj = DogNewClass(Dog_MajorVersion, Dog_MinorVersion);
  13798.   Zack = _CreateADog(DogClassObj);
  13799.   __set_breed(Zack, "Yorkshire Terrier");
  13800.   _display(Zack);
  13801.   _somFree(Zack);
  13802.   return NO_ERROR;
  13803. }
  13804.  
  13805. The constructor method, that is, the method that creates instances of an 
  13806. object, for the Dog class is now CreateADog. In the previous examples, the 
  13807. DogNew macro was used to instantiate Dog objects. Because the DogNew macro 
  13808. invokes DogNewClass to create the Dog class object, the previous client 
  13809. programs did not have to invoke DogNewClass directly. Because the 
  13810. implementation of CreateADog does not call DogNewClass, the new client program 
  13811. is required to do so. 
  13812.  
  13813. The parameters for DogNewClass are defined by the class implementer in the 
  13814. DOGMETA.IDL file. MajorVersion and MinorVersion are attributes defined in the 
  13815. attribute section of the IDL file and used by DogNewClass to determine 
  13816. compatibility with versions of the class library. 
  13817.  
  13818.  
  13819. ΓòÉΓòÉΓòÉ 18.2.9. Building SOM Class Libraries ΓòÉΓòÉΓòÉ
  13820.  
  13821. Two basic rules explain the process of building SOM class libraries: 
  13822.  
  13823.    o  IDL files for a class' metaclass, parent class, or ancestor class are 
  13824.       required for the SOM compiler to process a class definition file. These 
  13825.       files establish the relationships between classes. 
  13826.  
  13827.    o  H files are required for C-language compiler processing and building of 
  13828.       the class library. These files resolve references to methods defined in 
  13829.       other files. 
  13830.  
  13831.  With these rules in mind, the basic process for building a SOM class library 
  13832.  can be summarized as follows: 
  13833.  
  13834.    1. Create IDL files and do SOM compilation for all parent and ancestor 
  13835.       classes and their related classes. 
  13836.  
  13837.    2. Create IDL files for a class and its metaclass (if any). 
  13838.  
  13839.    3. Compile the metaclass IDL file using SOM. 
  13840.  
  13841.    4. Compile the class IDL file using SOM. 
  13842.  
  13843.    5. Compile C implementation files, in any order, using the C compiler. 
  13844.  
  13845.  
  13846. ΓòÉΓòÉΓòÉ 18.2.10. Converting CSC Files to IDL Files ΓòÉΓòÉΓòÉ
  13847.  
  13848. Object and class definitions written in the OS/2 operating system and prior to 
  13849. OS/2 operating system Version 3, were defined in IBM object interface 
  13850. definition language (OIDL) and placed in a class definition file, also called a 
  13851. CSC file. This file was then used as input to the SOM compiler to generate 
  13852. language binding files. 
  13853.  
  13854. SOM was enhanced to conform with the Object Management Group's (OMG) Common 
  13855. Object Request Broker Architecture (CORBA**) standards. This required changing 
  13856. the syntax of the class definition language from IBM OIDL to CORBA's interface 
  13857. definition language (IDL). The bindings created by the SOM compiler were also 
  13858. changed to make them compatible with the CORBA standards. 
  13859.  
  13860. Class definitions written in OIDL and residing in CSC files should be converted 
  13861. to IDL before being used with the SOM compiler. This conversion allows the use 
  13862. of multiple inheritance, exception handling, type checking, and automatic 
  13863. descriptor support. In addition, the programs generated from IDL class 
  13864. descriptions are significantly smaller and run faster than programs generated 
  13865. from OIDL class definitions. 
  13866.  
  13867.  
  13868. ΓòÉΓòÉΓòÉ 18.2.10.1. CTOI Program ΓòÉΓòÉΓòÉ
  13869.  
  13870. The conversion from a .CSC file to an .IDL file is handled by the CTOI program. 
  13871. For example, to convert the file MYDOG.CSC to an IDL file, make sure all the 
  13872. CSC, SC, and PSC files referenced by MYDOG.CSC are accessible, and then invoke 
  13873. the program as shown in the following command line: 
  13874.  
  13875. ctoi mydog.csc
  13876.  
  13877. Note:  Converting a Workplace Shell application from a CSC file to an IDL file 
  13878.        requires the SC files from the previous OS/2 Toolkit installed on your 
  13879.        system (in the SC directory), and all the ones that you might have 
  13880.        created. The IDL subdirectory from the OS/2 Toolkit contains the IDL 
  13881.        files for the public Workplace Shell classes and objects. 
  13882.  
  13883.  In this example, the CTOI program produces a file called MYDOG.IDL containing 
  13884.  the definitions in IDL format. In many cases, you should be able to compile, 
  13885.  install and run your application without further modification. However, the 
  13886.  following situations will require manual intervention: 
  13887.  
  13888.    o  Any classes that use IDL reserved words as functions or variable names 
  13889.       need to be changed. For example, "string", "context", "interface". 
  13890.  
  13891.    o  The SOM compiler no longer generates .SC, .PSC, or .PH files. 
  13892.       Installation and make files that refer to .CSC, .SC, .PSC, or .PH files 
  13893.       need to be changed. 
  13894.  
  13895.    o  The data declaration changes. Public and private instance variables are 
  13896.       converted to attributes. However, structures and arrays require manual 
  13897.       changes, as shown in the following figure: 
  13898.  
  13899.             OIDL                           IDL
  13900.  
  13901.             data:
  13902.               struct info infoBuffer;      interface: ...   {
  13903.                                               typedef struct info info;
  13904.                                               ...
  13905.                                            implementation {
  13906.                                               info infoBuffer;
  13907.                                               ...
  13908.                                               };
  13909.  
  13910.             data:
  13911.               char achMyArray[20];         interface: ...   {
  13912.                                               typedef char myarraytype[20];
  13913.                                               ...
  13914.                                            implementation {
  13915.                                               attribute myarraytype achMyArray;
  13916.                                               ...
  13917.                                               };
  13918.  
  13919.             data:
  13920.               unsigned char chFlag;        attribute octet chFlag;
  13921.  
  13922.             data:
  13923.               char    *argv[];             char   **argv;
  13924.  
  13925.    o  IDL does not permit structures to be passed by value. Instead, methods 
  13926.       must pass a pointer to a structure. Methods can return a structure, and 
  13927.       if a method does so, it should have the modifier struct attached to it, 
  13928.       as shown in the following figure: 
  13929.  
  13930.             AStructure resolveMyIdentity(in string pszIdent), struct;
  13931.  
  13932.    o  The OIDL private qualifier has been removed. Private instance data and 
  13933.       methods must now be enclosed in a special #ifdef directive, as shown in 
  13934.       the following figure: 
  13935.  
  13936.             OIDL                             IDL
  13937.  
  13938.             int x, private;                  #ifdef __PRIVATE__
  13939.                                                 int x;
  13940.             VOID mymethod(), private;           VOID mymethod();
  13941.                                              #endif
  13942.  
  13943.       To include private data and methods in the processing of an IDL file, the 
  13944.       SOM compiler should be invoked with either the -P option or the 
  13945.       -D_PRIVATE_ option, as shown in the following command lines: 
  13946.  
  13947.             sc -p yourname.idl
  13948.  
  13949.             sc -d__PRIVATE__ yourname.idl
  13950.  
  13951.       Note that there are two underscore ( __ ) characters before and after the 
  13952.       word PRIVATE. 
  13953.  
  13954.    o  Passthru statement processing has changed. Passthru statements should 
  13955.       only be used to pass #include directives to the language binding files. 
  13956.       In addition: 
  13957.  
  13958.         -  Information can no longer be directed to the implementation (.C) 
  13959.            file 
  13960.  
  13961.         -  Most information directed to implementation Header (.IH) files 
  13962.            should be moved to the implementation (.C) file 
  13963.  
  13964.    o  Forward references are required in IDL. Thus, classes and objects must be 
  13965.       declared before being referenced. The following figure shows an example 
  13966.       to forward reference the M_Cat class: 
  13967.  
  13968.             interface M_Cat;
  13969.  
  13970.  Because IDL is strongly typed (unlike OIDL), data structures and constants 
  13971.  should be declared before referencing them, in order to eliminate unnecessary 
  13972.  warning messages during compilation. This is required if an interface 
  13973.  repository (.IR) file is to be created from the IDL file. 
  13974.  
  13975.  
  13976. ΓòÉΓòÉΓòÉ 19. Workplace Shell Distributed SOM ΓòÉΓòÉΓòÉ
  13977.  
  13978. Distributed SOM (DSOM) provides a framework that allows application programs to 
  13979. access objects across address spaces. That is, application programs can access 
  13980. objects in other processes, even on different machines. Both the location and 
  13981. implementation of an object are hidden from the client which accesses the 
  13982. object (using method calls) in the same manner regardless of its location. 
  13983.  
  13984.  
  13985. ΓòÉΓòÉΓòÉ 19.1. About Workplace Shell Distributed SOM ΓòÉΓòÉΓòÉ
  13986.  
  13987. DSOM currently supports two types of distribution: 
  13988.  
  13989.    o  Distribution among processes on the same machine, which is referred to as 
  13990.       Workstation DSOM 
  13991.  
  13992.    o  Distribution among a network of machines, which is referred to as 
  13993.       Workgroup DSOM. 
  13994.  
  13995.  Only Workstation DSOM is provided with the OS/2 operating system. 
  13996.  
  13997.  DSOM is initially disabled in the OS/2 operating system. There are two reasons 
  13998.  for this: 
  13999.  
  14000.    o  Performance 
  14001.  
  14002.    o  DSOM can be easily activated as required. Not all users will require DSOM 
  14003.       to be active. Therefore, they should not be penalized with the additional 
  14004.       system overhead. 
  14005.  
  14006.  DSOM packaged with the OS/2 operating system consists of two parts: 
  14007.  
  14008.    o  DSOM daemon which is also referred to as SOMDD 
  14009.  
  14010.    o  Workplace Shell DSOM server (WPDS). 
  14011.  
  14012.  The DSOM daemon (SOMDD) has a very important role and must be running at all 
  14013.  times in order to communicate between processes. 
  14014.  
  14015.  The Workplace Shell DSOM server is a generic server whose server class is 
  14016.  wpdServer and is adequate for many environments. The Workplace Shell DSOM 
  14017.  server behaves as a simple server. In that, it simply receives requests and 
  14018.  executes them synchronously. The server creates its server object from the 
  14019.  derived class SOMDServer and will load any class libraries it needs on demand. 
  14020.  For more complex environments where the default server does not provide the 
  14021.  needed functions, the SOMObjects Developer Toolkit User's Guide provides 
  14022.  details for writing your own DSOM server. 
  14023.  
  14024.  
  14025. ΓòÉΓòÉΓòÉ 19.1.1. Starting DSOM ΓòÉΓòÉΓòÉ
  14026.  
  14027. The Workplace Shell, when started, will default to the wpdServer class and load 
  14028. WPDSERV.DLL. If you create a new server class, you can tell the Workplace Shell 
  14029. to use your server by setting WPDSERVERALIAS to YourServer in the CONFIG.SYS 
  14030. file and use regimpl to change the server name from wpdServer to YourServer. 
  14031.  
  14032. There are a number of ways to start the DSOM daemon and Workplace Shell DSOM 
  14033. server. To start both SOMDD and WPDS at the time the OS/2 operating system is 
  14034. started, set WPDSERVERSTART to ON in the CONFIG.SYS file and reboot. Both the 
  14035. daemon and the server are hidden to the user when started. 
  14036.  
  14037. If during development you require to see the output of SOMDD, then set the 
  14038. environment variable SOMDD.DISPLAY to ON in the CONFIG.SYS file and reboot. 
  14039. When using the Workplace Shell DSOM server you should always allow the 
  14040. Workplace Shell to start the DSOM daemon and never start the daemon from a 
  14041. command line. In this way, the Workplace Shell is aware of its existence. 
  14042.  
  14043. In the case, when a client DSOM application is run and only the DSOM daemon is 
  14044. active, then the implementation repository, using the implementation ID passed 
  14045. to it to locate the server definition, starts an executable, WPDSACTV.EXE, 
  14046. which in-turn starts the Workplace Shell DSOM server. Once the server is 
  14047. active, then the client program will continue to process as normal. 
  14048.  
  14049. The OS/2 operating system supplies a utility called WPDSINIT.EXE which provides 
  14050. the functions to start, stop and query the current status of the DSOM daemon 
  14051. and the Workplace Shell DSOM server from the command line: 
  14052.  
  14053.  Function Name       Description 
  14054.  
  14055.  WPDSINIT /S         To start both the daemon and the server. 
  14056.  
  14057.  WPDSINIT /K         To stop both the server and the daemon. 
  14058.  
  14059.  WPDSINIT /Q         To query the current status of both the daemon and the 
  14060.                      server. 
  14061.  
  14062.  The DSOM daemon or the Workplace Shell DSOM server can be manipulated 
  14063.  independently by specifying either somdd or server as the second parameter to 
  14064.  WPDSINIT. 
  14065.  
  14066.  The last method available for manipulating both the daemon and the server is 
  14067.  programmatically through four new functions: 
  14068.  
  14069.    o  WinIsSOMDDReady 
  14070.    o  WinRestartSOMDD 
  14071.    o  WinIsWPDServerReady 
  14072.    o  WinRestartWPDServer 
  14073.  
  14074.  
  14075. ΓòÉΓòÉΓòÉ 19.1.2. Performance Using DSOM ΓòÉΓòÉΓòÉ
  14076.  
  14077. In a distributed environment, a designer needs to keep in mind the possible 
  14078. performance impacts, because IPC communications is always slower than procedure 
  14079. calls within the same process. Writing a normal Workplace Shell application 
  14080. that runs within the Workplace Shell's process always perform better than an 
  14081. application in another process using DSOM. 
  14082.  
  14083.  
  14084. ΓòÉΓòÉΓòÉ 19.1.3. Initializing a Client Workplace Shell Program ΓòÉΓòÉΓòÉ
  14085.  
  14086. A DSOM application will not execute if the underlying DSOM support is not 
  14087. active. Therefore a good client application might query and save the current 
  14088. state of the DSOM daemon and Workplace Shell DSOM server and start them, if 
  14089. required before issuing any DSOM calls. 
  14090.  
  14091. A client application must declare and initialize the DSOM run-time before 
  14092. attempting to create or access a remote object. The SOMD_Init procedure 
  14093. initializes all of the DSOM run-time. A client application must also merge the 
  14094. SOM class manager with the Workplace Shell class manager and initialize all 
  14095. application classes used by the program. For each class, the corresponding 
  14096. <classname>NewClass call should be made. When creating a Workplace Shell DSOM 
  14097. application, each class referenced in the hierarchy must be initialized. 
  14098.  
  14099.  
  14100. ΓòÉΓòÉΓòÉ 19.1.4. Exiting from a Client Workplace Shell Program ΓòÉΓòÉΓòÉ
  14101.  
  14102. At the end of a client program, the SOMD_Uninit procedure must be called to 
  14103. free DSOM run-time objects, and to release system resources such as semaphores, 
  14104. shared memory segments, and so on. No special action is required for the 
  14105. Workplace Shell. 
  14106.  
  14107.  
  14108. ΓòÉΓòÉΓòÉ 19.2. Using Workplace Shell Distributed SOM ΓòÉΓòÉΓòÉ
  14109.  
  14110. The sample creates and opens a new folder on the Desktop, and then inserts a 
  14111. number of different class objects into that folder, one of which is opened 
  14112. after it is created. It also creates and deletes an abstract object on the 
  14113. Desktop before terminating. 
  14114.  
  14115. Note:  The sample uses the four new functions that are available for 
  14116.        manipulating the daemon and the server: 
  14117.  
  14118.    o  WinIsSOMDDReady 
  14119.    o  WinRestartSOMDD 
  14120.    o  WinIsWPDServerReady 
  14121.    o  WinRestartWPDServer 
  14122.  
  14123.  This sample Workplace Shell DSOM program demonstrates the minimum Workplace 
  14124.  Shell code required to initialize a simple Workplace Shell DSOM application. 
  14125.  To ensure that it will always run, regardless of the current state of the DSOM 
  14126.  server, the sample queries and saves the state of both the DSOM daemon and the 
  14127.  Workplace Shell DSOM server. The state is saved, so that it can be reset 
  14128.  before the program terminates. 
  14129.  
  14130.  Once the server is active, a local DSOM environment is created by calling 
  14131.  SOM_CreateLocalEnvironment and then register itself with the DSOM daemon by 
  14132.  calling SOMD_Init. Before any Workplace Shell method calls can be made, the 
  14133.  Workplace Shell class manager must be merged with the SOM's class manager, and 
  14134.  then Workplace Shell classes on which method calls will be made must be 
  14135.  initialized. For instance, if you are writing an application that creates an 
  14136.  abstract object on the Desktop and then terminates, both WPObjectNewClass and 
  14137.  WPAbstractNewClass would need to be called because WPAbstract is a descendant 
  14138.  of WPObject. 
  14139.  
  14140.  Next a server must be located to execute the methods on, so 
  14141.  _somdFindServerByName is called to find the Workplace Shell DSOM server 
  14142.  wpdServer. To query the Desktop object, first the class object for WPFolder 
  14143.  must be acquired by calling _somdGetClassObj. With this pointer, finally the 
  14144.  first Workplace Shell method _wpclsQueryFolder is called to acquire a pointer 
  14145.  to the Desktop folder. Once the pointer to the Desktop folder is obtained, 
  14146.  objects are created using _wpclsNew. As soon as the folder object on the 
  14147.  Desktop is created, it uses that object pointer as the target for all the 
  14148.  other objects created. A Details view of the folder is created using _wpSetup 
  14149.  and the new created color palette is opened with a call to _wpOpen. The 
  14150.  abstract object created on the Desktop is finally destroyed with a call to 
  14151.  _wpDelete. 
  14152.  
  14153.  Before terminating, the DSOM environment should be cleaned up by calling the 
  14154.  reverse of initialization: 
  14155.  
  14156.    o  _somdReleaseObject is called to free the server object 
  14157.  
  14158.    o  SOMD_Uninit is called to free the DSOM resources 
  14159.  
  14160.    o  SOM_DestroyLocalEnvironment is called to free the local DSOM environment. 
  14161.  
  14162.  The sample also resets the state of the DSOM daemon and Workplace Shell DSOM 
  14163.  server before terminating. In other words, if the server was active when the 
  14164.  sample application was run, then it will remain active when it terminates. If 
  14165.  on the other hand it was not running, then it will be stopped before the 
  14166.  program terminates. This may not be the desired result in most applications. 
  14167.  If you are running a number of DSOM client applications back to back, then you 
  14168.  will not want ythe application stopping the server each time. In most cases, 
  14169.  you should leave the server active after it is started. 
  14170.  
  14171.  
  14172. ΓòÉΓòÉΓòÉ 19.2.1. Source Code for WPDS ΓòÉΓòÉΓòÉ
  14173.  
  14174. The following example shows the source modules for the sample Workplace Shell 
  14175. DSOM program: 
  14176.  
  14177. /*
  14178.  * Purpose..: To demonstrate how to call Workplace Shell
  14179.  * methods using DSOM.
  14180.  *
  14181.  * Workplace Shell methods called:
  14182.  *        _wpclsQueryFolder()
  14183.  *        _wpclsNew()
  14184.  *        _wpSetup()
  14185.  *        _wpOpen()
  14186.  *        _wpDelete()
  14187.  */
  14188.  
  14189. #pragma info(nogen)
  14190.  
  14191. #include <stdarg.h>
  14192. #include <stdlib.h>
  14193. #include <stdio.h>
  14194. #define  INCL_DOS
  14195. #define  INCL_WINWORKPLACE
  14196. #define  INCL_PM
  14197. #include <os2.h>
  14198. #include <somd.h>
  14199. #include <somtcnst.h>
  14200. #include <wpobject.h>
  14201. #include <wpdesk.h>
  14202. #include <wpabs.h>
  14203. #include <wpfolder.h>
  14204. #include <wptrans.h>
  14205. #include <wpmet.h>
  14206. #include <wpclrpal.h>
  14207. #include <wpdataf.h>
  14208. #include <wpclsmgr.h>
  14209.  
  14210. enum {STOP, START};
  14211.  
  14212. WPClassManager *vWPClassManagerObject;
  14213.  
  14214. BOOL       checkForError(Environment *, char *, ...);
  14215. SOMClass * getClassObject(SOMClass *, Environment *, string);
  14216.  
  14217. int main(int argc, char *argv[])
  14218. {
  14219.   Environment *ev;
  14220.   SOMClass   *Server;
  14221.   SOMObject  *objDesktop;
  14222.   SOMObject  *objWPAbs;
  14223.   SOMObject  *objWPFolder;
  14224.   SOMObject  *object;
  14225.   M_WPFolder *classFolder;
  14226.   APIRET     apiRtnCd;
  14227.   BOOL       fDaemonUp;
  14228.   BOOL       fServerUp;
  14229.  
  14230.   /*
  14231.    * Check if the DSOM daemon is active.
  14232.    * If not, it needs to be started before continuing.
  14233.    */
  14234.   fDaemonUp = WinIsSOMDDReady();
  14235.   if (!fDaemonUp)
  14236.   {
  14237.     apiRtnCd = WinRestartSOMDD(START);
  14238.     if (apiRtnCd)
  14239.     {
  14240.       somPrintf("Unable to start the DSOM dameon, rc=%ld\n", apiRtnCd);
  14241.       exit(apiRtnCd);
  14242.     }
  14243.   }
  14244.  
  14245.   /*
  14246.    * Check if the Workplace Shell DSOM server is up and running.
  14247.    * If not, it needs to be started before continuing.
  14248.    */
  14249.   fServerUp = WinIsWPDServerReady();
  14250.   if (!fServerUp)
  14251.   {
  14252.     apiRtnCd = WinRestartWPDServer(START);
  14253.     if (apiRtnCd)
  14254.     {
  14255.       somPrintf("Unable to start the DSOM server, rc=%ld\n", apiRtnCd ;
  14256.       exit(apiRtnCd);
  14257.     }
  14258.   }
  14259.  
  14260.   /*
  14261.    * Create the local DSOM environment
  14262.    */
  14263.   ev = SOM_CreateLocalEnvironment();
  14264.   SOMD_Init(ev);
  14265.  
  14266.   /*
  14267.    * Merge the Workplace Shell class manager with the
  14268.    * SOM class manager
  14269.    */
  14270.   vWPClassManagerObject = WPClassManagerNew();
  14271.   _somMergeInto(SOMClassMgrObject, vWPClassManagerObject);
  14272.  
  14273.   /*
  14274.    * Initialize all the Workplace Shell classes used by the program
  14275.    */
  14276.   WPObjectNewClass( 1, 1 );
  14277.   WPTransientNewClass( 1, 1 );
  14278.   WPAbstractNewClass( 1, 1 );
  14279.   WPFileSystemNewClass( 1, 1 );
  14280.   WPDataFileNewClass( 1, 1 );
  14281.   WPFolderNewClass( 1, 1 );
  14282.   WPMetNewClass( 1, 1 );
  14283.   WPDesktopNewClass( 1, 1 );
  14284.  
  14285.   /*
  14286.    * Find the Workplace Shell DSOM server by its name
  14287.    */
  14288.   Server = _somdFindServerByName(SOMD_ObjectMgr, ev, "wpdServer");
  14289.   checkForError(ev, "Could not find server 'wpdServer'\n");
  14290.  
  14291.   /*
  14292.    * Get a pointer to the WPFolder's class object
  14293.    */
  14294.   classFolder = getClassObject(Server, ev, "WPFolder");
  14295.  
  14296.   /*
  14297.    * Get the object pointer of the Desktop folder
  14298.    */
  14299.   objDesktop = _wpclsQueryFolder(classFolder, "<WP_DESKTOP>", TRUE);
  14300.   if (objDesktop)
  14301.   {
  14302.     /* Create an abstract object on the Desktop */
  14303.     somPrintf("Creating a WPAbstract object on Desktop: ");
  14304.     objWPAbs = _wpclsNew(getClassObject(Server, ev, "WPAbstract"),
  14305.                          "WPAbstract Object",   /* Title of the object */
  14306.                          "",                    /* Setup string        */
  14307.                          objDesktop,            /* Target folder       */
  14308.                          TRUE);                 /* Never dormant       */
  14309.     somPrintf("%s\n", objWPAbs ? "Succeeded" : "\aFailed");
  14310.  
  14311.     /*
  14312.      * Create a WPFolder object on the Desktop
  14313.      */
  14314.     somPrintf("Creating a opened WPFolder object on Desktop: ");
  14315.     objWPFolder = _wpclsNew(classFolder,                 /* Object's class name  */
  14316.                             "WPFolder Object",           /* Title of the object  */
  14317.                             "OPEN=ICON;ALWAYSSORT=YES",  /* Setup string         */
  14318.                             objDesktop,                  /* Target folder        */
  14319.                             TRUE );                      /* Never dormant        */
  14320.     somPrintf("%s\n", objWPFolder ? "Succeeded" : "\aFailed");
  14321.  
  14322.     /*
  14323.      * Create a WPDataFile object in the new folder on the Desktop
  14324.      */
  14325.     somPrintf("Creating a WPDataFile object in folder: ");
  14326.     object = _wpclsNew(getClassObject(Server, ev, "WPDataFile"),
  14327.                        "WPDataFile Object",   /* Title of the object */
  14328.                        "",                    /* Setup string        */
  14329.                        objWPFolder,           /* Target folder       */
  14330.                        TRUE);                 /* Never dormant       */
  14331.     somPrintf("%s\n", object ? "Succeeded" : "\aFailed");
  14332.  
  14333.     /*
  14334.      * Create a WPTransient object in the folder
  14335.      */
  14336.     somPrintf("Creating a WPTransient object in folder: ");
  14337.     object = _wpclsNew(getClassObject(Server, ev, "WPTransient"),
  14338.                        "WPTransient Object",   /* Title of the object */
  14339.                        "",                     /* setup string        */
  14340.                        objWPFolder,            /* Target folder       */
  14341.                        TRUE);                  /* Never dormant       */
  14342.     somPrintf( "%s\n", object ? "Succeeded" : "\aFailed" );
  14343.  
  14344.     /*
  14345.      * Create a metafile object in the folder
  14346.      */
  14347.     somPrintf("Creating a WPMet object in folder: ");
  14348.     object = _wpclsNew(getClassObject(Server, ev, "WPMet"),
  14349.                        "WPMet Object",   /* Title of the object */
  14350.                        "",               /* setup string        */
  14351.                        objWPFolder,      /* Target folder       */
  14352.                        TRUE);            /* Never dormant       */
  14353.     somPrintf("%s\n", object ? "Succeeded" : "\aFailed");
  14354.  
  14355.     /*
  14356.      * Open a Detail view of the folder
  14357.      */
  14358.     _wpSetup(objWPFolder, "OPEN=DETAILS");
  14359.  
  14360.     /*
  14361.      * Create a color palette in the folder and open palette
  14362.      */
  14363.     somPrintf("Creating a WPColorPalette object in folder: ");
  14364.     object = _wpclsNew(getClassObject(Server, ev, "WPColorPalette") ,
  14365.                        "WPColorPalette Object",   /* Title of the object */
  14366.                        "",                        /* Setup string        */
  14367.                        objWPFolder,               /* Target folder       */
  14368.                        TRUE);                     /* Never dormant       */
  14369.  
  14370.     somPrintf("%s\n", object ? "Succeeded" : "\aFailed");
  14371.     _wpOpen(object, NULLHANDLE, OPEN_DEFAULT, 0L);
  14372.     somPrintf("Deleting the WPAbstract object on the Desktop.\n");
  14373.     _wpDelete(objWPAbs, 0);
  14374.   }
  14375.   else
  14376.   {
  14377.     somPrintf("\aUnable to acquire the Desktop object pointer\n");
  14378.   }
  14379.  
  14380.   /*
  14381.    * Clean up the DSOM environment
  14382.    */
  14383.   _somdReleaseObject(SOMD_ObjectMgr, ev, Server);
  14384.   checkForError(ev, "_somdReleaseObject failed\n");
  14385.   SOMD_Uninit(ev);
  14386.   SOM_DestroyLocalEnvironment(ev);
  14387.  
  14388.   /*
  14389.    * If the Workplace Shell DSOM server was started
  14390.    * then, lets stop it before terminating
  14391.    */
  14392.   if (!fServerUp)
  14393.   {
  14394.     apiRtnCd = WinRestartWPDServer(STOP);
  14395.     if (apiRtnCd)
  14396.       somPrintf("Stopping the DSOM server was unsucessful, rc=%ld\n", apiRtnCd);
  14397.   }
  14398.  
  14399.   if (!fDaemonUp)
  14400.   {
  14401.     ULONG count = 0;
  14402.  
  14403.     /*
  14404.      * Loop until the server thread ends or the program times out
  14405.      */
  14406.     while(WinIsWPDServerReady())
  14407.     {
  14408.       HEV hev;
  14409.  
  14410.       /*
  14411.        * First create a private, reset, event semaphore.
  14412.        * Wait for 1 second, then try again for a maximum
  14413.        * of 30 seconds
  14414.        */
  14415.       DosCreateEventSem((PSZ) NULL, &hev, 0, FALSE);
  14416.       DosWaitEventSem(hev, 1000);
  14417.       if (count++ > 30)
  14418.         break;
  14419.     }
  14420.     apiRtnCd = WinRestartSOMDD(STOP);
  14421.     if (apiRtnCd)
  14422.       somPrintf("Stopping the DSOM daemon was unsucessful, rc=%ld\n", apiRtnCd);
  14423.   }
  14424.   return 0;
  14425. } /* End of main() */
  14426.  
  14427. /* getClassObject */
  14428. SOMClass *getClassObject(SOMClass *Server, Environment *ev, string sClassName)
  14429. {
  14430.   SOMClass *ClassObj = NULL;
  14431.   ClassObj = _somdGetClassObj(Server, ev, sClassName);
  14432.   if (checkForError(ev, NULL) || ClassObj == NULL)
  14433.   {
  14434.     somPrintf("\aCould not find class '%s'\n", sClassName);
  14435.     ClassObj = NULL;
  14436.   }
  14437.   return ClassObj;
  14438. }
  14439.  
  14440. /* Check for errors */
  14441. BOOL checkForError(Environment *ev, char *pchFmt, ...)
  14442. {
  14443.   va_list  vargs;
  14444.   char *exId;
  14445.   APIRET apiRtnCd = FALSE;
  14446.  
  14447.   switch(ev->_major)
  14448.   {
  14449.     case SYSTEM_EXCEPTION:
  14450.     {
  14451.       StExcep *params;
  14452.       exId   = somExceptionId(ev);
  14453.       params = somExceptionValue(ev);
  14454.       somPrintf("\a** Error Occurred **\n");
  14455.       somPrintf("** exception string: %s\n", exId);
  14456.       somPrintf("** minor error code: %u\n", params->minor);
  14457.       somPrintf("** completion code: %s\n",
  14458.                 (params->completed == YES ? "YES" :
  14459.                  params->completed == NO ? "NO": "MAYBE" ));
  14460.       somExceptionFree(ev);
  14461.  
  14462.       if (pchFmt)
  14463.       {
  14464.         char achBuf[1024];
  14465.         va_start(vargs, pchFmt);
  14466.         vsprintf(achBuf, pchFmt, vargs);
  14467.         somPrintf(achBuf);
  14468.         va_end(vargs);
  14469.         SOMD_Uninit(ev);
  14470.         SOM_DestroyLocalEnvironment(ev);
  14471.         exit(1);
  14472.       }
  14473.       apiRtnCd = TRUE;
  14474.       break;
  14475.     }
  14476.  
  14477.     case USER_EXCEPTION:
  14478.     {
  14479.       if (pchFmt)
  14480.       {
  14481.         char achBuf[1024];
  14482.         va_start(vargs, pchFmt);
  14483.         vsprintf(achBuf, pchFmt, vargs);
  14484.         somPrintf(achBuf);
  14485.         va_end(vargs);
  14486.       }
  14487.       apiRtnCd = TRUE;
  14488.       break;
  14489.     }
  14490.  
  14491.     default:
  14492.     case NO_EXCEPTION:
  14493.     {
  14494.       apiRtnCd = FALSE;
  14495.       break;
  14496.     }
  14497.   }
  14498.   return(apiRtnCd);
  14499. }
  14500. #pragma info(nouse)
  14501.  
  14502.  
  14503. ΓòÉΓòÉΓòÉ 19.2.2. Resource Definition File for WPDS ΓòÉΓòÉΓòÉ
  14504.  
  14505. The following example shows the resource definition file: 
  14506.  
  14507. NAME WPDS WINDOWCOMPAT
  14508. DESCRIPTION 'WPDS: Sample Workplace Shell DSOM program.'
  14509. PROTMODE
  14510. CODE LOADONCALL MOVEABLE DISCARDABLE
  14511. DATA MULTIPLE NONSHARED LOADONCALL
  14512.  
  14513.  
  14514. ΓòÉΓòÉΓòÉ 19.2.3. Make File for WPDS ΓòÉΓòÉΓòÉ
  14515.  
  14516. The following example shows the make file: 
  14517.  
  14518. app     = wpds
  14519. TOOLKIT = c:\toolkit
  14520. IBMCPP  = c:\ibmcpp
  14521.  
  14522. CC      = icc
  14523. LINKER  = link386
  14524. LIBLIST = os2386 + somtk + dde4mbs
  14525. INCLUDE = $(TOOLKIT)\h;$(IBMCPP)\include;.;$(INCLUDE)
  14526. LIB     = $(TOOLKIT)\lib;$(IBMCPP)\lib;$(LIB)
  14527. CFLAGS  = -D_OS2 -c -Q+ -Ss+ -Gd- -Gm+ -Gs+ -Sm -Kb -Ms -Ge+
  14528. LFLAGS  = /exepack /packd /packc /align:4 /stack:360000 /pm:vio /noi /nol /map
  14529.  
  14530. #
  14531. # Set the local environment here
  14532. #
  14533. !if [set INCLUDE=$(INCLUDE);.] || \
  14534.     [set LIB=$(LIB)] || \
  14535.     [set PATH=$(TOOLKIT)\bin;$(IBMCPP)\bin;%path%]
  14536. !endif
  14537.  
  14538. .SUFFIXES:  .obj .c .h
  14539.  
  14540. .c.obj:     $(CC) $(CFLAGS) $<
  14541.  
  14542. all:        $(app).exe
  14543.  
  14544. $(app).obj: $(app).c
  14545.             $(CC) $(CFLAGS) $(app).c
  14546.  
  14547. $(app).exe: $(app).obj
  14548.             $(LINKER) $(LFLAGS) $(app).obj,$(app).exe,$(app).map,$(LIBLIST),$(app);
  14549.             mapsym $(app).map
  14550.  
  14551.  
  14552. ΓòÉΓòÉΓòÉ 20. Workplace Shell Processes and Threads ΓòÉΓòÉΓòÉ
  14553.  
  14554. The Workplace Shell's current implementation exploits the multithreading 
  14555. capabilities of the OS/2 operating system. This chapter describes how the 
  14556. Workplace Shell is initialized, the relationship between its various threads, 
  14557. and ramifications on Workplace Shell method invocation. 
  14558.  
  14559.  
  14560. ΓòÉΓòÉΓòÉ 20.1. About Workplace Shell Processes and Threads ΓòÉΓòÉΓòÉ
  14561.  
  14562. The Workplace process is the one under which all the Workplace Shell classes 
  14563. are loaded and initialized. Therefore, objects representing Workplace Shell 
  14564. classes and their subclasses must run on this process. The Workplace process is 
  14565. actually launched from the Shell process, which is the process indicated in the 
  14566. SET PROTSHELL= statement in the CONFIG.SYS file. Once the Shell process is 
  14567. running, it starts the Workplace process. It is the Shell process that is 
  14568. responsible for restarting the Workplace process in the event that it is ended 
  14569. as a result of a trap. The PROTSHELL= statement in the CONFIG.SYS file 
  14570. indicates which process is to be launched as the Shell process. The SET 
  14571. RUNWORKPLACE= statement in the CONFIG.SYS file indicates which process is to be 
  14572. the Workplace process. In the default configuration, both the PROTSHELL and 
  14573. RUNWORKPLACE environment variables are set to PMSHELL.EXE. PMSHELL.EXE is 
  14574. designed to distinguish between being started as the Shell process versus being 
  14575. started as the Workplace process. The following diagram illustrates the 
  14576. initialization sequence: 
  14577.  
  14578.  
  14579.          Shell Process                         Workplace Process
  14580.       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ                    ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  14581.       Γöé                   Γöé                    Γöé               
  14582.       ΓöéPMSHELL.EXE SessionΓöé                    Γöé   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  14583.       Γöé                   Γöé                    Γöé   Γöé PMSHELL.EXE Session       Γöé
  14584.       ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ                    Γöé   Γöé                           Γöé
  14585.               Γöé                                Γöé   Γöé If (Workplace_Process)    Γöé
  14586.               Γöé                                Γöé   Γöé     Start Workplace Shell Γöé
  14587.               Γöé                                Γöé   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  14588.               Γöé                                Γöé               Γöé
  14589.                                               Γöé               
  14590.      Create Window List                        Γöé           SOM Is Initialized
  14591.      Start Starter Thread                      Γöé           Classes Are Loaded
  14592.            Γöé                                   Γöé           Desktop Is Opened
  14593.            ΓööΓöÇ Starter Thread                  Γöé           Restart List Is Processed
  14594.                {                               ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ Etc...
  14595.                  While (TRUE)                            Γöé
  14596.                  {                                       Γöé
  14597.                    If (Workplace Process Is Not Running) Γöé
  14598.                      Launch PMSHELL.EXE;                 Γöé
  14599.                  }                 Γöé                     Γöé
  14600.                }                   Γöé                     Γöé
  14601.                                    ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  14602.  
  14603.  
  14604. ΓòÉΓòÉΓòÉ 20.1.1. The Shell Process ΓòÉΓòÉΓòÉ
  14605.  
  14606. While the Shell process can be any application (xxx.EXE), PMSHELL.EXE is the 
  14607. default. This section describes the behavior of PMSHELL.EXE specifically. The 
  14608. important features of the Shell process are as follows: 
  14609.  
  14610.    o  The Starter thread is always running on the main Shell process. 
  14611.  
  14612.    o  If the Starter thread detects that the Workplace process is not started 
  14613.       or has died, it will automatically restart it. 
  14614.  
  14615.  The threads in this section are initiated from the Shell process and are 
  14616.  closely tied to the functioning of the Workplace process. 
  14617.  
  14618.  
  14619. ΓòÉΓòÉΓòÉ 20.1.1.1. The Starter Thread ΓòÉΓòÉΓòÉ
  14620.  
  14621. The Starter thread runs on the Shell process and is mainly responsible for 
  14622. starting the Workplace process. It will automatically restart the Workplace 
  14623. process in the event that the: 
  14624.  
  14625.    o  Workplace process might trap 
  14626.  
  14627.    o  User code running on the Workplace process might trap. 
  14628.  
  14629.  In addition, the Starter thread is responsible for starting all applications 
  14630.  as children of the first Shell process instead of children of the Workplace 
  14631.  process. Thus, when the Workplace process needs to be restarted, all 
  14632.  applications that were run from it continue to function normally, while the 
  14633.  Workplace process is restarted. 
  14634.  
  14635.  Since applications that were initiated by a user action in the Workplace Shell 
  14636.  are really started from this thread, when such applications are terminated, 
  14637.  the Starter thread must pass a corresponding notification back to the 
  14638.  Workplace process. 
  14639.  
  14640.  
  14641. ΓòÉΓòÉΓòÉ 20.1.1.2. The Shutdown Thread ΓòÉΓòÉΓòÉ
  14642.  
  14643. When a shutdown is initiated, the Shutdown thread is created on the Shell 
  14644. process. The Shutdown thread closes all running applications in the system. The 
  14645. Shutdown thread creates a PM message queue. It broadcasts to all applications a 
  14646. message instructing them to save their data, initiates the closing of all open 
  14647. folders, and so on. 
  14648.  
  14649. Each child process of the Shell process will send a WM_APPTERMINATENOTIFY to 
  14650. the Shell process when it goes away. Unless a shutdown is in effect, when the 
  14651. Shell process receives such notification for the Workplace process, it will 
  14652. restart the Workplace process. 
  14653.  
  14654.  
  14655. ΓòÉΓòÉΓòÉ 20.1.2. The Workplace Process ΓòÉΓòÉΓòÉ
  14656.  
  14657. When started, the Workplace process' first thread becomes the User-interface 
  14658. thread. The User-interface thread is the one responsible for monitoring the 
  14659. Workplace Shell's PM message queue and dispatching the appropriate actions 
  14660. based on which messages come through. The User-interface thread is the one that 
  14661. most noticeably affects the user's perception of response time. Therefore, it 
  14662. is mandatory that only the minimum amount of processing takes place on that 
  14663. thread. There are a set of other threads that are also started at different 
  14664. times during the lifetime of the Workplace process. There are divided into two 
  14665. major categories: 
  14666.  
  14667.    o  Mandatory threads which are always running 
  14668.  
  14669.    o  Transient threads which are started and stopped over time. 
  14670.  
  14671.  The following diagram shows the Shell and Workplace process and their threads. 
  14672.  The asterisk (*) indicates the transient threads. 
  14673.  
  14674.                 Shell Process                ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ Workplace Process
  14675.               ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ     Γöé       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  14676.               Γöé                        Γöé     Γöé       Γöé Mandatory Threads:       Γöé
  14677.               Γöé                        Γöé  Launches   Γöé  Object Thread           Γöé
  14678.               Γöé Starter Thread ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ       Γöé  Lazy Writer Thread      Γöé
  14679.               Γöé Shutdown Thread*       Γöé             Γöé  Sleepy Time Thread      Γöé
  14680.               Γöé                        Γöé             Γöé  Wheel Watcher Thread    Γöé
  14681.               Γöé                        Γöé             Γöé  Process Queue Thread    Γöé
  14682.               Γöé                        Γöé             Γöé  Ager Thread             Γöé
  14683.               Γöé                        Γöé             Γöé                          Γöé
  14684.               Γöé                        Γöé             Γöé Transient Threads:       Γöé
  14685.               Γöé                        Γöé             Γöé  Populate Thread*        Γöé
  14686.               Γöé                        Γöé             Γöé  Asynch Refresh Thread*  Γöé
  14687.               Γöé                        Γöé             Γöé  Add First Child Thread* Γöé
  14688.               Γöé                        Γöé             Γöé  Vacate Folder Thread*   Γöé
  14689.               Γöé                        Γöé             Γöé  Tasking Thread*         Γöé
  14690.               Γöé                        Γöé             Γöé  Printer Thread*         Γöé
  14691.               Γöé                        Γöé             Γöé  Finder Thread*          Γöé
  14692.               Γöé                        Γöé             Γöé                          Γöé
  14693.               Γöé Specified by           Γöé             Γöé  Specified by            Γöé
  14694.               Γöé PROTSHELL              Γöé             Γöé  RUNWORKPLACE            Γöé
  14695.               Γöé (PMSHELL.EXE)          Γöé             Γöé  (PMSHELL.EXE)           Γöé
  14696.               ΓööΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γöÿ             ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  14697.                 Γöé          Γöé          Γöé
  14698.              Launches   Launches   Launches
  14699.                 Γöé          Γöé          Γöé
  14700.                                     
  14701.              Appl. 1    Appl. 2    Appl. n
  14702.              Process    Process    Process
  14703.             ΓöîΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÉ ΓöîΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÉ ΓöîΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÉ
  14704.             ΓöéAPP1.EXEΓöé ΓöéAPP2.EXEΓöé ΓöéAPPn.EXEΓöé
  14705.             ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  14706.  
  14707.  
  14708. ΓòÉΓòÉΓòÉ 20.1.2.1. Mandatory Threads ΓòÉΓòÉΓòÉ
  14709.  
  14710. The mandatory threads are as follows: 
  14711.  
  14712.    o  Object 
  14713.  
  14714.    o  Lazy writer 
  14715.  
  14716.    o  Sleepy time 
  14717.  
  14718.    o  Wheel watcher 
  14719.  
  14720.    o  Process queue 
  14721.  
  14722.    o  Ager. 
  14723.  
  14724.  
  14725. ΓòÉΓòÉΓòÉ 20.1.2.1.1. The Object Thread ΓòÉΓòÉΓòÉ
  14726.  
  14727.  
  14728. The Object thread represents the Workplace object window. It is not visible. It 
  14729. is used to offload I/O intensive operations from the main user-interface 
  14730. thread. The Object thread has a PM message queue. It utilizes an event 
  14731. semaphore, which it uses to signal the Sleepy time thread when the object 
  14732. thread is idle. The Sleepy time thread uses this event semaphore to throttle 
  14733. itself so that it does not fill the Object thread's message queue with make 
  14734. dormant messages, which would implicitly keep the Object thread's priority 
  14735. higher than the main User-interface thread's priority, and cause visibly 
  14736. noticeable delays in response time. 
  14737.  
  14738. Some of the notifications received and processed by the Object thread are as 
  14739. follows: 
  14740.  
  14741.    o  Receives notification from PMSHAPI when program groups or their contents 
  14742.       are added or deleted 
  14743.  
  14744.    o  Receives notification from the Starter thread when an application that 
  14745.       the Workplace process asked to run gets terminated 
  14746.  
  14747.    o  Receives notification that an object needs to be made dormant 
  14748.  
  14749.    o  Processes messages for class loading, unloading and replacement which are 
  14750.       sent by functions such as WinRegisterObjectClass and 
  14751.       WinReplaceObjectClass 
  14752.  
  14753.    o  Receives notification that a file system notification needs to be 
  14754.       processed in the Workplace Shell 
  14755.  
  14756.    o  Processes messages sent by functions such as WinCreateObject, 
  14757.       WinDestroyObject, and WinSetObjectData 
  14758.  
  14759.    o  Processes some of the shutdown process. 
  14760.  
  14761.  
  14762. ΓòÉΓòÉΓòÉ 20.1.2.1.2. The Lazy Writer Thread ΓòÉΓòÉΓòÉ
  14763.  
  14764.  
  14765. The Lazy writer thread is responsible for writing objects' state in its 
  14766. persistent form. A wpSaveDeferred results in an object subsequently being 
  14767. processed by this thread. When the Lazy writer thread stores an object, it will 
  14768. call _wpSaveState. This thread does not have a PM message queue. 
  14769. Synchronization is controlled by event semaphores that are signaled from 
  14770. various other threads. The Lazy writer thread detects periods of file system 
  14771. inactivity, as well as other heuristics, and at such times performs actions 
  14772. such as: 
  14773.  
  14774.    o  Storing file system objects' handles to the OS2SYS.INI file 
  14775.  
  14776.    o  Storing abstract objects' handles to the OS2.INI file 
  14777.  
  14778.    o  Saving all objects on the Dirty list 
  14779.  
  14780.    o  Saving the restart list 
  14781.  
  14782.    o  Saving any updated window positions to the OS2.INI file 
  14783.  
  14784.    o  Updating the PM_Workplace:Locations entry in the OS2.INI file. 
  14785.  
  14786.  
  14787. ΓòÉΓòÉΓòÉ 20.1.2.1.3. The Sleepy Time Thread ΓòÉΓòÉΓòÉ
  14788.  
  14789.  
  14790. An object, in its dormant state, consists of a block of data written in a 
  14791. persistent form, for example, a series of appnames in the INI file, or a file's 
  14792. extended attributes. Conversely, when an object is awake, it is instantiated in 
  14793. memory. To reduce the number of objects that exist in memory, when objects are 
  14794. no longer visually exposed, they are added to a list of sleeping objects. The 
  14795. Sleepy time thread maintains this list of objects that may need to be made 
  14796. dormant, and progressively ages them until they are either removed from the 
  14797. sleepy object list, or until they need to be made dormant. Incidentally, when 
  14798. an object is locked it cannot be made dormant. This prevents objects that may 
  14799. not be visibly exposed to remain in memory on demand. The Sleepy time thread 
  14800. sends a notification to the Object thread, which will cause the object to be 
  14801. made dormant, when it has been on the sleepy object list for the 
  14802. OBJECTSNOOZETIME period specified in the CONFIG.SYS file. 
  14803.  
  14804.  
  14805. ΓòÉΓòÉΓòÉ 20.1.2.1.4. The Wheel Watcher Thread ΓòÉΓòÉΓòÉ
  14806.  
  14807.  
  14808. The Wheel watcher thread is responsible for catching notifications from the 
  14809. file system regarding the Move, Copy, Delete, Rename, ... commands. Only the 
  14810. Workplace process in the operating system can receive these notifications. File 
  14811. system notifications are then added to a system queue, which is monitored by 
  14812. another thread on the Workplace process, the Process queue thread. The Wheel 
  14813. watcher thread does not maintain a PM message queue. 
  14814.  
  14815.  
  14816. ΓòÉΓòÉΓòÉ 20.1.2.1.5. The Process Queue Thread ΓòÉΓòÉΓòÉ
  14817.  
  14818.  
  14819. The Process queue thread takes file system notifications from a queue and uses 
  14820. heuristics to determine if successive notifications: 
  14821.  
  14822.    o  Are redundant 
  14823.  
  14824.    o  Cancel each other out 
  14825.  
  14826.    o  Are necessary, for example, if the folder containing the object in 
  14827.       question is not awake. 
  14828.  
  14829.  If not, a notification is then handed off to a third thread, the Ager thread. 
  14830.  The Process queue thread does not maintain a PM message queue. 
  14831.  
  14832.  
  14833. ΓòÉΓòÉΓòÉ 20.1.2.1.6. The Ager Thread ΓòÉΓòÉΓòÉ
  14834.  
  14835.  
  14836. The Ager thread is responsible for aging notifications for an appropriate 
  14837. amount of time so that intermediate file system modifications are not 
  14838. unnecessarily processed by the Workplace Shell. For example, removing the 
  14839. possibility of a short-lived, application generated file from appearing and 
  14840. then immediately disappearing from the view of an open folder. When a 
  14841. notification has aged appropriately, the Ager thread notifies the Object thread 
  14842. that a notification is ready. The actual processing of the notification takes 
  14843. place from the Object thread, upon receiving such notification. 
  14844.  
  14845.  
  14846. ΓòÉΓòÉΓòÉ 20.1.2.2. Transient Threads ΓòÉΓòÉΓòÉ
  14847.  
  14848. Other threads' lifetimes are brief and may be started and restarted many times. 
  14849. The Transient threads are as follows: 
  14850.  
  14851.    o  Populate 
  14852.    o  Asynch refresh 
  14853.    o  Add first child 
  14854.    o  Vacate folder 
  14855.    o  Tasking 
  14856.    o  Printer 
  14857.    o  Finder. 
  14858.  
  14859.  
  14860. ΓòÉΓòÉΓòÉ 20.1.2.2.1. The Populate Thread ΓòÉΓòÉΓòÉ
  14861.  
  14862.  
  14863. The Populate thread is created when a folder is opened. It is from this thread 
  14864. that _wpPopulate is invoked. wpPopulate is responsible for finding and 
  14865. instantiating from their persistent state all objects that reside in a 
  14866. particular folder. Because this is very I/O intensive, this is handled 
  14867. asynchronously. The Populate thread is responsible for sending messages to the 
  14868. container instructing it to add new records representing the newly instantiated 
  14869. objects. 
  14870.  
  14871.  
  14872. ΓòÉΓòÉΓòÉ 20.1.2.2.2. The Asynch Refresh Thread ΓòÉΓòÉΓòÉ
  14873.  
  14874.  
  14875. The Asynch refresh thread may be created by wpPopulate when the folder, for 
  14876. which the populate was requested, was already previously populated, and no open 
  14877. views currently exist. The Asynch refresh thread simply invokes wpRefresh on a 
  14878. specified folder. This thread creates a PM message queue. It is also initiated 
  14879. when Refresh now is selected from an open folder's pop-up menu. 
  14880.  
  14881.  
  14882. ΓòÉΓòÉΓòÉ 20.1.2.2.3. The Add First Child Thread ΓòÉΓòÉΓòÉ
  14883.  
  14884.  
  14885. The Add first child thread is initiated when it is requested that a folder, 
  14886. opened in Tree view, be populated. Because in the open Tree view, every visible 
  14887. folder containing subfolders must have a plus (+) sign next to it, each visible 
  14888. folder must be populate one level deep to see if it contains at least one 
  14889. subfolder. Because there can be many such folders, this processing is done on a 
  14890. thread other than the main User-interface thread. 
  14891.  
  14892. The Add first child thread is also created when a folder is added to or removed 
  14893. from: 
  14894.  
  14895.    o  An open Tree view 
  14896.    o  One of the subfolders in an open Tree view, 
  14897.  
  14898.  so that its plus sign can be modified appropriately. This thread uses a round 
  14899.  robin queue to fairly service folders that need processing. This is so that if 
  14900.  several folders are opened in Tree view, visible subfolders will be processed 
  14901.  in turn, rather than one view being handled at a time. When this queue is 
  14902.  full, _wpAddFirstChild is invoked synchronously. The Add first child thread 
  14903.  creates a PM message queue. 
  14904.  
  14905.  
  14906. ΓòÉΓòÉΓòÉ 20.1.2.2.4. The Vacate Folder Thread ΓòÉΓòÉΓòÉ
  14907.  
  14908.  
  14909. The Vacate folder thread is invoked when a folder is closed. The Vacate folder 
  14910. thread saves the folder's icon positions, along with other information 
  14911. pertaining to its window position. It then sends a message to the folder's 
  14912. container causing it to invoke WinDestroyWindow on itself. 
  14913.  
  14914.  
  14915. ΓòÉΓòÉΓòÉ 20.1.2.2.5. The Tasking Thread ΓòÉΓòÉΓòÉ
  14916.  
  14917.  
  14918. The Tasking thread is invoked to perform user-initiated tasks such as Copy, 
  14919. Move, Link, and Create another operations on a separate thread, so that it does 
  14920. not interfere with the main User-interface thread's response time. Therefore, 
  14921. the methods that are associated with these actions can be executed from other 
  14922. threads. 
  14923.  
  14924.  
  14925. ΓòÉΓòÉΓòÉ 20.1.2.2.6. The Printer Thread ΓòÉΓòÉΓòÉ
  14926.  
  14927.  
  14928. The Printer thread is created to perform the actual printing of a file (as a 
  14929. result of a _wpPrintObject). It creates a PM message queue. 
  14930.  
  14931.  
  14932. ΓòÉΓòÉΓòÉ 20.1.2.2.7. The Finder Thread ΓòÉΓòÉΓòÉ
  14933.  
  14934.  
  14935. The Finder thread is created when a Find operation is initiated via the user 
  14936. interface. This thread performs the I/O intensive operation of actually finding 
  14937. objects that match specifications. The Finder thread creates a PM message 
  14938. queue. 
  14939.  
  14940.  
  14941. ΓòÉΓòÉΓòÉ 20.2. Using Workplace Shell Processes and Threads ΓòÉΓòÉΓòÉ
  14942.  
  14943. This section describes ramifications of multithreading on Workplace Shell 
  14944. method invocation and specifies notes for developers of user-defined threads. 
  14945.  
  14946.  
  14947. ΓòÉΓòÉΓòÉ 20.2.1. Multithreading on Workplace Shell Method Invocation ΓòÉΓòÉΓòÉ
  14948.  
  14949. Workplace Shell application development involves subclassing existing classes, 
  14950. introducing new methods as well as defining behavior for overridden Workplace 
  14951. Shell methods. In writing these method overrides, it is important to keep in 
  14952. mind that they may be invoked from other threads. For example, an override of 
  14953. wpPopulate will be invoked on an object of a WPFolder subclass, when wpOpen or 
  14954. wpViewObject is invoked. As described in "The Populate Thread" section, 
  14955. wpPopulate is sometimes invoked from the Populate thread. 
  14956.  
  14957.  
  14958. ΓòÉΓòÉΓòÉ 20.2.2. Developing User-Defined Threads ΓòÉΓòÉΓòÉ
  14959.  
  14960. Because Workplace Shell objects are running under the Workplace process, they 
  14961. can be accessed by any thread belonging to that process. And, as such, may have 
  14962. methods invoked upon them from any of these threads. Some Workplace Shell 
  14963. methods require the thread in which they were invoked to have a PM message 
  14964. queue. Therefore, when writing your own threads, in your subclass' 
  14965. implementation, make sure to do the following, even if your thread does not 
  14966. need a message loop: 
  14967.  
  14968. hab = WinInitialize(0);
  14969. if (hab)
  14970. {
  14971.   hmq = WinCreateMsqQueue(hab,0);
  14972.   if (hmq)
  14973.   {
  14974.     WinCancelShutdown(hmq, TRUE);
  14975.         .
  14976.         .
  14977.         .
  14978.   }
  14979. }
  14980.  
  14981. Note: 
  14982.  
  14983.    o  Exception handling should be added to any user-defined threads, so that 
  14984.       traps originating in that code do not end up hanging the Workplace 
  14985.       process. 
  14986.  
  14987.    o  Per thread and per process variables are accessible via DosGetInfoBlocks, 
  14988.       which yields a TIB structure. 
  14989.  
  14990.    o  Threads require a 4KB stack each. 
  14991.  
  14992.    o  When calling DosSetPriority, do not use idle priority threads. 
  14993.  
  14994.    o  DosExit on a thread does not free resources nor close files; DosExit on a 
  14995.       process does. 
  14996.  
  14997.  
  14998. ΓòÉΓòÉΓòÉ 21. Workplace Shell Programming Interface ΓòÉΓòÉΓòÉ
  14999.  
  15000. The Desktop (which also is an object), the objects that appear on the Desktop, 
  15001. and the underlying code supporting these objects constitute the OS/2 Workplace 
  15002. Shell, the default OS/2 user interface. Likewise, methods in the Workplace 
  15003. Shell are methods that were implemented for the creation of the Desktop object 
  15004. and its objects. This chapter describes Workplace Shell classes and 
  15005. characteristic behaviors of Workplace Shell objects. Because Workplace Shell 
  15006. objects are built using the IBM System Object Model (SOM), the OS/2 Workplace 
  15007. Shell Programming Interface requires a knowledge of SOM. It assumes a knowledge 
  15008. of object-oriented programming and design concepts, as well as SOM. 
  15009.  
  15010.  
  15011. ΓòÉΓòÉΓòÉ 21.1. About Workplace Shell Programming Interface ΓòÉΓòÉΓòÉ
  15012.  
  15013. To establish a base definition of an object-oriented user interface, CUA 
  15014. guidelines are highlighted. The OS/2 Workplace Shell is an object-oriented user 
  15015. environment based on these guidelines. General object-oriented user interface 
  15016. concepts are then used to explain the underlying design of the Workplace Shell 
  15017. Programming Interface. 
  15018.  
  15019.  
  15020. ΓòÉΓòÉΓòÉ 21.1.1. CUA Guidelines for an Object-Oriented User Interface ΓòÉΓòÉΓòÉ
  15021.  
  15022. CUA guidelines defined the user interface for application-oriented 
  15023. environments. In object-oriented environments, such as the OS/2 operating 
  15024. system, the user performs tasks by manipulating on-screen objects. The user 
  15025. does not start an application to perform a task.  Instead, the user can do the 
  15026. following: 
  15027.  
  15028.    o  Select an action or task that can be performed on an object. For example, 
  15029.       the user selects the Open action on an ASCII file object. The operating 
  15030.       system then starts an editor to work on the file. 
  15031.  
  15032.    o  Select the Open action on a spreadsheet file. The operating system then 
  15033.       starts a spreadsheet application to work on the file. 
  15034.  
  15035.    o  Drag the ASCII file object to a printer object and drop it on the printer 
  15036.       object. The file is then sent to the printer. 
  15037.  
  15038.  The concept of applications is transparent to the user. The user interacts 
  15039.  with objects rather than with the operating system or with separate 
  15040.  applications. The user focuses on the task and not on the tools used to 
  15041.  perform the task. The user interacts with objects in the same manner across 
  15042.  tasks. 
  15043.  
  15044.  
  15045. ΓòÉΓòÉΓòÉ 21.1.1.1. Objects, Classes, Hierarchies, and Inheritance ΓòÉΓòÉΓòÉ
  15046.  
  15047. An object is any visual component of the user interface with which the user can 
  15048. work, independent of other items, to perform a task. An object can be 
  15049. represented by one or more graphic images, called icons. The user can interact 
  15050. with an object (or its icon) just as the user can interact with objects in the 
  15051. real world. 
  15052.  
  15053.  
  15054. ΓòÉΓòÉΓòÉ 21.1.1.2. Views of Objects ΓòÉΓòÉΓòÉ
  15055.  
  15056. The user also can interact with an object by opening a window that displays 
  15057. more information about the object. The content of a window is a view of an 
  15058. object. A view is a way of looking at an object's information. Different views 
  15059. display information in different forms, just as information about an object is 
  15060. presented in the real world. An object can have more than one view. 
  15061.  
  15062. The appearance of a window's contents and the kinds of interaction possible in 
  15063. a window are determined, in part, by the type of view presented in the window. 
  15064. CUA guidelines describe four basic types of views: 
  15065.  
  15066.    o  Composed Views 
  15067.  
  15068.       A Composed view of a data object arranges the object's data in an order 
  15069.       that conveys the data's meaning. If the data is arranged differently in a 
  15070.       Composed view, the object has a different meaning. For example, a graph 
  15071.       or chart object typically is displayed in a Composed view because the 
  15072.       arrangement of the components determines the meaning of the object as a 
  15073.       whole. If the arrangement of the components changes, the meaning of the 
  15074.       object changes. 
  15075.  
  15076.    o  Contents Views 
  15077.  
  15078.       A Contents view lists the components of an object. The components can be 
  15079.       ordered or unordered in the view;  the order of the information displayed 
  15080.       in a Contents view does not affect the meaning of the object containing 
  15081.       the information. CUA guidelines describe two kinds of Contents views: 
  15082.  
  15083.         -  Icon view 
  15084.  
  15085.            An Icon view displays each object as an icon. Its purpose is to give 
  15086.            the user an easy way to change the position of objects or to 
  15087.            otherwise directly manipulate them. An object usually is represented 
  15088.            by only one icon. However, for some tasks, the user might find it 
  15089.            convenient to represent an object with more than one icon. For 
  15090.            example, the user might want a representation of a printer object in 
  15091.            more than one place so that the user can have easy access to the 
  15092.            printer from anywhere. The user can create an additional icon, known 
  15093.            as a shadow, to represent the same printer object. The following 
  15094.            figure shows an Icon view: 
  15095.  
  15096.         -  Details view 
  15097.  
  15098.            A Details view combines small icons with text that provides 
  15099.            additional information about objects. The type of information 
  15100.            displayed depends on the type of object and the type of tasks the 
  15101.            user wants to perform. A Details view gives the user access to some 
  15102.            of the object's more frequently used information, without requiring 
  15103.            the user to open the object. Small icons are included in a Details 
  15104.            view to provide a way for the user to easily recognize objects and 
  15105.            to directly manipulate each object. The following figure shows a 
  15106.            Details view: 
  15107.  
  15108.    o  Settings views 
  15109.  
  15110.       A Settings view displays information about the characteristics, 
  15111.       attributes, or properties of an object, and provides a way for the user 
  15112.       to change the settings of some characteristics or properties. A Settings 
  15113.       view typically is provided for each type of object. The following figure 
  15114.       shows a Settings view of an objects: 
  15115.  
  15116.    o  Help views 
  15117.  
  15118.       A Help view provides information that can assist the user in working with 
  15119.       an object. The type of information displayed in a help view depends on 
  15120.       the type of help the user requests. For example,  the user can request 
  15121.       help for an entire window or for part of a window. The following figure 
  15122.       shows a help view assisting the user in working with an object: 
  15123.  
  15124.  
  15125. ΓòÉΓòÉΓòÉ 21.1.1.3. Classes of Objects ΓòÉΓòÉΓòÉ
  15126.  
  15127. Objects can be classified by similarities in characteristics and behaviors. 
  15128. Each class of objects has a primary purpose that distinguishes it from other 
  15129. classes, and all three types of objects can contain other objects. CUA 
  15130. guidelines define three object classes: 
  15131.  
  15132.    o  Container objects 
  15133.  
  15134.       A Container object holds other objects. Its primary purpose is to provide 
  15135.       a way for the user to group related objects for easy access and 
  15136.       retrieval. The following figure shows a Container object: 
  15137.  
  15138.    o  Data objects 
  15139.  
  15140.       Data objects convey information, such as text or graphics, audio or video 
  15141.       information. The following figure shows a Data object: 
  15142.  
  15143.    o  Device objects 
  15144.  
  15145.       A Device object often represents a physical object in the real world. For 
  15146.       example, a mouse object can represent the user's pointing device, and a 
  15147.       modem object can represent the user's modem. Some device objects 
  15148.       represent a logical object in the user's computer system rather than a 
  15149.       physical object. For example, a shredder object can represent a logical 
  15150.       object that disposes of the user's other objects. Some device objects can 
  15151.       contain other objects. For example, a printer object can contain a queue 
  15152.       of objects to be printed. The following figure shows a Device object: 
  15153.  
  15154.  
  15155. ΓòÉΓòÉΓòÉ 21.1.1.4. Object Relationships ΓòÉΓòÉΓòÉ
  15156.  
  15157. An object class can be defined in terms of another object class. It can be 
  15158. derived from another class, inheriting the same characteristics and behaviors 
  15159. of the other class, yet having characteristics and behaviors of its own. The 
  15160. class that it is derived from is called its parent class; the class itself is 
  15161. referred to as a subclass of its parent class. 
  15162.  
  15163. The inheritance relationship between objects is hierarchical. An object that is 
  15164. lower in the inheritance hierarchy than another object has all of the 
  15165. characteristics of the object or objects above it and can have new 
  15166. characteristics of its own. 
  15167.  
  15168. Other object relationships also can be hierarchical. For example, objects can 
  15169. be arranged in a containment hierarchy that illustrates which objects can 
  15170. contain which other objects. 
  15171.  
  15172.  
  15173. ΓòÉΓòÉΓòÉ 21.1.1.5. Interaction with Objects ΓòÉΓòÉΓòÉ
  15174.  
  15175. In an object-oriented user environment, users interact with objects to perform 
  15176. tasks. The object-action paradigm is a pattern for interaction in which the 
  15177. user first selects an object, and then selects an action. When the user selects 
  15178. an object, the system can then present a list of actions that can be applied to 
  15179. that object. Some actions might require the user to respond to additional 
  15180. choices. Interaction with an object through choices and controls is known as 
  15181. indirect manipulation. 
  15182.  
  15183. At any given time an object has a set of actions that can be performed on it. 
  15184. Different objects have different actions that can be performed on them. Action 
  15185. choices for an object are displayed in pop-up menus that appear next to an 
  15186. object when the user presses the appropriate key or mouse button. The content 
  15187. of a pop-up menu is based on the object's context, which includes its current 
  15188. state, location, and contents. 
  15189.  
  15190. Users also can interact with objects by way of a pointing device. This is known 
  15191. as direct manipulation. This interaction technique closely resembles the way 
  15192. the user interacts with objects in the real world. For example,  the user can 
  15193. pick up an object and put it into a folder. This technique is also known as 
  15194. dragging an object from one place and dropping it at another place. 
  15195.  
  15196. A Drag and Drop operation often involves a source object and a target object. A 
  15197. source object usually is the object the user is working with, and a target 
  15198. object usually is an object to which the user is transferring information. For 
  15199. example, the user drags a file object to a printer object so that the file can 
  15200. be printed; the file is the source object and the printer is the target object. 
  15201.  
  15202. The result of a Drag and Drop operation can change depending on what the source 
  15203. object is and what the target object is. For example, if the user drags a file 
  15204. object from one folder object and drops it on another, the file is moved to the 
  15205. target folder. However, if the user drops the same file onto a printer, the 
  15206. operating system makes a copy of the file and puts the copy into the printer's 
  15207. queue to be printed. The original file is returned to its original location. 
  15208.  
  15209.  
  15210. ΓòÉΓòÉΓòÉ 21.1.1.6. Designing an Object-Oriented User Interface ΓòÉΓòÉΓòÉ
  15211.  
  15212. The following items are key to designing an object-oriented user interface: 
  15213.  
  15214.    o  Objects and their relationships 
  15215.    o  Visual representations of objects 
  15216.    o  Interaction techniques and mechanisms. 
  15217.  
  15218.  Objects and their relationships can be defined by answering the following 
  15219.  questions: 
  15220.  
  15221.    o  What objects does the user require? 
  15222.    o  How are the objects related? 
  15223.    o  What properties and behaviors should the objects have? 
  15224.  
  15225.  To illustrate the importance of objects and their relationships, consider the 
  15226.  example of the design of a software model of a car dealership. A salesperson 
  15227.  needs a car object to represent each car model on his lot. He also needs a 
  15228.  customer object to represent each customer that purchases a car. He needs a 
  15229.  worksheet object to track sales, profits, inventory, customers, and so on. 
  15230.  Finally, he needs container objects to group these objects. 
  15231.  
  15232.  The visual representations of objects must ensure consistency with one another 
  15233.  and with the operating system. Visual representations of objects should 
  15234.  address the functional aspects of visual representations, such as usability 
  15235.  and purpose: Does the visual convey the purpose of the object being 
  15236.  represented? Visual representations also should address the aesthetic aspects, 
  15237.  such as shape, size, and color: Is the representation visually pleasing? 
  15238.  
  15239.  Users should interact with similar objects in similar ways and in ways that 
  15240.  seem natural. Users also should have a choice of interaction mechanisms that 
  15241.  suits their tasks, level of skill, and preferred style of interaction. In the 
  15242.  car dealership example, a salesperson must be able to place information into a 
  15243.  worksheet object in any of several ways. The salesperson can: 
  15244.  
  15245.    o  Place a car object on top of the worksheet object, thereby transferring 
  15246.       information about the car to the worksheet 
  15247.  
  15248.    o  Type the information directly into the worksheet object 
  15249.  
  15250.    o  Select portions of information from the car object and copy them to the 
  15251.       worksheet object. 
  15252.  
  15253.  
  15254. ΓòÉΓòÉΓòÉ 21.1.1.6.1. Defining Objects for a Software Model ΓòÉΓòÉΓòÉ
  15255.  
  15256.  
  15257. To design a software model that serves the needs of the users, the car 
  15258. dealership example is translated into: 
  15259.  
  15260.    o  Who are the users? 
  15261.    o  What tasks do they perform? 
  15262.  
  15263.  In this example, the salesperson is the user. The user's tasks can include: 
  15264.  
  15265.    o  Determining what a customer wants, needs, and can afford 
  15266.    o  Determining what cars are in stock that match the customer's wants, 
  15267.       needs, and budget 
  15268.    o  Negotiating an agreement using a worksheet 
  15269.    o  Getting approval from the sales manager 
  15270.    o  Giving the worksheet information to the finance manager. 
  15271.  
  15272.  From this analysis, the objects that should be part of our software model can 
  15273.  be identified. These include a car object, car lot object, customer object, 
  15274.  customer list object, worksheet object, worksheet list object, salesperson 
  15275.  object, sales manager object, and finance manager object. 
  15276.  
  15277.  To simplify this explanation, consider the car object only. Each car object 
  15278.  represents a real car for sale in the car lot. A car object contains 
  15279.  descriptive information about the corresponding real car, such as its year, 
  15280.  make, model, price, factory-installed options, color, and vehicle 
  15281.  identification number. Because the primary purpose of a car object is to 
  15282.  convey information, the car object is a data object. 
  15283.  
  15284.  
  15285. ΓòÉΓòÉΓòÉ 21.1.1.6.2. Determining Object Relationships and Behaviors ΓòÉΓòÉΓòÉ
  15286.  
  15287.  
  15288. The next step in the design of a software model is to determine how each object 
  15289. interacts with other objects. In the car dealership, information contained in 
  15290. car objects must be transferable to a worksheet object. The user should have 
  15291. the option to drag a car object and drop it onto a worksheet object. The user 
  15292. also should have the option to choose an action to copy the information from a 
  15293. car object to a worksheet object. 
  15294.  
  15295.  
  15296. ΓòÉΓòÉΓòÉ 21.1.1.6.3. Determining the Necessary Views ΓòÉΓòÉΓòÉ
  15297.  
  15298.  
  15299. After identifying and defining the objects, consider what views of the car 
  15300. object will give the user (salesperson) the best access to the objects and the 
  15301. information they contain. Car information consists of a combination of text 
  15302. (model, year, and so forth) and graphic information (a picture of a car) that 
  15303. make up a single, General information view. 
  15304.  
  15305.  
  15306. ΓòÉΓòÉΓòÉ 21.1.1.6.4. Determining the Action Choices ΓòÉΓòÉΓòÉ
  15307.  
  15308.  
  15309. From a salesperson's perspective, most of the information about a car object is 
  15310. fixed, that is, the information is based on a real-world object and cannot be 
  15311. changed unless something changes about the real-world object. For example, it 
  15312. would not make sense to permit a salesperson to change the color of a car 
  15313. object to correspond to the color of the actual car he is trying to sell. 
  15314. Because a salesperson can change little about a car object, the car object has 
  15315. only a few action choices: 
  15316.  
  15317.    o  Open as General information view 
  15318.    o  Print 
  15319.    o  Edit 
  15320.    o  Copy to the clipboard 
  15321.    o  Find 
  15322.    o  Windows. 
  15323.  
  15324.  
  15325. ΓòÉΓòÉΓòÉ 21.1.2. OS/2 Object-Oriented User Interface: The Workplace Shell ΓòÉΓòÉΓòÉ
  15326.  
  15327. In the OS/2 operating system, the Desktop is a collection of objects (icons) 
  15328. and windows associated with those objects. The Desktop (which also is an 
  15329. object), the objects that appear on the Desktop, and the underlying code 
  15330. supporting these objects constitute the OS/2 Workplace Shell, the default OS/2 
  15331. user interface. 
  15332.  
  15333. The OS/2 Workplace Shell provides an object-oriented user interface. It 
  15334. provides a seamless environment, where all services are task-oriented and the 
  15335. user is shielded from the complexities of the operating system. The user can 
  15336. perform tasks faster and easier and with a shorter learning curve. 
  15337.  
  15338. In the OS/2 Workplace Shell, applications from OS/2 operating system are 
  15339. replaced by objects and collections of objects, or folders. Users do not have 
  15340. to be aware of where an object is (which drive or network) or what it is 
  15341. called. They can place an object wherever they wish and call it by any name. 
  15342. They do not have to know about EXEs, DLLs, device drivers, or how to add a 
  15343. printer or use a network. If they want to print a report on the laser printer 
  15344. down the hall, they can simply drag the icon representing the report and drop 
  15345. it onto the icon representing the laser printer that is labeled "Laser printer 
  15346. down the hall". 
  15347.  
  15348. Users act on all objects in a consistent manner. They can act on program files 
  15349. the same as program references. There is no difference in using programs on a 
  15350. network server or on a hard disk or on a CD drive. There is no difference in 
  15351. setting up or printing to a local or remote printer. 
  15352.  
  15353. In the OS/2 Workplace Shell, users are not aware of the file system. They do 
  15354. not need to know anything about disk drives or directories. They need to know 
  15355. only about folders and the objects they put into them. They can put 
  15356. applications, files, and so forth, in a folder, as shown in the following 
  15357. figure. They can arrange things, regardless of where they physically reside, to 
  15358. suit themselves and their own needs. And they can label the folders by any 
  15359. name. 
  15360.  
  15361.      ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  15362.      Γöé      My NewsLetter Composition Folder     Γöé
  15363.      Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15364.      Γöé       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÉ            ΓöîΓöÇΓöÇΓöÇΓöÇΓöÉ            Γöé
  15365.      Γöé       Γöé    Γöé            Γöé    Γöé            Γöé
  15366.      Γöé       ΓööΓöÇΓöÇΓöÇΓöÇΓöÿ            ΓööΓöÇΓöÇΓöÇΓöÇΓöÿ            Γöé
  15367.      Γöé    My Text Editor  My Graphics Editor     Γöé
  15368.      Γöé                                           Γöé
  15369.      Γöé                                           Γöé
  15370.      Γöé         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÉ             ΓöîΓöÇΓöÇΓöÇΓöÇΓöÉ         Γöé       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÉ
  15371.      Γöé         Γöé    Γöé             Γöé    Γöé         Γöé       Γöé    Γöé
  15372.      Γöé         ΓööΓöÇΓöÇΓöÇΓöÇΓöÿ             ΓööΓöÇΓöÇΓöÇΓöÇΓöÿ         Γöé       ΓööΓöÇΓöÇΓöÇΓöÇΓöÿ
  15373.      Γöé    My Layout Program    My Final Copy     Γöé     My Printer
  15374.      ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  15375.  
  15376. Some of the objects that the OS/2 Workplace Shell provides are described in the 
  15377. following table. After installation, some of the objects appear directly on the 
  15378. Desktop. Some of them are contained in folders. Users can re-arrange and 
  15379. re-label objects to suit themselves. 
  15380.  
  15381. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  15382. ΓöéObject         ΓöéDescription                                  Γöé
  15383. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15384. ΓöéClock          ΓöéSets and views the current date, time, and   Γöé
  15385. Γöé               Γöéalarm.                                       Γöé
  15386. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15387. ΓöéColor palette  ΓöéSets and views colors for visual elements of Γöé
  15388. Γöé               Γöéuser interface and applies color to a window.Γöé
  15389. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15390. ΓöéCountry        ΓöéSets and views international conventions for Γöé
  15391. Γöé               Γöésystem elements (country, date, time,        Γöé
  15392. Γöé               Γöénumbers).                                    Γöé
  15393. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15394. ΓöéFont palette   ΓöéSets and views fonts for textual elements of Γöé
  15395. Γöé               Γöéuser interface and apply fonts to windows.   Γöé
  15396. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15397. ΓöéKeyboard       ΓöéSets and views keyboard configuration        Γöé
  15398. Γöé               Γöé(timing, mappings, special needs).           Γöé
  15399. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15400. ΓöéMouse          ΓöéSets and views behavior of mouse device      Γöé
  15401. Γöé               Γöé(timing, setup, button mappings).            Γöé
  15402. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15403. ΓöéPrinter        ΓöéSets and views a print destination (a print  Γöé
  15404. Γöé               Γöéqueue and its associated port).              Γöé
  15405. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15406. ΓöéScheme palette ΓöéSets and views window color and font         Γöé
  15407. Γöé               Γöéattributes.                                  Γöé
  15408. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15409. ΓöéShredder       ΓöéDestroys an object.                          Γöé
  15410. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15411. ΓöéSound          ΓöéEnables/disables warning beep.               Γöé
  15412. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15413. ΓöéSpecial needs  ΓöéExplains implications of special needs mode  Γöé
  15414. Γöé               Γöéwhen activated.                              Γöé
  15415. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15416. ΓöéSpooler        ΓöéEnables/disables spooling. Sets and views    Γöé
  15417. Γöé               Γöéspool path.                                  Γöé
  15418. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15419. ΓöéSystem         ΓöéSets and views behavior of system elements   Γöé
  15420. Γöé               Γöé(confirmations, logo, windows).              Γöé
  15421. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  15422.  
  15423.  
  15424. ΓòÉΓòÉΓòÉ 21.2. Using OS/2 Workplace Shell Programming Interface ΓòÉΓòÉΓòÉ
  15425.  
  15426. While object-oriented user interfaces share some concepts with object-oriented 
  15427. programming, user objects might not necessarily correspond to software objects. 
  15428. Object-oriented programming can make the development of an object-oriented user 
  15429. interface easier. However, an object-oriented user interface can be developed 
  15430. with more traditional programming languages and tools. 
  15431.  
  15432. The OS/2 Workplace Shell is an example of a user interface developed using 
  15433. object-oriented programming, specifically, the IBM System Object Model. In 
  15434. fact, every user object in the OS/2 Workplace Shell is an instance of a 
  15435. Workplace Shell software class object. There is a one to one correspondence 
  15436. between Workplace Shell (user) objects and Workplace Shell (software) classes. 
  15437. This is evident in the class hierarchy for Workplace Shell objects, as shown in 
  15438. the following figure: 
  15439.  
  15440. SOMObject
  15441.   Γö£ΓöÇΓöÇ  SOMClass
  15442.   Γö£ΓöÇΓöÇ  SOMClassMgr
  15443.   ΓööΓöÇΓöÇ  WPObject
  15444.          ΓöéΓöÇ WPAbstract
  15445.          Γöé     Γö£ΓöÇΓöÇ  WPClock
  15446.          Γöé     Γö£ΓöÇΓöÇ  WPCountry
  15447.          Γöé     Γö£ΓöÇΓöÇ  WPDisk
  15448.          Γöé     Γö£ΓöÇΓöÇ  WPLaunchPad
  15449.          Γöé     Γö£ΓöÇΓöÇ  WPKeyboard
  15450.          Γöé     Γö£ΓöÇΓöÇ  WPMouse
  15451.          Γöé     Γö£ΓöÇΓöÇ  WPPalette
  15452.          Γöé     Γöé      Γö£ΓöÇΓöÇ WPColorPalette
  15453.          Γöé     Γöé      Γö£ΓöÇΓöÇ WPFontPalette
  15454.          Γöé     Γöé      ΓööΓöÇΓöÇ WPSchemePalette
  15455.          Γöé     Γö£ΓöÇΓöÇ  WPPower
  15456.          Γöé     Γö£ΓöÇΓöÇ  WPPrinter
  15457.          Γöé     Γöé      ΓööΓöÇΓöÇ WPRPrinter
  15458.          Γöé     Γö£ΓöÇΓöÇ  WPProgram
  15459.          Γöé     Γö£ΓöÇΓöÇ  WPShadow
  15460.          Γöé     Γöé      ΓööΓöÇΓöÇ WPNetLink
  15461.          Γöé     Γö£ΓöÇΓöÇ  WPShredder
  15462.          Γöé     Γö£ΓöÇΓöÇ  WPSound
  15463.          Γöé     Γö£ΓöÇΓöÇ  WPSpecialNeeds
  15464.          Γöé     Γö£ΓöÇΓöÇ  WPSpool
  15465.          Γöé     Γö£ΓöÇΓöÇ  WPSystem
  15466.          Γöé     ΓööΓöÇΓöÇ  WPWinConfig
  15467.          ΓöéΓöÇ WPFileSystem
  15468.          Γöé     Γö£ΓöÇΓöÇ WPDataFile
  15469.          Γöé     Γöé      Γö£ΓöÇΓöÇ WPBitmap
  15470.          Γöé     Γöé      Γö£ΓöÇΓöÇ WPIcon
  15471.          Γöé     Γöé      Γö£ΓöÇΓöÇ WPMet
  15472.          Γöé     Γöé      Γö£ΓöÇΓöÇ WPPif
  15473.          Γöé     Γöé      Γö£ΓöÇΓöÇ WPPointer
  15474.          Γöé     Γöé      ΓööΓöÇΓöÇ WPProgramFile
  15475.          Γöé     Γöé             ΓööΓöÇΓöÇ WPCommand File
  15476.          Γöé     Γö£ΓöÇΓöÇ WPFolder
  15477.          Γöé     Γöé      Γö£ΓöÇΓöÇ WPDesktop
  15478.          Γöé     Γöé      Γö£ΓöÇΓöÇ WPDrives
  15479.          Γöé     Γöé      Γö£ΓöÇΓöÇ WPMinWinViewer
  15480.          Γöé     Γöé      Γö£ΓöÇΓöÇ WPNetgrp
  15481.          Γöé     Γöé      Γö£ΓöÇΓöÇ WPNetwork
  15482.          Γöé     Γöé      Γö£ΓöÇΓöÇ WPRootFolder
  15483.          Γöé     Γöé      Γö£ΓöÇΓöÇ WPServer
  15484.          Γöé     Γöé      Γö£ΓöÇΓöÇ WPSharedDir
  15485.          Γöé     Γöé      Γö£ΓöÇΓöÇ WPStartup
  15486.          Γöé     Γöé      ΓööΓöÇΓöÇ WPTemplates
  15487.          ΓööΓöÇΓöÇ WPTransient
  15488.                Γö£ΓöÇΓöÇ WPJob
  15489.                Γö£ΓöÇΓöÇ WPPort
  15490.                Γö£ΓöÇΓöÇ WPPdr
  15491.                ΓööΓöÇΓöÇ WPQdr
  15492.  
  15493. Each WPAbstract, WPFileSystem, and WPTransient subclass has a default icon, as 
  15494. shown in  the following list: 
  15495.  
  15496.  Class Name          Associated Icon 
  15497.  
  15498.  WPBitmap            (by association to the icon editor). 
  15499.  
  15500.  WPClock 
  15501.  
  15502.  WPColorPalette 
  15503.  
  15504.  WPCommandFile 
  15505.  
  15506.  WPCountry 
  15507.  
  15508.  WPDataFile 
  15509.  
  15510.  WPDesktop 
  15511.  
  15512.  WPDisk 
  15513.  
  15514.  WPDrives 
  15515.  
  15516.  WPFolder 
  15517.  
  15518.  WPFontPalette 
  15519.  
  15520.  WPIcon              (by association to the icon editor). 
  15521.  
  15522.  WPJob 
  15523.  
  15524.  WPKeyboard 
  15525.  
  15526.  WPLaunchPad 
  15527.  
  15528.  WPMet               (by association to the picture viewer). 
  15529.  
  15530.  WPMinWinViewer 
  15531.  
  15532.  WPMouse 
  15533.  
  15534.  WPNetgrp 
  15535.  
  15536.  WPNetLink 
  15537.  
  15538.  WPNetwork 
  15539.  
  15540.  WPPif               (by association to the picture viewer). 
  15541.  
  15542.  WPPointer           (by association to the icon editor). 
  15543.  
  15544.  WPPort 
  15545.  
  15546.  WPPower 
  15547.  
  15548.  WPPrinter 
  15549.  
  15550.  WPPdr 
  15551.  
  15552.  WPProgram 
  15553.  
  15554.  WPProgramFile 
  15555.  
  15556.  WPQdr 
  15557.  
  15558.  WPRootFolder 
  15559.  
  15560.  WPRPrinter 
  15561.  
  15562.  WPSchemePalette 
  15563.  
  15564.  WPServer 
  15565.  
  15566.  WPShadow 
  15567.  
  15568.  WPSharedDir 
  15569.  
  15570.  WPShredder 
  15571.  
  15572.  WPSound 
  15573.  
  15574.  WPSpecialNeeds 
  15575.  
  15576.  WPSpool 
  15577.  
  15578.  WPStartup 
  15579.  
  15580.  WPSystem 
  15581.  
  15582.  WPTemplates 
  15583.  
  15584.  WPWinConfig 
  15585.  
  15586.  All Workplace Shell classes are derived from a root Workplace Shell class, 
  15587.  WPObject, which is derived from the root SOM class, SOMObject. Workplace Shell 
  15588.  classes are defined using the SOM's object interface definition language 
  15589.  (OIDL). Workplace Shell class libraries are built using the SOM compiler. 
  15590.  Workplace Shell objects are instantiated by the Workplace Shell on behalf of 
  15591.  the user through the Workplace Shell class list object, installation programs, 
  15592.  or batch files. The same rules that apply to SOM classes apply to Workplace 
  15593.  Shell classes, with the exception that applications cannot call Workplace 
  15594.  Shell methods. (SOM client applications can call SOM methods.) 
  15595.  
  15596.  Some Workplace Shell classes (WPObject, WPAbstract, WPFileSystem, WPTransient) 
  15597.  cannot be instantiated. These classes are provided as base classes which 
  15598.  define common characteristics and behaviors for descendant classes. Object 
  15599.  characteristics and behaviors are defined as methods for the object's class, 
  15600.  as well as methods inherited from ancestor classes. 
  15601.  
  15602.  WPObject is the root class for all Workplace Shell classes. It defines 
  15603.  behavior common to all Workplace Shell objects. The immediate descendants of 
  15604.  WPObject are storage classes, from which all other Workplace Shell classes are 
  15605.  derived. Storage classes define methods for storing and retrieving data 
  15606.  associated with instances of descendant classes. Storage classes provided with 
  15607.  the OS/2 Workplace Shell are shown in the following table: 
  15608.  
  15609.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  15610.   ΓöéClass          ΓöéStorage of Object Instance Data              Γöé
  15611.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15612.   ΓöéWPAbstract     ΓöéObject instance data stored in user profile  Γöé
  15613.   Γöé               Γöé(OS2.INI).                                   Γöé
  15614.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15615.   ΓöéWPFileSystem   ΓöéObject instance data stored in files in the  Γöé
  15616.   Γöé               Γöéfile system.                                 Γöé
  15617.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15618.   ΓöéWPTransient    ΓöéObject instance data not saved.              Γöé
  15619.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  15620.  
  15621.  Objects whose instance data and state is preserved between system shutdown and 
  15622.  system startup are called persistent objects. Objects whose instance data and 
  15623.  state need not be preserved between system shutdown and system startup are 
  15624.  called non-persistent objects. 
  15625.  
  15626.  
  15627. ΓòÉΓòÉΓòÉ 21.2.1. Designing Workplace Shell Classes ΓòÉΓòÉΓòÉ
  15628.  
  15629. To design a Workplace Shell class, first identify all the actions to which an 
  15630. object instance can respond. Based on this list, define the methods in the 
  15631. class definition file that correspond to the actions that were identified. To 
  15632. illustrate this process and understand how method requirements for a class are 
  15633. identified, consider the WPObject and WPAbstract classes. 
  15634.  
  15635. Based on the general description of user objects in a CUA-conforming user 
  15636. environment, objects have the following: 
  15637.  
  15638.    o  Properties (for example, an icon representation in the Workplace Shell) 
  15639.    o  Views that contain information about the object 
  15640.    o  Pop-up context menus that describe actions to which the object can 
  15641.       respond 
  15642.    o  Mobility (direct manipulation). 
  15643.  
  15644.  These characteristics and behaviors should be reflected in the methods in the 
  15645.  class definition file for the WPObject class. The following table shows the 
  15646.  mapping of characteristics and behaviors common to all Workplace Shell objects 
  15647.  defined for this class: 
  15648.  
  15649.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  15650.   ΓöéMethod Group   ΓöéMethod Name                 ΓöéCharacteristic   Γöé
  15651.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15652.   ΓöéContainer      ΓöéwpCnrInsertObject           ΓöéObject containersΓöé
  15653.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15654.   Γöé               ΓöéwpCnrRemoveObject           Γöé                 Γöé
  15655.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15656.   Γöé               ΓöéwpCnrSetEmphasis            Γöé                 Γöé
  15657.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15658.   Γöé               ΓöéwpRegisterView              Γöé                 Γöé
  15659.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15660.   Γöé               ΓöéwpclsInsertMultipleObjects  Γöé                 Γöé
  15661.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15662.   ΓöéDetails        ΓöéwpIsSortAttribAvailable     ΓöéObject criteria  Γöé
  15663.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15664.   Γöé               ΓöéwpQueryDetailsData          Γöé                 Γöé
  15665.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15666.   Γöé               ΓöéwpQueryFldrDetailsClass     Γöé                 Γöé
  15667.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15668.   Γöé               ΓöéwpQueryFldrSort             Γöé                 Γöé
  15669.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15670.   Γöé               ΓöéwpQueryFldrSortClass        Γöé                 Γöé
  15671.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15672.   Γöé               ΓöéwpSetFldrDetailsClass       Γöé                 Γöé
  15673.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15674.   Γöé               ΓöéwpSetFldrSort               Γöé                 Γöé
  15675.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15676.   Γöé               ΓöéwpSetFldrSortClass          Γöé                 Γöé
  15677.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15678.   Γöé               ΓöéwpSetSortAttribAvailable    Γöé                 Γöé
  15679.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15680.   Γöé               ΓöéwpclsQueryDetails           Γöé                 Γöé
  15681.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15682.   Γöé               ΓöéwpclsQueryDetailsInfo       Γöé                 Γöé
  15683.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15684.   ΓöéDirect         ΓöéwpDragCell                  ΓöéObject mobility  Γöé
  15685.   Γöémanipulation   Γöé                            Γöé                 Γöé
  15686.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15687.   Γöé               ΓöéwpDraggedOverObject         Γöé                 Γöé
  15688.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15689.   Γöé               ΓöéwpDragOver                  Γöé                 Γöé
  15690.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15691.   Γöé               ΓöéwpDrop                      Γöé                 Γöé
  15692.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15693.   Γöé               ΓöéwpDroppedOnObject           Γöé                 Γöé
  15694.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15695.   Γöé               ΓöéwpEndConversation           Γöé                 Γöé
  15696.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15697.   Γöé               ΓöéwpFormatDragItem            Γöé                 Γöé
  15698.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15699.   Γöé               ΓöéwpRender                    Γöé                 Γöé
  15700.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15701.   Γöé               ΓöéwpRenderComplete            Γöé                 Γöé
  15702.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15703.   ΓöéError handling ΓöéwpQueryError                ΓöéObject errors    Γöé
  15704.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15705.   Γöé               ΓöéwpSetError                  Γöé                 Γöé
  15706.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15707.   Γöé               ΓöéwpclsQueryError             Γöé                 Γöé
  15708.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15709.   Γöé               ΓöéwpclsSetError               Γöé                 Γöé
  15710.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15711.   ΓöéHelp           ΓöéwpDisplayHelp               ΓöéObject aid       Γöé
  15712.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15713.   Γöé               ΓöéwpMenuItemHelpSelected      Γöé                 Γöé
  15714.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15715.   Γöé               ΓöéwpQueryDefaultHelp          Γöé                 Γöé
  15716.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15717.   Γöé               ΓöéwpSetDefaultHelp            Γöé                 Γöé
  15718.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15719.   Γöé               ΓöéwpclsQueryDefaultHelp       Γöé                 Γöé
  15720.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15721.   ΓöéMemory         ΓöéwpAllocMem                  ΓöéObject memory    Γöé
  15722.   Γöéallocation     Γöé                            Γöé                 Γöé
  15723.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15724.   Γöé               ΓöéwpFreeMem                   Γöé                 Γöé
  15725.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15726.   ΓöéNotebook       ΓöéwpAddObjectGeneralPage      ΓöéObject propertiesΓöé
  15727.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15728.   Γöé               ΓöéwpAddObjectGeneralPage2     Γöé                 Γöé
  15729.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15730.   Γöé               ΓöéwpAddObjectWindowPage       Γöé                 Γöé
  15731.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15732.   Γöé               ΓöéwpAddSettingsPages          Γöé                 Γöé
  15733.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15734.   Γöé               ΓöéwpCnrRefreshDetails         Γöé                 Γöé
  15735.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15736.   Γöé               ΓöéwpInsertSettingsPage        Γöé                 Γöé
  15737.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15738.   ΓöéPop-Up menu    ΓöéwpClose                     ΓöéObject user      Γöé
  15739.   Γöé               Γöé                            Γöéaction           Γöé
  15740.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15741.   Γöé               ΓöéwpCopyObject                Γöé                 Γöé
  15742.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15743.   Γöé               ΓöéwpCreateFromTemplate        Γöé                 Γöé
  15744.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15745.   Γöé               ΓöéwpCreateShadowObject        Γöé                 Γöé
  15746.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15747.   Γöé               ΓöéwpDelete                    Γöé                 Γöé
  15748.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15749.   Γöé               ΓöéwpFilterPopupMenu           Γöé                 Γöé
  15750.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15751.   Γöé               ΓöéwpHide                      Γöé                 Γöé
  15752.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15753.   Γöé               ΓöéwpInsertPopupMenuItems      Γöé                 Γöé
  15754.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15755.   Γöé               ΓöéwpMenuItemSelected          Γöé                 Γöé
  15756.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15757.   Γöé               ΓöéwpModifyPopupMenu           Γöé                 Γöé
  15758.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15759.   Γöé               ΓöéwpMoveObject                Γöé                 Γöé
  15760.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15761.   Γöé               ΓöéwpOpen                      Γöé                 Γöé
  15762.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15763.   Γöé               ΓöéwpPrintObject               Γöé                 Γöé
  15764.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15765.   Γöé               ΓöéwpRestore                   Γöé                 Γöé
  15766.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15767.   Γöé               ΓöéwpViewObject                Γöé                 Γöé
  15768.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15769.   ΓöéSave/Restore   ΓöéwpRestoreData               ΓöéObject           Γöé
  15770.   Γöéstate          Γöé                            Γöépersistence      Γöé
  15771.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15772.   Γöé               ΓöéwpRestoreLong               Γöé                 Γöé
  15773.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15774.   Γöé               ΓöéwpRestoreState              Γöé                 Γöé
  15775.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15776.   Γöé               ΓöéwpRestoreString             Γöé                 Γöé
  15777.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15778.   Γöé               ΓöéwpSaveData                  Γöé                 Γöé
  15779.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15780.   Γöé               ΓöéwpSaveDeferred              Γöé                 Γöé
  15781.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15782.   Γöé               ΓöéwpSaveImmediate             Γöé                 Γöé
  15783.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15784.   Γöé               ΓöéwpSaveLong                  Γöé                 Γöé
  15785.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15786.   Γöé               ΓöéwpSaveState                 Γöé                 Γöé
  15787.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15788.   Γöé               ΓöéwpSaveString                Γöé                 Γöé
  15789.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15790.   ΓöéSetup/Cleanup  ΓöéwpFree                      ΓöéObject           Γöé
  15791.   Γöé               Γöé                            Γöéinitialization   Γöé
  15792.   Γöé               Γöé                            Γöéand termination  Γöé
  15793.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15794.   Γöé               ΓöéwpInitData                  Γöé                 Γöé
  15795.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15796.   Γöé               ΓöéwpIsObjectInitialized       Γöé                 Γöé
  15797.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15798.   Γöé               ΓöéwpObjectReady               Γöé                 Γöé
  15799.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15800.   Γöé               ΓöéwpScanSetupString           Γöé                 Γöé
  15801.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15802.   Γöé               ΓöéwpSetup                     Γöé                 Γöé
  15803.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15804.   Γöé               ΓöéwpSetupOnce                 Γöé                 Γöé
  15805.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15806.   Γöé               ΓöéwpUnInitData                Γöé                 Γöé
  15807.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15808.   Γöé               ΓöéwpclsInitData               Γöé                 Γöé
  15809.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15810.   Γöé               ΓöéwpclsUnInitData             Γöé                 Γöé
  15811.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15812.   ΓöéUsage          ΓöéwpAddToObjUseList           ΓöéObject usage     Γöé
  15813.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15814.   Γöé               ΓöéwpCnrDeleteUseItem          Γöé                 Γöé
  15815.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15816.   Γöé               ΓöéwpDeleteFromObjUseList      Γöé                 Γöé
  15817.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15818.   Γöé               ΓöéwpFindUseItem               Γöé                 Γöé
  15819.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15820.   Γöé               ΓöéwpFindViewItem              Γöé                 Γöé
  15821.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15822.   Γöé               ΓöéwpIsLocked                  Γöé                 Γöé
  15823.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15824.   Γöé               ΓöéwpLockObject                Γöé                 Γöé
  15825.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15826.   Γöé               ΓöéwpUnlockObject              Γöé                 Γöé
  15827.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15828.   ΓöéSet/Query      ΓöéwpModifyStyle               ΓöéObject           Γöé
  15829.   Γöé               Γöé                            Γöéinformation      Γöé
  15830.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15831.   Γöé               ΓöéwpQueryButtonAppearance     Γöé                 Γöé
  15832.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15833.   Γöé               ΓöéwpQueryConcurrentView       Γöé                 Γöé
  15834.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15835.   Γöé               ΓöéwpQueryConfirmations        Γöé                 Γöé
  15836.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15837.   Γöé               ΓöéwpQueryContainerFlagPtr     Γöé                 Γöé
  15838.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15839.   Γöé               ΓöéwpQueryCoreRecord           Γöé                 Γöé
  15840.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15841.   Γöé               ΓöéwpQueryDefaultHelp          Γöé                 Γöé
  15842.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15843.   Γöé               ΓöéwpQueryDefaultIconPos       Γöé                 Γöé
  15844.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15845.   Γöé               ΓöéwpQueryDefaultView          Γöé                 Γöé
  15846.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15847.   Γöé               ΓöéwpQueryError                Γöé                 Γöé
  15848.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15849.   Γöé               ΓöéwpQueryFolder               Γöé                 Γöé
  15850.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15851.   Γöé               ΓöéwpQueryHandle               Γöé                 Γöé
  15852.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15853.   Γöé               ΓöéwpQueryIcon                 Γöé                 Γöé
  15854.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15855.   Γöé               ΓöéwpQueryIconData             Γöé                 Γöé
  15856.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15857.   Γöé               ΓöéwpQueryMinWindow            Γöé                 Γöé
  15858.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15859.   Γöé               ΓöéwpQueryNameClashOptions     Γöé                 Γöé
  15860.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15861.   Γöé               ΓöéwpQueryObjectID             Γöé                 Γöé
  15862.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15863.   Γöé               ΓöéwpQueryScreenGroupID        Γöé                 Γöé
  15864.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15865.   Γöé               ΓöéwpQueryStyle                Γöé                 Γöé
  15866.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15867.   Γöé               ΓöéwpQueryTitle                Γöé                 Γöé
  15868.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15869.   Γöé               ΓöéwpSetButtonAppearance       Γöé                 Γöé
  15870.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15871.   Γöé               ΓöéwpSetConcurrentView         Γöé                 Γöé
  15872.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15873.   Γöé               ΓöéwpSetDefaultHelp            Γöé                 Γöé
  15874.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15875.   Γöé               ΓöéwpSetDefaultView            Γöé                 Γöé
  15876.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15877.   Γöé               ΓöéwpSetError                  Γöé                 Γöé
  15878.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15879.   Γöé               ΓöéwpSetIcon                   Γöé                 Γöé
  15880.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15881.   Γöé               ΓöéwpSetIconData               Γöé                 Γöé
  15882.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15883.   Γöé               ΓöéwpSetMinWindow              Γöé                 Γöé
  15884.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15885.   Γöé               ΓöéwpSetStyle                  Γöé                 Γöé
  15886.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15887.   Γöé               ΓöéwpSetTitle                  Γöé                 Γöé
  15888.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15889.   Γöé               ΓöéwpclsQueryDefaultHelp       Γöé                 Γöé
  15890.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15891.   Γöé               ΓöéwpclsQueryDefaultView       Γöé                 Γöé
  15892.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15893.   Γöé               ΓöéwpclsQueryDetails           Γöé                 Γöé
  15894.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15895.   Γöé               ΓöéwpclsQueryDetailsInfo       Γöé                 Γöé
  15896.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15897.   Γöé               ΓöéwpclsQueryError             Γöé                 Γöé
  15898.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15899.   Γöé               ΓöéwpclsQueryExtendedCriteria  Γöé                 Γöé
  15900.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15901.   Γöé               ΓöéwpclsQueryFolder            Γöé                 Γöé
  15902.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15903.   Γöé               ΓöéwpclsQueryIcon              Γöé                 Γöé
  15904.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15905.   Γöé               ΓöéwpclsQueryIconData          Γöé                 Γöé
  15906.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15907.   Γöé               ΓöéwpclsQueryObject            Γöé                 Γöé
  15908.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15909.   Γöé               ΓöéwpclsQuerySettingsPageSize  Γöé                 Γöé
  15910.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15911.   Γöé               ΓöéwpclsQueryStyle             Γöé                 Γöé
  15912.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15913.   Γöé               ΓöéwpclsQueryTitle             Γöé                 Γöé
  15914.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15915.   Γöé               ΓöéwpclsSetError               Γöé                 Γöé
  15916.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15917.   Γöé               ΓöéwpclsSetIcon                Γöé                 Γöé
  15918.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15919.   Γöé               ΓöéwpclsSetIconData            Γöé                 Γöé
  15920.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15921.   Γöé               ΓöéwpclsSetSettingsPageSize    Γöé                 Γöé
  15922.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  15923.  
  15924.  
  15925. ΓòÉΓòÉΓòÉ 22. Workplace Shell Win Functions ΓòÉΓòÉΓòÉ
  15926.  
  15927. Applications cannot call Workplace Shell objects' methods directly. They are 
  15928. not clients of Workplace Shell objects, in the same sense that applications can 
  15929. be clients of SOM objects. Workplace Shell objects are derived from the 
  15930. WPObject class, which, in turn, is derived from the SOMObject class. They share 
  15931. all the features of SOM objects but only the Workplace Shell can directly 
  15932. manipulate them. Because there are times when applications might need to effect 
  15933. changes to the Desktop and objects on the Desktop, the Workplace Shell provides 
  15934. functions that permit you to proceed these changes. This chapter describes the 
  15935. Workplace Shell Win Functions. 
  15936.  
  15937.  
  15938. ΓòÉΓòÉΓòÉ 22.1. About Workplace Shell Win Functions ΓòÉΓòÉΓòÉ
  15939.  
  15940. Outside the Workplace Shell environment, objects are DLLs that consist of data 
  15941. and code that operates on that data when objects are instantiated in the 
  15942. Workplace Shell run-time environment. Workplace Shell objects have no meaning 
  15943. outside the Workplace Shell environment. Workplace Shell classes take form when 
  15944. the class is registered with the Workplace Shell and the class is instantiated. 
  15945. The Workplace Shell and SOM provide the underlying code (predefined Workplace 
  15946. Shell objects' methods) that supports an object. 
  15947.  
  15948. The Workplace Shell calls the appropriate object's methods when the user 
  15949. interacts with the object. In this sense, the Workplace Shell is the client of 
  15950. all Workplace Shell objects. The Workplace Shell manipulates the object (its 
  15951. code) on behalf of its users. 
  15952.  
  15953. On the other hand, applications cannot call Workplace Shell objects' methods 
  15954. directly. They are not clients of Workplace Shell objects, in the same sense 
  15955. that applications can be clients of SOM objects. Workplace Shell objects are 
  15956. derived from the WPObject class, which, in turn, is derived from the SOMObject 
  15957. class. They share all the features of SOM objects-encapsulation, inheritance, 
  15958. and polymorphism-but only the Workplace Shell can directly manipulate them. 
  15959.  
  15960. Because there are times when applications might need to effect changes to the 
  15961. Desktop and objects on the Desktop, the Workplace Shell provides functions that 
  15962. permit you to proceed these changes. 
  15963.  
  15964.  
  15965. ΓòÉΓòÉΓòÉ 22.1.1. Object Instance Functions ΓòÉΓòÉΓòÉ
  15966.  
  15967. Applications can create and destroy object instances of Workplace Shell classes 
  15968. by calling WinCreateObject and WinDestroyObject. To create an object, an 
  15969. application must specify the object's: 
  15970.  
  15971.    o  Class name 
  15972.  
  15973.    o  Title 
  15974.  
  15975.    o  Setup information 
  15976.  
  15977.    o  Location on the Desktop. 
  15978.  
  15979.  Each object class defines a set of keynames that can be used to control the 
  15980.  attributes and behavior of its objects. An object's setup information is 
  15981.  processed by wpSetup inherited from WPObject. The wpSetup method is called 
  15982.  when the object is created by WinCreateObject. Every Workplace Shell class 
  15983.  inherits the set of keynames defined for the WPObject class, and can define 
  15984.  additional ones that are unique to that class. Keynames and the values 
  15985.  supported by the WPObject class are listed in the "Workplace Shell Setup 
  15986.  Strings" subsection of the "Object Initialization and Termination: 
  15987.  Setup/Cleanup Methods" section. 
  15988.  
  15989.  Newly created objects need to be placed somewhere on the Desktop, either 
  15990.  directly on the Desktop or in a folder. All Workplace Shell objects have 
  15991.  object IDs associated with them. The following table shows the object IDs 
  15992.  associated with system folders. When an object is created by WinCreateObject, 
  15993.  an application can specify its location as one of the predefined system 
  15994.  folders. 
  15995.  
  15996.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  15997.   ΓöéID             ΓöéSystem Folder                 Γöé
  15998.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  15999.   ΓöéWP_CONFIG      ΓöéSystem setup folder.          Γöé
  16000.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  16001.   ΓöéWP_DESKTOP     ΓöéDesktop.                      Γöé
  16002.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  16003.   ΓöéWP_DRIVE       ΓöéDrives folder.                Γöé
  16004.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  16005.   ΓöéWP_INFO        ΓöéInformation folder.           Γöé
  16006.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  16007.   ΓöéWP_NOWHERE     ΓöéHidden folder.                Γöé
  16008.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  16009.   ΓöéWP_START       ΓöéStartup folder.               Γöé
  16010.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  16011.   ΓöéWP_SYSTEM      ΓöéSystem folder.                Γöé
  16012.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  16013.   ΓöéWP_TEMPS       ΓöéTemplates folder.             Γöé
  16014.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  16015.  
  16016.  WinCreateObject returns a handle to the newly created object. This handle is 
  16017.  persistent and can be used at any time to reference the object. Applications 
  16018.  that did not create the object can get a handle to the object by calling 
  16019.  WinQueryObject. WinQueryObject requires either a full path name for a file 
  16020.  object or an object ID. 
  16021.  
  16022.  Applications that get a handle to an object can change the behavior or state 
  16023.  of that object by calling WinSetObjectData. This function results in the 
  16024.  Workplace Shell calling the object's wpSetup method. By specifying a value for 
  16025.  keyname variables defined for the object's class, an application, can effect 
  16026.  changes to objects that already exist on the Desktop. The process of effecting 
  16027.  changes to existing objects on the Desktop is summarized in the following 
  16028.  figure: 
  16029.  
  16030.   /* Use ObjectID to get the handle to the object */
  16031.   WinQueryObject(...);
  16032.  
  16033.   /* Put keyname values in a setup string */
  16034.   pszSetupString="KEYNAME1=value;...";
  16035.  
  16036.   /* Change the behavior of an existing object */
  16037.   WinSetObjectData(...);
  16038.  
  16039.  
  16040. ΓòÉΓòÉΓòÉ 22.1.2. Object Class Functions ΓòÉΓòÉΓòÉ
  16041.  
  16042. For the Workplace Shell to know how to manipulate objects on the user's behalf, 
  16043. it must know about the object class and the class definition, that is, its data 
  16044. and methods. Therefore, object classes must be registered with the Workplace 
  16045. Shell. The following functions enable applications to affect object classes 
  16046. registered with the Workplace Shell: 
  16047.  
  16048.    o  WinEnumObjectClasses 
  16049.  
  16050.    o  WinRegisterObjectClass 
  16051.  
  16052.    o  WinDeregisterObjectClass 
  16053.  
  16054.    o  WinReplaceObjectClass. 
  16055.  
  16056.  WinEnumObjectClasses enables an application to get the list of all Workplace 
  16057.  Shell object classes that have been registered with the Workplace Shell. 
  16058.  
  16059.  WinRegisterObjectClass and WinDeregisterObjectClass permit an application to 
  16060.  register and deregister Workplace Shell object classes with the Workplace 
  16061.  Shell. WinRegisterObjectClass registers the specified Workplace Shell object 
  16062.  class that is defined in the specified DLL module that was created using the 
  16063.  SOM compiler. The name of the object class must match the library name 
  16064.  specified in the DEF file used to build the DLL. Because all registered 
  16065.  classes are maintained in the OS2.INI file and are cached upon system 
  16066.  initialization, a class should be removed, if it is no longer needed. 
  16067.  
  16068.  WinReplaceObjectClass is used to replace a registered object class with 
  16069.  another class. The replacement class is a subclass of the class being 
  16070.  replaced. This type of class is useful for modifying the behavior of instances 
  16071.  of a Workplace Shell object class without the instances being aware of the new 
  16072.  class. WinReplaceObjectClass also is used to undo the replacement and restore 
  16073.  the original class that defines the behavior of its instances. 
  16074.  
  16075.  
  16076. ΓòÉΓòÉΓòÉ 22.2. Using Workplace Shell Win Functions ΓòÉΓòÉΓòÉ
  16077.  
  16078. This section describes, through the used of sample code fragments, how to use 
  16079. Workplace Shell Win functions. Specifically it includes how to: 
  16080.  
  16081.    o  Copy objects 
  16082.  
  16083.    o  Move objects 
  16084.  
  16085.    o  Open objects 
  16086.  
  16087.    o  Save objects 
  16088.  
  16089.    o  Obtain the directory specification of the active Desktop 
  16090.  
  16091.    o  Obtain the directory specification of a given object's handle 
  16092.  
  16093.    o  Obtain the icon associated with a file and display it 
  16094.  
  16095.    o  Create a shadow of drive A on the Desktop 
  16096.  
  16097.    o  Save the current size and position of a window. 
  16098.  
  16099.  
  16100. ΓòÉΓòÉΓòÉ 22.2.1. Copying Objects ΓòÉΓòÉΓòÉ
  16101.  
  16102. The following sample code copies the drives object into the Startup folder, so 
  16103. the Drives folder will be opened during system startup: 
  16104.  
  16105. #define INCL_WINWORKPLACE
  16106. #include "os2.h"
  16107.  
  16108. HOBJECT    hObjectofDest;
  16109. HOBJECT    hObjectofObject;
  16110. HOBJECT    hObjectofResult;
  16111.  
  16112. hObjectofObject = WinQueryObject("<WP_DRIVES>");
  16113. if (hObjectofObject != NULL)
  16114. {
  16115.   /* WinQueryObject of Drives was successful */
  16116.   hObjectofDest = WinQueryObject("<WP_START>");
  16117.  
  16118.   if (hObjectofDest != NULL)
  16119.   {
  16120.     /* WinQueryObject of Startup was successful */
  16121.     hObjectofResult = WinCopyObject(hObjectofObject,
  16122.                                     hObjectofDest,
  16123.                                     CO_FAILIFEXISTS);
  16124.  
  16125.     if (hObjectofResult != NULL)
  16126.     {
  16127.       /* Drives object was successfully moved to the Startup folder */
  16128.     }
  16129.     else
  16130.     {
  16131.       /* Copy failed */
  16132.     }
  16133.   }
  16134. }
  16135.  
  16136.  
  16137. ΓòÉΓòÉΓòÉ 22.2.2. Moving Objects ΓòÉΓòÉΓòÉ
  16138.  
  16139. The following sample code moves the Drives object onto the Desktop: 
  16140.  
  16141. #define INCL_WINWORKPLACE
  16142. #include "os2.h"
  16143.  
  16144. HOBJECT    hObjectofDest;
  16145. HOBJECT    hObjectofObject;
  16146. HOBJECT    hObjectofResult;
  16147.  
  16148. hObjectofObject = WinQueryObject("<WP_DRIVES>");
  16149. if (hObjectofObject != NULL)
  16150. {
  16151.   /* WinQueryObject of Drives was successful */
  16152.   hObjectofDest = WinQueryObject("<WP_DESKTOP>");
  16153.  
  16154.   if (hObjectofDest != NULL)
  16155.   {
  16156.     /* WinQueryObject of Startup was successful */
  16157.     hObjectofResult = WinMoveObject(hObjectofObject,
  16158.                                     hObjectofDest,
  16159.                                     MOVE_FAILIFEXISTS);
  16160.  
  16161.     if (hObjectofResult != NULL)
  16162.     {
  16163.       /* Drives object was successfully moved to the Desktop */
  16164.     }
  16165.     else
  16166.     {
  16167.       /* Move failed */
  16168.     }
  16169.   }
  16170. }
  16171.  
  16172.  
  16173. ΓòÉΓòÉΓòÉ 22.2.3. Opening Objects ΓòÉΓòÉΓòÉ
  16174.  
  16175. The following sample code opens an object in the Settings notebook: 
  16176.  
  16177. #define INCL_WINWORKPLACE
  16178. #include "os2.h"
  16179.  
  16180. HOBJECT hObject;
  16181. ULONG   ulView;
  16182. BOOL    fFlags
  16183. BOOL    fSuccess;
  16184.  
  16185. hObject = WinQueryObject("<WP_DESKTOP>");
  16186. if (hObject != NULL)
  16187. {
  16188.   /* WinQueryObject was successful */
  16189.   fSuccess = WinOpenObject(hObject, OPEN_SETTINGS,TRUE);
  16190.  
  16191.   if (fSuccess)
  16192.   {
  16193.     /* If concurrent views are off and a Settings notebook of the
  16194.      * Desktop already exists, then it was successfully resurfaced.
  16195.      *
  16196.      * If concurrent views are on, then another Settings notebook
  16197.      * of the Desktop was successfully opened.
  16198.      */
  16199.   }
  16200.   else
  16201.   {
  16202.     /* WinOpenObject failed */
  16203.   }
  16204. }
  16205.  
  16206.  
  16207. ΓòÉΓòÉΓòÉ 22.2.4. Saving Objects ΓòÉΓòÉΓòÉ
  16208.  
  16209. The following sample code saves the state of an object asynchronously: 
  16210.  
  16211. #define INCL_WINWORKPLACE
  16212. #include "os2.h"
  16213.  
  16214. HOBJECT  Object;
  16215. BOOL     fAsync = TRUE;
  16216. BOOL     fSuccess
  16217.  
  16218. hObject = WinQueryObject("<WP_DESKTOP>");
  16219. if (hObject != NULL)
  16220. {
  16221.   /* WinQueryObject was successful */
  16222.   fSuccess = WinSaveObject(hObject,fAsync);
  16223.  
  16224.   if (fSuccess)
  16225.   {
  16226.     /* The state of the Desktop was saved asynchronously */
  16227.   }
  16228.   else
  16229.   {
  16230.     /* Asynchronous save of the Desktop failed */
  16231.   }
  16232. }
  16233.  
  16234.  
  16235. ΓòÉΓòÉΓòÉ 22.2.5. Obtaining the Directory Specification of the Active Desktop ΓòÉΓòÉΓòÉ
  16236.  
  16237. The following sample code obtains the directory specification of the active 
  16238. Desktop: 
  16239.  
  16240. #define INCL_WINWORKPLACE
  16241. #include "os2.h"
  16242.  
  16243. CHAR    szPath[CCHMAXPATH + 1];
  16244. BOOL    fSuccess;
  16245.  
  16246. fSuccess = WinQueryActiveDesktopPathname(szPath,sizeof(szPath));
  16247. if (fSuccess)
  16248. {
  16249.   /* WinQueryActiveDesktopPathname was successful */
  16250. }
  16251. else
  16252. {
  16253.   /* WinQueryActiveDesktopPathname failed */
  16254. }
  16255.  
  16256.  
  16257. ΓòÉΓòÉΓòÉ 22.2.6. Obtaining the Directory Specification for a Given Object's Handle ΓòÉΓòÉΓòÉ
  16258.  
  16259. The following sample code obtains the directory specification of a given 
  16260. object's handle: 
  16261.  
  16262. #define INCL_WINWORKPLACE
  16263. #include "os2.h"
  16264.  
  16265. HOBJECT hObject;
  16266. CHAR    szPath[CCHMAXPATH + 1];
  16267. BOOL    fSuccess;
  16268.  
  16269. hObject = WinQueryObject("<WP_OS2SYS>");
  16270. if (hObject != NULL)
  16271. {
  16272.   /* WinQueryObject was successful */
  16273.   fSuccess = WinQueryObjectPath(hObject,szPath,sizeof(szPath));
  16274.  
  16275.   if (fSuccess)
  16276.   {
  16277.     /* WinQueryObjectPath was successful */
  16278.   }
  16279.   else
  16280.   {
  16281.     /* WinQueryObjectPath failed */
  16282.   }
  16283. }
  16284. else
  16285. {
  16286.   /* WinQueryObject fails */
  16287. }
  16288.  
  16289.  
  16290. ΓòÉΓòÉΓòÉ 22.2.7. Obtaining the Icon Associated with a File and Displaying it ΓòÉΓòÉΓòÉ
  16291.  
  16292. The following sample code fragment obtains the icon associated with the 
  16293. TUTORIAL.EXE file and displays it as the user's tutorial application: 
  16294.  
  16295. #define  INCL_WINWORKPLACE
  16296. #include "os2.h"
  16297.  
  16298. PSZ pszFileName = "tutorial.exe";
  16299. PSZ pszMyTutorial = "mytutor.exe";
  16300.  
  16301. HPOINTER hptr;
  16302. ULONG    rc;
  16303.  
  16304. {
  16305.   hptr = WinLoadFileIcon(pszFileName, FALSE);
  16306.   if (hptr != NULL)
  16307.   {
  16308.     /* Obtain the icon associated with TUTORIAL.EXE for displaying purpose only */
  16309.     rc = WinSetFileIcon(pszMyTutorial, hptr);
  16310.     if (rc != NULL)
  16311.     {
  16312.       /* MYTUTOR.EXE now has the icon associated with TUTORIAL.EXE */
  16313.     }
  16314.     else
  16315.     {
  16316.       /* WinSetFileIcon failed */
  16317.     }
  16318.   }
  16319.   else
  16320.   {
  16321.      /* WinLoadFileIcon failed */
  16322.   }
  16323.  
  16324.    .
  16325.    .
  16326.    .
  16327.   /* Later free the file icon associated with the TUTORIAL.EXE file */
  16328.   rc = WinFreeFileIcon(hptr);
  16329.   if (rc != NULL)
  16330.   {
  16331.     /* Icon pointer freed */
  16332.   }
  16333.   else
  16334.   {
  16335.     /* WinFreeFileIcon failed */
  16336.   }
  16337. }
  16338.  
  16339.  
  16340. ΓòÉΓòÉΓòÉ 22.2.8. Creating a Shadow of Drive A on the Desktop ΓòÉΓòÉΓòÉ
  16341.  
  16342. The following sample code fragment creates a shadow of drive A on the desktop: 
  16343.  
  16344. #define INCL_WINWORKPLACE
  16345. #include "os2.h"
  16346.  
  16347. HOBJECT   hObjectofObject;
  16348. HOBJECT   hObjecttoDest;
  16349. HOBJECT   hObjectofResult;
  16350. {
  16351.   hObjectofObject = WinQueryObject("<WP_DOS_DRV_A>");
  16352.   if (hObjectofObject != NULL)
  16353.   {
  16354.     /* WinQueryObject of Dos from Dive A: object was successful */
  16355.     hObjecttoDest = WinQueryObject("<WP_DESKTOP>");
  16356.     if (hObjecttoDest != NULL)
  16357.     {
  16358.       /* WinQueryObject of Dos from Dive A: object was successful */
  16359.       hObjectofResult = WinCreateShadow(hObjectofObject, hObjecttoDest,NULL);
  16360.       if (hObjectofResult != NULL)
  16361.       {
  16362.         /* Shadow of Dos from Drive A: object is placed on the Desktop */
  16363.       }
  16364.       else
  16365.       {
  16366.         /* WinCreateShadow failed */
  16367.       }
  16368.     }
  16369.   }
  16370. }
  16371.  
  16372.  
  16373. ΓòÉΓòÉΓòÉ 22.2.9. Saving the Current Size and Position of a Window ΓòÉΓòÉΓòÉ
  16374.  
  16375. Knowing the application name, keyname and window handle, save the current size 
  16376. and position of the given window, as shown in the following sample code 
  16377. fragment: 
  16378.  
  16379. #define INCL_WINWORKPLACE
  16380. #include "os2.h"
  16381.  
  16382. {
  16383.   BOOL rc;
  16384.  
  16385.   rc = WinStoreWindowPos( vszAppName, szKey, hwnd );
  16386.   if (rc)
  16387.     /* Window size and position saved */
  16388.   else
  16389.     /* ERROR occurred */
  16390.  
  16391. /* Later you would use WinRestoreWindowPos to restore the window */
  16392. /* to it's previously saved size and position                    */
  16393.  
  16394.   .
  16395.   .
  16396.   .
  16397.  
  16398. rc = WinRestoreWindowPos( vszAppName, szKey, hwnd );
  16399. if (rc)
  16400.   /* Window size and position restored */
  16401. else
  16402.   /* ERROR occurred */
  16403. }
  16404.  
  16405.  
  16406. ΓòÉΓòÉΓòÉ 23. Workplace Object Classes ΓòÉΓòÉΓòÉ
  16407.  
  16408. This chapter contains an alphabetic listing of the Workplace object classes. 
  16409.  
  16410. These sections contain technical reference information. See the Workplace Shell 
  16411. Programming Guide for Workplace guide information. For information on the 
  16412. System Object Model (SOM), see the Object-Oriented Programming Using SOM. 
  16413.  
  16414. The following is some terminology used in these sections: 
  16415.  
  16416.  class               A way of categorizing objects based on their behavior and 
  16417.                      shape. A class is, in effect, a definition of a generic 
  16418.                      object. In SOM, a class is a special kind of object that 
  16419.                      can manufacture other objects that all have a common shape 
  16420.                      and exhibit similar behavior (more precisely, all of the 
  16421.                      objects manufactured by a class have the same memory 
  16422.                      layout and share a common set of methods). New classes can 
  16423.                      be defined in terms of existing classes through a 
  16424.                      technique known as inheritance. 
  16425.  
  16426.  class method        A class method of class <X> is a method provided by the 
  16427.                      metaclass of class <X>. Class methods are executed without 
  16428.                      requiring any instances of class <X> to exist, and are 
  16429.                      frequently used to create instances. 
  16430.  
  16431.  inheritance         The technique of specifying the shape and behavior of one 
  16432.                      class (called a subclass) as incremental differences from 
  16433.                      another class (called the parent class or superclass). The 
  16434.                      subclass inherits the superclass' state representation and 
  16435.                      methods, and can provide additional data elements and 
  16436.                      methods. The subclass also can provide new functions with 
  16437.                      the same method names used by the superclass. Such a 
  16438.                      subclass method is said to override the superclass method, 
  16439.                      and will be selected automatically by method resolution on 
  16440.                      subclass instances. An overriding method can elect to call 
  16441.                      upon the superclass' method as part of its own 
  16442.                      implementation. 
  16443.  
  16444.  instance            (Or object instance). A specific object, as distinguished 
  16445.                      from the abstract definition of an object referred to as 
  16446.                      its class. 
  16447.  
  16448.  instance method     A method valid for a particular object. 
  16449.  
  16450.  metaclass           A class whose instances are all classes. In SOM, any class 
  16451.                      descended from SOMClass is a metaclass. The methods of a 
  16452.                      metaclass are sometimes called "class" methods. 
  16453.  
  16454.  method              One of the units that makes up the behavior of an object. 
  16455.                      A method is a combination of a function and a name, such 
  16456.                      that many different functions can have the same name. 
  16457.                      Which function the name refers to at any point in time 
  16458.                      depends on the object that is to execute the method and is 
  16459.                      the subject of method resolution. 
  16460.  
  16461.  object              The elements of data and function that programs create, 
  16462.                      manipulate, pass as arguments, and so forth. An object is 
  16463.                      a way of associating specific data values with a specific 
  16464.                      set of named functions (called methods) for a period of 
  16465.                      time (referred to as the lifetime of the object). The data 
  16466.                      values of an object are referred to as its state. In SOM, 
  16467.                      objects are created by other objects called classes. The 
  16468.                      specification of what comprises the set of functions and 
  16469.                      data elements that make up an object is referred to as the 
  16470.                      definition of a class. 
  16471.  
  16472.                      SOM objects offer a high degree of encapsulation. This 
  16473.                      property permits many aspects of the implementation of an 
  16474.                      object to change without affecting client programs that 
  16475.                      depend on the object's behavior. 
  16476.  
  16477.  object definition   See class. 
  16478.  
  16479.  object instance     See instance. 
  16480.  
  16481.  parent class        See inheritance. 
  16482.  
  16483.  subclass            A class that inherits from another class. See inheritance. 
  16484.  
  16485.  superclass          A class from which another class inherits. See 
  16486.                      inheritance. 
  16487.  
  16488.  Workplace objects are icons representative of physical objects which users 
  16489.  deal with in the Workplace. A Workplace object is implemented as an instance 
  16490.  of a Workplace object class. Workplace object classes are System Object Model 
  16491.  (SOM) object classes which are descendants of the predefined Workplace object 
  16492.  class, WPObject. For more information about SOM object classes, see 
  16493.  Object-Oriented Programming Using SOM. 
  16494.  
  16495.  All Workplace objects are descendants of a Workplace object storage class. 
  16496.  Workplace storage object classes are responsible primarily for storing and 
  16497.  retrieving object class data for instances of objects which are descendants 
  16498.  (subclasses) of that storage class. 
  16499.  
  16500.  The three predefined Workplace object storage classes are: 
  16501.  
  16502.  WPAbstract      Storage class for objects stored in the user profile (OS2.INI) 
  16503.  WPFileSystem    Storage class for objects stored as files in the file system 
  16504.  WPTransient     Storage class for non-persistent objects. 
  16505.  
  16506.  
  16507. ΓòÉΓòÉΓòÉ 23.1. Workplace Object Class Hierarchy ΓòÉΓòÉΓòÉ
  16508.  
  16509. The following figure lists the predefined Workplace object classes in a 
  16510. hierarchical order. Each branch in the tree represents an immediate descendant 
  16511. (subclass) of a Workplace object class. The predefined SOM object class, 
  16512. SOMObject, is the root class for all SOM object classes, including all 
  16513. Workplace object classes. 
  16514.  
  16515.    CLASS NAME                         CLASS DEFINITION FILE
  16516.  
  16517. SOMObject                                     somobj.idl
  16518.   Γö£ΓöÇΓöÇ SOMClass                                somcls.idl
  16519.   Γö£ΓöÇΓöÇ SOMClassMgr                             somcm.idl
  16520.   ΓööΓöÇΓöÇ WPObject                                wpobject.idl
  16521.         Γö£ΓöÇΓöÇ WPAbstract                        wpabs.idl
  16522.         Γöé     Γö£ΓöÇΓöÇ WPClock                     wpclock.idl
  16523.         Γöé     Γö£ΓöÇΓöÇ WPCountry                   wpctry.idl
  16524.         Γöé     Γö£ΓöÇΓöÇ WPDisk                      wpdisk.idl
  16525.         Γöé     Γö£ΓöÇΓöÇ WPKeyboard                  wpkeybd.idl
  16526.         Γöé     Γö£ΓöÇΓöÇ WPLaunchPad                 wplnchpd.idl
  16527.         Γöé     Γö£ΓöÇΓöÇ WPMouse                     wpmouse.idl
  16528.         Γöé     Γö£ΓöÇΓöÇ WPPalette                   wppalet.idl
  16529.         Γöé     Γöé     Γö£ΓöÇΓöÇ WPColorPalette        wpclrpal.idl
  16530.         Γöé     Γöé     Γö£ΓöÇΓöÇ WPFontPalette         wpfntpal.idl
  16531.         Γöé     Γöé     ΓööΓöÇΓöÇ WPSchemePalette       wpscheme.idl
  16532.         Γöé     Γö£ΓöÇΓöÇ WPPower                     wppower.idl
  16533.         Γöé     Γö£ΓöÇΓöÇ WPPrinter                   wpprint.idl
  16534.         Γöé     Γöé      ΓööΓöÇΓöÇ WPRPrinter           wprprint.idl
  16535.         Γöé     Γö£ΓöÇΓöÇ WPProgram                   wppgm.idl
  16536.         Γöé     Γö£ΓöÇΓöÇ WPShadow                    wpshadow.idl
  16537.         Γöé     Γöé      ΓööΓöÇΓöÇ WPNetLink            wpnetlnk.idl
  16538.         Γöé     Γö£ΓöÇΓöÇ WPShredder                  wpshred.idl
  16539.         Γöé     Γö£ΓöÇΓöÇ WPSound                     wpsound.idl
  16540.         Γöé     Γö£ΓöÇΓöÇ WPSpecialNeeds              wpspneed.idl
  16541.         Γöé     Γö£ΓöÇΓöÇ WPSpool                     wpspool.idl
  16542.         Γöé     Γö£ΓöÇΓöÇ WPSystem                    wpsystem.idl
  16543.         Γöé     ΓööΓöÇΓöÇ WPWinConfig                 wincfg.idl
  16544.         Γö£ΓöÇΓöÇ WPFileSystem                      wpfsys.idl
  16545.         Γöé     Γö£ΓöÇΓöÇ WPDataFile                  wpdataf.idl
  16546.         Γöé     Γöé      Γö£ΓöÇΓöÇ WPBitmap             wpbitmap.idl
  16547.         Γöé     Γöé      Γö£ΓöÇΓöÇ WPIcon               wpicon.idl
  16548.         Γöé     Γöé      Γö£ΓöÇΓöÇ WPMet                wpmet.idl
  16549.         Γöé     Γöé      Γö£ΓöÇΓöÇ WPPif                wppif.idl
  16550.         Γöé     Γöé      Γö£ΓöÇΓöÇ WPPointer            wpptr.idl
  16551.         Γöé     Γöé      ΓööΓöÇΓöÇ WPProgramFile        wppgmf.idl
  16552.         Γöé     Γöé             ΓööΓöÇΓöÇ WPCommandFile wpcmdf.idl
  16553.         Γöé     ΓööΓöÇΓöÇ WPFolder                    wpfolder.idl
  16554.         Γöé            Γö£ΓöÇΓöÇ WPDesktop            wpdesk.idl
  16555.         Γöé            Γö£ΓöÇΓöÇ WPDrives             wpdrives.idl
  16556.         Γöé            Γö£ΓöÇΓöÇ WPMinWinViewer       wpmwv.idl
  16557.         Γöé            Γö£ΓöÇΓöÇ WPNetgrp             wpnetgrp.idl
  16558.         Γöé            Γö£ΓöÇΓöÇ WPNetwork            wpnetwrk.idl
  16559.         Γöé            Γö£ΓöÇΓöÇ WPRootFolder         wprootf.idl
  16560.         Γöé            Γö£ΓöÇΓöÇ WPServer             wpserver.idl
  16561.         Γöé            Γö£ΓöÇΓöÇ WPSharedDir          wpshdir.idl
  16562.         Γöé            Γö£ΓöÇΓöÇ WPStartup            wpstart.idl
  16563.         Γöé            ΓööΓöÇΓöÇ WPTemplates          wptemps.idl
  16564.         ΓööΓöÇΓöÇ WPTransient                       wptrans.idl
  16565.               Γö£ΓöÇΓöÇ WPJob                       wpjob.idl
  16566.               Γö£ΓöÇΓöÇ WPPdr                       wppdr.idl
  16567.               Γö£ΓöÇΓöÇ WPPort                      wpport.idl
  16568.               ΓööΓöÇΓöÇ WPQdr                       wpqdr.idl
  16569.  
  16570. Instances of some Workplace object classes cannot be created as a Workplace 
  16571. object. These classes are provided as base classes which provide support for 
  16572. descendant classes that can have instances created. Other classes are SOM 
  16573. classes and are described in better detail in the Object-Oriented Programming 
  16574. Using SOM. 
  16575.  
  16576. These classes include: 
  16577.  
  16578.  SOMObject      This is the SOM root class. All SOM classes must be descended 
  16579.                 from SOMObject. A Workplace object of this class cannot be 
  16580.                 created. 
  16581.  
  16582.  SOMClass       This is the SOM metaclass, that is, the instances of this class 
  16583.                 are class objects. A Workplace object of this class cannot be 
  16584.                 created. 
  16585.  
  16586.  SOMClassMgr    This is the SOM class manager class. A Workplace object of this 
  16587.                 class cannot be created. 
  16588.  
  16589.  
  16590. ΓòÉΓòÉΓòÉ 23.2. WPAbstract ΓòÉΓòÉΓòÉ
  16591.  
  16592. Class definition file: wpabs.idl 
  16593.  
  16594. Class hierarchy 
  16595.  
  16596. SOMObject
  16597.    WPObject
  16598.       WPAbstract
  16599.  
  16600. Description 
  16601.  
  16602. This is the abstract object storage class. The storage medium for objects that 
  16603. are descendants of the WPAbstract class is the INI file. In other words, any 
  16604. object class derived from WPAbstract will have persistent storage for its 
  16605. instance variables in the INI file. Note that an abstract object does not have 
  16606. a file name, just a numeric handle that can be used to identify it. It can 
  16607. optionally be assigned an object id to uniquely identify it. An instance of 
  16608. this class can be created as a Workplace object. No instances of this class are 
  16609. initially created by the system. 
  16610.  
  16611. Instance methods 
  16612.  
  16613. There are currently no methods defined for the WPAbstract Workplace object 
  16614. class. 
  16615.  
  16616. WPObject instance methods 
  16617.  
  16618. The following list shows all the methods overridden by the WPAbstract class. 
  16619. These methods are overridden in order to modify the behavior defined by an 
  16620. ancestor class. 
  16621.  
  16622.    o  wpCopyObject 
  16623.    o  wpDragOver 
  16624.    o  wpMoveObject 
  16625.    o  wpQueryHandle 
  16626.    o  wpQueryIcon 
  16627.    o  wpQueryIconData 
  16628.    o  wpQueryNameClashOptions 
  16629.    o  wpRestoreState 
  16630.    o  wpSaveImmediate 
  16631.    o  wpSaveState 
  16632.    o  wpSetIconData 
  16633.    o  wpSetTitle 
  16634.  
  16635.  Class methods 
  16636.  
  16637.  There following list shows the WPAbstract class methods. 
  16638.  
  16639.    o  wpclsQuerySetting 
  16640.    o  wpclsSetSetting 
  16641.  
  16642.  WPObject class methods. 
  16643.  
  16644.  The following shows the class methods overridden by the WPAbstract class. 
  16645.  These methods are overridden to modify the behavior defined by an ancestor 
  16646.  class. 
  16647.  
  16648.    o  wpclsQueryTitle 
  16649.  
  16650.  
  16651. ΓòÉΓòÉΓòÉ 23.3. WPBitmap ΓòÉΓòÉΓòÉ
  16652.  
  16653. Class definition file: wpbitmap.idl 
  16654.  
  16655. Class hierarchy 
  16656.  
  16657. SOMObject
  16658.   WPObject
  16659.      WPFileSystem
  16660.         WPDataFile
  16661.            WPBitmap
  16662.  
  16663. Description 
  16664.  
  16665. This is the WPBitmap object class. All bit maps are of this class. These bit 
  16666. map files are templatable. An instance of this class can be created as a 
  16667. Workplace object. Instances of this class are created initially by the system 
  16668. for each bit map in the system. 
  16669.  
  16670. Instance methods 
  16671.  
  16672. There are currently no methods defined for the WPBitmap Workplace object class. 
  16673.  
  16674. WPObject instance methods 
  16675.  
  16676. The following list shows all the methods overridden by the WPBitmap class. 
  16677. These methods are overridden in order to modify the behavior defined by an 
  16678. ancestor class. 
  16679.  
  16680.    o  wpSetupOnce 
  16681.  
  16682.  Class methods 
  16683.  
  16684.  There are currently no class methods defined for the WPBitmap Workplace object 
  16685.  class. 
  16686.  
  16687.  WPObject class methods. 
  16688.  
  16689.  The following list shows all the class methods overridden by the WPBitmap 
  16690.  class. These methods are overridden to modify the behavior defined by an 
  16691.  ancestor class. 
  16692.  
  16693.    o  wpclsInitData 
  16694.    o  wpclsQueryDefaultHelp 
  16695.    o  wpclsQueryTitle 
  16696.  
  16697.  WPFileSystem class methods. 
  16698.  
  16699.  The following list shows all the class methods overridden by the WPBitmap 
  16700.  class. These methods are overridden to modify the behavior defined by an 
  16701.  ancestor class. 
  16702.  
  16703.    o  wpclsQueryInstanceFilter 
  16704.    o  wpclsQueryInstanceType 
  16705.  
  16706.  
  16707. ΓòÉΓòÉΓòÉ 23.4. WPClock ΓòÉΓòÉΓòÉ
  16708.  
  16709. Class definition file: wpclock.idl 
  16710.  
  16711. Class hierarchy 
  16712.  
  16713. SOMObject
  16714.    WPObject
  16715.       WPAbstract
  16716.          WPClock
  16717.  
  16718. Description 
  16719.  
  16720. This is the system clock object class. An instance of this class can be created 
  16721. as a Workplace object. An instance of this class is created initially by the 
  16722. system. It has the title "System Clock" and resides in the "System Setup" 
  16723. folder. 
  16724.  
  16725. Instance methods 
  16726.  
  16727. The following list shows all the WPClock instance methods: 
  16728.  
  16729.    o  wpAddClockAlarmPage 
  16730.    o  wpAddClockDateTimePage 
  16731.    o  wpAddClockView1Page 
  16732.    o  wpAddClockView2Page 
  16733.  
  16734.  WPObject instance methods 
  16735.  
  16736.  The following list shows all the methods overridden by the WPClock class. 
  16737.  These methods are overridden in order to modify the behavior defined by an 
  16738.  ancestor class. 
  16739.  
  16740.    o  wpAddObjectWindowPage 
  16741.    o  wpAddSettingsPages 
  16742.    o  wpFilterPopupMenu 
  16743.    o  wpMenuItemHelpSelected 
  16744.    o  wpMenuItemSelected 
  16745.    o  wpModifyPopupMenu 
  16746.    o  wpOpen 
  16747.    o  wpRestoreState 
  16748.    o  wpSaveState 
  16749.  
  16750.  Class methods 
  16751.  
  16752.  There are currently no class methods defined for the WPClock Workplace object 
  16753.  class. 
  16754.  
  16755.  WPObject class methods. 
  16756.  
  16757.  The following list shows all the class methods overridden by the WPClock 
  16758.  class. These methods are overridden to modify the behavior defined by an 
  16759.  ancestor class. 
  16760.  
  16761.    o  wpclsQueryDefaultHelp 
  16762.    o  wpclsQueryDefaultView 
  16763.    o  wpclsQueryIconData 
  16764.    o  wpclsQueryStyle 
  16765.    o  wpclsQueryTitle 
  16766.  
  16767.  
  16768. ΓòÉΓòÉΓòÉ 23.5. WPColorPalette ΓòÉΓòÉΓòÉ
  16769.  
  16770. Class definition file: wpclrpal.idl 
  16771.  
  16772. Class hierarchy 
  16773.  
  16774. SOMObject
  16775.    WPObject
  16776.       WPAbstract
  16777.           WPPalette
  16778.               WPColorPalette
  16779.  
  16780. Description 
  16781.  
  16782. This is the color palette object class. An instance of this class can be 
  16783. created as a Workplace object. Two instances of this class are created 
  16784. initially by the system, with the titles "Mixed Color Palette" and "Solid Color 
  16785. Palette", both residing in the "System Setup" folder. 
  16786.  
  16787. Instance methods 
  16788.  
  16789. There are currently no methods defined for the WPColorPalette Workplace object 
  16790. class. 
  16791.  
  16792. WPObject instance methods 
  16793.  
  16794. The following list shows all the methods overridden by the WPColorPalette 
  16795. class. These methods are overridden in order to modify the behavior defined by 
  16796. an ancestor class. 
  16797.  
  16798.    o  wpInitData 
  16799.    o  wpMenuItemHelpSelected 
  16800.    o  wpSetup 
  16801.  
  16802.  wpSetup override by WPColorPalette 
  16803.  
  16804.  The following table shows the keyname-value pairs added by the WPColorPalette 
  16805.  class. 
  16806.  
  16807.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  16808.   ΓöéKEYNAME   ΓöéVALUE     ΓöéDESCRIPTION                             Γöé
  16809.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  16810.   ΓöéCOLORS    ΓöéRGB valuesΓöéThese are the initial color values of   Γöé
  16811.   Γöé          Γöé          Γöéeach cell in the color palette. The     Γöé
  16812.   Γöé          Γöé          Γöévalues for each cell are separated by   Γöé
  16813.   Γöé          Γöé          Γöécommas. This is equivalent to calling   Γöé
  16814.   Γöé          Γöé          Γöéthe wpSetupCell method. The RGB value   Γöé
  16815.   Γöé          Γöé          Γöémust be presented as a 6-digit hex valueΓöé
  16816.   Γöé          Γöé          Γöéin the format 0xRRGGBB where RR, GG, andΓöé
  16817.   Γöé          Γöé          ΓöéBB are the red, green, and blue, values Γöé
  16818.   Γöé          Γöé          Γöéranging between 0x00 and 0xFF (0-255).  Γöé
  16819.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  16820.   ΓöéXCELLCOUNTΓöécolumns   ΓöéNumber of X cells as decimal digits.    Γöé
  16821.   Γöé          Γöé          ΓöéFor Solid Color Palette, AUTOSETUP=LORESΓöé
  16822.   Γöé          Γöé          Γöémust be specified, and the default valueΓöé
  16823.   Γöé          Γöé          Γöéis 8.                                   Γöé
  16824.   Γöé          Γöé          ΓöéFor Mixed Color Palette, AUTOSETUP=HIRESΓöé
  16825.   Γöé          Γöé          Γöémust be specified, and the default valueΓöé
  16826.   Γöé          Γöé          Γöéis 16.                                  Γöé
  16827.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  16828.   ΓöéYCELLCOUNTΓöérows      ΓöéNumber of Y cells as decimal digits.    Γöé
  16829.   Γöé          Γöé          ΓöéFor Solid Color Palette, AUTOSETUP=LORESΓöé
  16830.   Γöé          Γöé          Γöémust be specified, and the default valueΓöé
  16831.   Γöé          Γöé          Γöéis 2.                                   Γöé
  16832.   Γöé          Γöé          ΓöéFor Mixed Color Palette, AUTOSETUP=HIRESΓöé
  16833.   Γöé          Γöé          Γöémust be specified, and the default valueΓöé
  16834.   Γöé          Γöé          Γöéis 16.                                  Γöé
  16835.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  16836.  
  16837.  Example 
  16838.  
  16839.   pszSetupString="COLORS=0x000000,0xFFFFFF,0xFF23B4
  16840.                          0x505050,0x00FFFF,0xA0A0A0"
  16841.  
  16842.  WPPalette methods 
  16843.  
  16844.  The following list shows all the methods overridden by the WPColorPalette 
  16845.  class. These methods are overridden in order to modify the behavior defined by 
  16846.  an ancestor class. 
  16847.  
  16848.    o  wpDragCell 
  16849.    o  wpEditCell 
  16850.    o  wpPaintCell 
  16851.    o  wpQueryPaletteHelp 
  16852.  
  16853.  Class methods 
  16854.  
  16855.  There are currently no class methods defined for the WPColorPalette Workplace 
  16856.  object class. 
  16857.  
  16858.  WPObject class methods. 
  16859.  
  16860.  The following list shows all the class methods overridden by the 
  16861.  WPColorPalette class. These methods are overridden to modify the behavior 
  16862.  defined by an ancestor class. 
  16863.  
  16864.    o  wpclsCreateDefaultTemplates 
  16865.    o  wpclsQueryDefaultHelp 
  16866.    o  wpclsQueryIconData 
  16867.    o  wpclsQueryStyle 
  16868.    o  wpclsQueryTitle 
  16869.  
  16870.  WPPalette class methods. 
  16871.  
  16872.  The following list shows all the class methods overridden by the 
  16873.  WPColorPalette class. These methods are overridden to modify the behavior 
  16874.  defined by an ancestor class. 
  16875.  
  16876.    o  wpclsQueryEditString 
  16877.  
  16878.  
  16879. ΓòÉΓòÉΓòÉ 23.6. WPCommandFile ΓòÉΓòÉΓòÉ
  16880.  
  16881. Class definition file: wpcmdf.idl 
  16882.  
  16883. Class hierarchy 
  16884.  
  16885. SOMObject
  16886.   WPObject
  16887.      WPFileSystem
  16888.         WPDataFile
  16889.            WPProgramFile
  16890.               WPCommandFile
  16891.  
  16892. Description 
  16893.  
  16894. This is the command file object class. All DOS and OS/2 command/batch files are 
  16895. of this class. These program files are templatable. An instance of this class 
  16896. can be created as a Workplace object. Instances of this class are created 
  16897. initially by the system for each command file in the system. Each instance has 
  16898. a title corresponding to the file name of the command file it represents and 
  16899. resides in a folder corresponding to the physical directory in which the 
  16900. program file resides. 
  16901.  
  16902. Instance methods 
  16903.  
  16904. There are currently no methods defined for the WPCommandFile Workplace object 
  16905. class. 
  16906.  
  16907. WPObject instance methods 
  16908.  
  16909. The following list shows all the methods overridden by the WPCommandFile class. 
  16910. These methods are overridden in order to modify the behavior defined by an 
  16911. ancestor class. 
  16912.  
  16913.    o  wpPrintObject 
  16914.  
  16915.  Class methods 
  16916.  
  16917.  There are currently no class methods defined for the WPCommandFile Workplace 
  16918.  object class. 
  16919.  
  16920.  WPObject class methods. 
  16921.  
  16922.  The following list shows all the class methods overridden by the WPCommandFile 
  16923.  class. These methods are overridden to modify the behavior defined by an 
  16924.  ancestor class. 
  16925.  
  16926.    o  wpclsQueryStyle 
  16927.    o  wpclsQueryTitle 
  16928.  
  16929.  WPFileSystem class methods. 
  16930.  
  16931.  The following list shows all the class methods overridden by the WPCommandFile 
  16932.  class. These methods are overridden to modify the behavior defined by an 
  16933.  ancestor class. 
  16934.  
  16935.    o  wpclsQueryInstanceFilter 
  16936.    o  wpclsQueryInstanceType 
  16937.  
  16938.  
  16939. ΓòÉΓòÉΓòÉ 23.7. WPCountry ΓòÉΓòÉΓòÉ
  16940.  
  16941. Class definition file: wpctry.idl 
  16942.  
  16943. Class hierarchy 
  16944.  
  16945. SOMObject
  16946.    WPObject
  16947.       WPAbstract
  16948.          WPCountry
  16949.  
  16950. Description 
  16951.  
  16952. This is the country object class. An instance of this class can be created as a 
  16953. Workplace object. An instance of this class is created initially by the system. 
  16954. It has the title, "Country" and resides in the "System Setup" folder. 
  16955.  
  16956. Instance methods 
  16957.  
  16958. The following list shows all the WPCountry instance methods: 
  16959.  
  16960.    o  wpAddCountryDatePage 
  16961.    o  wpAddCountryNumbersPage 
  16962.    o  wpAddCountryPage 
  16963.    o  wpAddCountryTimePage 
  16964.  
  16965.  WPObject instance methods 
  16966.  
  16967.  The following list shows all the methods overridden by the WPCountry class. 
  16968.  These methods are overridden in order to modify the behavior defined by an 
  16969.  ancestor class. 
  16970.  
  16971.    o  wpAddObjectWindowPage 
  16972.    o  wpAddSettingsPages 
  16973.    o  wpFilterPopupMenu 
  16974.    o  wpInitData 
  16975.  
  16976.  Class methods 
  16977.  
  16978.  There are currently no class methods defined for the WPCountry Workplace 
  16979.  object class. 
  16980.  
  16981.  WPObject class methods. 
  16982.  
  16983.  The following list shows all the class methods overridden by the WPCountry 
  16984.  class. These methods are overridden to modify the behavior defined by an 
  16985.  ancestor class. 
  16986.  
  16987.    o  wpclsQueryDefaultHelp 
  16988.    o  wpclsQueryDefaultView 
  16989.    o  wpclsQueryIconData 
  16990.    o  wpclsQueryStyle 
  16991.    o  wpclsQueryTitle 
  16992.  
  16993.  
  16994. ΓòÉΓòÉΓòÉ 23.8. WPDataFile ΓòÉΓòÉΓòÉ
  16995.  
  16996. Class definition file: wpdataf.idl 
  16997.  
  16998. Class hierarchy 
  16999.  
  17000. SOMObject
  17001.    WPObject
  17002.       WPFileSystem
  17003.          WPDataFile
  17004.  
  17005. Description 
  17006.  
  17007. This is the data file object class. An instance of this class can be created as 
  17008. a Workplace object and is created initially by the system in its template form. 
  17009. The template form of this class has the title "Data file" and resides in the 
  17010. "Templates" folder. 
  17011.  
  17012. Instance methods 
  17013.  
  17014. The following list shows all the WPDataFile methods: 
  17015.  
  17016.    o  wpAddFileTypePage 
  17017.    o  wpPrintMetaFile 
  17018.    o  wpPrintPifFile 
  17019.    o  wpPrintPrinterSpecificFile 
  17020.    o  wpPrintUnknownFile 
  17021.    o  wpQueryAssociatedFileIcon 
  17022.    o  wpQueryAssociatedProgram 
  17023.    o  wpSetAssociatedFileIcon 
  17024.  
  17025.  WPObject instance methods 
  17026.  
  17027.  The following list shows all the methods overridden by the WPDataFile class. 
  17028.  These methods are overridden in order to modify the behavior defined by an 
  17029.  ancestor class. 
  17030.  
  17031.    o  wpAddObjectWindowPage 
  17032.    o  wpAddSettingsPages 
  17033.    o  wpDragOver 
  17034.    o  wpFormatDragItem 
  17035.    o  wpMenuItemHelpSelected 
  17036.    o  wpMenuItemSelected 
  17037.    o  wpModifyPopupMenu 
  17038.    o  wpOpen 
  17039.    o  wpPrintObject 
  17040.    o  wpQueryDefaultHelp 
  17041.    o  wpQueryIcon 
  17042.    o  wpRestoreState 
  17043.    o  wpSetDefaultView 
  17044.    o  wpSetRealName 
  17045.  
  17046.  WPFileSystem instance methods 
  17047.  
  17048.  The following list shows all the methods overridden by the WPDataFile class. 
  17049.  These methods are overridden in order to modify the behavior defined by an 
  17050.  ancestor class. 
  17051.  
  17052.    o  wpSetType 
  17053.  
  17054.  Class methods 
  17055.  
  17056.  There are currently no class methods defined for the WPDataFile Workplace 
  17057.  object class. 
  17058.  
  17059.  WPObject class methods. 
  17060.  
  17061.  The following list shows all the class methods overridden by the WPDataFile 
  17062.  class. These methods are overridden to modify the behavior defined by an 
  17063.  ancestor class. 
  17064.  
  17065.    o  wpclsQueryDefaultHelp 
  17066.    o  wpclsQueryDefaultView 
  17067.    o  wpclsQueryIconData 
  17068.    o  wpclsQueryStyle 
  17069.    o  wpclsQueryTitle 
  17070.  
  17071.  
  17072. ΓòÉΓòÉΓòÉ 23.9. WPDesktop ΓòÉΓòÉΓòÉ
  17073.  
  17074. Class definition file: wpdesk.idl 
  17075.  
  17076. Class hierarchy 
  17077.  
  17078. SOMObject
  17079.    WPObject
  17080.       WPFileSystem
  17081.          WPFolder
  17082.              WPDesktop
  17083.  
  17084. Description 
  17085.  
  17086. This is the Workplace desktop object class. An instance of this class can be 
  17087. created as a Workplace object. An instance of this class is created initially 
  17088. by the system. It has the title "Desktop" and initially resides in the root 
  17089. directory of the drive containing the user profile. 
  17090.  
  17091. Instance methods 
  17092.  
  17093. The following list shows all the WPDesktop methods: 
  17094.  
  17095.    o  wpAddDesktopArcRest1Page 
  17096.    o  wpAddDesktopDefDT1Page 
  17097.    o  wpAddDesktopLockup1Page 
  17098.    o  wpAddDesktopLockup2Page 
  17099.    o  wpAddDesktopLockup3Page 
  17100.    o  wpIsCurrentDesktop 
  17101.  
  17102.  WPObject instance methods 
  17103.  
  17104.  The following list shows all the methods overridden by the WPDesktop class. 
  17105.  These methods are overridden in order to modify the behavior defined by an 
  17106.  ancestor class. 
  17107.  
  17108.    o  wpAddSettingsPages 
  17109.    o  wpFilterPopupMenu 
  17110.    o  wpInitData 
  17111.    o  wpMenuItemSelected 
  17112.    o  wpModifyPopupMenu 
  17113.    o  wpRestoreState 
  17114.    o  wpSaveState 
  17115.  
  17116.  Class methods 
  17117.  
  17118.  The following list shows the WPDesktop class methods. 
  17119.  
  17120.    o  wpclsQueryActiveDesktop 
  17121.    o  wpclsQueryActiveDesktopHWND 
  17122.    o  wpclsQueryObjectFromFrame 
  17123.  
  17124.  WPObject class methods. 
  17125.  
  17126.  The following list shows all the class methods overridden by the WPDesktop 
  17127.  class. These methods are overridden to modify the behavior defined by an 
  17128.  ancestor class. 
  17129.  
  17130.    o  wpclsQueryDefaultHelp 
  17131.    o  wpclsQueryDefaultView 
  17132.    o  wpclsQueryIconData 
  17133.    o  wpclsQueryStyle 
  17134.    o  wpclsQueryTitle 
  17135.  
  17136.  
  17137. ΓòÉΓòÉΓòÉ 23.10. WPDisk ΓòÉΓòÉΓòÉ
  17138.  
  17139. Class definition file: wpdisk.idl 
  17140.  
  17141. Class hierarchy 
  17142.  
  17143. SOMObject
  17144.    WPObject
  17145.       WPAbstract
  17146.          WPDisk
  17147.  
  17148. Description 
  17149.  
  17150. This is the file-system device object class. It is used to represent all types 
  17151. of file-system devices including: 
  17152.  
  17153.    o  CD ROM drives 
  17154.    o  Fixed disk drives 
  17155.    o  Floppy diskette drives 
  17156.    o  Magnetic tape drives 
  17157.    o  Network drives 
  17158.    o  PCMCIA** devices 
  17159.    o  Ram drives 
  17160.  
  17161.  An instance of this class can be created as a Workplace object. Shadow 
  17162.  instances of this class are created initially by the system for each 
  17163.  file-system device available. Each instance has a title corresponding to a 
  17164.  file-system device and resides in the Drives folder. If a primary, local, 
  17165.  removable, media file-system device such as a floppy drive exists, an instance 
  17166.  of this class will also be created on the desktop, and will represent this 
  17167.  drive. These instances actually appear as WPShadow objects which are shadows 
  17168.  of WPDisk objects. 
  17169.  
  17170.  Instance methods 
  17171.  
  17172.  The following list shows the WPDisk methods: 
  17173.  
  17174.    o  wpAddDiskDetailsPage 
  17175.    o  wpEjectDisk 
  17176.    o  wpLockDrive 
  17177.    o  wpQueryDriveLockStatus 
  17178.    o  wpQueryLogicalDrive 
  17179.    o  wpQueryRootFolder 
  17180.    o  wpSetCorrectDiskIcon 
  17181.  
  17182.  WPObject instance methods 
  17183.  
  17184.  The following list shows all the methods overridden by the WPDisk class. These 
  17185.  methods are overridden in order to modify the behavior defined by an ancestor 
  17186.  class. 
  17187.  
  17188.    o  wpAddObjectWindowPage 
  17189.    o  wpAddSettingsPages 
  17190.    o  wpDragOver 
  17191.    o  wpDrop 
  17192.    o  wpFilterPopupMenu 
  17193.    o  wpMenuItemHelpSelected 
  17194.    o  wpMenuItemSelected 
  17195.    o  wpModifyPopupMenu 
  17196.    o  wpOpen 
  17197.    o  wpQueryDefaultHelp 
  17198.    o  wpQueryIconData 
  17199.    o  wpRestoreState 
  17200.    o  wpSaveState 
  17201.    o  wpSetIconData 
  17202.    o  wpSetTitle 
  17203.    o  wpSetup 
  17204.    o  wpUnInitData 
  17205.    o  wpViewObject 
  17206.  
  17207.  The following list shows all the methods overridden by the WPDisk class. These 
  17208.  methods are overridden in order to modify the behavior defined by an ancestor 
  17209.  class. 
  17210.  
  17211.    o  wpFilterPopupMenu 
  17212.    o  wpMenuItemHelpSelected 
  17213.    o  wpMenuItemSelected 
  17214.    o  wpModifyPopupMenu 
  17215.  
  17216.  wpSetup override by WPDisk 
  17217.  
  17218.  The following table shows the keyname-value pairs added by the WPDisk class. 
  17219.  
  17220.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  17221.   ΓöéKEYNAME   ΓöéVALUE          ΓöéDESCRIPTION                        Γöé
  17222.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17223.   ΓöéDRIVENUM  ΓöéDRIVENUM=dd    ΓöéLogical drive number (1-26).       Γöé
  17224.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  17225.  
  17226.  Class methods 
  17227.  
  17228.  There are currently no class methods defined for the WPDisk Workplace object 
  17229.  class. 
  17230.  
  17231.  WPObject class methods. 
  17232.  
  17233.  The following list shows all the class methods overridden by the WPDisk class. 
  17234.  These methods are overridden to modify the behavior defined by an ancestor 
  17235.  class. 
  17236.  
  17237.    o  wpclsQueryDefaultHelp 
  17238.    o  wpclsQueryDefaultView 
  17239.    o  wpclsQueryIconData 
  17240.    o  wpclsQueryStyle 
  17241.    o  wpclsQueryTitle 
  17242.  
  17243.  
  17244. ΓòÉΓòÉΓòÉ 23.11. WPDrives ΓòÉΓòÉΓòÉ
  17245.  
  17246. Class definition file: wpdrives.idl 
  17247.  
  17248. Class hierarchy 
  17249.  
  17250. SOMObject
  17251.    WPObject
  17252.       WPFileSystem
  17253.          WPFolder
  17254.              WPDrives
  17255.  
  17256. Description 
  17257.  
  17258. This is the file-system device folder object class. An instance of this class 
  17259. can be created as a Workplace object. An instance of this class is created 
  17260. initially by the system. It has the title "Drives" and resides in the "OS/2 
  17261. System" folder. 
  17262.  
  17263. Instance methods 
  17264.  
  17265. There are currently no methods defined for the WPDrives Workplace object class. 
  17266.  
  17267. WPObject methods 
  17268.  
  17269. The following list shows all the methods overridden by the WPDrives class. 
  17270. These methods are overridden in order to modify the behavior defined by an 
  17271. ancestor class. 
  17272.  
  17273.    o  wpFilterPopupMenu 
  17274.    o  wpMenuItemHelpSelected 
  17275.    o  wpMenuItemSelected 
  17276.    o  wpModifyPopupMenu 
  17277.  
  17278.  WPFolder methods 
  17279.  
  17280.  The following list shows all the methods overridden by the WPDrives class. 
  17281.  These methods are overridden in order to modify the behavior defined by an 
  17282.  ancestor class. 
  17283.  
  17284.    o  wpPopulate 
  17285.  
  17286.  Class methods 
  17287.  
  17288.  There are currently no class methods defined for the WPDrives Workplace object 
  17289.  class. 
  17290.  
  17291.  WPObject class methods. 
  17292.  
  17293.  The following list shows all the class methods overridden by the WPDrives 
  17294.  class. These methods are overridden to modify the behavior defined by an 
  17295.  ancestor class. 
  17296.  
  17297.    o  wpclsQueryDefaultHelp 
  17298.    o  wpclsQueryIconData 
  17299.    o  wpclsQueryStyle 
  17300.    o  wpclsQueryTitle 
  17301.  
  17302.  
  17303. ΓòÉΓòÉΓòÉ 23.12. WPFileSystem ΓòÉΓòÉΓòÉ
  17304.  
  17305. Class definition file: wpfsys.idl 
  17306.  
  17307. Class hierarchy 
  17308.  
  17309. SOMObject
  17310.    WPObject
  17311.       WPFileSystem
  17312.  
  17313. Description 
  17314.  
  17315. This is the file-system object storage class. WPFileSystem is the storage class 
  17316. that represents all file-system objects including directory (folder), data 
  17317. file, executable file, and root directory (drive) objects. This class also 
  17318. provides persistent storage of instance variables for all classes derived from 
  17319. it. Persistent data for instances of WPFileSystem subclasses are stored in the 
  17320. Extended Attributes (EAs) of the file or directory. 
  17321.  
  17322. This is a base storage class; it is not intended for instances of this class to 
  17323. be created. 
  17324.  
  17325. Instance methods 
  17326.  
  17327. The following list shows all the WPFileSystem class methods: 
  17328.  
  17329.    o  wpAddFileMenuPage 
  17330.    o  wpAddFile1Page 
  17331.    o  wpAddFile2Page 
  17332.    o  wpAddFile3Page 
  17333.    o  wpConfirmKeepAssoc 
  17334.    o  wpConfirmRenameFileWithExt 
  17335.    o  wpIsDiskSwapped 
  17336.    o  wpPrintPlainTextFile 
  17337.    o  wpQueryAttr 
  17338.    o  wpQueryCreation 
  17339.    o  wpQueryDateInfo 
  17340.    o  wpQueryDisk 
  17341.    o  wpQueryEASize 
  17342.    o  wpQueryFilename 
  17343.    o  wpQueryFileSize 
  17344.    o  wpQueryLastAccess 
  17345.    o  wpQueryLastWrite 
  17346.    o  wpQueryRealName 
  17347.    o  wpQueryType 
  17348.    o  wpRefresh 
  17349.    o  wpSetAttr 
  17350.    o  wpSetDateInfo 
  17351.    o  wpSetFileSizeInfo 
  17352.    o  wpSetRealName 
  17353.    o  wpSetTitleAndRenameFile 
  17354.    o  wpSetType 
  17355.    o  wpVerifyUpdateAccess 
  17356.  
  17357.  WPObject instance methods 
  17358.  
  17359.  The following list shows all the methods overridden by the WPFileSystem class. 
  17360.  These methods are overridden in order to modify the behavior defined by an 
  17361.  ancestor class. 
  17362.  
  17363.    o  wpAddSettingsPages 
  17364.    o  wpCopyObject 
  17365.    o  wpCreateFromTemplate 
  17366.    o  wpDoesObjectMatch 
  17367.    o  wpDraggedOverObject 
  17368.    o  wpDroppedOnObject 
  17369.    o  wpFilterPopupMenu 
  17370.    o  wpFormatDragItem 
  17371.    o  wpMenuItemSelected 
  17372.    o  wpModifyPopupMenu 
  17373.    o  wpMoveObject 
  17374.    o  wpOpen 
  17375.    o  wpQueryDetailsData 
  17376.    o  wpQueryHandle 
  17377.    o  wpQueryIcon 
  17378.    o  wpQueryIconData 
  17379.    o  wpQueryNameClashOptions 
  17380.    o  wpQueryStyle 
  17381.    o  wpRestoreState 
  17382.    o  wpSaveImmediate 
  17383.    o  wpSaveState 
  17384.    o  wpSetIconData 
  17385.    o  wpSetStyle 
  17386.    o  wpSetTitle 
  17387.    o  wpSwitchTo 
  17388.    o  wpUnInitData 
  17389.    o  wpViewObject 
  17390.  
  17391.  Class methods 
  17392.  
  17393.  The following list shows the WPFileSystem class methods: 
  17394.  
  17395.    o  wpclsFileSysExists 
  17396.    o  wpclsQueryAwakeObject 
  17397.    o  wpclsQueryInstanceFilter 
  17398.    o  wpclsQueryInstanceType 
  17399.    o  wpclsQueryObjectFromPath 
  17400.  
  17401.  WPObject class methods. 
  17402.  
  17403.  The following list shows all the class methods overridden by the WPFileSystem 
  17404.  class. These methods are overridden to modify the behavior defined by an 
  17405.  ancestor class. 
  17406.  
  17407.    o  wpclsInitData 
  17408.    o  wpclsQueryDetailsInfo 
  17409.    o  wpclsQueryExtendedCriteria 
  17410.    o  wpclsNew 
  17411.    o  wpclsQuerySearchInfo 
  17412.    o  wpclsQueryTitle 
  17413.  
  17414.  
  17415. ΓòÉΓòÉΓòÉ 23.13. WPFolder ΓòÉΓòÉΓòÉ
  17416.  
  17417. Class definition file: wpfolder.idl 
  17418.  
  17419. Class hierarchy 
  17420.  
  17421. SOMObject
  17422.    WPObject
  17423.       WPFileSystem
  17424.          WPFolder
  17425.  
  17426. Description 
  17427.  
  17428. This is the folder object class. An instance of this class can be created as a 
  17429. Workplace object. An instance of this class is created initially by the system 
  17430. in its template form. It has the title "Folder" and resides in the "Templates" 
  17431. folder. Every directory in the system is represented by a WPFolder object. 
  17432.  
  17433. Instance methods 
  17434.  
  17435. The following list shows how all the WPFolder methods are related within 
  17436. functional areas: 
  17437.  
  17438. Settings notebook methods 
  17439.  
  17440.    o  wpAddFolderBackgroundPage 
  17441.    o  wpAddFolderIncludePage 
  17442.    o  wpAddFolderSelfClosePage 
  17443.    o  wpAddFolderSortPage 
  17444.    o  wpAddFolderView1Page 
  17445.    o  wpAddFolderView2Page 
  17446.    o  wpAddFolderView3Page 
  17447.  
  17448.  Object position methods 
  17449.  
  17450.    o  wpQueryIconViewPos 
  17451.    o  wpQueryNextIconPos 
  17452.    o  wpSetNextIconPos 
  17453.  
  17454.  Folder attributes methods 
  17455.  
  17456.    o  wpIsDetailsColumnVisible 
  17457.    o  wpIsSortAttribAvailable 
  17458.    o  wpModifyFldrFlags 
  17459.    o  wpQueryFldrAttr 
  17460.    o  wpQueryFldrDetailsClass 
  17461.    o  wpQueryFldrFlags 
  17462.    o  wpQueryFldrFont 
  17463.    o  wpQueryFldrSort 
  17464.    o  wpQueryFldrSortClass 
  17465.    o  wpSetDetailsColumnVisibility 
  17466.    o  wpSetFldrAttr 
  17467.    o  wpSetFldrDetailsClass 
  17468.    o  wpSetFldrFlags 
  17469.    o  wpSetFldrFont 
  17470.    o  wpSetFldrSort 
  17471.    o  wpSetFldrSortClass 
  17472.    o  wpSetSortAttribAvailable 
  17473.  
  17474.  Folder state methods 
  17475.  
  17476.    o  wpHideFldrRunObjs 
  17477.  
  17478.  Folder content methods 
  17479.  
  17480.    o  wpAddFirstChild 
  17481.    o  wpAddToContent 
  17482.    o  wpContainsFolders 
  17483.    o  wpDeleteContents 
  17484.    o  wpDeleteFromContent 
  17485.    o  wpPopulate 
  17486.    o  wpQueryContent 
  17487.  
  17488.  WPObject instance methods 
  17489.  
  17490.  The following list shows all the methods overridden by the WPFolder class. 
  17491.  These methods are overridden in order to modify the behavior defined by an 
  17492.  ancestor class. 
  17493.  
  17494.    o  wpAddObjectWindowPage 
  17495.    o  wpAddSettingsPages 
  17496.    o  wpConfirmDelete 
  17497.    o  wpDelete 
  17498.    o  wpDragOver 
  17499.    o  wpDrop 
  17500.    o  wpFilterPopupMenu 
  17501.    o  wpFormatDragItem 
  17502.    o  wpFree 
  17503.    o  wpInitData 
  17504.    o  wpMenuItemHelpSelected 
  17505.    o  wpMenuItemSelected 
  17506.    o  wpModifyPopupMenu 
  17507.    o  wpMoveObject 
  17508.    o  wpObjectReady 
  17509.    o  wpOpen 
  17510.    o  wpQueryDefaultHelp 
  17511.    o  wpQueryDefaultView 
  17512.    o  wpRender 
  17513.    o  wpRenderComplete 
  17514.    o  wpRestoreState 
  17515.    o  wpSaveState 
  17516.    o  wpSetIconData 
  17517.    o  wpSetup 
  17518.    o  wpUnInitData 
  17519.  
  17520.  WPFileSystem instance methods 
  17521.  
  17522.  The following list shows all the methods overridden by the WPFolder class. 
  17523.  These methods are overridden in order to modify the behavior defined by an 
  17524.  ancestor class. 
  17525.  
  17526.    o  wpAddFile2Page 
  17527.    o  wpAddFile3Page 
  17528.  
  17529.  wpSetup override by WPFolder 
  17530.  
  17531.  The following table shows the keyname-value pairs supported by the WPFolder 
  17532.  class. 
  17533.  
  17534.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  17535.   ΓöéKEYNAME         ΓöéVALUE             ΓöéDESCRIPTION                   Γöé
  17536.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17537.   ΓöéALWAYSSORT      ΓöéYES               ΓöéSort order is always          Γöé
  17538.   Γöé                Γöé                  Γöémaintained. Opening and addingΓöé
  17539.   Γöé                Γöé                  Γöéan object to a folder may takeΓöé
  17540.   Γöé                Γöé                  Γöélonger if the sort order is   Γöé
  17541.   Γöé                Γöé                  Γöébeing maintained.             Γöé
  17542.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17543.   Γöé                ΓöéNO                ΓöéSort order is not maintained. Γöé
  17544.   Γöé                Γöé                  ΓöéThis is the default value.    Γöé
  17545.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17546.   ΓöéBACKGROUND      ΓöéN,M,S,B,C         ΓöéThis sets the folder          Γöé
  17547.   Γöé                Γöé                  Γöébackground, where:            Γöé
  17548.   Γöé                Γöé                  ΓöéN = Image file name. This     Γöé
  17549.   Γöé                Γöé                  Γöé    name must be the fully-   Γöé
  17550.   Γöé                Γöé                  Γöé    qualified path of the     Γöé
  17551.   Γöé                Γöé                  Γöé    image file. "?:\" is      Γöé
  17552.   Γöé                Γöé                  Γöé    permitted to indicate the Γöé
  17553.   Γöé                Γöé                  Γöé    boot drive.               Γöé
  17554.   Γöé                Γöé                  Γöé                              Γöé
  17555.   Γöé                Γöé                  ΓöéM = Image mode. This mode can Γöé
  17556.   Γöé                Γöé                  Γöé    be one of the following:  Γöé
  17557.   Γöé                Γöé                  Γöé    N = Normal image          Γöé
  17558.   Γöé                Γöé                  Γöé    T = Titled image          Γöé
  17559.   Γöé                Γöé                  Γöé    S = Scaled image          Γöé
  17560.   Γöé                Γöé                  Γöé                              Γöé
  17561.   Γöé                Γöé                  ΓöéS = Scaling factor.           Γöé
  17562.   Γöé                Γöé                  Γöé                              Γöé
  17563.   Γöé                Γöé                  ΓöéB = Background type. This can Γöé
  17564.   Γöé                Γöé                  Γöé    be one of the following:  Γöé
  17565.   Γöé                Γöé                  Γöé    I = Image                 Γöé
  17566.   Γöé                Γöé                  Γöé    C = Color only            Γöé
  17567.   Γöé                Γöé                  Γöé                              Γöé
  17568.   Γöé                Γöé                  ΓöéC = Background color. This    Γöé
  17569.   Γöé                Γöé                  Γöé    color can be 3 numbers re-Γöé
  17570.   Γöé                Γöé                  Γöé    presenting RGB values or  Γöé
  17571.   Γöé                Γöé                  Γöé    the default, in the       Γöé
  17572.   Γöé                Γöé                  Γöé    following format:         Γöé
  17573.   Γöé                Γöé                  Γöé                              Γöé
  17574.   Γöé                Γöé                  Γöé    {R-value G-value B-value} Γöé
  17575.   Γöé                Γöé                  Γöé                              Γöé
  17576.   Γöé                Γöé                  ΓöéFor example:                  Γöé
  17577.   Γöé                Γöé                  Γöé"BACKGROUND=                  Γöé
  17578.   Γöé                Γöé                  ΓöéC:\OS2\BITMAP\OS2LOGO.BMP,S,  Γöé
  17579.   Γöé                Γöé                  Γöé3,I"                          Γöé
  17580.   Γöé                Γöé                  Γöéor                            Γöé
  17581.   Γöé                Γöé                  Γöé"BACKGROUND=                  Γöé
  17582.   Γöé                Γöé                  Γöé(none),,,C,0 128 128"         Γöé
  17583.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17584.   ΓöéDEFAULTVIEW     ΓöéICON              ΓöéThis sets the default open    Γöé
  17585.   Γöé                Γöé                  Γöéview to the ICON (or CONTENTS)Γöé
  17586.   Γöé                Γöé                  Γöéview.                         Γöé
  17587.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17588.   Γöé                ΓöéTREE              ΓöéThis sets the default open    Γöé
  17589.   Γöé                Γöé                  Γöéview to the TREE view.        Γöé
  17590.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17591.   Γöé                ΓöéDETAILS           ΓöéThis sets the default open    Γöé
  17592.   Γöé                Γöé                  Γöéview to the DETAILS view.     Γöé
  17593.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17594.   Γöé                Γöé                  ΓöéThe default view of the       Γöé
  17595.   Γöé                Γöé                  Γöécontaining folder.            Γöé
  17596.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17597.   ΓöéDETAILSCLASS    Γöéclassname         ΓöéThis sets the object class forΓöé
  17598.   Γöé                Γöé                  Γöéwhich the details are         Γöé
  17599.   Γöé                Γöé                  Γöédisplayed in details view.    Γöé
  17600.   Γöé                Γöé                  ΓöéThe default object class is   Γöé
  17601.   Γöé                Γöé                  ΓöéWPFileSystem.                 Γöé
  17602.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17603.   ΓöéDETAILSFONT     Γöéfont name.size    ΓöéSetup string used to change   Γöé
  17604.   Γöé                Γöéstring            Γöéthe font used for a details   Γöé
  17605.   Γöé                Γöé                  Γöéview. For example:  10.Helv   Γöé
  17606.   Γöé                Γöé                  ΓöéThe default value is 8.Helv.  Γöé
  17607.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17608.   ΓöéDETAILSVIEW     Γöés1[,s2,...sn]     ΓöéThis set details view to the  Γöé
  17609.   Γöé                Γöé                  Γöéspecified styles. Possible    Γöé
  17610.   Γöé                Γöé                  Γöévalues are:                   Γöé
  17611.   Γöé                Γöé                  ΓöéMINI   small icon; this is    Γöé
  17612.   Γöé                Γöé                  Γöé       the default.           Γöé
  17613.   Γöé                Γöé                  ΓöéNORMAL normal-size icon.      Γöé
  17614.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17615.   ΓöéICONFONT        Γöéfont size.facenameΓöéSetup string used to change   Γöé
  17616.   Γöé                Γöé                  Γöéthe font used for an icon     Γöé
  17617.   Γöé                Γöé                  Γöéview. For example:  10.Helv   Γöé
  17618.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17619.   ΓöéICONNFILE       Γöéindex,filename    ΓöéThis sets the file name of theΓöé
  17620.   Γöé                Γöé                  Γöéanimation (open folder) icon. Γöé
  17621.   Γöé                Γöé                  ΓöéThe "index" value must be set Γöé
  17622.   Γöé                Γöé                  Γöéto 1. The specified file      Γöé
  17623.   Γöé                Γöé                  Γöécontains the folder's open    Γöé
  17624.   Γöé                Γöé                  Γöéfolder icon.                  Γöé
  17625.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17626.   ΓöéICONNRESOURCE   Γöéindex,id,modname  ΓöéThis sets the resource of the Γöé
  17627.   Γöé                Γöé                  Γöéanimation (open folder) icon. Γöé
  17628.   Γöé                Γöé                  ΓöéThe "index" value must be set Γöé
  17629.   Γöé                Γöé                  Γöéto 1. The "id" is the identityΓöé
  17630.   Γöé                Γöé                  Γöéof an icon resource in the    Γöé
  17631.   Γöé                Γöé                  Γöé"module" dynamic link library Γöé
  17632.   Γöé                Γöé                  Γöé(DLL). The specified resource Γöé
  17633.   Γöé                Γöé                  Γöéis the folder's open folder   Γöé
  17634.   Γöé                Γöé                  Γöéicon.                         Γöé
  17635.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17636.   ΓöéICONVIEW        Γöés1[,s2,...sn]     ΓöéThis sets icon view to the    Γöé
  17637.   Γöé                Γöé                  Γöéspecified styles. Possible    Γöé
  17638.   Γöé                Γöé                  Γöévalues are:                   Γöé
  17639.   Γöé                Γöé                  ΓöéFLOWED      NOGRID            Γöé
  17640.   Γöé                Γöé                  ΓöéINVISIBLE   NONFLOWED         Γöé
  17641.   Γöé                Γöé                  ΓöéMINI        NORMAL            Γöé
  17642.   Γöé                Γöé                  Γöé                              Γöé
  17643.   Γöé                Γöé                  ΓöéThe default value is          Γöé
  17644.   Γöé                Γöé                  ΓöéNOGRID,NORMAL                 Γöé
  17645.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17646.   ΓöéICONVIEWPOS     Γöéx,y,cx,cy         ΓöéThis sets the initial icon    Γöé
  17647.   Γöé                Γöé                  Γöéview position and size of the Γöé
  17648.   Γöé                Γöé                  Γöéfolder on the screen. These   Γöé
  17649.   Γöé                Γöé                  Γöévalues are percentages (0-100)Γöé
  17650.   Γöé                Γöé                  Γöéof the screen size.           Γöé
  17651.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17652.   ΓöéOPEN            ΓöéICON              ΓöéThis opens the icon view when Γöé
  17653.   Γöé                Γöé                  Γöéobject is created or when     Γöé
  17654.   Γöé                Γöé                  ΓöéWinSetObjectData is called.   Γöé
  17655.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17656.   Γöé                ΓöéTREE              ΓöéThis opens the tree view when Γöé
  17657.   Γöé                Γöé                  Γöéobject is created or when     Γöé
  17658.   Γöé                Γöé                  ΓöéWinSetObjectData is called.   Γöé
  17659.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17660.   Γöé                ΓöéDETAILS           ΓöéThis opens the details view   Γöé
  17661.   Γöé                Γöé                  Γöéwhen object is created or whenΓöé
  17662.   Γöé                Γöé                  ΓöéWinSetObjectData is called.   Γöé
  17663.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17664.   Γöé                Γöé                  ΓöéThe default is to not         Γöé
  17665.   Γöé                Γöé                  Γöéautomatically open a view.    Γöé
  17666.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17667.   ΓöéREMOVEFONTS     ΓöéYES               ΓöéThis removes all instance     Γöé
  17668.   Γöé                Γöé                  Γöéfonts from the folder.        Γöé
  17669.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17670.   Γöé                ΓöéNO                ΓöéThis does not remove instance Γöé
  17671.   Γöé                Γöé                  Γöéfonts from the folder.        Γöé
  17672.   Γöé                Γöé                  ΓöéThis is the default value.    Γöé
  17673.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17674.   ΓöéSORTCLASS       Γöéclassname         ΓöéThis sets the class object to Γöé
  17675.   Γöé                Γöé                  Γöésort by.                      Γöé
  17676.   Γöé                Γöé                  ΓöéThe default class object is   Γöé
  17677.   Γöé                Γöé                  ΓöéWPFileSystem.                 Γöé
  17678.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17679.   ΓöéTREEFONT        Γöéfont size.facenameΓöéThis changes the font used forΓöé
  17680.   Γöé                Γöé                  Γöéa tree view. For example:     Γöé
  17681.   Γöé                Γöé                  Γöé10.System Proportional        Γöé
  17682.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17683.   ΓöéTREEVIEW        Γöés1[,s2,...sn]     ΓöéThis sets the tree view to theΓöé
  17684.   Γöé                Γöé                  Γöéspecified styles. Possible    Γöé
  17685.   Γöé                Γöé                  Γöévalues are:                   Γöé
  17686.   Γöé                Γöé                  ΓöéINVISIBLE  LINES              Γöé
  17687.   Γöé                Γöé                  ΓöéMINI       NOLINES            Γöé
  17688.   Γöé                Γöé                  ΓöéNORMAL                        Γöé
  17689.   Γöé                Γöé                  Γöé                              Γöé
  17690.   Γöé                Γöé                  ΓöéThe default value is LINES,   Γöé
  17691.   Γöé                Γöé                  ΓöéNORMAL.                       Γöé
  17692.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17693.   Γöéview styles     ΓöéFLOWED            ΓöéFlowed list items.            Γöé
  17694.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17695.   Γöé                ΓöéNONFLOWED         ΓöéNon-flowed list items.        Γöé
  17696.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17697.   Γöé                ΓöéNONGRID           ΓöéNon-gridded icon view.        Γöé
  17698.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17699.   Γöé                ΓöéNORMAL            ΓöéNormal size icons.            Γöé
  17700.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17701.   Γöé                ΓöéMINI              ΓöéSmall icons.                  Γöé
  17702.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17703.   Γöé                ΓöéINVISIBLE         ΓöéNo icons.                     Γöé
  17704.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17705.   Γöé                ΓöéLINES             ΓöéLines in tree view.           Γöé
  17706.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17707.   Γöé                ΓöéNOLINES           ΓöéNo lines in tree view.        Γöé
  17708.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17709.   ΓöéWORKAREA        ΓöéYES               ΓöéThis sets the folder so it is Γöé
  17710.   Γöé                Γöé                  Γöéa workarea.                   Γöé
  17711.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17712.   Γöé                ΓöéNO                ΓöéThis sets the folder so it is Γöé
  17713.   Γöé                Γöé                  Γöénot a workarea. This is the   Γöé
  17714.   Γöé                Γöé                  Γöédefault value.                Γöé
  17715.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  17716.  
  17717.  WPFileSystem instance methods 
  17718.  
  17719.  The following list shows all the methods overridden by the WPFolder class. 
  17720.  These methods are overridden in order to modify the behavior defined by an 
  17721.  ancestor class. 
  17722.  
  17723.    o  wpRefresh 
  17724.  
  17725.  Class methods 
  17726.  
  17727.  The following list shows all the WPFolder class methods: 
  17728.  
  17729.    o  wpclsQueryIconDataN 
  17730.    o  wpclsQueryIconN 
  17731.    o  wpclsQueryOpenFolders 
  17732.  
  17733.  WPObject class methods. 
  17734.  
  17735.  The following list shows all the class methods overridden by the WPFolder 
  17736.  class. These methods are overridden to modify the behavior defined by an 
  17737.  ancestor class. 
  17738.  
  17739.    o  wpclsInitData 
  17740.    o  wpclsQueryDefaultHelp 
  17741.    o  wpclsQueryDefaultView 
  17742.    o  wpclsQueryIconData 
  17743.    o  wpclsQueryStyle 
  17744.    o  wpclsQueryTitle 
  17745.  
  17746.  
  17747. ΓòÉΓòÉΓòÉ 23.14. WPFontPalette ΓòÉΓòÉΓòÉ
  17748.  
  17749. Class definition file: wpfntpal.idl 
  17750.  
  17751. Class hierarchy 
  17752.  
  17753. SOMObject
  17754.    WPObject
  17755.       WPAbstract
  17756.           WPPalette
  17757.               WPFontPalette
  17758.  
  17759. Description 
  17760.  
  17761. This is the font palette object class. An instance of this class can be created 
  17762. as a Workplace object. An instance of this class is created initially by the 
  17763. system. It has the title "Font Palette" and resides in the "System Setup" 
  17764. folder. 
  17765.  
  17766. Instance methods 
  17767.  
  17768. The following list shows all the WPFontPalette instance methods. 
  17769.  
  17770.    o  wpGetFattrsFromPsz 
  17771.  
  17772.  WPObject instance methods 
  17773.  
  17774.  The following list shows all the methods overridden by the WPFontPalette 
  17775.  class. These methods are overridden in order to modify the behavior defined by 
  17776.  an ancestor class. 
  17777.  
  17778.    o  wpMenuItemHelpSelected 
  17779.    o  wpSetup 
  17780.  
  17781.  wpSetup override by WPFontPalette 
  17782.  
  17783.  The following table shows the keyname-value pairs supported by the 
  17784.  WPFontPalette class. 
  17785.  
  17786.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  17787.   ΓöéKEYNAME   ΓöéVALUE     ΓöéDESCRIPTION                             Γöé
  17788.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17789.   ΓöéFONTS     Γöéfonttype  ΓöéThese are the initial fonts for each    Γöé
  17790.   Γöé          Γöé          Γöécell in the font palette.  The values   Γöé
  17791.   Γöé          Γöé          Γöéfor each cell are separated by commas.  Γöé
  17792.   Γöé          Γöé          ΓöéThis is equivalent to calling the       Γöé
  17793.   Γöé          Γöé          ΓöéwpSetupCell method. The fonttype value  Γöé
  17794.   Γöé          Γöé          Γöéis presented as the point size followed Γöé
  17795.   Γöé          Γöé          Γöéby a period which is then followed by   Γöé
  17796.   Γöé          Γöé          Γöéthe face name.                          Γöé
  17797.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17798.   ΓöéXCELLCOUNTΓöécolumns   ΓöéNumber of X cells as decimal digits.  IfΓöé
  17799.   Γöé          Γöé          Γöénot specified, defaults to 2.           Γöé
  17800.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  17801.   ΓöéYCELLCOUNTΓöérows      ΓöéNumber of Y cells as decimal digits.  IfΓöé
  17802.   Γöé          Γöé          Γöénot specified, defaults to 4.           Γöé
  17803.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  17804.  
  17805.  Example 
  17806.  
  17807.   pszSetupString="FONTS=10.Helvetica,8.Helvetica,10.Courier,
  17808.                         12.Courier,24.Courier,10.System"
  17809.  
  17810.  WPPalette instance methods 
  17811.  
  17812.  The following list shows all the methods overridden by the WPFontPalette 
  17813.  class. These methods are overridden in order to modify the behavior defined by 
  17814.  an ancestor class. 
  17815.  
  17816.    o  wpDragCell 
  17817.    o  wpEditCell 
  17818.    o  wpPaintCell 
  17819.    o  wpQueryPaletteHelp 
  17820.    o  wpSetupCell 
  17821.  
  17822.  Class methods 
  17823.  
  17824.  There are currently no class methods defined for the WPFontPalette Workplace 
  17825.  object class. 
  17826.  
  17827.  WPObject class methods. 
  17828.  
  17829.  The following list shows all the class methods overridden by the WPFontPalette 
  17830.  class. These methods are overridden to modify the behavior defined by an 
  17831.  ancestor class. 
  17832.  
  17833.    o  wpclsQueryDefaultHelp 
  17834.    o  wpclsQueryIconData 
  17835.    o  wpclsQueryStyle 
  17836.    o  wpclsQueryTitle 
  17837.  
  17838.  WPPalette class methods. 
  17839.  
  17840.  The following list shows all the class methods overridden by the WPFontPalette 
  17841.  class. These methods are overridden to modify the behavior defined by an 
  17842.  ancestor class. 
  17843.  
  17844.    o  wpclsQueryEditString 
  17845.  
  17846.  
  17847. ΓòÉΓòÉΓòÉ 23.15. WPIcon ΓòÉΓòÉΓòÉ
  17848.  
  17849. Class definition file: wpicon.idl 
  17850.  
  17851. Class hierarchy 
  17852.  
  17853. SOMObject
  17854.   WPObject
  17855.      WPFileSystem
  17856.         WPDataFile
  17857.            WPIcon
  17858.  
  17859. Description 
  17860.  
  17861. This is the WPIcon object class. All icons are of this class. These icon files 
  17862. are templatable. An instance of this class can be created as a Workplace 
  17863. object. Instances of this class are created initially by the system for each 
  17864. icon in the system. 
  17865.  
  17866. Instance methods 
  17867.  
  17868. There are currently no methods defined for the WPIcon Workplace class object. 
  17869.  
  17870. WPObject instance methods 
  17871.  
  17872. The following list shows all the methods overridden by the WPIcon class. These 
  17873. methods are overridden in order to modify the behavior defined by an ancestor 
  17874. class. 
  17875.  
  17876.    o  wpSetupOnce 
  17877.  
  17878.  Class methods 
  17879.  
  17880.  There are currently no class methods defined for the WPIcon Workplace class 
  17881.  object. 
  17882.  
  17883.  WPObject class methods. 
  17884.  
  17885.  The following list shows all the class methods overridden by the WPIcon class. 
  17886.  These methods are overridden to modify the behavior defined by an ancestor 
  17887.  class. 
  17888.  
  17889.    o  wpclsInitData 
  17890.    o  wpclsQueryDefaultHelp 
  17891.    o  wpclsQueryTitle 
  17892.  
  17893.  WPFileSystem class methods. 
  17894.  
  17895.  The following list shows all the class methods overridden by the WPIcon class. 
  17896.  These methods are overridden to modify the behavior defined by an ancestor 
  17897.  class. 
  17898.  
  17899.    o  wpclsQueryInstanceFilter 
  17900.    o  wpclsQueryInstanceType 
  17901.  
  17902.  
  17903. ΓòÉΓòÉΓòÉ 23.16. WPJob ΓòÉΓòÉΓòÉ
  17904.  
  17905. Class definition file: wpjob.idl Class hierarchy 
  17906.  
  17907. SOMObject
  17908.    WPObject
  17909.       WPTransient
  17910.          WPJob
  17911.  
  17912. Description 
  17913.  
  17914. This is the job object class. An instance of this class is created by the 
  17915. printer object in its icon or detail view. 
  17916.  
  17917. Instance methods 
  17918.  
  17919. The following list shows all the WPJob methods: 
  17920.  
  17921.    o  wpDeleteJob 
  17922.    o  wpHoldJob 
  17923.    o  wpPrintJobNext 
  17924.    o  wpQueryJobFile 
  17925.    o  wpQueryJobId 
  17926.    o  wpQueryJobType 
  17927.    o  wpQueryPrintObject 
  17928.    o  wpReleaseJob 
  17929.    o  wpStartJobAgain 
  17930.  
  17931.  WPObject instance methods 
  17932.  
  17933.  The following list shows all the methods overridden by the WPJob class. These 
  17934.  methods are overridden in order to modify the behavior defined by an ancestor 
  17935.  class. 
  17936.  
  17937.    o  wpAddObjectGeneralPage 
  17938.    o  wpAddSettingsPages 
  17939.    o  wpDragOver 
  17940.    o  wpDrop 
  17941.    o  wpFilterPopupMenu 
  17942.    o  wpFree 
  17943.    o  wpInitData 
  17944.    o  wpMenuItemHelpSelected 
  17945.    o  wpMenuItemSelected 
  17946.    o  wpModifyPopupMenu 
  17947.    o  wpOpen 
  17948.    o  wpQueryDetailsData 
  17949.    o  wpQueryIcon 
  17950.    o  wpQueryTitle 
  17951.    o  wpSetTitle 
  17952.    o  wpUnInitData 
  17953.  
  17954.  Class methods 
  17955.  
  17956.  WPObject class methods. 
  17957.  
  17958.  There are currently no class methods defined for the WPJob Workplace class 
  17959.  object. 
  17960.  
  17961.  The following list shows all the class methods overridden by the WPJob class. 
  17962.  These methods are overridden to modify the behavior defined by an ancestor 
  17963.  class. 
  17964.  
  17965.    o  wpclsQueryDefaultHelp 
  17966.    o  wpclsQueryDefaultView 
  17967.    o  wpclsQueryDetailsInfo 
  17968.    o  wpclsQueryIcon 
  17969.    o  wpclsQueryStyle 
  17970.    o  wpclsQueryTitle 
  17971.  
  17972.  
  17973. ΓòÉΓòÉΓòÉ 23.17. WPKeyboard ΓòÉΓòÉΓòÉ
  17974.  
  17975. Class definition file: wpkeybd.idl 
  17976.  
  17977. Class hierarchy 
  17978.  
  17979. SOMObject
  17980.    WPObject
  17981.       WPAbstract
  17982.          WPKeyboard
  17983.  
  17984. Description 
  17985.  
  17986. This is the keyboard object class. An instance of this class can be created as 
  17987. a Workplace object. An instance of this class is created initially by the 
  17988. system. It has the title "Keyboard" and resides in the "System Setup" folder. 
  17989.  
  17990. Instance methods 
  17991.  
  17992. The following list shows all the WPKeyboard methods: 
  17993.  
  17994.    o  wpAddKeyboardMappingsPage 
  17995.    o  wpAddKeyboardSpecialNeedsPage 
  17996.    o  wpAddKeyboardTimingPage 
  17997.  
  17998.  WPObject instance methods 
  17999.  
  18000.  The following list shows all the methods overridden by the WPKeyboard class. 
  18001.  These methods are overridden in order to modify the behavior defined by an 
  18002.  ancestor class. 
  18003.  
  18004.    o  wpAddObjectWindowPage 
  18005.    o  wpAddSettingsPages 
  18006.    o  wpFilterPopupMenu 
  18007.  
  18008.  Class methods 
  18009.  
  18010.  There are currently no class methods defined for the WPKeyboard Workplace 
  18011.  class object. 
  18012.  
  18013.  WPObject class methods. 
  18014.  
  18015.  The following list shows all the class methods overridden by the WPKeyboard 
  18016.  class. These methods are overridden to modify the behavior defined by an 
  18017.  ancestor class. 
  18018.  
  18019.    o  wpclsQueryDefaultHelp 
  18020.    o  wpclsQueryDefaultView 
  18021.    o  wpclsQueryIconData 
  18022.    o  wpclsQueryStyle 
  18023.    o  wpclsQueryTitle 
  18024.  
  18025.  WPAbstract class methods. 
  18026.  
  18027.  The following list shows all the class methods overridden by the WPKeyboard 
  18028.  class. These methods are overridden to modify the behavior defined by an 
  18029.  ancestor class. 
  18030.  
  18031.    o  wpclsQuerySetting 
  18032.    o  wpclsSetSetting 
  18033.  
  18034.  wpclsSetSettings override by wpKeyboard 
  18035.  
  18036.  The defaults can be specified on a wpclsSetSetting invocation to request that 
  18037.  the setting be set to its default value. wpclsQuerySetting, however, never 
  18038.  returns an xxxx_DEFAULT value. 
  18039.  
  18040.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  18041.   ΓöéSetting          ΓöéValue                ΓöéDescription                 Γöé
  18042.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18043.   ΓöéCursorBlinkRate  Γöérate                 ΓöéSets the rate at which the  Γöé
  18044.   Γöé                 Γöé                     Γöécursor blinks.              Γöé
  18045.   Γöé                 Γöé                     ΓöéThis value must be in the   Γöé
  18046.   Γöé                 Γöé                     Γöérange CURSORBLINK_MIN to    Γöé
  18047.   Γöé                 Γöé                     ΓöéCURSORBLINK_MAX.            Γöé
  18048.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18049.   Γöé                 ΓöéCURSORBLINK_DEFAULT  ΓöéSets the default rate at    Γöé
  18050.   Γöé                 Γöé                     Γöéwhich the cursor blinks.    Γöé
  18051.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18052.   ΓöéEditTitleTextKey ΓöéAF_VIRTUALKEY        ΓöéHigh word. Sets the key usedΓöé
  18053.   Γöé                 ΓöéAF_KBDCOMMAND        Γöéwith another key to edit    Γöé
  18054.   Γöé                 Γöé                     Γöébutton text.                Γöé
  18055.   Γöé                 Γöé                     ΓöéBoth of these values are    Γöé
  18056.   Γöé                 Γöé                     Γöérequired if the default is  Γöé
  18057.   Γöé                 Γöé                     Γöénot set.                    Γöé
  18058.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18059.   Γöé                 ΓöéAF_ALT               ΓöéHigh word. Sets the key usedΓöé
  18060.   Γöé                 ΓöéAF_SHIFT             Γöéwith another key to edit    Γöé
  18061.   Γöé                 ΓöéAF_CONTROL           Γöébutton text.                Γöé
  18062.   Γöé                 Γöé                     ΓöéThese are optional values.  Γöé
  18063.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18064.   Γöé                 ΓöéVK_F1 through VK_F12 ΓöéLow word. Sets the key used Γöé
  18065.   Γöé                 ΓöéVK_PAGEUP            Γöéto edit button text.        Γöé
  18066.   Γöé                 ΓöéVK_PAGEDOWN          ΓöéOne of these values is      Γöé
  18067.   Γöé                 ΓöéVK_HOME              Γöérequired if the default is  Γöé
  18068.   Γöé                 ΓöéVK_END               Γöénot set.                    Γöé
  18069.   Γöé                 ΓöéVK_INSERT            Γöé                            Γöé
  18070.   Γöé                 ΓöéVK_TAB               Γöé                            Γöé
  18071.   Γöé                 ΓöéVK_ENTER             Γöé                            Γöé
  18072.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18073.   Γöé                 ΓöéTEXTEDITKEY_DEFAULT  ΓöéSets the default text edit  Γöé
  18074.   Γöé                 Γöé                     Γöékey.                        Γöé
  18075.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18076.   ΓöéKeyRepeatDelay   Γöérate                 ΓöéSets the time before the keyΓöé
  18077.   Γöé                 Γöé                     Γöéstarts repeating. This valueΓöé
  18078.   Γöé                 Γöé                     Γöémust be in the range        Γöé
  18079.   Γöé                 Γöé                     ΓöéREPEATDELAY_MIN to          Γöé
  18080.   Γöé                 Γöé                     ΓöéREPEATDELAY_MAX.            Γöé
  18081.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18082.   Γöé                 ΓöéREPEATDELAY_DEFAULT  ΓöéSets the default time beforeΓöé
  18083.   Γöé                 Γöé                     Γöéthe key starts repeating.   Γöé
  18084.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18085.   ΓöéKeyRepeatRate    Γöérate                 ΓöéSets the rate at which a keyΓöé
  18086.   Γöé                 Γöé                     Γöérepeats. This value must be Γöé
  18087.   Γöé                 Γöé                     Γöéin the range REPEATRATE_MIN Γöé
  18088.   Γöé                 Γöé                     Γöéto REPEATRATE_MAX.          Γöé
  18089.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18090.   Γöé                 ΓöéREPEATRATE_DEFAULT   ΓöéSets the default rate at    Γöé
  18091.   Γöé                 Γöé                     Γöéwhich a key repeats.        Γöé
  18092.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18093.   ΓöéPopupMenuKey     ΓöéAF_VIRTUALKEY        ΓöéHigh word. Sets the key usedΓöé
  18094.   Γöé                 ΓöéAF_KBDCOMMAND        Γöéwith another key to display Γöé
  18095.   Γöé                 Γöé                     Γöéthe pop-up menu.            Γöé
  18096.   Γöé                 Γöé                     ΓöéBoth of these values are    Γöé
  18097.   Γöé                 Γöé                     Γöérequired if the default is  Γöé
  18098.   Γöé                 Γöé                     Γöénot set.                    Γöé
  18099.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18100.   Γöé                 ΓöéAF_ALT               ΓöéHigh word. Sets the key usedΓöé
  18101.   Γöé                 ΓöéAF_SHIFT             Γöéwith another key to display Γöé
  18102.   Γöé                 ΓöéAF_CONTROL           Γöéthe pop-up menu.            Γöé
  18103.   Γöé                 Γöé                     ΓöéThese are optional values.  Γöé
  18104.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18105.   Γöé                 ΓöéVK_F1 through VK_F12 ΓöéLow word. Sets the key used Γöé
  18106.   Γöé                 ΓöéVK_PAGEUP            Γöéto display the pop-up menu. Γöé
  18107.   Γöé                 ΓöéVK_PAGEDOWN          ΓöéOne of these values is      Γöé
  18108.   Γöé                 ΓöéVK_HOME              Γöérequired if the default is  Γöé
  18109.   Γöé                 ΓöéVK_END               Γöénot set.                    Γöé
  18110.   Γöé                 ΓöéVK_INSERT            Γöé                            Γöé
  18111.   Γöé                 ΓöéVK_TAB               Γöé                            Γöé
  18112.   Γöé                 ΓöéVK_ENTER             Γöé                            Γöé
  18113.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18114.   Γöé                 ΓöéPOPUPKEY_DEFAULT     ΓöéSets the default popup menu Γöé
  18115.   Γöé                 Γöé                     Γöékey.                        Γöé
  18116.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  18117.  
  18118.  
  18119. ΓòÉΓòÉΓòÉ 23.18. WPLaunchPad ΓòÉΓòÉΓòÉ
  18120.  
  18121. Class definition file: wplnchpd.idl 
  18122.  
  18123. Class hierarchy 
  18124.  
  18125. SOMObject
  18126.    WPObject
  18127.       WPAbstract
  18128.          WPLaunchPad
  18129.  
  18130. Description 
  18131.  
  18132. This class is specific to version 3, or higher, of the OS/2 operating system. 
  18133. This is the front panel object class. 
  18134.  
  18135. The Launch Pad is a convenience for users that provides fast access to 
  18136. frequently used objects and Desktop actions. Objects may be placed on the 
  18137. Launch Pad or in drawers, which are represented by a small button above objects 
  18138. on the Launch Pad. There is no limit to the number of Launch Pads that may 
  18139. exist in the system. The system Launch Pad is defined as the one with an 
  18140. OBJECTID of <WP_LAUNCHPAD>. 
  18141.  
  18142. An instance of this class can be created as a Workplace object. An instance of 
  18143. this class is created initially by the system. It has the title, "Launch Pad" 
  18144. and resides in the "System Startup" folder. 
  18145.  
  18146. Instance methods 
  18147.  
  18148. The following list shows all the WPLaunchPad methods. 
  18149.  
  18150.    o  wpAddLaunchPadPage1 
  18151.    o  wpAddLaunchPadPage2 
  18152.    o  wpQueryActionButtons 
  18153.    o  wpQueryActionButtonStyle 
  18154.    o  wpQueryCloseDrawer 
  18155.    o  wpQueryDisplaySmallIcons 
  18156.    o  wpQueryDisplayText 
  18157.    o  wpQueryDisplayTextInDrawers 
  18158.    o  wpQueryDisplayVertical 
  18159.    o  wpQueryDrawerHWND 
  18160.    o  wpQueryFloatOnTop 
  18161.    o  wpQueryHideLaunchPadFrameCtls 
  18162.    o  wpQueryObjectList 
  18163.    o  wpRefreshDrawer 
  18164.    o  wpSetActionButtonStyle 
  18165.    o  wpSetCloseDrawer 
  18166.    o  wpSetDisplaySmallIcons 
  18167.    o  wpSetDisplayText 
  18168.    o  wpSetDisplayTextInDrawers 
  18169.    o  wpSetDisplayVertical 
  18170.    o  wpSetDrawerHWND 
  18171.    o  wpSetFloatOnTop 
  18172.    o  wpSetHideLaunchPadFrameCtls 
  18173.    o  wpSetObjectListFromHObjects 
  18174.    o  wpSetObjectListFromObjects 
  18175.    o  wpSetObjectListFromStrings 
  18176.  
  18177.  WPObject instance methods 
  18178.  
  18179.  The following list shows all the methods overridden by the WPLaunchPad class. 
  18180.  These methods are overridden in order to modify the behavior defined by an 
  18181.  ancestor class. 
  18182.  
  18183.    o  wpAddObjectWindowPage 
  18184.    o  wpAddSettingsPages 
  18185.    o  wpInitData 
  18186.    o  wpMenuItemHelpSelected 
  18187.    o  wpMenuItemSelected 
  18188.    o  wpModifyPopupMenu 
  18189.    o  wpOpen 
  18190.    o  wpQueryConcurrentView 
  18191.    o  wpRestoreState 
  18192.    o  wpSaveState 
  18193.    o  wpSetup 
  18194.    o  wpUnInitData 
  18195.  
  18196.  wpSetup override by WPLaunchPad 
  18197.  
  18198.  Following are keyname-value pairs added by the WPLaunchPad class. The 
  18199.  following table contains setup strings that can be used with WinCreateObject 
  18200.  and WinSetObjectData to customize Launch Pads: 
  18201.  
  18202.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  18203.   ΓöéKEYNAME        ΓöéVALUE          ΓöéDESCRIPTION                   Γöé
  18204.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18205.   ΓöéFPOBJECTS      Γöéobject IDs or  ΓöéAdds objects to the end of theΓöé
  18206.   Γöé               Γöépath and file  ΓöéLaunch Pad. If multiple       Γöé
  18207.   Γöé               Γöénames          Γöéobjects exist, the objects areΓöé
  18208.   Γöé               Γöé               Γöéseparated by a comma. For     Γöé
  18209.   Γöé               Γöé               Γöéexample:                      Γöé
  18210.   Γöé               Γöé               Γöé<WP_OS2WIN>,<WP_OS2EO>        Γöé
  18211.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18212.   ΓöéDRAWEROBJECTS  Γöédrawer number, ΓöéAdds the objects to the end ofΓöé
  18213.   Γöé               Γöéobject IDs or  Γöéthe numbered Launch Pad       Γöé
  18214.   Γöé               Γöépath and file  Γöédrawer. The drawer number is  Γöé
  18215.   Γöé               Γöénames          Γöéfollowed by a comma-delimited Γöé
  18216.   Γöé               Γöé               Γöéset of object IDs or path and Γöé
  18217.   Γöé               Γöé               Γöéfile names. The drawer number Γöé
  18218.   Γöé               Γöé               Γöéand first object must be      Γöé
  18219.   Γöé               Γöé               Γöéseparated by a comma. ExamplesΓöé
  18220.   Γöé               Γöé               Γöéof drawer numbers :  0=Launch Γöé
  18221.   Γöé               Γöé               ΓöéPad, 1=Left-most drawer, etc. Γöé
  18222.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18223.   ΓöéLPCLOSEDRAWER  ΓöéYES            ΓöéThe Launch Pad drawers will   Γöé
  18224.   Γöé               Γöé               Γöéclose after an object in the  Γöé
  18225.   Γöé               Γöé               Γöédrawer is opened.             Γöé
  18226.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18227.   Γöé               ΓöéNO             ΓöéThe Launch Pad drawers will   Γöé
  18228.   Γöé               Γöé               Γöéstay open after an object in  Γöé
  18229.   Γöé               Γöé               Γöéthe drawer is opened.         Γöé
  18230.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18231.   ΓöéLPACTIONSTYLE  ΓöéTEXT           ΓöéDisplay the action buttons as Γöé
  18232.   Γöé               Γöé               Γöétext (the default).           Γöé
  18233.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18234.   Γöé               ΓöéOFF            ΓöéTurns off the display of      Γöé
  18235.   Γöé               Γöé               Γöéaction buttons.               Γöé
  18236.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18237.   Γöé               ΓöéMINI           ΓöéDisplays the action buttons asΓöé
  18238.   Γöé               Γöé               Γöémini-icons.                   Γöé
  18239.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18240.   Γöé               ΓöéNORMAL         ΓöéDisplays the action buttons asΓöé
  18241.   Γöé               Γöé               Γöénormal (large) icons.         Γöé
  18242.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18243.   ΓöéLPVERTICAL     ΓöéYES            ΓöéThe Launch Pad will be        Γöé
  18244.   Γöé               Γöé               Γöédisplayed vertically.         Γöé
  18245.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18246.   Γöé               ΓöéNO             ΓöéThe Launch Pad will be        Γöé
  18247.   Γöé               Γöé               Γöédisplayed horizontally (the   Γöé
  18248.   Γöé               Γöé               Γöédefault).                     Γöé
  18249.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18250.   ΓöéLPTEXT         ΓöéYES            ΓöéThe object titles will appear Γöé
  18251.   Γöé               Γöé               Γöéon the Launch Pad.  This has  Γöé
  18252.   Γöé               Γöé               Γöéno effect on the objects in   Γöé
  18253.   Γöé               Γöé               Γöéthe drawers.                  Γöé
  18254.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18255.   Γöé               ΓöéNO             ΓöéThe object titles will be     Γöé
  18256.   Γöé               Γöé               Γöéhidden.  This has no effect onΓöé
  18257.   Γöé               Γöé               Γöéthe objects in the drawers.   Γöé
  18258.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18259.   ΓöéLPDRAWERTEXT   ΓöéYES            ΓöéThe object titles will appear Γöé
  18260.   Γöé               Γöé               Γöéon the objects in the drawers.Γöé
  18261.   Γöé               Γöé               ΓöéThis has no effect on the     Γöé
  18262.   Γöé               Γöé               Γöéobjects on the Launch Pad.    Γöé
  18263.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18264.   Γöé               ΓöéNO             Γöé.The object titles will be    Γöé
  18265.   Γöé               Γöé               Γöéhidden.  This has no effect onΓöé
  18266.   Γöé               Γöé               Γöéthe objects on the Launch Pad.Γöé
  18267.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18268.   ΓöéLPSMALLICONS   ΓöéYES            ΓöéObjects are displayed using   Γöé
  18269.   Γöé               Γöé               Γöésmall icons.                  Γöé
  18270.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18271.   Γöé               ΓöéNO             ΓöéObjects are displayed using   Γöé
  18272.   Γöé               Γöé               Γöélarge (normal) icons.         Γöé
  18273.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18274.   ΓöéLPHIDECTLS     ΓöéYES            ΓöéThe frame controls (title bar Γöé
  18275.   Γöé               Γöé               Γöéand system menu) are hidden   Γöé
  18276.   Γöé               Γöé               Γöé(the default).                Γöé
  18277.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18278.   Γöé               ΓöéNO             ΓöéThe frame controls are        Γöé
  18279.   Γöé               Γöé               Γöédisplayed.                    Γöé
  18280.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18281.   ΓöéLPFLOAT        ΓöéYES            ΓöéThe Launch Pad will float on  Γöé
  18282.   Γöé               Γöé               Γöétop of all other windows.     Γöé
  18283.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18284.   Γöé               ΓöéNO             ΓöéThe Launch Pad will not float Γöé
  18285.   Γöé               Γöé               Γöéon top of all other windows.  Γöé
  18286.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  18287.  
  18288.  Class methods 
  18289.  
  18290.  There are currently no class methods defined for the WPLaunchPad Workplace 
  18291.  class object. 
  18292.  
  18293.  WPObject class methods. 
  18294.  
  18295.  The following list shows all the class methods overridden by the WPLaunchPad 
  18296.  class. These methods are overridden to modify the behavior defined by an 
  18297.  ancestor class. 
  18298.  
  18299.    o  wpclsQueryDefaultHelp 
  18300.    o  wpclsQueryDefaultView 
  18301.    o  wpclsQueryIconData 
  18302.    o  wpclsQueryStyle 
  18303.    o  wpclsQueryTitle 
  18304.  
  18305.  
  18306. ΓòÉΓòÉΓòÉ 23.19. WPMet ΓòÉΓòÉΓòÉ
  18307.  
  18308. Class definition file: wpmet.idl 
  18309.  
  18310. Class hierarchy 
  18311.  
  18312. SOMObject
  18313.   WPObject
  18314.      WPFileSystem
  18315.         WPDataFile
  18316.            WPMet
  18317. Description 
  18318.  
  18319. This is the metafile class object. All MET files are of this class. These MET 
  18320. files are templatable. An instance of this class can be created as a Workplace 
  18321. object. Instances of this class are created initially by the system for each 
  18322. MET file in the system. 
  18323.  
  18324. Instance methods 
  18325.  
  18326. There are currently no methods defined for the WPMet Workplace class object. 
  18327.  
  18328. WPObject instance methods 
  18329.  
  18330. The following list shows all the methods overridden by the WPMet class. These 
  18331. methods are overridden in order to modify the behavior defined by an ancestor 
  18332. class. 
  18333.  
  18334.    o  wpSetupOnce 
  18335.  
  18336.  Class methods 
  18337.  
  18338.  There are currently no class methods defined for the WPMet Workplace class 
  18339.  object. 
  18340.  
  18341.  WPObject class methods. 
  18342.  
  18343.  The following list shows all the class methods overridden by the WPMet class. 
  18344.  These methods are overridden to modify the behavior defined by an ancestor 
  18345.  class. 
  18346.  
  18347.    o  wpclsInitData 
  18348.    o  wpclsQueryDefaultHelp 
  18349.    o  wpclsQueryTitle 
  18350.  
  18351.  WPFileSystem class methods. 
  18352.  
  18353.  The following list shows all the class methods overridden by the WPMet class. 
  18354.  These methods are overridden to modify the behavior defined by an ancestor 
  18355.  class. 
  18356.  
  18357.    o  wpclsQueryInstanceFilter 
  18358.    o  wpclsQueryInstanceType 
  18359.  
  18360.  
  18361. ΓòÉΓòÉΓòÉ 23.20. WPMinWinViewer ΓòÉΓòÉΓòÉ
  18362.  
  18363. Class definition file: wpmwv.idl 
  18364.  
  18365. Class hierarchy 
  18366.  
  18367. SOMObject
  18368.    WPObject
  18369.       WPFileSystem
  18370.          WPFolder
  18371.              WPMinWinViewer
  18372.  
  18373. Description This class is specific to version 3, or higher, of the OS/2 
  18374. operating system. 
  18375.  
  18376. This is the minimized window viewer object class. This is a special folder that 
  18377. contains only minimized window objects. An instance of this class can be 
  18378. created as a Workplace object. An instance of this class is created by the 
  18379. system during initialization. 
  18380.  
  18381. Instance methods 
  18382.  
  18383. The following list shows all the WPMinWinViewer methods. 
  18384.  
  18385.    o  wpFindMinWindow 
  18386.  
  18387.  WPFileSystem instance methods 
  18388.  
  18389.  The following list shows all the methods overridden by the WPMinWinViewer 
  18390.  class. These methods are overridden in order to modify the behavior defined by 
  18391.  an ancestor class. 
  18392.  
  18393.    o  wpAddFileMenuPage 
  18394.  
  18395.  WPFolder instance methods 
  18396.  
  18397.  The following list shows all the methods overridden by the WPMinWinViewer 
  18398.  class. These methods are overridden in order to modify the behavior defined by 
  18399.  an ancestor class. 
  18400.  
  18401.    o  wpAddFolderIncludePage 
  18402.    o  wpAddFolderView2Page 
  18403.    o  wpAddFolderView3Page 
  18404.  
  18405.  WPObject instance methods 
  18406.  
  18407.  The following list shows all the methods overridden by the WPMinWinViewer 
  18408.  class. These methods are overridden in order to modify the behavior defined by 
  18409.  an ancestor class. 
  18410.  
  18411.    o  wpAddObjectWindowPage 
  18412.    o  wpDragOver 
  18413.    o  wpFilterPopupMenu 
  18414.    o  wpMenuItemSelected 
  18415.    o  wpModifyPopupMenu 
  18416.    o  wpOpen 
  18417.  
  18418.  Class methods 
  18419.  
  18420.  There are currently no class methods defined for the WPMinWinViewer Workplace 
  18421.  class object. 
  18422.  
  18423.  WPObject class methods. 
  18424.  
  18425.  The following list shows all the class methods overridden by the 
  18426.  WPMinWinViewer class. These methods are overridden to modify the behavior 
  18427.  defined by an ancestor class. 
  18428.  
  18429.    o  wpclsQueryDefaultHelp 
  18430.    o  wpclsQueryDefaultView 
  18431.    o  wpclsQueryIconData 
  18432.    o  wpclsQueryStyle 
  18433.    o  wpclsQueryTitle 
  18434.  
  18435.  
  18436. ΓòÉΓòÉΓòÉ 23.21. WPMouse ΓòÉΓòÉΓòÉ
  18437.  
  18438. Class definition file: wpmouse.idl 
  18439.  
  18440. Class hierarchy 
  18441.  
  18442. SOMObject
  18443.    WPObject
  18444.       WPAbstract
  18445.          WPMouse
  18446.  
  18447. Description 
  18448.  
  18449. This is the mouse object class. An instance of this class can be created as a 
  18450. Workplace object. An instance of this class is created initially by the system. 
  18451. It has the title "Mouse" and resides in the "System Setup" folder. 
  18452.  
  18453. Instance methods 
  18454.  
  18455. The following list shows all the WPMouse methods: 
  18456.  
  18457.    o  wpAddMouseCometPage 
  18458.    o  wpAddMouseMappingsPage 
  18459.    o  wpAddMousePtrPage 
  18460.    o  wpAddMouseTimingPage 
  18461.    o  wpAddMouseTypePage 
  18462.  
  18463.  WPObject instance methods 
  18464.  
  18465.  The following list shows all the methods overridden by the WPMouse class. 
  18466.  These methods are overridden in order to modify the behavior defined by an 
  18467.  ancestor class. 
  18468.  
  18469.    o  wpAddObjectWindowPage 
  18470.    o  wpAddSettingsPages 
  18471.    o  wpFilterPopupMenu 
  18472.  
  18473.  Class methods 
  18474.  
  18475.  There are currently no class methods defined for the WPMouse Workplace class 
  18476.  object. 
  18477.  
  18478.  WPObject class methods. 
  18479.  
  18480.  The following list shows all the class methods overridden by the WPMouse 
  18481.  class. These methods are overridden to modify the behavior defined by an 
  18482.  ancestor class. 
  18483.  
  18484.    o  wpclsQueryDefaultHelp 
  18485.    o  wpclsQueryDefaultView 
  18486.    o  wpclsQueryIconData 
  18487.    o  wpclsQueryStyle 
  18488.    o  wpclsQueryTitle 
  18489.  
  18490.  WPAbstract class methods. 
  18491.  
  18492.  The following list shows all the class methods overridden by the WPMouse 
  18493.  class. These methods are overridden to modify the behavior defined by an 
  18494.  ancestor class. 
  18495.  
  18496.    o  wpclsQuerySetting 
  18497.    o  wpclsSetSetting 
  18498.  
  18499.  wpclsSetSettings override by wpMouse 
  18500.  
  18501.  The defaults can be specified on a wpclsSetSetting invocation to request that 
  18502.  the setting be set to its default value. wpclsQuerySetting, however, never 
  18503.  returns an xxxx_DEFAULT value. 
  18504.  
  18505.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  18506.   ΓöéSetting                 ΓöéValue                    ΓöéDescription     Γöé
  18507.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18508.   ΓöéButtonSetup             ΓöéBUTTONS_LEFTHANDED       ΓöéSets the mouse  Γöé
  18509.   Γöé                        Γöé                         Γöébuttons for a   Γöé
  18510.   Γöé                        Γöé                         Γöéleft-handed     Γöé
  18511.   Γöé                        Γöé                         Γöéperson.         Γöé
  18512.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18513.   Γöé                        ΓöéBUTTONS_RIGHTHANDED      ΓöéSets the mouse  Γöé
  18514.   Γöé                        Γöé                         Γöébuttons for a   Γöé
  18515.   Γöé                        Γöé                         Γöéright-handed    Γöé
  18516.   Γöé                        Γöé                         Γöéperson.         Γöé
  18517.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18518.   Γöé                        ΓöéBUTTONS_DEFAULT          ΓöéSets the defaultΓöé
  18519.   Γöé                        Γöé                         Γöésetup for the   Γöé
  18520.   Γöé                        Γöé                         Γöémouse buttons.  Γöé
  18521.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18522.   ΓöéDisplayWindowListButton ΓöéINP_NONE                 ΓöéHigh word.      Γöé
  18523.   Γöé                        Γöé                         ΓöéThis value is   Γöé
  18524.   Γöé                        Γöé                         Γöérequired if the Γöé
  18525.   Γöé                        Γöé                         Γöédefault is not  Γöé
  18526.   Γöé                        Γöé                         Γöéset.            Γöé
  18527.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18528.   Γöé                        ΓöéWM_BUTTON2CLICK          ΓöéLow word. Sets  Γöé
  18529.   Γöé                        ΓöéWM_CHORD                 Γöéthe button whichΓöé
  18530.   Γöé                        Γöé                         Γöédisplays the    Γöé
  18531.   Γöé                        Γöé                         Γöéwindow list.    Γöé
  18532.   Γöé                        Γöé                         ΓöéOne of these    Γöé
  18533.   Γöé                        Γöé                         Γöévalues is       Γöé
  18534.   Γöé                        Γöé                         Γöérequired if the Γöé
  18535.   Γöé                        Γöé                         Γöédefault is not  Γöé
  18536.   Γöé                        Γöé                         Γöéset.            Γöé
  18537.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18538.   Γöé                        ΓöéWINDOWLISTBUTTON_DEFAULT ΓöéSets the defaultΓöé
  18539.   Γöé                        Γöé                         Γöébutton which    Γöé
  18540.   Γöé                        Γöé                         Γöédisplays the    Γöé
  18541.   Γöé                        Γöé                         Γöéwindow list.    Γöé
  18542.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18543.   ΓöéDoubleClickTime         Γöétime                     ΓöéSets the time   Γöé
  18544.   Γöé                        Γöé                         Γöébetween mouse   Γöé
  18545.   Γöé                        Γöé                         Γöéclicks. Higher  Γöé
  18546.   Γöé                        Γöé                         Γöévalues allow    Γöé
  18547.   Γöé                        Γöé                         Γöémore time       Γöé
  18548.   Γöé                        Γöé                         Γöébetween mouse   Γöé
  18549.   Γöé                        Γöé                         Γöéclicks, where asΓöé
  18550.   Γöé                        Γöé                         Γöélower values    Γöé
  18551.   Γöé                        Γöé                         Γöéallow less time Γöé
  18552.   Γöé                        Γöé                         Γöébetween mouse   Γöé
  18553.   Γöé                        Γöé                         Γöéclicks.         Γöé
  18554.   Γöé                        Γöé                         ΓöéThis value must Γöé
  18555.   Γöé                        Γöé                         Γöébe in the range Γöé
  18556.   Γöé                        Γöé                         Γöé170 to 1 060.   Γöé
  18557.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18558.   Γöé                        ΓöéDOUBLECLICK_DEFAULT      ΓöéSets the defaultΓöé
  18559.   Γöé                        Γöé                         Γöétime between    Γöé
  18560.   Γöé                        Γöé                         Γöémouse clicks.   Γöé
  18561.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18562.   ΓöéDragObjectButton        ΓöéINP_NONE                 ΓöéHigh word.      Γöé
  18563.   Γöé                        Γöé                         ΓöéThis value is   Γöé
  18564.   Γöé                        Γöé                         Γöérequired if the Γöé
  18565.   Γöé                        Γöé                         Γöédefault is not  Γöé
  18566.   Γöé                        Γöé                         Γöéset.            Γöé
  18567.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18568.   Γöé                        ΓöéWM_BUTTON1MOTIONSTART    ΓöéLow word. Sets  Γöé
  18569.   Γöé                        ΓöéWM_BUTTON2MOTIONSTART    Γöéthe button whichΓöé
  18570.   Γöé                        Γöé                         Γöédrags objects.  Γöé
  18571.   Γöé                        Γöé                         ΓöéOne of these    Γöé
  18572.   Γöé                        Γöé                         Γöévalues is       Γöé
  18573.   Γöé                        Γöé                         Γöérequired if the Γöé
  18574.   Γöé                        Γöé                         Γöédefault is not  Γöé
  18575.   Γöé                        Γöé                         Γöéset.            Γöé
  18576.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18577.   Γöé                        ΓöéDRAGBUTTON_DEFAULT       ΓöéSets the button Γöé
  18578.   Γöé                        Γöé                         Γöéwhich drags     Γöé
  18579.   Γöé                        Γöé                         Γöéobjects to the  Γöé
  18580.   Γöé                        Γöé                         Γöédefault.        Γöé
  18581.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18582.   ΓöéEditTitleTextButton     ΓöéINP_ALT                  ΓöéHigh word. Sets Γöé
  18583.   Γöé                        ΓöéINP_CTRL                 Γöéthe key used    Γöé
  18584.   Γöé                        ΓöéINP_NONE                 Γöéwith a mouse    Γöé
  18585.   Γöé                        ΓöéINP_SHIFT                Γöébutton to edit  Γöé
  18586.   Γöé                        Γöé                         Γöébutton text.    Γöé
  18587.   Γöé                        Γöé                         ΓöéOne of these    Γöé
  18588.   Γöé                        Γöé                         Γöévalues is       Γöé
  18589.   Γöé                        Γöé                         Γöérequired if the Γöé
  18590.   Γöé                        Γöé                         Γöédefault is not  Γöé
  18591.   Γöé                        Γöé                         Γöéset.            Γöé
  18592.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18593.   Γöé                        ΓöéWM_BUTTON1CLICK          ΓöéLow word. Sets  Γöé
  18594.   Γöé                        ΓöéWM_BUTTON2CLICK          Γöéthe mouse buttonΓöé
  18595.   Γöé                        ΓöéWM_BUTTON1DBLCLK         Γöéused to edit    Γöé
  18596.   Γöé                        ΓöéWM_BUTTON2DBLCKL         Γöébutton text.    Γöé
  18597.   Γöé                        Γöé                         ΓöéOne of these    Γöé
  18598.   Γöé                        Γöé                         Γöévalues is       Γöé
  18599.   Γöé                        Γöé                         Γöérequired if the Γöé
  18600.   Γöé                        Γöé                         Γöédefault is not  Γöé
  18601.   Γöé                        Γöé                         Γöéset.            Γöé
  18602.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18603.   Γöé                        ΓöéTEXTEDITBUTTON_DEFAULT   ΓöéSets the text   Γöé
  18604.   Γöé                        Γöé                         Γöéedit button to  Γöé
  18605.   Γöé                        Γöé                         Γöéthe default.    Γöé
  18606.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18607.   ΓöéPopupMenuButton         ΓöéINP_ALT                  ΓöéHigh word. Sets Γöé
  18608.   Γöé                        ΓöéINP_CTRL                 Γöéthe key used    Γöé
  18609.   Γöé                        ΓöéINP_NONE                 Γöéwith a mouse    Γöé
  18610.   Γöé                        ΓöéINP_SHIFT                Γöébutton to       Γöé
  18611.   Γöé                        Γöé                         Γöédisplay pop-up  Γöé
  18612.   Γöé                        Γöé                         Γöémenus.          Γöé
  18613.   Γöé                        Γöé                         ΓöéOne of these    Γöé
  18614.   Γöé                        Γöé                         Γöévalues is       Γöé
  18615.   Γöé                        Γöé                         Γöérequired if the Γöé
  18616.   Γöé                        Γöé                         Γöédefault is not  Γöé
  18617.   Γöé                        Γöé                         Γöéset.            Γöé
  18618.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18619.   Γöé                        ΓöéWM_BUTTON1CLICK          ΓöéLow word. Sets  Γöé
  18620.   Γöé                        ΓöéWM_BUTTON2CLICK          Γöéthe mouse buttonΓöé
  18621.   Γöé                        ΓöéWM_BUTTON1DBLCLK         Γöéused to display Γöé
  18622.   Γöé                        ΓöéWM_BUTTON2DBLCKL         Γöépop-up menus.   Γöé
  18623.   Γöé                        ΓöéWM_CHORD                 ΓöéOne of these    Γöé
  18624.   Γöé                        Γöé                         Γöévalues is       Γöé
  18625.   Γöé                        Γöé                         Γöérequired if the Γöé
  18626.   Γöé                        Γöé                         Γöédefault is not  Γöé
  18627.   Γöé                        Γöé                         Γöéset.            Γöé
  18628.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18629.   Γöé                        ΓöéPOPUPBUTTON_DEFAULT      ΓöéSets the defaultΓöé
  18630.   Γöé                        Γöé                         Γöékey and mouse   Γöé
  18631.   Γöé                        Γöé                         Γöébutton used to  Γöé
  18632.   Γöé                        Γöé                         Γöédisplay pop-up  Γöé
  18633.   Γöé                        Γöé                         Γöémenus.          Γöé
  18634.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18635.   ΓöéTrackingSpeed           Γöéspeed                    ΓöéSets the mouse  Γöé
  18636.   Γöé                        Γöé                         Γöétracking speed. Γöé
  18637.   Γöé                        Γöé                         ΓöéThis value must Γöé
  18638.   Γöé                        Γöé                         Γöébe in the range Γöé
  18639.   Γöé                        Γöé                         Γöé1 to 7, where 1 Γöé
  18640.   Γöé                        Γöé                         Γöéis the fastest  Γöé
  18641.   Γöé                        Γöé                         Γöévalue.          Γöé
  18642.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18643.   Γöé                        ΓöéTRACKING_DEFAULT         ΓöéSets the defaultΓöé
  18644.   Γöé                        Γöé                         Γöémouse tracking  Γöé
  18645.   Γöé                        Γöé                         Γöéspeed.          Γöé
  18646.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  18647.  
  18648.  
  18649. ΓòÉΓòÉΓòÉ 23.22. WPNetgrp ΓòÉΓòÉΓòÉ
  18650.  
  18651. Class definition file: wpnetgrp.idl 
  18652.  
  18653. Class hierarchy 
  18654.  
  18655. SOMObject
  18656.    WPObject
  18657.       WPFileSystem
  18658.          WPFolder
  18659.              WPNetgrp
  18660.  
  18661. Description This class is specific to version 3, or higher, of the OS/2 
  18662. operating system. 
  18663.  
  18664. This is the network group object class. An instances of this class can be 
  18665. created as a Workplace object. Instances of this class are created for every 
  18666. LAN system in a WPNetwork, for example LAN server and Novell**). 
  18667.  
  18668. Instance methods 
  18669.  
  18670. The following list shows all the WPNetgrp methods. 
  18671.  
  18672.    o  wpAddNetworkPage 
  18673.    o  wpQueryNetIdentity 
  18674.    o  wpSetNetIdentity 
  18675.  
  18676.  WPFileSystem instance methods 
  18677.  
  18678.  The following list shows all the methods overridden by the WPNetgrp class. 
  18679.  These methods are overridden in order to modify the behavior defined by an 
  18680.  ancestor class. 
  18681.  
  18682.    o  wpAddFile1Page 
  18683.    o  wpAddFile2Page 
  18684.    o  wpAddFile3Page 
  18685.  
  18686.  WPFolder instance methods 
  18687.  
  18688.  The following list shows all the methods overridden by the WPNetgrp class. 
  18689.  These methods are overridden in order to modify the behavior defined by an 
  18690.  ancestor class. 
  18691.  
  18692.    o  wpAddFolderIncludePage 
  18693.    o  wpDeleteContents 
  18694.    o  wpPopulate 
  18695.  
  18696.  WPObject instance methods 
  18697.  
  18698.  The following list shows all the methods overridden by the WPNetgrp class. 
  18699.  These methods are overridden in order to modify the behavior defined by an 
  18700.  ancestor class. 
  18701.  
  18702.    o  wpAddObjectGeneralPage 
  18703.    o  wpAddSettingsPages 
  18704.    o  wpFilterPopupMenu 
  18705.    o  wpInitData 
  18706.    o  wpMenuItemHelpSelected 
  18707.    o  wpMenuItemSelected 
  18708.    o  wpModifyPopupMenu 
  18709.    o  wpOpen 
  18710.    o  wpRestoreState 
  18711.    o  wpSaveState 
  18712.    o  wpSetup 
  18713.    o  wpUnInitData 
  18714.  
  18715.  Class methods 
  18716.  
  18717.  There are currently no class methods defined for the WPNetgrp Workplace class 
  18718.  object. 
  18719.  
  18720.  WPObject class methods. 
  18721.  
  18722.  The following list shows all the class methods overridden by the WPNetgrp 
  18723.  class. These methods are overridden to modify the behavior defined by an 
  18724.  ancestor class. 
  18725.  
  18726.    o  wpclsQueryDefaultHelp 
  18727.    o  wpclsQueryDefaultView 
  18728.    o  wpclsQueryIconData 
  18729.    o  wpclsQueryStyle 
  18730.    o  wpclsQueryTitle 
  18731.  
  18732.  
  18733. ΓòÉΓòÉΓòÉ 23.23. WPNetLink ΓòÉΓòÉΓòÉ
  18734.  
  18735. Class definition file: wpnetlnk.idl 
  18736.  
  18737. Class hierarchy 
  18738.  
  18739. SOMObject
  18740.    WPObject
  18741.       WPAbstract
  18742.          WPShadow
  18743.              WPNetLink
  18744.  
  18745. Description This class is specific to version 3, or higher, of the OS/2 
  18746. operating system. 
  18747.  
  18748. This is the network link object class. This object handles all saving and 
  18749. restoring of data for the shared directory object by providing a persistent 
  18750. link or reference to that shared directory. The purpose of this link is to 
  18751. locally store all the instance data of the shared directory that this object is 
  18752. linked to and then reroute all requests for help, context menus, open views, 
  18753. and so forth, to this object. An instance of this class can be created as a 
  18754. Workplace object. 
  18755.  
  18756. Instance methods 
  18757.  
  18758. The following list shows all the WPNetLink methods. 
  18759.  
  18760.    o  wpQueryObjectNetId 
  18761.    o  wpSetObjectNetId 
  18762.  
  18763.  WPObject instance methods 
  18764.  
  18765.  The following list shows all the methods overridden by the WPNetLink class. 
  18766.  These methods are overridden in order to modify the behavior defined by an 
  18767.  ancestor class. 
  18768.  
  18769.    o  wpCreateShadowObject 
  18770.    o  wpFilterPopupMenu 
  18771.    o  wpInitData 
  18772.    o  wpMenuItemHelpSelected 
  18773.    o  wpModifyPopupMenu 
  18774.    o  wpQueryStyle 
  18775.    o  wpRestoreState 
  18776.    o  wpSaveState 
  18777.    o  wpUnInitData 
  18778.  
  18779.  Class methods 
  18780.  
  18781.  There are currently no class methods defined for the WPNetLink Workplace class 
  18782.  object. 
  18783.  
  18784.  WPObject class methods. 
  18785.  
  18786.  The following list shows all the class methods overridden by the WPNetLink 
  18787.  class. These methods are overridden to modify the behavior defined by an 
  18788.  ancestor class. 
  18789.  
  18790.    o  wpclsQueryStyle 
  18791.    o  wpclsQueryTitle 
  18792.  
  18793.  
  18794. ΓòÉΓòÉΓòÉ 23.24. WPNetwork ΓòÉΓòÉΓòÉ
  18795.  
  18796. Class definition file: wpnetwrk.idl 
  18797.  
  18798. Class hierarchy 
  18799.  
  18800. SOMObject
  18801.    WPObject
  18802.       WPFileSystem
  18803.          WPFolder
  18804.              WPNetwork
  18805.  
  18806. Description This class is specific to version 3, or higher, of the OS/2 
  18807. operating system. 
  18808.  
  18809. This is the network object class. An instances of this class can be created as 
  18810. a Workplace object. This object is the "network" folder that is created by the 
  18811. system on the Desktop. It is visible only if the LAN is attached to the machine 
  18812. being used. 
  18813.  
  18814. Instance methods 
  18815.  
  18816. There are currently no methods defined for the WPNetwork Workplace object 
  18817. class. 
  18818.  
  18819. WPFileSystem instance methods 
  18820.  
  18821. The following list shows all the methods overridden by the WPNetwork class. 
  18822. These methods are overridden in order to modify the behavior defined by an 
  18823. ancestor class. 
  18824.  
  18825.    o  wpAddFile1Page 
  18826.    o  wpAddFile2Page 
  18827.    o  wpAddFile3Page 
  18828.  
  18829.  WPFolder instance methods 
  18830.  
  18831.  The following list shows all the methods overridden by the WPNetwork class. 
  18832.  These methods are overridden in order to modify the behavior defined by an 
  18833.  ancestor class. 
  18834.  
  18835.    o  wpAddFolderIncludePage 
  18836.    o  wpPopulate 
  18837.  
  18838.  WPObject instance methods 
  18839.  
  18840.  The following list shows all the methods overridden by the WPNetwork class. 
  18841.  These methods are overridden in order to modify the behavior defined by an 
  18842.  ancestor class. 
  18843.  
  18844.    o  wpFilterPopupMenu 
  18845.    o  wpInitData 
  18846.    o  wpMenuItemHelpSelected 
  18847.    o  wpMenuItemSelected 
  18848.    o  wpModifyPopupMenu 
  18849.    o  wpOpen 
  18850.    o  wpRestoreState 
  18851.    o  wpSetup 
  18852.  
  18853.  Class methods 
  18854.  
  18855.  There are currently no class methods defined for the WPNetwork Workplace class 
  18856.  object. 
  18857.  
  18858.  WPObject class methods. 
  18859.  
  18860.  The following list shows all the class methods overridden by the WPNetwork 
  18861.  class. These methods are overridden to modify the behavior defined by an 
  18862.  ancestor class. 
  18863.  
  18864.    o  wpclsQueryDefaultHelp 
  18865.    o  wpclsQueryDefaultView 
  18866.    o  wpclsQueryIconData 
  18867.    o  wpclsQueryStyle 
  18868.    o  wpclsQueryTitle 
  18869.  
  18870.  
  18871. ΓòÉΓòÉΓòÉ 23.25. WPObject ΓòÉΓòÉΓòÉ
  18872.  
  18873. Class definition file: wpobject.idl 
  18874.  
  18875. Class hierarchy 
  18876.  
  18877. SOMObject
  18878.    WPObject
  18879.  
  18880. Description 
  18881.  
  18882. This is the root Workplace object class. This is the fundamental class from 
  18883. which all Workplace objects are derived, regardless of where they are actually 
  18884. stored. Immediate descendant classes of WPObject are called storage classes, 
  18885. since they take responsibility for storing the object information, typically in 
  18886. a persistent form. Predefined Workplace object storage classes are the 
  18887. following: 
  18888.  
  18889.    o  WPAbstract 
  18890.    o  WPFileSystem 
  18891.    o  WPTransient 
  18892.  
  18893.  A Workplace object of this class cannot be created. 
  18894.  
  18895.  MenuID list 
  18896.  
  18897.  The following list shows the WPMENUIDs: 
  18898.  
  18899.  WPMENUID_ACCESSNEW 
  18900.  WPMENUID_ARRANGE 
  18901.  WPMENUID_ASSIGN 
  18902.  WPMENUID_CLOSE 
  18903.  WPMENUID_CHKDSK 
  18904.  WPMENUID_CREATEANOTHER 
  18905.  WPMENUID_COPY 
  18906.  WPMENUID_COPYDSK 
  18907.  WPMENUID_CREATESHADOW 
  18908.  WPMENUID_DELETE 
  18909.  WPMENUID_DESELALL 
  18910.  WPMENUID_DETAILS 
  18911.  WPMENUID_EJECTDISK 
  18912.  WPMENUID_EXTENDEDHELP 
  18913.  WPMENUID_FIND 
  18914.  WPMENUID_FIXDSK 
  18915.  WPMENUID_FORMAT 
  18916.  WPMENUID_HELP 
  18917.  WPMENUID_HELPINDEX 
  18918.  WPMENUID_HELPKEYS 
  18919.  WPMENUID_HELP_FOR_HELP 
  18920.  WPMENUID_HOWTOGETHELP 
  18921.  WPMENUID_ICON 
  18922.  WPMENUID_LOCKDISK 
  18923.  WPMENUID_LOCKUP 
  18924.  WPMENUID_LOGIN 
  18925.  WPMENUID_LOGOUT 
  18926.  WPMENUID_MOVE 
  18927.  WPMENUID_OPEN 
  18928.  WPMENUID_PALETTE 
  18929.  WPMENUID_PICKUP 
  18930.  WPMENUID_PRIMARY 
  18931.  WPMENUID_PRINT 
  18932.  WPMENUID_PROGRAM 
  18933.  WPMENUID_PROPERTIES 
  18934.  WPMENUID_PUTDOWN 
  18935.  WPMENUID_PUTDOWN_CANCEL 
  18936.  WPMENUID_PUTDOWN_COPY 
  18937.  WPMENUID_PUTDOWN_CREATE 
  18938.  WPMENUID_PUTDOWN_LINK 
  18939.  WPMENUID_PUTDOWN_MOVE 
  18940.  WPMENUID_REFRESH 
  18941.  WPMENUID_RESERVED1 
  18942.  WPMENUID_RESERVED2 
  18943.  WPMENUID_SELALL 
  18944.  WPMENUID_SELECT 
  18945.  WPMENUID_SHUTDOWN 
  18946.  WPMENUID_SORT 
  18947.  WPMENUID_SYSTEMSETUP 
  18948.  WPMENUID_TREE 
  18949.  WPMENUID_UNASSIGN 
  18950.  WPMENUID_UNLOCKDISK 
  18951.  WPMENUID_USER 
  18952.  
  18953.  wpSetup override by WPObject 
  18954.  
  18955.  The following table shows the keyname-value pairs added by the WPObject class. 
  18956.  
  18957.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  18958.   ΓöéKEYNAME      ΓöéVALUE               ΓöéDESCRIPTION                Γöé
  18959.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18960.   ΓöéCCVIEW       ΓöéDEFAULT             ΓöéThe default value of the   Γöé
  18961.   Γöé             Γöé                    Γöéconcurrent view setting of Γöé
  18962.   Γöé             Γöé                    Γöéthe system is used when theΓöé
  18963.   Γöé             Γöé                    Γöéuser selects open.         Γöé
  18964.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18965.   Γöé             ΓöéYES                 ΓöéThis sets the object's     Γöé
  18966.   Γöé             Γöé                    Γöémultiple concurrent view   Γöé
  18967.   Γöé             Γöé                    Γöébehavior, so that new viewsΓöé
  18968.   Γöé             Γöé                    Γöéof this object are created Γöé
  18969.   Γöé             Γöé                    Γöéevery time the user selectsΓöé
  18970.   Γöé             Γöé                    Γöéopen.                      Γöé
  18971.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18972.   Γöé             ΓöéNO                  ΓöéOpened view of this object Γöé
  18973.   Γöé             Γöé                    Γöéresurfaces when the user   Γöé
  18974.   Γöé             Γöé                    Γöéselects open.              Γöé
  18975.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18976.   ΓöéDEFAULTVIEW  ΓöéSETTINGS            ΓöéThis sets the default open Γöé
  18977.   Γöé             Γöé                    Γöéview to Settings view.     Γöé
  18978.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18979.   Γöé             Γöéid                  ΓöéThis sets the default open Γöé
  18980.   Γöé             Γöé                    Γöéview to the id of a        Γöé
  18981.   Γöé             Γöé                    Γöéuser-added view (0-9).     Γöé
  18982.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18983.   Γöé             ΓöéDEFAULT             ΓöéThis sets the default open Γöé
  18984.   Γöé             Γöé                    Γöéview to the object's class Γöé
  18985.   Γöé             Γöé                    Γöédefault view, as returned  Γöé
  18986.   Γöé             Γöé                    Γöéby wpclsQueryDefaultView.  Γöé
  18987.   Γöé             Γöé                    ΓöéThis is the default value. Γöé
  18988.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18989.   ΓöéHELPLIBRARY  Γöéfilename            ΓöéThis sets the help library.Γöé
  18990.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18991.   ΓöéHELPPANEL    Γöéid                  ΓöéThis sets the object's     Γöé
  18992.   Γöé             Γöé                    Γöédefault help panel for     Γöé
  18993.   Γöé             Γöé                    Γöéobject-specific help. This Γöé
  18994.   Γöé             Γöé                    Γöéis equivalent to calling   Γöé
  18995.   Γöé             Γöé                    ΓöéwpSetDefaultHelp.          Γöé
  18996.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  18997.   ΓöéHIDEBUTTON   ΓöéYES                 ΓöéViews of this object have aΓöé
  18998.   Γöé             Γöé                    Γöéhide button as opposed to aΓöé
  18999.   Γöé             Γöé                    Γöéminimize button.           Γöé
  19000.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19001.   Γöé             ΓöéNO                  ΓöéViews of this object have aΓöé
  19002.   Γöé             Γöé                    Γöéminimize button as opposed Γöé
  19003.   Γöé             Γöé                    Γöéto a hide button.          Γöé
  19004.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19005.   Γöé             Γöé                    ΓöéThe default is the current Γöé
  19006.   Γöé             Γöé                    Γöésystem Button appearance   Γöé
  19007.   Γöé             Γöé                    Γöéfor windows setting.  This Γöé
  19008.   Γöé             Γöé                    Γöécannot be specified here.  Γöé
  19009.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19010.   ΓöéICONFILE     Γöéfilename            ΓöéThis sets the object's     Γöé
  19011.   Γöé             Γöé                    Γöéicon. This is equivalent toΓöé
  19012.   Γöé             Γöé                    Γöécalling wpSetIconData.     Γöé
  19013.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19014.   ΓöéICONPOS      Γöéx,y                 ΓöéThis sets the object's     Γöé
  19015.   Γöé             Γöé                    Γöéinitial icon position in a Γöé
  19016.   Γöé             Γöé                    Γöéfolder. The x and y values Γöé
  19017.   Γöé             Γöé                    Γöérepresent the position in  Γöé
  19018.   Γöé             Γöé                    Γöéthe object's folder in     Γöé
  19019.   Γöé             Γöé                    Γöépercentage coordinates.    Γöé
  19020.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19021.   ΓöéICONRESOURCE Γöéid,module           ΓöéThis sets the object's     Γöé
  19022.   Γöé             Γöé                    Γöéicon. This is equivalent toΓöé
  19023.   Γöé             Γöé                    Γöécalling wpSetIconData. The Γöé
  19024.   Γöé             Γöé                    Γöé"id" is the icon resource  Γöé
  19025.   Γöé             Γöé                    ΓöéID in the dynamic link     Γöé
  19026.   Γöé             Γöé                    Γöélibrary (DLL) "module".    Γöé
  19027.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19028.   ΓöéMINWIN       ΓöéHIDE                ΓöéViews of this object hide  Γöé
  19029.   Γöé             Γöé                    Γöéwhen their minimize button Γöé
  19030.   Γöé             Γöé                    Γöéis selected.               Γöé
  19031.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19032.   Γöé             ΓöéVIEWER              ΓöéViews of this object       Γöé
  19033.   Γöé             Γöé                    Γöéminimize to the minimized  Γöé
  19034.   Γöé             Γöé                    Γöéwindow viewer when their   Γöé
  19035.   Γöé             Γöé                    Γöéminimize button is         Γöé
  19036.   Γöé             Γöé                    Γöéselected.                  Γöé
  19037.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19038.   Γöé             ΓöéDESKTOP             ΓöéViews of this object       Γöé
  19039.   Γöé             Γöé                    Γöéminimize to the desktop    Γöé
  19040.   Γöé             Γöé                    Γöéwhen their minimize button Γöé
  19041.   Γöé             Γöé                    Γöéis selected.               Γöé
  19042.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19043.   Γöé             Γöé                    ΓöéThe default is the current Γöé
  19044.   Γöé             Γöé                    ΓöéMinimize button setting.   Γöé
  19045.   Γöé             Γöé                    ΓöéThis cannot be specified   Γöé
  19046.   Γöé             Γöé                    Γöéhere.                      Γöé
  19047.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19048.   ΓöéNOCOPY       ΓöéYES                 ΓöéThis sets the object's no  Γöé
  19049.   Γöé             Γöé                    Γöécopy property, so that the Γöé
  19050.   Γöé             Γöé                    Γöéobject cannot be copied.   Γöé
  19051.   Γöé             Γöé                    ΓöéThis is equivalent to      Γöé
  19052.   Γöé             Γöé                    Γöécalling wpSetStyle with a  Γöé
  19053.   Γöé             Γöé                    Γöéstyle of OBJSTYLE_NOCOPY.  Γöé
  19054.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19055.   Γöé             ΓöéNO                  ΓöéThis resets the object's noΓöé
  19056.   Γöé             Γöé                    Γöécopy property, so that the Γöé
  19057.   Γöé             Γöé                    Γöéobject can be copied.      Γöé
  19058.   Γöé             Γöé                    ΓöéThis is the default value. Γöé
  19059.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19060.   ΓöéNODELETE     ΓöéYES                 ΓöéThis sets the object's no  Γöé
  19061.   Γöé             Γöé                    Γöédelete property, so that   Γöé
  19062.   Γöé             Γöé                    Γöéthe object cannot be       Γöé
  19063.   Γöé             Γöé                    Γöédeleted. This is equivalentΓöé
  19064.   Γöé             Γöé                    Γöéto calling wpSetStyle with Γöé
  19065.   Γöé             Γöé                    Γöéa style of                 Γöé
  19066.   Γöé             Γöé                    ΓöéOBJSTYLE_NODELETE.         Γöé
  19067.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19068.   Γöé             ΓöéNO                  ΓöéThis resets the object's noΓöé
  19069.   Γöé             Γöé                    Γöédelete property, so that   Γöé
  19070.   Γöé             Γöé                    Γöéthe object can be deleted. Γöé
  19071.   Γöé             Γöé                    ΓöéThis is the default value. Γöé
  19072.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19073.   ΓöéNODRAG       ΓöéYES                 ΓöéThis sets the object's no  Γöé
  19074.   Γöé             Γöé                    Γöédrag property, so that the Γöé
  19075.   Γöé             Γöé                    Γöéobject cannot be dragged.  Γöé
  19076.   Γöé             Γöé                    ΓöéThis is equivalent to      Γöé
  19077.   Γöé             Γöé                    Γöécalling wpSetStyle with a  Γöé
  19078.   Γöé             Γöé                    Γöéstyle of OBJSTYLE_NODRAG.  Γöé
  19079.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19080.   Γöé             ΓöéNO                  ΓöéThis resets the object's noΓöé
  19081.   Γöé             Γöé                    Γöédrag property, so that the Γöé
  19082.   Γöé             Γöé                    Γöéobject can be dragged.     Γöé
  19083.   Γöé             Γöé                    ΓöéThis is the default value. Γöé
  19084.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19085.   ΓöéNODROP       ΓöéYES                 ΓöéThis sets the object's no  Γöé
  19086.   Γöé             Γöé                    Γöédrop property, so that no  Γöé
  19087.   Γöé             Γöé                    Γöéother object can be droppedΓöé
  19088.   Γöé             Γöé                    Γöéon it. This is equivalent  Γöé
  19089.   Γöé             Γöé                    Γöéto calling wpSetStyle with Γöé
  19090.   Γöé             Γöé                    Γöéa style of                 Γöé
  19091.   Γöé             Γöé                    ΓöéOBJSTYLE_NODROPON.         Γöé
  19092.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19093.   Γöé             ΓöéNO                  ΓöéThis resets the object's noΓöé
  19094.   Γöé             Γöé                    Γöédrop property, so that     Γöé
  19095.   Γöé             Γöé                    Γöéanother object can be      Γöé
  19096.   Γöé             Γöé                    Γöédropped on it.             Γöé
  19097.   Γöé             Γöé                    ΓöéThis is the default value. Γöé
  19098.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19099.   ΓöéNOLINK       ΓöéYES                 ΓöéThis sets the object's no  Γöé
  19100.   Γöé             Γöé                    Γöélink property, so that the Γöé
  19101.   Γöé             Γöé                    Γöéobject cannot be linked.   Γöé
  19102.   Γöé             Γöé                    ΓöéThis is equivalent to      Γöé
  19103.   Γöé             Γöé                    Γöécalling wpSetStyle with a  Γöé
  19104.   Γöé             Γöé                    Γöéstyle of OBJSTYLE_NOLINK.  Γöé
  19105.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19106.   Γöé             ΓöéNO                  ΓöéThis resets the object's noΓöé
  19107.   Γöé             Γöé                    Γöélink property, so that the Γöé
  19108.   Γöé             Γöé                    Γöéobject can be linked.      Γöé
  19109.   Γöé             Γöé                    ΓöéThis is the default value. Γöé
  19110.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19111.   ΓöéNOMOVE       ΓöéYES                 ΓöéThis sets the object's no  Γöé
  19112.   Γöé             Γöé                    Γöémove property, so that the Γöé
  19113.   Γöé             Γöé                    Γöéobject cannot be moved.    Γöé
  19114.   Γöé             Γöé                    ΓöéThis is equivalent to      Γöé
  19115.   Γöé             Γöé                    Γöécalling wpSetStyle with a  Γöé
  19116.   Γöé             Γöé                    Γöéstyle of OBJSTYLE_NOMOVE.  Γöé
  19117.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19118.   Γöé             ΓöéNO                  ΓöéThis resets the object's noΓöé
  19119.   Γöé             Γöé                    Γöémove property, so that the Γöé
  19120.   Γöé             Γöé                    Γöéobject can be moved.       Γöé
  19121.   Γöé             Γöé                    ΓöéThis is the default value. Γöé
  19122.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19123.   ΓöéNOPRINT      ΓöéYES                 ΓöéThis sets the object's no  Γöé
  19124.   Γöé             Γöé                    Γöéprint property, so that theΓöé
  19125.   Γöé             Γöé                    Γöéobject cannot be printed.  Γöé
  19126.   Γöé             Γöé                    ΓöéThis is equivalent to      Γöé
  19127.   Γöé             Γöé                    Γöécalling wpSetStyle with a  Γöé
  19128.   Γöé             Γöé                    Γöéstyle of OBJSTYLE_NOPRINT. Γöé
  19129.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19130.   Γöé             ΓöéNO                  ΓöéThis resets the object's noΓöé
  19131.   Γöé             Γöé                    Γöéprint property, so that theΓöé
  19132.   Γöé             Γöé                    Γöéobject can be printed.     Γöé
  19133.   Γöé             Γöé                    ΓöéThis is the default value. Γöé
  19134.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19135.   ΓöéNORENAME     ΓöéYES                 ΓöéThis sets the object's no  Γöé
  19136.   Γöé             Γöé                    Γöérename property, so that   Γöé
  19137.   Γöé             Γöé                    Γöéthe object cannot be       Γöé
  19138.   Γöé             Γöé                    Γöérenamed. This is equivalentΓöé
  19139.   Γöé             Γöé                    Γöéto calling wpSetStyle with Γöé
  19140.   Γöé             Γöé                    Γöéa style of                 Γöé
  19141.   Γöé             Γöé                    ΓöéOBJSTYLE_NORENAME.         Γöé
  19142.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19143.   Γöé             ΓöéNO                  ΓöéThis resets the object's noΓöé
  19144.   Γöé             Γöé                    Γöérename property, so that   Γöé
  19145.   Γöé             Γöé                    Γöéthe object can be renamed. Γöé
  19146.   Γöé             Γöé                    ΓöéThis is the default value. Γöé
  19147.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19148.   ΓöéNOSETTINGS   ΓöéYES                 ΓöéThis sets the object's no  Γöé
  19149.   Γöé             Γöé                    Γöésettings property, so that Γöé
  19150.   Γöé             Γöé                    Γöéthe object' settings cannotΓöé
  19151.   Γöé             Γöé                    Γöébe opened. This is         Γöé
  19152.   Γöé             Γöé                    Γöéequivalent to calling      Γöé
  19153.   Γöé             Γöé                    ΓöéwpSetStyle with a style of Γöé
  19154.   Γöé             Γöé                    ΓöéOBJSTYLE_NOSETTINGS.       Γöé
  19155.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19156.   Γöé             ΓöéNO                  ΓöéThis resets the object's noΓöé
  19157.   Γöé             Γöé                    Γöésettings property, so that Γöé
  19158.   Γöé             Γöé                    Γöéthe object's settings can  Γöé
  19159.   Γöé             Γöé                    Γöébe opened.                 Γöé
  19160.   Γöé             Γöé                    ΓöéThis is the default value. Γöé
  19161.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19162.   ΓöéNOSHADOW     ΓöéYES                 ΓöéThis sets the object's no  Γöé
  19163.   Γöé             Γöé                    Γöélink property, so that the Γöé
  19164.   Γöé             Γöé                    Γöéobject cannot be linked.   Γöé
  19165.   Γöé             Γöé                    ΓöéThis is equivalent to      Γöé
  19166.   Γöé             Γöé                    Γöécalling wpSetStyle with a  Γöé
  19167.   Γöé             Γöé                    Γöéstyle of OBJSTYLE_NOLINK.  Γöé
  19168.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19169.   Γöé             ΓöéNO                  ΓöéThis resets the object's noΓöé
  19170.   Γöé             Γöé                    Γöélink property, so that the Γöé
  19171.   Γöé             Γöé                    Γöéobject can be linked.      Γöé
  19172.   Γöé             Γöé                    ΓöéThis is the default value. Γöé
  19173.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19174.   ΓöéNOTVISIBLE   ΓöéYES                 ΓöéThis sets the object's not Γöé
  19175.   Γöé             Γöé                    Γöévisible property, so that  Γöé
  19176.   Γöé             Γöé                    Γöéthe object cannot be made  Γöé
  19177.   Γöé             Γöé                    Γöévisible. This is equivalentΓöé
  19178.   Γöé             Γöé                    Γöéto calling wpSetStyle with Γöé
  19179.   Γöé             Γöé                    Γöéa style of                 Γöé
  19180.   Γöé             Γöé                    ΓöéOBJSTYLE_NOTVISIBLE.       Γöé
  19181.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19182.   Γöé             ΓöéNO                  ΓöéThis resets the object's   Γöé
  19183.   Γöé             Γöé                    Γöénot visible property, so   Γöé
  19184.   Γöé             Γöé                    Γöéthat the object can be madeΓöé
  19185.   Γöé             Γöé                    Γöévisible.                   Γöé
  19186.   Γöé             Γöé                    ΓöéThis is the default value. Γöé
  19187.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19188.   ΓöéOBJECTID     Γöé<name>              ΓöéThis sets a persistent ID  Γöé
  19189.   Γöé             Γöé                    Γöéfor the object. The        Γöé
  19190.   Γöé             Γöé                    ΓöéOBJECTID stays with the    Γöé
  19191.   Γöé             Γöé                    Γöéobject even if it is moved Γöé
  19192.   Γöé             Γöé                    Γöéor renamed. The object     Γöé
  19193.   Γöé             Γöé                    Γöépointer or handle can be   Γöé
  19194.   Γöé             Γöé                    Γöéretrieved via              Γöé
  19195.   Γöé             Γöé                    ΓöéwpclsQueryObject or        Γöé
  19196.   Γöé             Γöé                    ΓöéWinQueryObject ,           Γöé
  19197.   Γöé             Γöé                    Γöérespectively. An OBJECTID  Γöé
  19198.   Γöé             Γöé                    Γöéis any unique string       Γöé
  19199.   Γöé             Γöé                    Γöépreceded with a "<" and    Γöé
  19200.   Γöé             Γöé                    Γöéterminated with a ">".     Γöé
  19201.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19202.   ΓöéOPEN         ΓöéSETTINGS            ΓöéThis opens the Settings    Γöé
  19203.   Γöé             Γöé                    Γöéview when an object is     Γöé
  19204.   Γöé             Γöé                    Γöécreated or when            Γöé
  19205.   Γöé             Γöé                    ΓöéWinSetObjectData is called.Γöé
  19206.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19207.   Γöé             ΓöéDEFAULT             ΓöéThis opens the default viewΓöé
  19208.   Γöé             Γöé                    Γöéwhen an object is created  Γöé
  19209.   Γöé             Γöé                    Γöéor when WinSetObjectData isΓöé
  19210.   Γöé             Γöé                    Γöécalled.                    Γöé
  19211.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19212.   Γöé             Γöé                    ΓöéThe default is to not open Γöé
  19213.   Γöé             Γöé                    Γöéa view.                    Γöé
  19214.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19215.   ΓöéTEMPLATE     ΓöéYES                 ΓöéThis sets the object's     Γöé
  19216.   Γöé             Γöé                    Γöétemplate property. This is Γöé
  19217.   Γöé             Γöé                    Γöéequivalent to calling      Γöé
  19218.   Γöé             Γöé                    ΓöéwpSetStyle with a style of Γöé
  19219.   Γöé             Γöé                    ΓöéOBJSTYLE_TEMPLATE.         Γöé
  19220.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19221.   Γöé             ΓöéNO                  ΓöéThis resets the object's   Γöé
  19222.   Γöé             Γöé                    Γöétemplate property.         Γöé
  19223.   Γöé             Γöé                    ΓöéThis is the default value. Γöé
  19224.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19225.   ΓöéTITLE        ΓöéTitle               ΓöéThis sets the object's     Γöé
  19226.   Γöé             Γöé                    Γöétitle. This is equivalent  Γöé
  19227.   Γöé             Γöé                    Γöéto calling wpSetTitle.     Γöé
  19228.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  19229.  
  19230.  Example 
  19231.  
  19232.   pszSetupString="TITLE=MYObject;ICONFILE=myobj.ico;HELPPANEL=132;
  19233.                  TEMPLATE=YES;NODELETE=NO"
  19234.  
  19235.  Instance methods 
  19236.  
  19237.  The following lists show how all the WPObject instance methods are related 
  19238.  within functional areas: 
  19239.  
  19240.  Settings notebook methods 
  19241.  
  19242.    o  wpAddObjectGeneralPage 
  19243.    o  wpAddObjectGeneralPage2 
  19244.    o  wpAddObjectWindowPage 
  19245.    o  wpAddSettingsPages 
  19246.    o  wpInsertSettingsPage 
  19247.  
  19248.  Save/restore state methods 
  19249.  
  19250.    o  wpRestoreData 
  19251.    o  wpRestoreLong 
  19252.    o  wpRestoreState 
  19253.    o  wpRestoreString 
  19254.    o  wpSaveData 
  19255.    o  wpSaveDeferred 
  19256.    o  wpSaveImmediate 
  19257.    o  wpSaveLong 
  19258.    o  wpSaveState 
  19259.    o  wpSaveString 
  19260.  
  19261.  Object usage methods 
  19262.  
  19263.    o  wpAddToObjUseList 
  19264.    o  wpCnrDeleteUseItem 
  19265.    o  wpDeleteFromObjUseList 
  19266.    o  wpFindUseItem 
  19267.    o  wpIsLocked 
  19268.    o  wpLockObject 
  19269.    o  wpUnlockObject 
  19270.  
  19271.  Popup menu methods 
  19272.  
  19273.    o  wpClose 
  19274.    o  wpCopyObject 
  19275.    o  wpCreateAnother 
  19276.    o  wpCreateFromTemplate 
  19277.    o  wpCreateShadowObject 
  19278.    o  wpCreateShadowObjectExt 
  19279.    o  wpDelete 
  19280.    o  wpDisplayHelp 
  19281.    o  wpDisplayMenu 
  19282.    o  wpFilterPopupMenu 
  19283.    o  wpHide 
  19284.    o  wpInsertPopupMenuItems 
  19285.    o  wpIsObjectInitialized 
  19286.    o  wpMenuItemHelpSelected 
  19287.    o  wpMenuItemSelected 
  19288.    o  wpModifyPopupMenu 
  19289.    o  wpMoveObject 
  19290.    o  wpObjectReady 
  19291.    o  wpOpen 
  19292.    o  wpPrintObject 
  19293.    o  wpRestore 
  19294.  
  19295.  Query and Set object information methods 
  19296.  
  19297.    o  wpModifyStyle 
  19298.    o  wpQueryButtonAppearance 
  19299.    o  wpQueryConcurrentView 
  19300.    o  wpQueryConfirmations 
  19301.    o  wpQueryContainerFlagPtr 
  19302.    o  wpQueryCoreRecord 
  19303.    o  wpQueryDefaultHelp 
  19304.    o  wpQueryDefaultIconPos 
  19305.    o  wpQueryDefaultView 
  19306.    o  wpQueryDetailsData 
  19307.    o  wpQueryFolder 
  19308.    o  wpQueryHandle 
  19309.    o  wpQueryIcon 
  19310.    o  wpQueryIconData 
  19311.    o  wpQueryMinWindow 
  19312.    o  wpQueryNameClashOptions 
  19313.    o  wpQueryObjectID 
  19314.    o  wpQueryScreenGroupID 
  19315.    o  wpQueryStyle 
  19316.    o  wpQueryTitle 
  19317.    o  wpSetButtonAppearance 
  19318.    o  wpSetConcurrentView 
  19319.    o  wpSetDefaultHelp 
  19320.    o  wpSetDefaultIconPos 
  19321.    o  wpSetDefaultView 
  19322.    o  wpSetIcon 
  19323.    o  wpSetIconData 
  19324.    o  wpSetIconHandle 
  19325.    o  wpSetMinWindow 
  19326.    o  wpSetObjectID 
  19327.    o  wpSetStyle 
  19328.    o  wpSetTitle 
  19329.    o  wpViewObject 
  19330.  
  19331.  Error handling methods 
  19332.  
  19333.    o  wpQueryError 
  19334.    o  wpSetError 
  19335.  Memory management methods 
  19336.  
  19337.    o  wpAllocMem 
  19338.    o  wpFreeMem 
  19339.  
  19340.  Setup/cleanup methods 
  19341.  
  19342.    o  wpFree 
  19343.    o  wpInitData 
  19344.    o  wpScanSetupString 
  19345.    o  wpSetup 
  19346.    o  wpSetupOnce 
  19347.    o  wpUnInitData 
  19348.  
  19349.  Direct manipulation methods 
  19350.  
  19351.    o  wpDraggedOverObject 
  19352.    o  wpDragOver 
  19353.    o  wpDrop 
  19354.    o  wpDroppedOnObject 
  19355.    o  wpEndConversation 
  19356.    o  wpFormatDragItem 
  19357.    o  wpRender 
  19358.    o  wpRenderComplete 
  19359.  
  19360.  Miscellaneous methods 
  19361.  
  19362.    o  wpCnrInsertObject 
  19363.    o  wpCnrRefreshDetails 
  19364.    o  wpCnrRemoveObject 
  19365.    o  wpCnrSetEmphasis 
  19366.    o  wpConfirmDelete 
  19367.    o  wpConfirmObjectTitle 
  19368.    o  wpCopiedFromTemplate 
  19369.    o  wpDoesObjectMatch 
  19370.    o  wpFindViewItem 
  19371.    o  wpIsDeleteable 
  19372.    o  wpRegisterView 
  19373.    o  wpSwitchTo 
  19374.    o  wpWaitForClose 
  19375.  
  19376.  SOMObject methods 
  19377.  
  19378.  The following list shows all the instance methods overridden by the WPObject 
  19379.  class. These instance methods are overridden in order to modify the behavior 
  19380.  defined by an ancestor class. 
  19381.  
  19382.    o  somDefaultInit 
  19383.    o  somInit 
  19384.    o  somUninit 
  19385.  
  19386.  Class Methods 
  19387.  
  19388.  The following list shows all the WPObject class methods: 
  19389.  
  19390.    o  wpclsCreateDefaultTemplates 
  19391.    o  wpclsDecUsage 
  19392.    o  wpclsFindObjectEnd 
  19393.    o  wpclsFindObjectFirst 
  19394.    o  wpclsFindObjectNext 
  19395.    o  wpclsFindOneObject 
  19396.    o  wpclsIncUsage 
  19397.    o  wpclsInitData 
  19398.    o  wpclsInsertMultipleObjects 
  19399.    o  wpclsMakeAwake 
  19400.    o  wpclsNew 
  19401.    o  wpclsObjectFromHandle 
  19402.    o  wpclsQueryButtonAppearance 
  19403.    o  wpclsQueryDefaultHelp 
  19404.    o  wpclsQueryDefaultView 
  19405.    o  wpclsQueryDetails 
  19406.    o  wpclsQueryDetailsInfo 
  19407.    o  wpclsQueryError 
  19408.    o  wpclsQueryExtendedCriteria 
  19409.    o  wpclsQueryFolder 
  19410.    o  wpclsQueryIcon 
  19411.    o  wpclsQueryIconData 
  19412.    o  wpclsQueryObject 
  19413.    o  wpclsQuerySearchInfo 
  19414.    o  wpclsQuerySettingsPageSize 
  19415.    o  wpclsQueryStyle 
  19416.    o  wpclsQueryTitle 
  19417.    o  wpclsRemoveObjects 
  19418.    o  wpclsSetError 
  19419.    o  wpclsSetIconData 
  19420.    o  wpclsSetIcon 
  19421.    o  wpclsSetSettingsPageSize 
  19422.    o  wpclsUnInitData 
  19423.  
  19424.  SOMClass methods 
  19425.  
  19426.  The following list shows all the class methods overridden by the the WPObject 
  19427.  class. These methods are overridden to modify the behavior defined by an 
  19428.  ancestor class. 
  19429.  
  19430.    o  somClassReady 
  19431.    o  somNew 
  19432.    o  somRenew 
  19433.  
  19434.  
  19435. ΓòÉΓòÉΓòÉ 23.26. WPPalette ΓòÉΓòÉΓòÉ
  19436.  
  19437. Class definition file: wppalet.idl 
  19438.  
  19439. Class hierarchy 
  19440.  
  19441. SOMObject
  19442.    WPObject
  19443.       WPAbstract
  19444.           WPPalette
  19445.  
  19446. Description 
  19447.  
  19448. This is the palette object class. There are no instances of this class 
  19449. initially created by the system. 
  19450.  
  19451. Instance methods 
  19452.  
  19453. The following list shows all the WPPalette instance methods: 
  19454.  
  19455.    o  wpDragCell 
  19456.    o  wpEditCell 
  19457.    o  wpInitCellStructs 
  19458.    o  wpPaintCell 
  19459.    o  wpPaintPalette 
  19460.    o  wpQueryPaletteHelp 
  19461.    o  wpQueryPaletteInfo 
  19462.    o  wpRedrawCell 
  19463.    o  wpRestoreCellData 
  19464.    o  wpSaveCellData 
  19465.    o  wpSelectCell 
  19466.    o  wpSetPaletteInfo 
  19467.    o  wpSetupCell 
  19468.    o  wpShowPalettePointer 
  19469.  
  19470.  WPObject instance methods 
  19471.  
  19472.  The following list shows all the methods overridden by the WPPalette class. 
  19473.  These methods are overridden to modify the behavior defined by an ancestor 
  19474.  class. 
  19475.  
  19476.    o  wpFilterPopupMenu 
  19477.    o  wpInitData 
  19478.    o  wpMenuItemHelpSelected 
  19479.    o  wpMenuItemSelected 
  19480.    o  wpModifyPopupMenu 
  19481.    o  wpOpen 
  19482.    o  wpRestoreState 
  19483.    o  wpSaveState 
  19484.    o  wpSetup 
  19485.    o  wpUnInitData 
  19486.  
  19487.  wpSetup override by WPPalette 
  19488.  
  19489.  The following table shows the keyname-value pairs added by the WPPalette 
  19490.  class. 
  19491.  
  19492.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  19493.   ΓöéKEYNAME        ΓöéVALUE          ΓöéDESCRIPTION                   Γöé
  19494.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19495.   ΓöéXCELLCOUNT     Γöécolumns        ΓöéNumber of columns of cells.   Γöé
  19496.   Γöé               Γöé               ΓöéIf not specified, defaults to Γöé
  19497.   Γöé               Γöé               Γöé13.                           Γöé
  19498.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19499.   ΓöéYCELLCOUNT     Γöérows           ΓöéNumber of rows of cells.  If  Γöé
  19500.   Γöé               Γöé               Γöénot specified, defaults to 9. Γöé
  19501.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19502.   ΓöéXCELLWIDTH     Γöéwidth          ΓöéWidth in dialog units of each Γöé
  19503.   Γöé               Γöé               Γöécell.                         Γöé
  19504.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19505.   ΓöéYCELLHEIGHT    Γöéheight         ΓöéHeight in dialog units of eachΓöé
  19506.   Γöé               Γöé               Γöécell.                         Γöé
  19507.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19508.   ΓöéXCELLGAP       Γöégap            ΓöéX separation in dialog units  Γöé
  19509.   Γöé               Γöé               Γöébetween each cell.            Γöé
  19510.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19511.   ΓöéYCELLGAP       Γöégap            ΓöéY separation in dialog units  Γöé
  19512.   Γöé               Γöé               Γöébetween each cell.            Γöé
  19513.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  19514.  
  19515.  Example 
  19516.  
  19517.   pszSetupString="XCELLCOUNT=3,YCELLCOUNT=4"
  19518.  
  19519.  Class methods 
  19520.  
  19521.  The following list shows all the WPPalette class methods: 
  19522.  
  19523.    o  wpclsQueryEditString 
  19524.  
  19525.  WPObject class methods. 
  19526.  
  19527.  The following list shows all the class methods overridden by the WPPalette 
  19528.  class. These methods are overridden to modify the behavior defined by an 
  19529.  ancestor class. 
  19530.  
  19531.    o  wpclsQueryDefaultHelp 
  19532.    o  wpclsQueryDefaultView 
  19533.    o  wpclsQueryStyle 
  19534.    o  wpclsQueryTitle 
  19535.  
  19536.  
  19537. ΓòÉΓòÉΓòÉ 23.27. WPPdr ΓòÉΓòÉΓòÉ
  19538.  
  19539. Class definition file: wppdr.idl 
  19540.  
  19541. Class hierarchy 
  19542.  
  19543. SOMObject
  19544.   WPObject
  19545.      WPTransient
  19546.         WPPdr
  19547.  
  19548. Description 
  19549.  
  19550. This is the printer driver object class. An instance of this class is created 
  19551. by the print object in its Settings view. 
  19552.  
  19553. Instance methods 
  19554.  
  19555. There are currently no methods defined for the WPPdr Workplace class object. 
  19556.  
  19557. WPObject instance methods 
  19558.  
  19559. The following list shows all the methods overridden by the WPPdr class. These 
  19560. methods are overridden in order to modify the behavior defined by an ancestor 
  19561. class. 
  19562.  
  19563.    o  wpAddSettingsPages 
  19564.    o  wpDragOver 
  19565.    o  wpDrop 
  19566.    o  wpFilterPopupMenu 
  19567.    o  wpFree 
  19568.    o  wpInitData 
  19569.    o  wpMenuItemHelpSelected 
  19570.    o  wpMenuItemSelected 
  19571.    o  wpModifyPopupMenu 
  19572.    o  wpOpen 
  19573.    o  wpQueryIcon 
  19574.    o  wpQueryTitle 
  19575.    o  wpUnInitData 
  19576.  
  19577.  Class methods 
  19578.  
  19579.  There are currently no class methods defined for the WPPdr Workplace class 
  19580.  object. 
  19581.  
  19582.  WPObject class methods. 
  19583.  
  19584.  The following list shows all the class methods overridden by the WPPdr class. 
  19585.  These methods are overridden to modify the behavior defined by an ancestor 
  19586.  class. 
  19587.  
  19588.    o  wpclsQueryDefaultHelp 
  19589.    o  wpclsQueryDefaultView 
  19590.    o  wpclsQueryIcon 
  19591.    o  wpclsQueryStyle 
  19592.    o  wpclsQueryTitle 
  19593.  
  19594.  
  19595. ΓòÉΓòÉΓòÉ 23.28. WPPif ΓòÉΓòÉΓòÉ
  19596.  
  19597. Class definition file: wppif.idl 
  19598.  
  19599. Class hierarchy 
  19600.  
  19601. SOMObject
  19602.   WPObject
  19603.      WPFileSystem
  19604.         WPDataFile
  19605.            WPPif
  19606. Description 
  19607.  
  19608. This is the Picture Interchange Format (PIF) class object. All PIF files are of 
  19609. this class. These PIF files are templatable. An instance of this class can be 
  19610. created as a Workplace object. Instances of this class are created initially by 
  19611. the system for each PIF file in the system. 
  19612.  
  19613. Instance methods 
  19614.  
  19615. There are currently no methods defined for the WPPif Workplace class object. 
  19616.  
  19617. WPObject instance methods 
  19618.  
  19619. The following list shows all the methods overridden by the WPPif class. These 
  19620. methods are overridden in order to modify the behavior defined by an ancestor 
  19621. class. 
  19622.  
  19623.    o  wpSetupOnce 
  19624.  
  19625.  Class methods 
  19626.  
  19627.  There are currently no class methods defined for the WPPif Workplace class 
  19628.  object. 
  19629.  
  19630.  WPObject class methods. 
  19631.  
  19632.  The following list shows all the class methods overridden by the WPPif class. 
  19633.  These methods are overridden to modify the behavior defined by an ancestor 
  19634.  class. 
  19635.  
  19636.    o  wpclsInitData 
  19637.    o  wpclsQueryDefaultHelp 
  19638.    o  wpclsQueryTitle 
  19639.  
  19640.  WPFileSystem class methods. 
  19641.  
  19642.  The following list shows all the class methods overridden by the WPPif class. 
  19643.  These methods are overridden to modify the behavior defined by an ancestor 
  19644.  class. 
  19645.  
  19646.    o  wpclsQueryInstanceFilter 
  19647.    o  wpclsQueryInstanceType 
  19648.  
  19649.  
  19650. ΓòÉΓòÉΓòÉ 23.29. WPPointer ΓòÉΓòÉΓòÉ
  19651.  
  19652. Class definition file: wpptr.idl 
  19653.  
  19654. Class hierarchy 
  19655.  
  19656. SOMObject
  19657.   WPObject
  19658.      WPFileSystem
  19659.         WPDataFile
  19660.            WPPointer
  19661.  
  19662. Description 
  19663.  
  19664. This is the WPPointer class. All pointers are of this class. These pointer 
  19665. files are templatable. An instance of this class can be created as a Workplace 
  19666. object. Instances of this class are created initially by the system for each 
  19667. pointer in the system. 
  19668.  
  19669. Instance methods 
  19670.  
  19671. There are currently no methods defined for the WPPointer Workplace class 
  19672. object. 
  19673.  
  19674. WPObject instance methods 
  19675.  
  19676. The following list shows all the methods overridden by the WPPointer class. 
  19677. These methods are overridden in order to modify the behavior defined by an 
  19678. ancestor class. 
  19679.  
  19680.    o  wpSetupOnce 
  19681.  
  19682.  Class methods 
  19683.  
  19684.  There are currently no class methods defined for the WPPointer Workplace class 
  19685.  object. 
  19686.  
  19687.  WPObject class methods 
  19688.  
  19689.  The following list shows all the class methods overridden by the WPPointer 
  19690.  class. These methods are overridden to modify the behavior defined by an 
  19691.  ancestor class. 
  19692.  
  19693.    o  wpclsInitData 
  19694.    o  wpclsQueryDefaultHelp 
  19695.    o  wpclsQueryTitle 
  19696.  
  19697.  WPFileSystem class methods. 
  19698.  
  19699.  The following list shows all the class methods overridden by the WPPointer 
  19700.  class. These methods are overridden to modify the behavior defined by an 
  19701.  ancestor class. 
  19702.  
  19703.    o  wpclsQueryInstanceFilter 
  19704.    o  wpclsQueryInstanceType 
  19705.  
  19706.  
  19707. ΓòÉΓòÉΓòÉ 23.30. WPPort ΓòÉΓòÉΓòÉ
  19708.  
  19709. Class definition file: wpport.idl 
  19710.  
  19711. Class hierarchy 
  19712.  
  19713. SOMObject
  19714.   WPObject
  19715.      WPTransient
  19716.         WPPort
  19717.  
  19718. Description 
  19719.  
  19720. This is the port object class. An instance of this class is created by the 
  19721. print object in its Settings view. 
  19722.  
  19723. Instance methods 
  19724.  
  19725. There are currently no methods defined for the WPPort Workplace class object. 
  19726.  
  19727. WPObject instance methods 
  19728.  
  19729. The following list shows all the methods overridden by the WPPort class. These 
  19730. methods are overridden in order to modify the behavior defined by an ancestor 
  19731. class. 
  19732.  
  19733.    o  wpCnrSetEmphasis 
  19734.    o  wpDragOver 
  19735.    o  wpDrop 
  19736.    o  wpFilterPopupMenu 
  19737.    o  wpFree 
  19738.    o  wpInitData 
  19739.    o  wpMenuItemHelpSelected 
  19740.    o  wpMenuItemSelected 
  19741.    o  wpModifyPopupMenu 
  19742.    o  wpOpen 
  19743.    o  wpQueryIcon 
  19744.    o  wpQueryTitle 
  19745.    o  wpUnInitData 
  19746.  
  19747.  Class methods 
  19748.  
  19749.  There are currently no class methods defined for the WPPort Workplace class 
  19750.  object. 
  19751.  
  19752.  WPObject class methods. 
  19753.  
  19754.  The following list shows all the class methods overridden by the WPPort class. 
  19755.  These methods are overridden to modify the behavior defined by an ancestor 
  19756.  class. 
  19757.  
  19758.    o  wpclsQueryDefaultHelp 
  19759.    o  wpclsQueryDefaultView 
  19760.    o  wpclsQueryIcon 
  19761.    o  wpclsQueryIconData 
  19762.    o  wpclsQueryStyle 
  19763.    o  wpclsQueryTitle 
  19764.  
  19765.  
  19766. ΓòÉΓòÉΓòÉ 23.31. WPPower ΓòÉΓòÉΓòÉ
  19767.  
  19768. Class definition file: wppower.idl 
  19769.  
  19770. Class hierarchy 
  19771.  
  19772. SOMObject
  19773.    WPObject
  19774.       WPAbstract
  19775.           WPPower
  19776.  
  19777. Description 
  19778.  
  19779. This class is specific to version 2.1, or higher, of the OS/2 operating system. 
  19780.  
  19781. This is the power object class that represents the power management support. An 
  19782. instance of this class can be created as a Workplace object. An instance of 
  19783. this class is created initially by systems that support power management. It 
  19784. cannot be deleted. It has the title "Power" and resides in the "System Setup" 
  19785. folder. 
  19786.  
  19787. Instance methods 
  19788.  
  19789. The following list shows all the WPPower methods: 
  19790.  
  19791.    o  wpAddPowerPage 
  19792.    o  wpAddPowerViewPage 
  19793.    o  wpChangePowerState 
  19794.    o  wpQueryAutoRefresh 
  19795.    o  wpQueryDefStatusView 
  19796.    o  wpQueryPowerConfirmation 
  19797.    o  wpQueryPowerManagement 
  19798.    o  wpQueryRefreshRate 
  19799.    o  wpSetAutoRefresh 
  19800.    o  wpSetDefStatusView 
  19801.    o  wpSetPowerConfirmation 
  19802.    o  wpSetPowerManagement 
  19803.    o  wpSetRefreshRate 
  19804.  
  19805.  WPObject instance methods 
  19806.  
  19807.  The following list shows all the methods overridden by the WPPower class. 
  19808.  These methods are overridden in order to modify the behavior defined by an 
  19809.  ancestor class. 
  19810.  
  19811.    o  wpAddObjectWindowPage 
  19812.    o  wpAddSettingsPages 
  19813.    o  wpFilterPopupMenu 
  19814.    o  wpInitData 
  19815.    o  wpMenuItemHelpSelected 
  19816.    o  wpMenuItemSelected 
  19817.    o  wpModifyPopupMenu 
  19818.    o  wpOpen 
  19819.    o  wpRestoreState 
  19820.    o  wpSaveState 
  19821.  
  19822.  Class methods 
  19823.  
  19824.  There are currently no class methods defined for the WPPower Workplace class 
  19825.  object. 
  19826.  
  19827.  WPObject class methods 
  19828.  
  19829.  The following list shows all the class methods overridden by the WPPower 
  19830.  class. These methods are overridden to modify the behavior defined by an 
  19831.  ancestor class. 
  19832.  
  19833.    o  wpclsQueryDefaultHelp 
  19834.    o  wpclsQueryDefaultView 
  19835.    o  wpclsQueryIconData 
  19836.    o  wpclsQueryStyle 
  19837.    o  wpclsQueryTitle 
  19838.  
  19839.  
  19840. ΓòÉΓòÉΓòÉ 23.32. WPPrinter ΓòÉΓòÉΓòÉ
  19841.  
  19842. Class definition file: wpprint.idl 
  19843.  
  19844. Class hierarchy 
  19845.  
  19846. SOMObject
  19847.   WPObject
  19848.      WPAbstract
  19849.         WPPrinter
  19850.  
  19851. Description 
  19852.  
  19853. This is the printer object class. An instance of this class can be created as a 
  19854. Workplace object. An instance of this class is created initially by the system 
  19855. in its template form. It has the title "Printer" and resides in the "Templates" 
  19856. folder. Instances of this class are also created initially by the system for 
  19857. each print configured. Each instance will have a title corresponding to the 
  19858. description of the configured queue and printer and will reside on the desktop. 
  19859.  
  19860. Instance methods 
  19861.  
  19862. The following list shows all the WPPrinter methods: 
  19863.  
  19864.    o  wpDeleteAllJobs 
  19865.    o  wpHoldPrinter 
  19866.    o  wpJobAdded 
  19867.    o  wpJobChanged 
  19868.    o  wpJobDeleted 
  19869.    o  wpQueryComputerName 
  19870.    o  wpQueryPrinterName 
  19871.    o  wpQueryQueueOptions 
  19872.    o  wpQueryRemoteOptions 
  19873.    o  wpReleasePrinter 
  19874.    o  wpSetComputerName 
  19875.    o  wpSetDefaultPrinter 
  19876.    o  wpSetPrinterName 
  19877.    o  wpSetQueueOptions 
  19878.    o  wpSetRemoteOptions 
  19879.  
  19880.  WPObject instance methods 
  19881.  
  19882.  The following list shows all the methods overridden by the WPPrinter class. 
  19883.  These methods are overridden in order to modify the behavior defined by an 
  19884.  ancestor class. 
  19885.  
  19886.    o  wpAddSettingsPages 
  19887.    o  wpCopiedFromTemplate 
  19888.    o  wpCopyObject 
  19889.    o  wpCreateAnother 
  19890.    o  wpCreateFromTemplate 
  19891.    o  wpCreateShadowObject 
  19892.    o  wpDragOver 
  19893.    o  wpDrop 
  19894.    o  wpFilterPopupMenu 
  19895.    o  wpFree 
  19896.    o  wpInitData 
  19897.    o  wpMenuItemHelpSelected 
  19898.    o  wpMenuItemSelected 
  19899.    o  wpModifyPopupMenu 
  19900.    o  wpMoveObject 
  19901.    o  wpOpen 
  19902.    o  wpQueryDefaultHelp 
  19903.    o  wpQueryDefaultView 
  19904.    o  wpQueryIcon 
  19905.    o  wpQueryIconData 
  19906.    o  wpQueryStyle 
  19907.    o  wpQueryTitle 
  19908.    o  wpRestoreState 
  19909.    o  wpSaveState 
  19910.    o  wpSetDefaultView 
  19911.    o  wpSetIcon 
  19912.    o  wpSetIconData 
  19913.    o  wpSetTitle 
  19914.    o  wpSetup 
  19915.    o  wpUnInitData 
  19916.  
  19917.  wpSetup override by WPPrint 
  19918.  
  19919.  The following table shows the keyname-value pairs added by the WPPrint class. 
  19920.  
  19921.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  19922.   ΓöéKEYNAME                  ΓöéVALUE        ΓöéDESCRIPTION                Γöé
  19923.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19924.   ΓöéAPPDEFAULT               ΓöéYES          ΓöéThis printer object is to  Γöé
  19925.   Γöé                         Γöé             Γöébecome the application's   Γöé
  19926.   Γöé                         Γöé             Γöédefault printer object for Γöé
  19927.   Γöé                         Γöé             Γöéprinting.                  Γöé
  19928.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19929.   Γöé                         ΓöéNO           ΓöéThis printer object is not Γöé
  19930.   Γöé                         Γöé             Γöéto become the application'sΓöé
  19931.   Γöé                         Γöé             Γöédefault printer object for Γöé
  19932.   Γöé                         Γöé             Γöéprinting.                  Γöé
  19933.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19934.   ΓöéDEFAULTVIEW              ΓöéDETAILS      ΓöéDefault open view for this Γöé
  19935.   Γöé                         Γöé             Γöéprinter object is in       Γöé
  19936.   Γöé                         Γöé             Γöédetails view.              Γöé
  19937.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19938.   Γöé                         ΓöéICON         ΓöéDefault open view for this Γöé
  19939.   Γöé                         Γöé             Γöéprinter object is in icon  Γöé
  19940.   Γöé                         Γöé             Γöéview.                      Γöé
  19941.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19942.   ΓöéJOBDIALOGBEFOREPRINT     ΓöéYES          ΓöéThe job properties dialog  Γöé
  19943.   Γöé                         Γöé             Γöéis displayed before        Γöé
  19944.   Γöé                         Γöé             Γöéprinting.                  Γöé
  19945.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19946.   Γöé                         ΓöéNO           ΓöéThe job properties dialog  Γöé
  19947.   Γöé                         Γöé             Γöéis not displayed before    Γöé
  19948.   Γöé                         Γöé             Γöéprinting.                  Γöé
  19949.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19950.   ΓöéJOBPROPERTIES            Γöéfilename     ΓöéThe complete path to a     Γöé
  19951.   Γöé                         Γöé             Γöébinary file containing the Γöé
  19952.   Γöé                         Γöé             Γöédefault job properties for Γöé
  19953.   Γöé                         Γöé             Γöéthis printer object. This  Γöé
  19954.   Γöé                         Γöé             Γöéfile can be created by     Γöé
  19955.   Γöé                         Γöé             Γöésaving the                 Γöé
  19956.   Γöé                         Γöé             ΓöéPRQINFO3->pDriverData data Γöé
  19957.   Γöé                         Γöé             Γöéto a file; this data can beΓöé
  19958.   Γöé                         Γöé             Γöéobtained by using the      Γöé
  19959.   Γöé                         Γöé             ΓöéSplQueryQueue API of the   Γöé
  19960.   Γöé                         Γöé             Γöéspooler.                   Γöé
  19961.   Γöé                         Γöé             ΓöéFor more information about Γöé
  19962.   Γöé                         Γöé             Γöéspooler functions, see the Γöé
  19963.   Γöé                         Γöé             ΓöéControl Program ProgrammingΓöé
  19964.   Γöé                         Γöé             ΓöéReference.                 Γöé
  19965.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19966.   ΓöéOUTPUTTOFILE             ΓöéYES          ΓöéThe output of this printer Γöé
  19967.   Γöé                         Γöé             Γöéobject goes to a file. The Γöé
  19968.   Γöé                         Γöé             Γöéuser will be prompted for aΓöé
  19969.   Γöé                         Γöé             Γöéfilename each time a print Γöé
  19970.   Γöé                         Γöé             Γöéjob is submitted to this   Γöé
  19971.   Γöé                         Γöé             Γöéprinter object.            Γöé
  19972.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19973.   Γöé                         ΓöéNO           ΓöéThe output of this printer Γöé
  19974.   Γöé                         Γöé             Γöéobject does not go to a    Γöé
  19975.   Γöé                         Γöé             Γöéfile.                      Γöé
  19976.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19977.   ΓöéPORTNAME                 Γöéportname     ΓöéThe names of already       Γöé
  19978.   Γöé                         Γöé             Γöéinstalled ports to which   Γöé
  19979.   Γöé                         Γöé             Γöéthis printer object is to  Γöé
  19980.   Γöé                         Γöé             Γöébe attached. In the case ofΓöé
  19981.   Γöé                         Γöé             Γöémore than one port, specifyΓöé
  19982.   Γöé                         Γöé             Γöéa comma-separated list.    Γöé
  19983.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19984.   ΓöéPRINTDRIVER              Γöédriver.deviceΓöéThe complete name of the   Γöé
  19985.   Γöé                         Γöé             Γöéprint-driver that this     Γöé
  19986.   Γöé                         Γöé             Γöéprinter object is to use.  Γöé
  19987.   Γöé                         Γöé             ΓöéFor example: 'IBM42XX.IBM  Γöé
  19988.   Γöé                         Γöé             Γöé420 Proprinter III'        Γöé
  19989.   Γöé                         Γöé             ΓöéIn the case of more than   Γöé
  19990.   Γöé                         Γöé             Γöéone print driver, specify aΓöé
  19991.   Γöé                         Γöé             Γöécomma-separated list.      Γöé
  19992.   Γöé                         Γöé             ΓöéThese printer drivers must Γöé
  19993.   Γöé                         Γöé             Γöéalready be installed.      Γöé
  19994.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19995.   ΓöéPRINTERSPECIFICFORMAT    ΓöéYES          ΓöéThe printer object spools  Γöé
  19996.   Γöé                         Γöé             Γöéprint jobs in PM_Q_RAW     Γöé
  19997.   Γöé                         Γöé             Γöéformat.                    Γöé
  19998.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  19999.   Γöé                         ΓöéNO           ΓöéThe printer object spools  Γöé
  20000.   Γöé                         Γöé             Γöéprint jobs in PM_Q_STANDARDΓöé
  20001.   Γöé                         Γöé             Γöéformat.                    Γöé
  20002.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20003.   ΓöéPRINTWHILESPOOLING       ΓöéYES          ΓöéThe printing is enabled    Γöé
  20004.   Γöé                         Γöé             Γöéwhile the job is spooling. Γöé
  20005.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20006.   Γöé                         ΓöéNO           ΓöéThe printing is disabled   Γöé
  20007.   Γöé                         Γöé             Γöéwhile the job is spooling. Γöé
  20008.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20009.   ΓöéQSTARTTIME               Γöétime         ΓöéThe time when the printer  Γöé
  20010.   Γöé                         Γöé             Γöéobject starts printing. TheΓöé
  20011.   Γöé                         Γöé             Γöétime format is HH:MM, and  Γöé
  20012.   Γöé                         Γöé             Γöéthe base is a 24-hour      Γöé
  20013.   Γöé                         Γöé             Γöéclock.                     Γöé
  20014.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20015.   ΓöéQSTOPTIME                Γöétime         ΓöéThe time when the printer  Γöé
  20016.   Γöé                         Γöé             Γöéobject is to stop printing.Γöé
  20017.   Γöé                         Γöé             ΓöéThe time format is HH:MM,  Γöé
  20018.   Γöé                         Γöé             Γöéand the base is a 24-hour  Γöé
  20019.   Γöé                         Γöé             Γöéclock.                     Γöé
  20020.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20021.   ΓöéQUEUENAME                Γöéname         ΓöéThe local queue name for   Γöé
  20022.   Γöé                         Γöé             Γöéthe printer object. If a   Γöé
  20023.   Γöé                         Γöé             Γöéqueue name is not          Γöé
  20024.   Γöé                         Γöé             Γöéspecified, one is created  Γöé
  20025.   Γöé                         Γöé             Γöéby the printer object.     Γöé
  20026.   Γöé                         Γöé             ΓöéThe QUEUENAME key will be  Γöé
  20027.   Γöé                         Γöé             Γöéignored if this object has Γöé
  20028.   Γöé                         Γöé             Γöéalready been assigned a    Γöé
  20029.   Γöé                         Γöé             Γöéqueue.                     Γöé
  20030.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20031.   ΓöéQUEUEDRIVER              Γöéqdrvname     ΓöéThe queue driver name. The Γöé
  20032.   Γöé                         Γöé             Γöéqueue driver must already  Γöé
  20033.   Γöé                         Γöé             Γöébe installed.              Γöé
  20034.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20035.   ΓöéSEPARATORFILE            Γöéfilename     ΓöéA separator file that      Γöé
  20036.   Γöé                         Γöé             Γöéprints before each print   Γöé
  20037.   Γöé                         Γöé             Γöéjob.                       Γöé
  20038.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  20039.  
  20040.  Class methods 
  20041.  
  20042.  There are currently no class methods defined for the WPPrinter Workplace class 
  20043.  object. 
  20044.  
  20045.  WPObject class methods. 
  20046.  
  20047.  The following list shows all the class methods overridden by the WPPrinter 
  20048.  class. These methods are overridden to modify the behavior defined by an 
  20049.  ancestor class. 
  20050.  
  20051.    o  wpclsInitData 
  20052.    o  wpclsQueryDefaultHelp 
  20053.    o  wpclsQueryDefaultView 
  20054.    o  wpclsQueryIcon 
  20055.    o  wpclsQueryIconData 
  20056.    o  wpclsQueryStyle 
  20057.    o  wpclsQueryTitle 
  20058.  
  20059.  
  20060. ΓòÉΓòÉΓòÉ 23.33. WPProgram ΓòÉΓòÉΓòÉ
  20061.  
  20062. Class definition file: wppgm.idl 
  20063.  
  20064. Class hierarchy 
  20065.  
  20066. SOMObject
  20067.    WPObject
  20068.       WPAbstract
  20069.          WPProgram
  20070.  
  20071. Description 
  20072.  
  20073. This is the program object class. This class provides an object that points to 
  20074. executable programs and allows the user to run that program by simply 
  20075. double-clicking on the program object. The program can also contain a variety 
  20076. of useful additional parameters, such as the environment for the program and 
  20077. the parameters that are passed to it. An instance of this class can be created 
  20078. as a Workplace object and is created initially by the system in its template 
  20079. form. It has the title "Program" and resides in the "Templates" folder. 
  20080.  
  20081. Other instances of this class initially created by the system include: 
  20082.  
  20083.    o  "DOS Full Screen" in the "Command Prompts" folder 
  20084.    o  "DOS Window" in the "Command Prompts" folder 
  20085.    o  "OS/2 Full Screen" in the "Command Prompts" folder 
  20086.    o  "OS/2 Window" in the "Command Prompts" folder 
  20087.    o  Every object in the "Games" folder 
  20088.    o  Some objects in the "Information" folder 
  20089.    o  Every object in the "Productivity" folder 
  20090.  
  20091.  Instance methods 
  20092.  
  20093.  The following list shows all the WPProgram methods: 
  20094.  
  20095.    o  wpAddProgramAssociationPage 
  20096.    o  wpAddProgramPage 
  20097.    o  wpAddProgramSessionPage 
  20098.    o  wpQueryAssociationFilter 
  20099.    o  wpQueryAssociationType 
  20100.    o  wpQueryProgDetails 
  20101.    o  wpQueryProgramAssociations 
  20102.    o  wpSetAssociationFilter 
  20103.    o  wpSetAssociationType 
  20104.    o  wpSetProgDetails 
  20105.    o  wpSetProgramAssociations 
  20106.    o  wpSetProgIcon 
  20107.  
  20108.  WPObject instance methods 
  20109.  
  20110.  The following list shows all the methods overridden by the WPProgram class. 
  20111.  These methods are overridden in order to modify the behavior defined by an 
  20112.  ancestor class. 
  20113.  
  20114.    o  wpAddSettingsPages 
  20115.    o  wpCopyObject 
  20116.    o  wpCreateAnother 
  20117.    o  wpCreateFromTemplate 
  20118.    o  wpDragOver 
  20119.    o  wpDrop 
  20120.    o  wpInitData 
  20121.    o  wpMenuItemHelpSelected 
  20122.    o  wpMenuItemSelected 
  20123.    o  wpModifyPopupMenu 
  20124.    o  wpMoveObject 
  20125.    o  wpOpen 
  20126.    o  wpQueryDefaultHelp 
  20127.    o  wpQueryIcon 
  20128.    o  wpQueryIconData 
  20129.    o  wpRestoreState 
  20130.    o  wpSaveState 
  20131.    o  wpSetIconData 
  20132.    o  wpSetTitle 
  20133.    o  wpSetup 
  20134.    o  wpUnInitData 
  20135.  
  20136.  wpSetup override by WPProgram 
  20137.  
  20138.  The following table shows the keyname-value pairs added by the WPProgram 
  20139.  class. 
  20140.  
  20141.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  20142.   ΓöéKEYNAME        ΓöéVALUE                    ΓöéDESCRIPTION                   Γöé
  20143.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20144.   ΓöéASSOCFILTER    Γöéfilters                  ΓöéSets the filename filter for  Γöé
  20145.   Γöé               Γöé                         Γöéfiles associated with this    Γöé
  20146.   Γöé               Γöé                         Γöéprogram. Multiple filters are Γöé
  20147.   Γöé               Γöé                         Γöéseparated by commas.          Γöé
  20148.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20149.   ΓöéASSOCTYPE      Γöétype                     ΓöéSets the type of files        Γöé
  20150.   Γöé               Γöé                         Γöéassociated with this program. Γöé
  20151.   Γöé               Γöé                         ΓöéMultiple types are separated  Γöé
  20152.   Γöé               Γöé                         Γöéby commas.                    Γöé
  20153.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20154.   ΓöéEXENAME        Γöéfilename                 ΓöéSets the name of the program. Γöé
  20155.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20156.   ΓöéMAXIMIZED      ΓöéYES                      ΓöéThe program window is         Γöé
  20157.   Γöé               Γöé                         Γöémaximized upon startup.       Γöé
  20158.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20159.   Γöé               ΓöéNO                       ΓöéThe program window is restoredΓöé
  20160.   Γöé               Γöé                         Γöéto normal upon startup.       Γöé
  20161.   Γöé               Γöé                         ΓöéThis is the default setting.  Γöé
  20162.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20163.   ΓöéMINIMIZED      ΓöéYES                      ΓöéThe program window is         Γöé
  20164.   Γöé               Γöé                         Γöéminimized upon startup.       Γöé
  20165.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20166.   Γöé               ΓöéNO                       ΓöéThe program window is restoredΓöé
  20167.   Γöé               Γöé                         Γöéto normal upon startup.       Γöé
  20168.   Γöé               Γöé                         ΓöéThis is the default setting.  Γöé
  20169.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20170.   ΓöéPROGTYPE       ΓöéFULLSCREEN               ΓöéSets the session type to OS/2 Γöé
  20171.   Γöé               Γöé                         Γöéfull-screen mode.             Γöé
  20172.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20173.   Γöé               ΓöéPM                       ΓöéSets the session type to PM.  Γöé
  20174.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20175.   Γöé               ΓöéPROG_30_STD              ΓöéSets the session type to      Γöé
  20176.   Γöé               Γöé                         Γöéstandard compatibility full   Γöé
  20177.   Γöé               Γöé                         Γöéscreen mode.                  Γöé
  20178.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20179.   Γöé               ΓöéPROG_31_ENH              ΓöéSets the session type to      Γöé
  20180.   Γöé               Γöé                         Γöéenhanced compatibility full   Γöé
  20181.   Γöé               Γöé                         Γöéscreen mode.                  Γöé
  20182.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20183.   Γöé               ΓöéPROG_31_ENHSEAMLESSCOMMONΓöéSets the session type to      Γöé
  20184.   Γöé               Γöé                         ΓöéWIN-OS/2* window in the       Γöé
  20185.   Γöé               Γöé                         ΓöéWIN-OS/2 enhanced             Γöé
  20186.   Γöé               Γöé                         Γöécompatibility common session. Γöé
  20187.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20188.   Γöé               ΓöéPROG_31_ENHSEAMLESSVDM   ΓöéSets the session type to      Γöé
  20189.   Γöé               Γöé                         ΓöéWIN-OS/2 window in a separate Γöé
  20190.   Γöé               Γöé                         Γöésession enhanced compatibilityΓöé
  20191.   Γöé               Γöé                         Γöémode.                         Γöé
  20192.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20193.   Γöé               ΓöéPROG_31_STD              ΓöéSets the session type to      Γöé
  20194.   Γöé               Γöé                         Γöéstandard compatibility full   Γöé
  20195.   Γöé               Γöé                         Γöéscreen mode.                  Γöé
  20196.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20197.   Γöé               ΓöéPROG_31_STDSEAMLESSCOMMONΓöéSets the session type to      Γöé
  20198.   Γöé               Γöé                         ΓöéWIN-OS/2 window in the        Γöé
  20199.   Γöé               Γöé                         ΓöéWIN-OS/2 standard             Γöé
  20200.   Γöé               Γöé                         Γöécompatibility common session. Γöé
  20201.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20202.   Γöé               ΓöéPROG_31_STDSEAMLESSVDM   ΓöéSets the session type to      Γöé
  20203.   Γöé               Γöé                         ΓöéWIN-OS/2 window in a separate Γöé
  20204.   Γöé               Γöé                         Γöésession standard compatibilityΓöé
  20205.   Γöé               Γöé                         Γöémode.                         Γöé
  20206.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20207.   Γöé               ΓöéSEPARATEWIN              ΓöéSets the session type to      Γöé
  20208.   Γöé               Γöé                         ΓöéWIN-OS/2 window running in a  Γöé
  20209.   Γöé               Γöé                         Γöéseparate VDM.                 Γöé
  20210.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20211.   Γöé               ΓöéVDM                      ΓöéSets the session type to DOS  Γöé
  20212.   Γöé               Γöé                         Γöéfull-screen.                  Γöé
  20213.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20214.   Γöé               ΓöéWIN                      ΓöéSets the session type to      Γöé
  20215.   Γöé               Γöé                         ΓöéWIN-OS/2 full screen.         Γöé
  20216.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20217.   Γöé               ΓöéWINDOWABLEVIO            ΓöéSets the session type to OS/2 Γöé
  20218.   Γöé               Γöé                         Γöéwindowed.                     Γöé
  20219.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20220.   Γöé               ΓöéWINDOWEDVDM              ΓöéSets the session type to DOS  Γöé
  20221.   Γöé               Γöé                         Γöéwindowed.                     Γöé
  20222.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20223.   Γöé               ΓöéWINDOWEDWIN              ΓöéSets the session type to      Γöé
  20224.   Γöé               Γöé                         ΓöéWIN-OS/2 window.              Γöé
  20225.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20226.   ΓöéNOAUTOCLOSE    ΓöéYES                      ΓöéLeaves the window open when   Γöé
  20227.   Γöé               Γöé                         Γöéthe program terminates.       Γöé
  20228.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20229.   Γöé               ΓöéNO                       ΓöéCloses the window when the    Γöé
  20230.   Γöé               Γöé                         Γöéprogram terminates.           Γöé
  20231.   Γöé               Γöé                         ΓöéThis is the default setting.  Γöé
  20232.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20233.   ΓöéPARAMETERS     Γöéparams                   ΓöéSets the parameters list,     Γöé
  20234.   Γöé               Γöé                         Γöéwhich may include substitutionΓöé
  20235.   Γöé               Γöé                         Γöécharacters.                   Γöé
  20236.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20237.   ΓöéSET            ΓöéXXX=VVV                  ΓöéXXX is an environment         Γöé
  20238.   Γöé               Γöé                         Γöévariable. VVV sets the value  Γöé
  20239.   Γöé               Γöé                         Γöéof the environment variable.  Γöé
  20240.   Γöé               Γöé                         ΓöéThis is also used to specify  Γöé
  20241.   Γöé               Γöé                         ΓöéDOS settings on DOS and       Γöé
  20242.   Γöé               Γöé                         ΓöéWindows** programs.           Γöé
  20243.   Γöé               Γöé                         ΓöéEach variable/value pair must Γöé
  20244.   Γöé               Γöé                         Γöébe separated by a NULL (\0),  Γöé
  20245.   Γöé               Γöé                         Γöéand the entire string must be Γöé
  20246.   Γöé               Γöé                         Γöéterminated by two NULLS       Γöé
  20247.   Γöé               Γöé                         Γöé(\0\0). For exmple: DOS       Γöé
  20248.   Γöé               Γöé                         ΓöéDEVICE=value\0env=value\0\0   Γöé
  20249.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20250.   ΓöéSTARTUPDIR     Γöépathname                 ΓöéSets the working directory.   Γöé
  20251.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  20252.  
  20253.  Example 
  20254.  
  20255.   pszSetupString="PROGTYPE=VDM;EXENAME=C=\EDIT.EXE;
  20256.                   ASSOCFILTER=*.DOC,*.TXT;ASSOCTYPE=Plain Text;
  20257.                   SET DOS_DEVICE=1.SYS,2.SYS;
  20258.                   SET PATH=C:\FRED"
  20259.  
  20260.  Class methods 
  20261.  
  20262.  There are currently no class methods defined for the WPProgram Workplace class 
  20263.  object. 
  20264.  
  20265.  WPObject class methods. 
  20266.  
  20267.  The following list shows all the class methods overridden by the WPProgram 
  20268.  class. These methods are overridden to modify the behavior defined by an 
  20269.  ancestor class. 
  20270.  
  20271.    o  wpclsQueryDefaultHelp 
  20272.    o  wpclsQueryDefaultView 
  20273.    o  wpclsQueryIconData 
  20274.    o  wpclsQueryStyle 
  20275.    o  wpclsQueryTitle 
  20276.  
  20277.  
  20278. ΓòÉΓòÉΓòÉ 23.34. WPProgramFile ΓòÉΓòÉΓòÉ
  20279.  
  20280. Class definition file: wppgmf.idl 
  20281.  
  20282. Class hierarchy 
  20283.  
  20284. SOMObject
  20285.    WPObject
  20286.       WPFileSystem
  20287.          WPDataFile
  20288.             WPProgramFile
  20289.  
  20290. Description 
  20291.  
  20292. This is the program file object class. All executable files are of this class. 
  20293. From the Settings notebook pages for objects of this class, it is possible to 
  20294. set up associations to various data file types (files with .TYPE EAs or file 
  20295. extensions). It is also possible to set up a default working directory and 
  20296. specify parameters to the executable program to be used when it is opened from 
  20297. the shell. An instance of this class can be created as a Workplace object. 
  20298. Instances of this class are created initially by the system for each program 
  20299. file in the system. Each instance has a title corresponding to the file name of 
  20300. the program file it represents and resides in a folder corresponding to the 
  20301. physical directory in which the program file resides. 
  20302.  
  20303. Instance methods 
  20304.  
  20305. The following list shows all the WPProgramFile methods: 
  20306.  
  20307.    o  wpAddProgramAssociationPage 
  20308.    o  wpAddProgramPage 
  20309.    o  wpAddProgramSessionPage 
  20310.    o  wpQueryAssociationFilter 
  20311.    o  wpQueryAssociationType 
  20312.    o  wpQueryProgDetails 
  20313.    o  wpQueryProgramAssociations 
  20314.    o  wpSetAssociationFilter 
  20315.    o  wpSetAssociationType 
  20316.    o  wpSetProgDetails 
  20317.    o  wpSetProgramAssociations 
  20318.    o  wpSetProgIcon 
  20319.  
  20320.  WPObject instance methods 
  20321.  
  20322.  The following list shows all the methods overridden by the WPProgramFile 
  20323.  class. These methods are overridden in order to modify the behavior defined by 
  20324.  an ancestor class. 
  20325.  
  20326.    o  wpAddSettingsPages 
  20327.    o  wpCopyObject 
  20328.    o  wpCreateAnother 
  20329.    o  wpDragOver 
  20330.    o  wpDrop 
  20331.    o  wpFilterPopupMenu 
  20332.    o  wpInitData 
  20333.    o  wpMenuItemHelpSelected 
  20334.    o  wpMenuItemSelected 
  20335.    o  wpModifyPopupMenu 
  20336.    o  wpMoveObject 
  20337.    o  wpOpen 
  20338.    o  wpQueryNameClashOptions 
  20339.    o  wpRestoreState 
  20340.    o  wpSaveState 
  20341.    o  wpSetup 
  20342.  
  20343.  wpSetup override by WPProgramFile 
  20344.  
  20345.  The following table shows the keyname-value pairs added by the WPProgramFile 
  20346.  class. 
  20347.  
  20348.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  20349.   ΓöéKEYNAME        ΓöéVALUE                    ΓöéDESCRIPTION         Γöé
  20350.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20351.   ΓöéASSOCFILTER    Γöéfilters                  ΓöéSets the filename   Γöé
  20352.   Γöé               Γöé                         Γöéfilter for files    Γöé
  20353.   Γöé               Γöé                         Γöéassociated with thisΓöé
  20354.   Γöé               Γöé                         Γöéprogram. Multiple   Γöé
  20355.   Γöé               Γöé                         Γöéfilters are         Γöé
  20356.   Γöé               Γöé                         Γöéseparated by commas.Γöé
  20357.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20358.   ΓöéASSOCTYPE      Γöétype                     ΓöéSets the type of    Γöé
  20359.   Γöé               Γöé                         Γöéfiles associated    Γöé
  20360.   Γöé               Γöé                         Γöéwith this program.  Γöé
  20361.   Γöé               Γöé                         ΓöéMultiple types are  Γöé
  20362.   Γöé               Γöé                         Γöéseparated by commas.Γöé
  20363.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  20364.  
  20365.  Example 
  20366.  
  20367.   pszSetupString="PROGTYPE=VDM;EXENAME=C=\EDIT.EXE;
  20368.                   ASSOCFILTER=*.DOC,*.TXT;ASSOCTYPE=Plain Text"
  20369.  
  20370.  WPDataFile instance methods 
  20371.  
  20372.  The following list shows all the methods overridden by the WPProgramFile 
  20373.  class. These methods are overridden in order to modify the behavior defined by 
  20374.  an ancestor class. 
  20375.  
  20376.    o  wpSetAssociatedFileIcon 
  20377.  
  20378.  Class methods 
  20379.  
  20380.  There are currently no class methods defined for the WPProgramFile Workplace 
  20381.  class object. 
  20382.  
  20383.  WPObject class methods. 
  20384.  
  20385.  The following list shows all the class methods overridden by the WPProgramFile 
  20386.  class. These methods are overridden to modify the behavior defined by an 
  20387.  ancestor class. 
  20388.  
  20389.    o  wpclsQueryDefaultView 
  20390.    o  wpclsQueryIconData 
  20391.    o  wpclsQueryStyle 
  20392.    o  wpclsQueryTitle 
  20393.  
  20394.  
  20395. ΓòÉΓòÉΓòÉ 23.35. WPQdr ΓòÉΓòÉΓòÉ
  20396.  
  20397. Class definition file: wpqdr.idl 
  20398.  
  20399. Class hierarchy 
  20400.  
  20401. SOMObject
  20402.   WPObject
  20403.      WPTransient
  20404.         WPQdr
  20405.  
  20406. Description 
  20407.  
  20408. This is the queue driver object class. An instance of this class is created by 
  20409. the print object in its Settings view. 
  20410.  
  20411. Instance methods 
  20412.  
  20413. There are currently no methods defined for the WPQdr Workplace class object. 
  20414.  
  20415. WPObject instance methods 
  20416.  
  20417. The following list shows all the methods overridden by the WPQdr class. These 
  20418. methods are overridden in order to modify the behavior defined by an ancestor 
  20419. class. 
  20420.  
  20421.    o  wpAddSettingsPages 
  20422.    o  wpDragOver 
  20423.    o  wpDrop 
  20424.    o  wpFilterPopupMenu 
  20425.    o  wpFree 
  20426.    o  wpInitData 
  20427.    o  wpMenuItemHelpSelected 
  20428.    o  wpMenuItemSelected 
  20429.    o  wpModifyPopupMenu 
  20430.    o  wpOpen 
  20431.    o  wpQueryIcon 
  20432.    o  wpQueryTitle 
  20433.    o  wpUnInitData 
  20434.  
  20435.  Class methods 
  20436.  
  20437.  There are currently no class methods defined for the WPQdr Workplace class 
  20438.  object. 
  20439.  
  20440.  WPObject class methods. 
  20441.  
  20442.  The following list shows all the class methods overridden by the WPQdr class. 
  20443.  These methods are overridden to modify the behavior defined by an ancestor 
  20444.  class. 
  20445.  
  20446.    o  wpclsQueryDefaultHelp 
  20447.    o  wpclsQueryDefaultView 
  20448.    o  wpclsQueryIcon 
  20449.    o  wpclsQueryStyle 
  20450.    o  wpclsQueryTitle 
  20451.  
  20452.  
  20453. ΓòÉΓòÉΓòÉ 23.36. WPRootFolder ΓòÉΓòÉΓòÉ
  20454.  
  20455. Class definition file: wprootf.idl 
  20456.  
  20457. Class hierarchy 
  20458.  
  20459. SOMObject
  20460.    WPObject
  20461.       WPFileSystem
  20462.          WPFolder
  20463.             WPRootFolder
  20464.  
  20465. Description 
  20466.  
  20467. The WPRootFolder class represents the root folder (or directory) of a 
  20468. file-system device. Instances of this class exist for every file-system device 
  20469. available. Each instance is paired with a WPDisk object, which represents a 
  20470. particular device. An instance of this class can be created as a Workplace 
  20471. object. 
  20472.  
  20473. Instance methods 
  20474.  
  20475. There are no methods defined in the WPRootFolder Workplace object class. 
  20476.  
  20477. WPFileSystem instance methods 
  20478.  
  20479. The following list shows the instance methods overridden by the WPRootFolder 
  20480. class. These methods are overridden in order to modify the behavior defined by 
  20481. an ancestor class. 
  20482.  
  20483.    o  wpAddFile1Page 
  20484.    o  wpAddFile2Page 
  20485.    o  wpAddFile3Page 
  20486.  
  20487.  WPObject instance methods 
  20488.  
  20489.  The following list shows the instance methods overridden by the WPRootFolder 
  20490.  class. These methods are overridden in order to modify the behavior defined by 
  20491.  an ancestor class. 
  20492.  
  20493.    o  wpFilterPopupMenu 
  20494.    o  wpOpen 
  20495.    o  wpRefresh 
  20496.    o  wpRestoreState 
  20497.    o  wpSaveState 
  20498.    o  wpSetDefaultView 
  20499.    o  wpSetTitle 
  20500.  
  20501.  Class methods 
  20502.  
  20503.  There are currently no class methods defined for the WPRootFolder Workplace 
  20504.  class object. 
  20505.  
  20506.  WPObject class methods 
  20507.  
  20508.  The following list shows all the class methods overridden by the WPRootFolder 
  20509.  class. These methods are overridden to modify the behavior defined by an 
  20510.  ancestor class. 
  20511.  
  20512.    o  wpclsInitData 
  20513.    o  wpclsQueryDefaultView 
  20514.    o  wpclsQueryStyle 
  20515.    o  wpclsUnInitData 
  20516.  
  20517.  
  20518. ΓòÉΓòÉΓòÉ 23.37. WPRPrinter ΓòÉΓòÉΓòÉ
  20519.  
  20520. Class definition file: wprprint.idl 
  20521.  
  20522. Class hierarchy 
  20523.  
  20524. SOMObject
  20525.   WPObject
  20526.      WPAbstract
  20527.         WPPrinter
  20528.            WPRPrinter
  20529.  
  20530. Description 
  20531.  
  20532. This is the remote (network) printer object class. An instance of this class 
  20533. represents a print resource on another computer or server. For proper behavior, 
  20534. a network must be installed. Each instance has a title corresponding to the 
  20535. remote resource and resides on the desktop. 
  20536.  
  20537. Instance methods 
  20538.  
  20539. The following list shows all the WPRPrinter methods: 
  20540.  
  20541.    o  wpAddNetworkPage 
  20542.    o  wpQueryLocalAlias 
  20543.    o  wpQueryNetworkId 
  20544.  
  20545.  WPObject instance methods 
  20546.  
  20547.  The following list shows all the methods overridden by the WPRPrinter class. 
  20548.  These methods are overridden in order to modify the behavior defined by an 
  20549.  ancestor class. 
  20550.  
  20551.    o  wpAddSettingsPages 
  20552.    o  wpCopiedFromTemplate 
  20553.    o  wpCopyObject 
  20554.    o  wpCreateFromTemplate 
  20555.    o  wpDragOver 
  20556.    o  wpDrop 
  20557.    o  wpFilterPopupMenu 
  20558.    o  wpInitData 
  20559.    o  wpMenuItemHelpSelected 
  20560.    o  wpMenuItemSelected 
  20561.    o  wpModifyPopupMenu 
  20562.    o  wpOpen 
  20563.    o  wpRestoreState 
  20564.    o  wpSaveState 
  20565.    o  wpSetup 
  20566.    o  wpUnInitData 
  20567.  
  20568.  wpSetup override by WPRPrinter 
  20569.  
  20570.  The following table shows the keyname-value pairs added by the WPRPrinter 
  20571.  class. 
  20572.  
  20573.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  20574.   ΓöéKEYNAME          ΓöéVALUE            ΓöéDESCRIPTION               Γöé
  20575.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20576.   ΓöéICON             Γöéfilename         ΓöéThe name of the .ICO file Γöé
  20577.   Γöé                 Γöé                 Γöéto be used as the icon forΓöé
  20578.   Γöé                 Γöé                 Γöéthis object.              Γöé
  20579.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20580.   ΓöéNETID            Γöé<network>        ΓöéThe full name of the      Γöé
  20581.   Γöé                 Γöé                 Γöéprinter resource as it is Γöé
  20582.   Γöé                 Γöé                 Γöéknown to the network. For Γöé
  20583.   Γöé                 Γöé                 Γöéexample:                  Γöé
  20584.   Γöé                 Γöé                 ΓöéLS:\\DEPTSERV\DEPTPRNT    Γöé
  20585.   Γöé                 Γöé                 ΓöéThe NETID key will be     Γöé
  20586.   Γöé                 Γöé                 Γöéignored and FALSE will be Γöé
  20587.   Γöé                 Γöé                 Γöéreturned if this object   Γöé
  20588.   Γöé                 Γöé                 Γöéhas already been assigned Γöé
  20589.   Γöé                 Γöé                 Γöéa NetId.                  Γöé
  20590.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20591.   ΓöéREFRESHINTERVAL  Γöévalue            ΓöéTime interval, in seconds,Γöé
  20592.   Γöé                 Γöé                 Γöéwhen the printer object isΓöé
  20593.   Γöé                 Γöé                 Γöérefreshed.                Γöé
  20594.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20595.   ΓöéSHOWJOBS         ΓöéALL              ΓöéAll jobs are displayed in Γöé
  20596.   Γöé                 Γöé                 Γöéthe printer object.       Γöé
  20597.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20598.   Γöé                 ΓöéOWN              ΓöéOnly the current user's   Γöé
  20599.   Γöé                 Γöé                 Γöéjobs are displayed in the Γöé
  20600.   Γöé                 Γöé                 Γöéprinter object.           Γöé
  20601.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  20602.  
  20603.  Class methods 
  20604.  
  20605.  There are currently no class methods defined for the WPRPrinter Workplace 
  20606.  class object. 
  20607.  
  20608.  WPObject class methods. 
  20609.  
  20610.  The following list shows all the class methods overridden by the WPRPrinter 
  20611.  class. These methods are overridden to modify the behavior defined by an 
  20612.  ancestor class. 
  20613.  
  20614.    o  wpclsQueryIcon 
  20615.    o  wpclsQueryIconData 
  20616.    o  wpclsQueryStyle 
  20617.    o  wpclsQueryTitle 
  20618.  
  20619.  
  20620. ΓòÉΓòÉΓòÉ 23.38. WPSchemePalette ΓòÉΓòÉΓòÉ
  20621.  
  20622. Class definition file: wpscheme.idl 
  20623.  
  20624. Class hierarchy 
  20625.  
  20626. SOMObject
  20627.    WPObject
  20628.       WPAbstract
  20629.           WPPalette
  20630.              WPSchemePalette
  20631.  
  20632. Description 
  20633.  
  20634. This is the scheme palette object class. An instance of this class can be 
  20635. created as a Workplace object. An instance of this class is created initially 
  20636. by the system. It has the title "Scheme Palette" and resides in the "System 
  20637. Setup" folder. 
  20638.  
  20639. Instance methods 
  20640.  
  20641. There are currently no methods defined for the WPSchemePalette Workplace class 
  20642. object. 
  20643.  
  20644. WPObject instance methods 
  20645.  
  20646. The following list shows all the methods overridden by the WPSchemePalette 
  20647. class. These methods are overridden in order to modify the behavior defined by 
  20648. an ancestor class. 
  20649.  
  20650.    o  wpMenuItemHelpSelected 
  20651.    o  wpSetup 
  20652.  
  20653.  wpSetup override by WPSchemePalette 
  20654.  
  20655.  The following are the keyname-value pairs added by the WPSchemePalette class. 
  20656.  
  20657.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  20658.   ΓöéKEYNAME   ΓöéVALUE       ΓöéDESCRIPTION                           Γöé
  20659.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20660.   ΓöéAUTOSETUP ΓöéYES         ΓöéThis automatically sets the palette   Γöé
  20661.   Γöé          Γöé            Γöévalues to the original system palette Γöé
  20662.   Γöé          Γöé            Γöésettings.                             Γöé
  20663.   Γöé          Γöé            ΓöéThis is the default setting.          Γöé
  20664.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20665.   Γöé          ΓöéNO          ΓöéThis does not set palette values to   Γöé
  20666.   Γöé          Γöé            Γöéthe original system palette settings. Γöé
  20667.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20668.   ΓöéSCHEMES   ΓöéSchemetype  ΓöéThese are the initial schemes for eachΓöé
  20669.   Γöé          Γöé            Γöécell in the scheme palette. The valuesΓöé
  20670.   Γöé          Γöé            Γöéfor each cell are separated by commas.Γöé
  20671.   Γöé          Γöé            ΓöéThis is equivalent to calling the     Γöé
  20672.   Γöé          Γöé            ΓöéwpSetupCell instance method. The      Γöé
  20673.   Γöé          Γöé            Γöéschemetype value is presented as the  Γöé
  20674.   Γöé          Γöé            Γöéscheme name followed by a colon,      Γöé
  20675.   Γöé          Γöé            Γöéfollowed by an application name in theΓöé
  20676.   Γöé          Γöé            ΓöéINI file.                             Γöé
  20677.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20678.   ΓöéXCELLCOUNTΓöécolumns     ΓöéNumber of X cells as decimal digits.  Γöé
  20679.   Γöé          Γöé            ΓöéIf not specified, defaults to 4.      Γöé
  20680.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20681.   ΓöéYCELLCOUNTΓöérows        ΓöéNumber of Y cells as decimal digits.  Γöé
  20682.   Γöé          Γöé            ΓöéIf not specified, defaults to 7.      Γöé
  20683.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  20684.  
  20685.  Example 
  20686.  
  20687.   pszSetupString="SCHEMES=Marble:PM_Marble_Colors,Southwest:PM_Southwest_Colors,
  20688.                   Khaki:PM_Khaki_Colors"
  20689.  
  20690.  WPPalette methods 
  20691.  
  20692.  The following list shows all the methods overridden by the WPSchemePalette 
  20693.  class. These methods are overridden in order to modify the behavior defined by 
  20694.  an ancestor class. 
  20695.  
  20696.    o  wpDragCell 
  20697.    o  wpEditCell 
  20698.    o  wpPaintCell 
  20699.    o  wpQueryPaletteHelp 
  20700.    o  wpSetupCell 
  20701.  
  20702.  Class methods 
  20703.  
  20704.  There are currently no class methods defined for the WPSchemePalette Workplace 
  20705.  class object. 
  20706.  
  20707.  WPObject class methods 
  20708.  
  20709.  The following list shows all the class methods overridden by the 
  20710.  WPSchemePalette class. These methods are overridden to modify the behavior 
  20711.  defined by an ancestor class. 
  20712.  
  20713.    o  wpclsQueryDefaultHelp 
  20714.    o  wpclsQueryIconData 
  20715.    o  wpclsQueryStyle 
  20716.    o  wpclsQueryTitle 
  20717.  
  20718.  WPPalette class methods 
  20719.  
  20720.  The following list shows all the class methods overridden by the 
  20721.  WPSchemePalette class. These methods are overridden to modify the behavior 
  20722.  defined by an ancestor class. 
  20723.  
  20724.    o  wpclsQueryEditString 
  20725.  
  20726.  
  20727. ΓòÉΓòÉΓòÉ 23.39. WPServer ΓòÉΓòÉΓòÉ
  20728.  
  20729. Class definition file: wpserver.idl 
  20730.  
  20731. Class hierarchy 
  20732.  
  20733. SOMObject
  20734.    WPObject
  20735.       WPFileSystem
  20736.          WPFolder
  20737.              WPServer
  20738.  
  20739. Description This class is specific to version 3, or higher, of the OS/2 
  20740. operating system. 
  20741.  
  20742. This is the server object class. An instances of this class can be created as a 
  20743. Workplace object. Instances of this class are created for every server in a 
  20744. WPNetgrp folder that is accessible to the user. 
  20745.  
  20746. Instance methods 
  20747.  
  20748. The following list shows all the WPServer methods. 
  20749.  
  20750.    o  wpAddServerPage 
  20751.    o  wpQuerySrvrIdentity 
  20752.  
  20753.  WPFileSystem instance methods 
  20754.  
  20755.  The following list shows all the methods overridden by the WPServer class. 
  20756.  These methods are overridden in order to modify the behavior defined by an 
  20757.  ancestor class. 
  20758.  
  20759.    o  wpAddFile1Page 
  20760.    o  wpAddFile2Page 
  20761.    o  wpAddFile3Page 
  20762.  
  20763.  WPFolder instance methods 
  20764.  
  20765.  The following list shows all the methods overridden by the WPServer class. 
  20766.  These methods are overridden in order to modify the behavior defined by an 
  20767.  ancestor class. 
  20768.  
  20769.    o  wpAddFolderIncludePage 
  20770.    o  wpDeleteContents 
  20771.    o  wpPopulate 
  20772.  
  20773.  WPObject instance methods 
  20774.  
  20775.  The following list shows all the methods overridden by the WPServer class. 
  20776.  These methods are overridden in order to modify the behavior defined by an 
  20777.  ancestor class. 
  20778.  
  20779.    o  wpAddObjectGeneralPage 
  20780.    o  wpAddSettingsPages 
  20781.    o  wpFilterPopupMenu 
  20782.    o  wpInitData 
  20783.    o  wpMenuItemHelpSelected 
  20784.    o  wpMenuItemSelected 
  20785.    o  wpModifyPopupMenu 
  20786.    o  wpOpen 
  20787.    o  wpRestoreState 
  20788.    o  wpSaveState 
  20789.    o  wpSetup 
  20790.    o  wpUnInitData 
  20791.  
  20792.  wpSetup override by WPServer 
  20793.  
  20794.  The following table shows the keyname-value pairs added by the WPServer class. 
  20795.  
  20796.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  20797.   ΓöéKEYNAME     ΓöéVALUE          ΓöéDESCRIPTION                      Γöé
  20798.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20799.   ΓöéSRVCOMMENT  Γöécomment string ΓöéThis sets the object's title to  Γöé
  20800.   Γöé            Γöé               Γöéthe specified comment string.    Γöé
  20801.   Γöé            Γöé               ΓöéThis is equivalent to calling    Γöé
  20802.   Γöé            Γöé               ΓöéwpSetTitle.                      Γöé
  20803.   Γöé            Γöé               ΓöéNote:                            Γöé
  20804.   Γöé            Γöé               ΓöéThe value specified for the TITLEΓöé
  20805.   Γöé            Γöé               Γöékeyword will override this       Γöé
  20806.   Γöé            Γöé               Γöécomment.                         Γöé
  20807.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  20808.  
  20809.  Class methods 
  20810.  
  20811.  There are currently no class methods defined for the WPServer Workplace class 
  20812.  object. 
  20813.  
  20814.  WPObject class methods. 
  20815.  
  20816.  The following list shows all the class methods overridden by the WPServer 
  20817.  class. These methods are overridden to modify the behavior defined by an 
  20818.  ancestor class. 
  20819.  
  20820.    o  wpclsQueryDefaultHelp 
  20821.    o  wpclsQueryIconData 
  20822.    o  wpclsQueryIconDataN 
  20823.    o  wpclsQueryStyle 
  20824.    o  wpclsQueryTitle 
  20825.  
  20826.  
  20827. ΓòÉΓòÉΓòÉ 23.40. WPShadow ΓòÉΓòÉΓòÉ
  20828.  
  20829. Class definition file: wpshadow.idl 
  20830.  
  20831. Class hierarchy 
  20832.  
  20833. SOMObject
  20834.    WPObject
  20835.       WPAbstract
  20836.          WPShadow
  20837.  
  20838. Description 
  20839.  
  20840. This is the shadow object class, instances of which provide a persistent link 
  20841. or reference to any other object. This is achieved by storing away the location 
  20842. and identity of the object to which it is linked and then rerouting all 
  20843. requests for help, context menus, and open views to the object to which it is 
  20844. linked. 
  20845.  
  20846. Instance methods 
  20847.  
  20848. The following list shows all the WPShadow methods: 
  20849.  
  20850.    o  wpQueryShadowedObject 
  20851.    o  wpSetLinkToObject 
  20852.    o  wpSetShadowTitle 
  20853.  
  20854.  WPObject instance methods 
  20855.  
  20856.  The following list shows all the methods overridden by the WPShadow class. 
  20857.  These methods are overridden in order to modify the behavior defined by an 
  20858.  ancestor class. 
  20859.  
  20860.    o  wpConfirmDelete 
  20861.    o  wpConfirmObjectTitle 
  20862.    o  wpCreateFromTemplate 
  20863.    o  wpCreateShadowObject 
  20864.    o  wpDraggedOverObject 
  20865.    o  wpDragOver 
  20866.    o  wpDrop 
  20867.    o  wpDroppedOnObject 
  20868.    o  wpFilterPopupMenu 
  20869.    o  wpFormatDragItem 
  20870.    o  wpInitData 
  20871.    o  wpInsertPopupMenuItems 
  20872.    o  wpMenuItemHelpSelected 
  20873.    o  wpMenuItemSelected 
  20874.    o  wpModifyPopupMenu 
  20875.    o  wpOpen 
  20876.    o  wpPrintObject 
  20877.    o  wpQueryDefaultHelp 
  20878.    o  wpQueryNameClashOptions 
  20879.    o  wpQueryStyle 
  20880.    o  wpQueryTitle 
  20881.    o  wpRestoreState 
  20882.    o  wpSaveState 
  20883.    o  wpSetTitle 
  20884.    o  wpSetup 
  20885.    o  wpUnInitData 
  20886.    o  wpViewObject 
  20887.  
  20888.  wpSetup override by WPShadow 
  20889.  
  20890.  The following table shows the keyname-value pairs added by the WPShadow class. 
  20891.  
  20892.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  20893.   ΓöéKEYNAME        ΓöéVALUE          ΓöéDESCRIPTION                   Γöé
  20894.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  20895.   ΓöéSHADOWID       Γöé<name> or file ΓöéThis specifies the object for Γöé
  20896.   Γöé               Γöéname           Γöéwhich this object is a shadow.Γöé
  20897.   Γöé               Γöé               ΓöéThe value for this keyname is Γöé
  20898.   Γöé               Γöé               Γöéan object's id (OBJECTID) or aΓöé
  20899.   Γöé               Γöé               Γöéfully qualified pathname of a Γöé
  20900.   Γöé               Γöé               Γöédirectory, program file, or   Γöé
  20901.   Γöé               Γöé               Γöédata file.                    Γöé
  20902.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  20903.  
  20904.  Class methods 
  20905.  
  20906.  WPObject class methods 
  20907.  
  20908.  There are currently no class methods defined for the WPShadow Workplace class 
  20909.  object. 
  20910.  
  20911.  The following list shows all the class methods overridden by the WPShadow 
  20912.  class. These methods are overridden to modify the behavior defined by an 
  20913.  ancestor class. 
  20914.  
  20915.    o  wpclsQueryIconData 
  20916.    o  wpclsQueryStyle 
  20917.    o  wpclsQueryTitle 
  20918.  
  20919.  
  20920. ΓòÉΓòÉΓòÉ 23.41. WPSharedDir ΓòÉΓòÉΓòÉ
  20921.  
  20922. Class definition file: wpshdir.idl 
  20923.  
  20924. Class hierarchy 
  20925.  
  20926. SOMObject
  20927.    WPObject
  20928.       WPFileSystem
  20929.          WPFolder
  20930.              WPSharedDir
  20931.  
  20932. Description This class is specific to version 3, or higher, of the OS/2 
  20933. operating system. 
  20934.  
  20935. This is the shared directory object class. An instances of this class can be 
  20936. created as a Workplace object. Instances of this class are created for every 
  20937. shared directory in a WPServer folder that is accessible to the user. 
  20938.  
  20939. Instance methods 
  20940.  
  20941. The following list shows all the WPSharedDir methods. 
  20942.  
  20943.    o  wpAddResourcePage 
  20944.  
  20945.  WPFileSystem instance methods 
  20946.  
  20947.  The following list shows all the methods overridden by the WPSharedDir class. 
  20948.  These methods are overridden in order to modify the behavior defined by an 
  20949.  ancestor class. 
  20950.  
  20951.    o  wpAddFile1Page 
  20952.    o  wpAddFile2Page 
  20953.    o  wpAddFile3Page 
  20954.  
  20955.  WPFolder instance methods 
  20956.  
  20957.  The following list shows all the methods overridden by the WPSharedDir class. 
  20958.  These methods are overridden in order to modify the behavior defined by an 
  20959.  ancestor class. 
  20960.  
  20961.    o  wpAddFolderIncludePage 
  20962.    o  wpPopulate 
  20963.  
  20964.  WPObject instance methods 
  20965.  
  20966.  The following list shows all the methods overridden by the WPSharedDir class. 
  20967.  These methods are overridden in order to modify the behavior defined by an 
  20968.  ancestor class. 
  20969.  
  20970.    o  wpAddObjectGeneralPage 
  20971.    o  wpAddSettingsPages 
  20972.    o  wpFilterPopupMenu 
  20973.    o  wpInitData 
  20974.    o  wpMenuItemHelpSelected 
  20975.    o  wpMenuItemSelected 
  20976.    o  wpModifyPopupMenu 
  20977.    o  wpOpen 
  20978.    o  wpRestoreState 
  20979.    o  wpSaveState 
  20980.  
  20981.  Class methods 
  20982.  
  20983.  There are currently no class methods defined for the WPSharedDir Workplace 
  20984.  class object. 
  20985.  
  20986.  WPObject class methods. 
  20987.  
  20988.  The following list shows all the class methods overridden by the WPSharedDir 
  20989.  class. These methods are overridden to modify the behavior defined by an 
  20990.  ancestor class. 
  20991.  
  20992.    o  wpclsQueryDefaultHelp 
  20993.    o  wpclsQueryDefaultView 
  20994.    o  wpclsQueryIconData 
  20995.    o  wpclsQueryStyle 
  20996.    o  wpclsQueryTitle 
  20997.  
  20998.  
  20999. ΓòÉΓòÉΓòÉ 23.42. WPShredder ΓòÉΓòÉΓòÉ
  21000.  
  21001. Class definition file: wpshred.idl 
  21002.  
  21003. Class hierarchy 
  21004.  
  21005. SOMObject
  21006.    WPObject
  21007.       WPAbstract
  21008.          WPShredder
  21009.  
  21010. Description 
  21011.  
  21012. This is the shredder device object class. An instance of this class can be 
  21013. created as a Workplace object. An instance of this class is created initially 
  21014. by the system. It has the title "shredder" and resides on the desktop. 
  21015.  
  21016. Instance methods 
  21017.  
  21018. There are currently no methods defined for the WPShadow Workplace class object. 
  21019.  
  21020. WPObject instance methods 
  21021.  
  21022. The following list shows all the methods overridden by the WPShredder class. 
  21023. These methods are overridden in order to modify the behavior defined by an 
  21024. ancestor class. 
  21025.  
  21026.    o  wpAddObjectWindowPage 
  21027.    o  wpDragOver 
  21028.    o  wpDrop 
  21029.    o  wpFilterPopupMenu 
  21030.  
  21031.  Class methods 
  21032.  
  21033.  There are currently no class methods defined for the WPShredder Workplace 
  21034.  class object. 
  21035.  
  21036.  WPObject class methods. 
  21037.  
  21038.  The following list shows all the class methods overridden by the WPShredder 
  21039.  class. These methods are overridden to modify the behavior defined by an 
  21040.  ancestor class. 
  21041.  
  21042.    o  wpclsQueryDefaultHelp 
  21043.    o  wpclsQueryDefaultView 
  21044.    o  wpclsQueryIconData 
  21045.    o  wpclsQueryStyle 
  21046.    o  wpclsQueryTitle 
  21047.  
  21048.  
  21049. ΓòÉΓòÉΓòÉ 23.43. WPSound ΓòÉΓòÉΓòÉ
  21050.  
  21051. Class definition file: wpsound.idl 
  21052.  
  21053. Class hierarchy 
  21054.  
  21055. SOMObject
  21056.    WPObject
  21057.       WPAbstract
  21058.          WPSound
  21059.  
  21060. Description 
  21061.  
  21062. This is the sound object class. An instance of this class can be created as a 
  21063. Workplace object. An instance of this class is created initially by the system. 
  21064. It has the title "Sound" and resides in the "System Setup" folder. 
  21065.  
  21066. Instance methods 
  21067.  
  21068. The following list shows all the WPSound methods: 
  21069.  
  21070.    o  wpAddSoundWarningBeepPage 
  21071.  
  21072.  WPObject instance methods 
  21073.  
  21074.  The following list shows all the methods overridden by the WPSound class. 
  21075.  These methods are overridden in order to modify the behavior defined by an 
  21076.  ancestor class. 
  21077.  
  21078.    o  wpAddObjectWindowPage 
  21079.    o  wpAddSettingsPages 
  21080.    o  wpFilterPopupMenu 
  21081.  
  21082.  Class methods 
  21083.  
  21084.  There are currently no class methods defined for the WPSound Workplace class 
  21085.  object. 
  21086.  
  21087.  WPObject class methods 
  21088.  
  21089.  The following list shows all the class methods overridden by the WPSound 
  21090.  class. These methods are overridden to modify the behavior defined by an 
  21091.  ancestor class. 
  21092.  
  21093.    o  wpclsQueryDefaultHelp 
  21094.    o  wpclsQueryDefaultView 
  21095.    o  wpclsQueryIconData 
  21096.    o  wpclsQueryStyle 
  21097.    o  wpclsQueryTitle 
  21098.  
  21099.  
  21100. ΓòÉΓòÉΓòÉ 23.44. WPSpecialNeeds ΓòÉΓòÉΓòÉ
  21101.  
  21102. Class definition file: wpspneed.idl 
  21103.  
  21104. Class hierarchy 
  21105.  
  21106. SOMObject
  21107.    WPObject
  21108.       WPAbstract
  21109.          WPSpecialNeeds
  21110.  
  21111. Description 
  21112.  
  21113. This is the special needs object class. An instance of this class can be 
  21114. created as a Workplace object. An instance of this class is created initially 
  21115. by the system when the keyboard special needs mode is activated via the 
  21116. keyboard object settings. It has the title "Special Needs" and resides on the 
  21117. desktop. 
  21118.  
  21119. Instance methods 
  21120.  
  21121. There are currently no methods defined for the WPSpecialNeeds Workplace object 
  21122. class. 
  21123.  
  21124. WPObject instance methods 
  21125.  
  21126. The following list shows all the methods overridden by the WPSpecialNeeds 
  21127. class. These methods are overridden in order to modify the behavior defined by 
  21128. an ancestor class. 
  21129.  
  21130.    o  wpFilterPopupMenu 
  21131.  
  21132.  Class methods 
  21133.  
  21134.  There are currently no class methods defined for the WPSpecialNeeds Workplace 
  21135.  class object. 
  21136.  
  21137.  WPObject class methods. 
  21138.  
  21139.  The following list shows all the class methods overridden by the 
  21140.  WPSpecialNeeds class. These methods are overridden to modify the behavior 
  21141.  defined by an ancestor class. 
  21142.  
  21143.    o  wpclsQueryDefaultHelp 
  21144.    o  wpclsQueryIconData 
  21145.    o  wpclsQueryTitle 
  21146.  
  21147.  
  21148. ΓòÉΓòÉΓòÉ 23.45. WPSpool ΓòÉΓòÉΓòÉ
  21149.  
  21150. Class definition file: wpspool.idl 
  21151.  
  21152. Class hierarchy 
  21153.  
  21154. SOMObject
  21155.    WPObject
  21156.       WPAbstract
  21157.          WPSpool
  21158.  
  21159. Description 
  21160.  
  21161. This is the spooler object class. An instance of this class is created 
  21162. initially by the system. It has the title "Spooler" and resides in the "System 
  21163. Setup" folder. 
  21164.  
  21165.    o  wpAddSetPathPage 
  21166.    o  wpAddSetPriorityPage 
  21167.  
  21168.  Instance methods 
  21169.  
  21170.  There are currently no class methods defined for the WPSpool Workplace class 
  21171.  object. 
  21172.  
  21173.  WPObject instance methods 
  21174.  
  21175.  The following list shows all the methods overridden by the WPSpool class. 
  21176.  These methods are overridden in order to modify the behavior defined by an 
  21177.  ancestor class. 
  21178.  
  21179.    o  wpAddSettingsPages 
  21180.    o  wpCopyObject 
  21181.    o  wpDragOver 
  21182.    o  wpDrop 
  21183.    o  wpFilterPopupMenu 
  21184.    o  wpInitData 
  21185.    o  wpMenuItemHelpSelected 
  21186.    o  wpMenuItemSelected 
  21187.    o  wpModifyPopupMenu 
  21188.    o  wpOpen 
  21189.    o  wpQueryIcon 
  21190.    o  wpQueryTitle 
  21191.    o  wpRestoreState 
  21192.    o  wpSaveState 
  21193.    o  wpUnInitData 
  21194.  
  21195.  Class methods 
  21196.  
  21197.  There are currently no class methods defined for the WPSpool Workplace class 
  21198.  object. 
  21199.  
  21200.  WPObject class methods. 
  21201.  
  21202.  The following list shows all the class methods overridden by the WPSpool 
  21203.  class. These methods are overridden to modify the behavior defined by an 
  21204.  ancestor class. 
  21205.  
  21206.    o  wpclsQueryDefaultHelp 
  21207.    o  wpclsQueryDefaultView 
  21208.    o  wpclsQueryIcon 
  21209.    o  wpclsQueryIconData 
  21210.    o  wpclsQueryStyle 
  21211.    o  wpclsQueryTitle 
  21212.  
  21213.  
  21214. ΓòÉΓòÉΓòÉ 23.46. WPStartup ΓòÉΓòÉΓòÉ
  21215.  
  21216. Class definition file: wpstart.idl 
  21217.  
  21218. Class hierarchy 
  21219.  
  21220. SOMObject
  21221.    WPObject
  21222.       WPFileSystem
  21223.          WPFolder
  21224.              WPStartup
  21225.  
  21226. Description 
  21227.  
  21228. This is the startup folder object class. Any object in the startup folder will 
  21229. be automatically opened every time the system is restarted. Any object in the 
  21230. system that is open at shutdown time will be automatically reopened when the 
  21231. system is restarted. The startup folder is used to automatically open (start) 
  21232. objects that are not necessarily open (running) when the system is shut down. 
  21233. This usually includes things such as a batch file that initializes the network 
  21234. and then terminates. An instance of this class can be created as a Workplace 
  21235. object and is created initially by the system. It has the title "Startup" and 
  21236. resides in the "OS/2 System" folder. 
  21237.  
  21238. Instance methods 
  21239.  
  21240. There are currently no methods defined for the WPStartup Workplace object 
  21241. class. 
  21242.  
  21243. WPObject instance methods 
  21244.  
  21245. The following list shows all the methods overridden by the WPStartup class. 
  21246. These methods are overridden in order to modify the behavior defined by an 
  21247. ancestor class. 
  21248.  
  21249.    o  wpFree 
  21250.    o  wpRestoreState 
  21251.    o  wpSetupOnce 
  21252.  
  21253.  Class methods 
  21254.  
  21255.  There are currently no class methods defined for the WPStartup Workplace class 
  21256.  object. 
  21257.  
  21258.  WPObject class methods. 
  21259.  
  21260.  The following list shows all the class methods overridden by the WPStartup 
  21261.  class. These methods are overridden to modify the behavior defined by an 
  21262.  ancestor class. 
  21263.  
  21264.    o  wpclsQueryDefaultHelp 
  21265.    o  wpclsQueryIconData 
  21266.    o  wpclsQueryStyle 
  21267.    o  wpclsQueryTitle 
  21268.  
  21269.  
  21270. ΓòÉΓòÉΓòÉ 23.47. WPSystem ΓòÉΓòÉΓòÉ
  21271.  
  21272. Class definition file: wpsystem.idl 
  21273.  
  21274. Class hierarchy 
  21275.  
  21276. SOMObject
  21277.    WPObject
  21278.       WPAbstract
  21279.          WPSystem
  21280.  
  21281. Description 
  21282.  
  21283. This is the system object class. An instance of this class can be created as a 
  21284. Workplace object and is created initially by the system. It has the title 
  21285. "System" and resides in the "System Setup" folder. 
  21286.  
  21287. Instance methods 
  21288.  
  21289. The following list shows all the WPSystem class methods: 
  21290.  
  21291.    o  wpAddDMQSDisplayTypePage 
  21292.    o  wpAddSysFdrSelfClosePage 
  21293.    o  wpAddSysFdrDefViewPage 
  21294.    o  wpAddSystemConfirmationPage 
  21295.    o  wpAddSystemInputPage 
  21296.    o  wpAddSystemLogoPage 
  21297.    o  wpAddSystemPrintScreenPage 
  21298.    o  wpAddSystemScreenPage 
  21299.    o  wpAddSystemWindowPage 
  21300.    o  wpAddTitleConfirmationPage 
  21301.  
  21302.  WPObject instance methods 
  21303.  
  21304.  The following list shows all the methods overridden by the WPSystem class. 
  21305.  These methods are overridden in order to modify the behavior defined by an 
  21306.  ancestor class. 
  21307.  
  21308.    o  wpAddObjectWindowPage 
  21309.    o  wpAddSettingsPages 
  21310.    o  wpFilterPopupMenu 
  21311.    o  wpRestoreState 
  21312.    o  wpSaveState 
  21313.  
  21314.  Class methods 
  21315.  
  21316.  There are currently no class methods defined for the WPSystem Workplace class 
  21317.  object. 
  21318.  
  21319.  WPAbstract class methods. 
  21320.  
  21321.  The following list shows all the class methods overridden by the WPSystem 
  21322.  class. These methods are overridden to modify the behavior defined by an 
  21323.  ancestor class. 
  21324.  
  21325.    o  wpclsQuerySetting 
  21326.    o  wpclsSetSetting 
  21327.  
  21328.  WPObject class methods. 
  21329.  
  21330.  The following list shows all the class methods overridden by the WPSystem 
  21331.  class. These methods are overridden to modify the behavior defined by an 
  21332.  ancestor class. 
  21333.  
  21334.    o  wpclsQueryDefaultHelp 
  21335.    o  wpclsQueryDefaultView 
  21336.    o  wpclsQueryIconData 
  21337.    o  wpclsQueryStyle 
  21338.    o  wpclsQueryTitle 
  21339.  
  21340.  wpclsSetSettings override by wpSystem 
  21341.  
  21342.  The defaults can be specified on a wpclsSetSetting invocation to request that 
  21343.  the setting be set to its default value. wpclsQuerySetting, however, never 
  21344.  returns an xxxx_DEFAULT value. 
  21345.  
  21346.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  21347.   ΓöéSetting                    ΓöéValue                  ΓöéDescription         Γöé
  21348.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21349.   ΓöéAnimation                  ΓöéANIMATION_ON           ΓöéEnables animation   Γöé
  21350.   Γöé                           Γöé                       Γöéwhen a window is    Γöé
  21351.   Γöé                           Γöé                       Γöécreated or          Γöé
  21352.   Γöé                           Γöé                       Γöémaximized.          Γöé
  21353.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21354.   Γöé                           ΓöéANIMATION_OFF          ΓöéDisables animation  Γöé
  21355.   Γöé                           Γöé                       Γöéwhen a window is    Γöé
  21356.   Γöé                           Γöé                       Γöécreated or          Γöé
  21357.   Γöé                           Γöé                       Γöémaximized.          Γöé
  21358.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21359.   Γöé                           ΓöéANIMATION_DEFAULT      ΓöéSets the default    Γöé
  21360.   Γöé                           Γöé                       Γöéwindow animation    Γöé
  21361.   Γöé                           Γöé                       Γöésetting.            Γöé
  21362.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21363.   ΓöéConfirmCopyMoveCreateShadowΓöéCONFIRM_ON             ΓöéDisplays a          Γöé
  21364.   Γöé                           Γöé                       Γöéconfirmation when a Γöé
  21365.   Γöé                           Γöé                       Γöécopy, move, or      Γöé
  21366.   Γöé                           Γöé                       Γöécreate shadow       Γöé
  21367.   Γöé                           Γöé                       Γöéoperation occurs.   Γöé
  21368.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21369.   Γöé                           ΓöéCONFIRM_OFF            ΓöéDoes not display a  Γöé
  21370.   Γöé                           Γöé                       Γöéconfirmation when a Γöé
  21371.   Γöé                           Γöé                       Γöécopy, move, or      Γöé
  21372.   Γöé                           Γöé                       Γöécreate shadow       Γöé
  21373.   Γöé                           Γöé                       Γöéoperation occurs.   Γöé
  21374.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21375.   Γöé                           ΓöéCONFIRM_DEFAULT        ΓöéSets the default    Γöé
  21376.   Γöé                           Γöé                       Γöéconfirmation displayΓöé
  21377.   Γöé                           Γöé                       Γöésetting.            Γöé
  21378.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21379.   ΓöéConfirmFolderDelete        ΓöéCONFIRM_ON             ΓöéDisplays a          Γöé
  21380.   Γöé                           Γöé                       Γöéconfirmation when a Γöé
  21381.   Γöé                           Γöé                       Γöéfolder is deleted.  Γöé
  21382.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21383.   Γöé                           ΓöéCONFIRM_OFF            ΓöéDoes not display a  Γöé
  21384.   Γöé                           Γöé                       Γöéconfirmation when a Γöé
  21385.   Γöé                           Γöé                       Γöéfolder is deleted.  Γöé
  21386.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21387.   Γöé                           ΓöéCONFIRM_DEFAULT        ΓöéSets the default    Γöé
  21388.   Γöé                           Γöé                       Γöéconfirmation displayΓöé
  21389.   Γöé                           Γöé                       Γöésetting.            Γöé
  21390.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21391.   ΓöéConfirmObjectDelete        ΓöéCONFIRM_ON             ΓöéDisplays a          Γöé
  21392.   Γöé                           Γöé                       Γöéconfirmation when anΓöé
  21393.   Γöé                           Γöé                       Γöéobject is deleted.  Γöé
  21394.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21395.   Γöé                           ΓöéCONFIRM_OFF            ΓöéDoes not display a  Γöé
  21396.   Γöé                           Γöé                       Γöéconfirmation when anΓöé
  21397.   Γöé                           Γöé                       Γöéobject is deleted.  Γöé
  21398.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21399.   Γöé                           ΓöéCONFIRM_DEFAULT        ΓöéSets the default    Γöé
  21400.   Γöé                           Γöé                       Γöéconfirmation displayΓöé
  21401.   Γöé                           Γöé                       Γöésetting.            Γöé
  21402.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21403.   ΓöéConfirmRenameFileExtension ΓöéCONFIRM_ON             ΓöéDisplays a          Γöé
  21404.   Γöé                           Γöé                       Γöéconfirmation when a Γöé
  21405.   Γöé                           Γöé                       Γöéfile or extension isΓöé
  21406.   Γöé                           Γöé                       Γöérenamed.            Γöé
  21407.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21408.   Γöé                           ΓöéCONFIRM_OFF            ΓöéDoes not display a  Γöé
  21409.   Γöé                           Γöé                       Γöéconfirmation when a Γöé
  21410.   Γöé                           Γöé                       Γöéfile or extension isΓöé
  21411.   Γöé                           Γöé                       Γöérenamed.            Γöé
  21412.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21413.   Γöé                           ΓöéCONFIRM_DEFAULT        ΓöéSets the default    Γöé
  21414.   Γöé                           Γöé                       Γöéconfirmation displayΓöé
  21415.   Γöé                           Γöé                       Γöésetting.            Γöé
  21416.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21417.   ΓöéCurrentView                ΓöéCCVIEW_ON              ΓöéTurns concurrent    Γöé
  21418.   Γöé                           Γöé                       Γöéview mode on.       Γöé
  21419.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21420.   Γöé                           ΓöéCCVIEW_OFF             ΓöéTurns concurrent    Γöé
  21421.   Γöé                           Γöé                       Γöéview mode off.      Γöé
  21422.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21423.   Γöé                           ΓöéCCVIEW_DEFAULT         ΓöéSets the concurrent Γöé
  21424.   Γöé                           Γöé                       Γöéview mode to the    Γöé
  21425.   Γöé                           Γöé                       Γöédefault.            Γöé
  21426.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21427.   ΓöéDisplayProgressIndicator   ΓöéDISPLAY_ON             ΓöéDisplays a progress Γöé
  21428.   Γöé                           Γöé                       Γöéindicator.          Γöé
  21429.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21430.   Γöé                           ΓöéDISPLAY_OFF            ΓöéDoes not display    Γöé
  21431.   Γöé                           Γöé                       Γöéprogress indicator. Γöé
  21432.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21433.   Γöé                           ΓöéDISPLAY_DEFAULT        ΓöéSets the default    Γöé
  21434.   Γöé                           Γöé                       Γöéprogress indicator  Γöé
  21435.   Γöé                           Γöé                       Γöédisplay setting.    Γöé
  21436.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21437.   ΓöéLogoDisplayTime            ΓöéLOGO_INDEFINITE        ΓöéDisplays the logo   Γöé
  21438.   Γöé                           Γöé                       Γöéindefinitely.       Γöé
  21439.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21440.   Γöé                           ΓöéLOGO_NONE              ΓöéDoes not display theΓöé
  21441.   Γöé                           Γöé                       Γöélogo.               Γöé
  21442.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21443.   Γöé                           Γöétime                   ΓöéDisplays the logo   Γöé
  21444.   Γöé                           Γöé                       Γöéfor a given period  Γöé
  21445.   Γöé                           Γöé                       Γöéof time. This value Γöé
  21446.   Γöé                           Γöé                       Γöémust be in the rangeΓöé
  21447.   Γöé                           Γöé                       Γöé0 to 32767          Γöé
  21448.   Γöé                           Γöé                       Γöémilliseconds.       Γöé
  21449.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21450.   Γöé                           ΓöéLOGO_DEFAULT           ΓöéSets the default    Γöé
  21451.   Γöé                           Γöé                       Γöélogo display time.  Γöé
  21452.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21453.   ΓöéMinButtonAppearance        ΓöéBUTTON_HIDE            ΓöéSets views of this  Γöé
  21454.   Γöé                           Γöé                       Γöéobject to have a    Γöé
  21455.   Γöé                           Γöé                       Γöéhide button as      Γöé
  21456.   Γöé                           Γöé                       Γöéopposed to a        Γöé
  21457.   Γöé                           Γöé                       Γöéminimize button.    Γöé
  21458.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21459.   Γöé                           ΓöéBUTTON_MINIMIZE        ΓöéSets views of this  Γöé
  21460.   Γöé                           Γöé                       Γöéobject to have a    Γöé
  21461.   Γöé                           Γöé                       Γöéminimize button as  Γöé
  21462.   Γöé                           Γöé                       Γöéopposed to a hide   Γöé
  21463.   Γöé                           Γöé                       Γöébutton.             Γöé
  21464.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21465.   Γöé                           ΓöéBUTTON_DEFAULT         ΓöéSets the default    Γöé
  21466.   Γöé                           Γöé                       Γöéminimize button     Γöé
  21467.   Γöé                           Γöé                       Γöéappearance setting. Γöé
  21468.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21469.   ΓöéMinButtonBehavior          ΓöéMINWIN_HIDE            ΓöéHides the view of anΓöé
  21470.   Γöé                           Γöé                       Γöéobject when its     Γöé
  21471.   Γöé                           Γöé                       Γöéminimize button is  Γöé
  21472.   Γöé                           Γöé                       Γöéselected.           Γöé
  21473.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21474.   Γöé                           ΓöéMINWIN_VIEWER          ΓöéMinimizes the view  Γöé
  21475.   Γöé                           Γöé                       Γöéof an object to the Γöé
  21476.   Γöé                           Γöé                       Γöéminimized window    Γöé
  21477.   Γöé                           Γöé                       Γöéviewer when its     Γöé
  21478.   Γöé                           Γöé                       Γöéminimize button is  Γöé
  21479.   Γöé                           Γöé                       Γöéselected.           Γöé
  21480.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21481.   Γöé                           ΓöéMINWIN_DESKTOP         ΓöéMinimizes the view  Γöé
  21482.   Γöé                           Γöé                       Γöéof an object to the Γöé
  21483.   Γöé                           Γöé                       ΓöéDesktop when its    Γöé
  21484.   Γöé                           Γöé                       Γöéminimize button is  Γöé
  21485.   Γöé                           Γöé                       Γöéselected.           Γöé
  21486.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21487.   Γöé                           ΓöéMINWIN_DEFAULT         ΓöéSets the default    Γöé
  21488.   Γöé                           Γöé                       Γöéminimize button     Γöé
  21489.   Γöé                           Γöé                       Γöébehavior setting.   Γöé
  21490.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21491.   ΓöéNameClash                  ΓöéNAMECLASH_PROMPT       ΓöéDisplays a dialog   Γöé
  21492.   Γöé                           Γöé                       Γöéwhen an object is   Γöé
  21493.   Γöé                           Γöé                       Γöécreated, copied or  Γöé
  21494.   Γöé                           Γöé                       Γöémoved to a folder   Γöé
  21495.   Γöé                           Γöé                       Γöéwhich contains      Γöé
  21496.   Γöé                           Γöé                       Γöéanother object with Γöé
  21497.   Γöé                           Γöé                       Γöéthe same name.      Γöé
  21498.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21499.   Γöé                           ΓöéNAMECLASH_RENAME       ΓöéRenames an object   Γöé
  21500.   Γöé                           Γöé                       Γöéwhen it is created, Γöé
  21501.   Γöé                           Γöé                       Γöécopied or moved to aΓöé
  21502.   Γöé                           Γöé                       Γöéfolder which        Γöé
  21503.   Γöé                           Γöé                       Γöécontains another    Γöé
  21504.   Γöé                           Γöé                       Γöéobject with the sameΓöé
  21505.   Γöé                           Γöé                       Γöéname.               Γöé
  21506.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21507.   Γöé                           ΓöéNAMECLASH_REPLACE      ΓöéReplaces the        Γöé
  21508.   Γöé                           Γöé                       Γöéexisting object withΓöé
  21509.   Γöé                           Γöé                       Γöéthe new object when Γöé
  21510.   Γöé                           Γöé                       Γöéan object is        Γöé
  21511.   Γöé                           Γöé                       Γöécreated, copied or  Γöé
  21512.   Γöé                           Γöé                       Γöémoved to a folder   Γöé
  21513.   Γöé                           Γöé                       Γöéwhich contains      Γöé
  21514.   Γöé                           Γöé                       Γöéanother object with Γöé
  21515.   Γöé                           Γöé                       Γöéthe same name.      Γöé
  21516.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21517.   Γöé                           ΓöéNAMECLASH_DEFAULT      ΓöéSets the default    Γöé
  21518.   Γöé                           Γöé                       Γöésetting for handlingΓöé
  21519.   Γöé                           Γöé                       Γöéname clashes.       Γöé
  21520.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21521.   ΓöéPrintScreen                ΓöéPRINTSCREEN_ON         ΓöéEnables printing    Γöé
  21522.   Γöé                           Γöé                       Γöéwhen the print      Γöé
  21523.   Γöé                           Γöé                       Γöéscreen key is       Γöé
  21524.   Γöé                           Γöé                       Γöépressed.            Γöé
  21525.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21526.   Γöé                           ΓöéPRINTSCREEN_OFF        ΓöéDisables printing   Γöé
  21527.   Γöé                           Γöé                       Γöéwhen the print      Γöé
  21528.   Γöé                           Γöé                       Γöéscreen key is       Γöé
  21529.   Γöé                           Γöé                       Γöépressed.            Γöé
  21530.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  21531.   Γöé                           ΓöéPRINTSCREEN_DEFAULT    ΓöéSets the default    Γöé
  21532.   Γöé                           Γöé                       Γöésetting when the    Γöé
  21533.   Γöé                           Γöé                       Γöéprint screen key is Γöé
  21534.   Γöé                           Γöé                       Γöépressed.            Γöé
  21535.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  21536.  
  21537.  
  21538. ΓòÉΓòÉΓòÉ 23.48. WPTemplates ΓòÉΓòÉΓòÉ
  21539.  
  21540. Class definition file: wptemps.idl 
  21541.  
  21542. Class hierarchy 
  21543.  
  21544. SOMObject
  21545.    WPObject
  21546.       WPFileSystem
  21547.          WPFolder
  21548.              WPTemplates
  21549.  
  21550. Description 
  21551.  
  21552. This is the template folder object class. This class of folder always contains 
  21553. a template instance of every class of object that the user can create that 
  21554. supports the "Create another" action. 
  21555.  
  21556. A WPTemplates object is a normal folder in all respects other than the 
  21557. following: 
  21558.  
  21559.    o  It always contains a template for every class that supports them. 
  21560.    o  The last template for each object class cannot be deleted from the 
  21561.       folder. 
  21562.  
  21563.  An instance of this class can be created as a Workplace object and is created 
  21564.  initially by the system. It has the title, "Templates" and resides on the 
  21565.  desktop. A template instance is also created for each data type defined in an 
  21566.  application's ASSOCTABLE resource. 
  21567.  
  21568.  Instance methods 
  21569.  
  21570.  There are currently no methods defined for the WPTemplates Workplace object 
  21571.  class. 
  21572.  
  21573.  WPFolder instance methods 
  21574.  
  21575.  The following list shows all the methods overridden by the WPTemplates class. 
  21576.  These methods are overridden in order to modify the behavior defined by an 
  21577.  ancestor class. 
  21578.  
  21579.    o  wpPopulate 
  21580.  
  21581.  WPObject instance methods 
  21582.  
  21583.  The following list shows all the methods overridden by the WPTemplates class. 
  21584.  These methods are overridden in order to modify the behavior defined by an 
  21585.  ancestor class. 
  21586.  
  21587.    o  wpSetup 
  21588.  
  21589.  Class methods 
  21590.  
  21591.  There are currently no class methods defined for the WPTemplates Workplace 
  21592.  class object. 
  21593.  
  21594.  WPObject class methods. 
  21595.  
  21596.  The following list shows all the class methods overridden by the WPTemplates 
  21597.  class. These methods are overridden to modify the behavior defined by an 
  21598.  ancestor class. 
  21599.  
  21600.    o  wpclsQueryIconData 
  21601.    o  wpclsQueryStyle 
  21602.    o  wpclsQueryTitle 
  21603.  
  21604.  
  21605. ΓòÉΓòÉΓòÉ 23.49. WPTransient ΓòÉΓòÉΓòÉ
  21606.  
  21607. Class definition file: wptrans.idl 
  21608.  
  21609. Class hierarchy 
  21610.  
  21611. SOMObject
  21612.    WPObject
  21613.       WPTransient
  21614.  
  21615. Description 
  21616.  
  21617. This is the non-persistent object storage class. The WPTransient class is a 
  21618. storage class with no storage medium. This means that instances of object 
  21619. classes derived from WPTransient do not persist across reboots. This class is 
  21620. available for applications which need to utilize a large amount of workplace 
  21621. functionality (such as context menus and Settings notebooks) in their object 
  21622. class without having to be a file, directory, or a record in the INI file. An 
  21623. instance of this class can be created as a Workplace object. No instances of 
  21624. this class are initially created by the system. 
  21625.  
  21626. Instance methods 
  21627.  
  21628. There are currently no methods defined for the WPTransient Workplace object 
  21629. class. 
  21630.  
  21631. WPObject instance methods 
  21632.  
  21633. The following list shows all the methods overridden by the WPTransient class. 
  21634. These methods are overridden in order to modify the behavior defined by an 
  21635. ancestor class. 
  21636.  
  21637.    o  wpCopyObject 
  21638.    o  wpQueryHandle 
  21639.    o  wpSaveDeferred 
  21640.  
  21641.  Class methods 
  21642.  
  21643.  There are currently no class methods defined for the WPTransient Workplace 
  21644.  class object. 
  21645.  
  21646.  WPObject class methods 
  21647.  
  21648.  The following list shows all the class methods overridden by the WPTransient 
  21649.  class. These methods are overridden to modify the behavior defined by an 
  21650.  ancestor class. 
  21651.  
  21652.    o  wpclsQueryStyle 
  21653.    o  wpclsQueryTitle 
  21654.  
  21655.  
  21656. ΓòÉΓòÉΓòÉ 23.50. WPWinConfig ΓòÉΓòÉΓòÉ
  21657.  
  21658. Class definition file: wincfg.idl 
  21659.  
  21660. Class hierarchy 
  21661.  
  21662. SOMObject
  21663.    WPObject
  21664.       WPAbstract
  21665.          WPWinConfig
  21666.  
  21667. Description This class is specific to version 3, or higher, of the OS/2 
  21668. operating system. 
  21669.  
  21670. This is the WIN-OS/2* configuration object class. This object stores and allows 
  21671. the user to modify the default settings for WIN-OS/2 applications. It initially 
  21672. resides in the system setup folder. An instance of this class can be created as 
  21673. a Workplace object. 
  21674.  
  21675. Instance methods 
  21676.  
  21677. The following list shows all the WPWinConfig methods. 
  21678.  
  21679.    o  wpAddDDEPage 
  21680.    o  wpAddSessionPage 
  21681.    o  wpAddSession31Page 
  21682.  
  21683.  WPObject instance methods 
  21684.  
  21685.  The following list shows all the methods overridden by the WPWinConfig class. 
  21686.  These methods are overridden in order to modify the behavior defined by an 
  21687.  ancestor class. 
  21688.  
  21689.    o  wpAddObjectGeneralPage 
  21690.    o  wpAddSettingsPages 
  21691.    o  wpFilterPopupMenu 
  21692.  
  21693.  Class methods 
  21694.  
  21695.  There are currently no class methods defined for the WPWinConfig Workplace 
  21696.  class object. 
  21697.  
  21698.  WPObject class methods 
  21699.  
  21700.  The following list shows all the class methods overridden by the WPWinConfig 
  21701.  class. These methods are overridden to modify the behavior defined by an 
  21702.  ancestor class. 
  21703.  
  21704.    o  wpclsQueryDefaultHelp 
  21705.    o  wpclsQueryDefaultView 
  21706.    o  wpclsQueryIconData 
  21707.    o  wpclsQueryStyle 
  21708.    o  wpclsQueryTitle 
  21709.  
  21710.  
  21711. ΓòÉΓòÉΓòÉ 24. Glossary ΓòÉΓòÉΓòÉ
  21712.  
  21713. This glossary defines many of the terms used in this book. It includes terms 
  21714. and definitions from the IBM Dictionary of Computing, as well as terms specific 
  21715. to the OS/2 operating system and the Presentation Manager. It is not a complete 
  21716. glossary for the entire OS/2 operating system; nor is it a complete dictionary 
  21717. of computer terms. 
  21718.  
  21719. Other primary sources for these definitions are: 
  21720.  
  21721.    o  The American National Standard Dictionary for Information Systems, ANSI 
  21722.       X3.172-1990, copyrighted 1990 by the American National Standards 
  21723.       Institute, 11 West 42nd Street, New York, New York 10036. These 
  21724.       definitions are identified by the symbol (A) after the definition. 
  21725.  
  21726.    o  The Information Technology Vocabulary, developed by Subcommittee 1, Joint 
  21727.       Technical Committee 1, of the International Organization for 
  21728.       Standardization and the International Electrotechnical Commission 
  21729.       (ISO/IEC JTC1/SC1). Definitions of published parts of this vocabulary are 
  21730.       identified by the symbol (I) after the definition; definitions taken from 
  21731.       draft international standards, committee drafts, and working papers being 
  21732.       developed by ISO/IEC JTC1/SC1 are identified by the symbol (T) after the 
  21733.       definition, indicating that final agreement has not yet been reached 
  21734.       among the participating National Bodies of SC1. 
  21735.  
  21736.  
  21737. ΓòÉΓòÉΓòÉ 24.1. Glossary Listing ΓòÉΓòÉΓòÉ
  21738.  
  21739. Select a starting letter of glossary terms: 
  21740.  
  21741.  A    N 
  21742.  B    O 
  21743.  C    P 
  21744.  D    Q 
  21745.  E    R 
  21746.  F    S 
  21747.  G    T 
  21748.  H    U 
  21749.  I    V 
  21750.  J    W 
  21751.  K    X 
  21752.  L    Y 
  21753.  M    Z 
  21754.  
  21755.  
  21756. ΓòÉΓòÉΓòÉ <hidden> Glossary - A ΓòÉΓòÉΓòÉ
  21757.  
  21758.  accelerator  In SAA Common User Access architecture, a key or combination of 
  21759.    keys that invokes an application-defined function. 
  21760.  
  21761.  accelerator table  A table used to define which key strokes are treated as 
  21762.    accelerators and the commands they are translated into. 
  21763.  
  21764.  access mode  The manner in which an application gains access to a file it has 
  21765.    opened. Examples of access modes are read-only, write-only, and read/write. 
  21766.  
  21767.  access permission  All access rights that a user has regarding an object. (I)
  21768.  
  21769.  action  One of a set of defined tasks that a computer performs. Users request 
  21770.    the application to perform an action in several ways, such as typing a 
  21771.    command, pressing a function key, or selecting the action name from an 
  21772.    action bar or menu. 
  21773.  
  21774.  action bar  In SAA Common User Access architecture, the area at the top of a 
  21775.    window that contains choices that give a user access to actions available in 
  21776.    that window. 
  21777.  
  21778.  action point  The current position on the screen at which the pointer is 
  21779.    pointing. Contrast with hot spot and input focus. 
  21780.  
  21781.  active program  A program currently running on the computer.  An active 
  21782.    program can be interactive (running and receiving input from the user) or 
  21783.    noninteractive (running but not receiving input from the user). See also 
  21784.    interactive program and noninteractive program. 
  21785.  
  21786.  active window  The window with which the user is currently interacting. 
  21787.  
  21788.  address space  (1) The range of addresses available to a program. (A)  (2) The 
  21789.    area of virtual storage available for a particular job. 
  21790.  
  21791.  alphanumeric video output  Output to the logical video buffer when the video 
  21792.    adapter is in text mode and the logical video buffer is addressed by an 
  21793.    application as a rectangular array of character cells. 
  21794.  
  21795.  American National Standard Code for Information Interchange  The standard 
  21796.    code, using a coded character set consisting of 7-bit coded characters (8 
  21797.    bits including parity check), that is used for information interchange among 
  21798.    data processing systems, data communication systems, and associated 
  21799.    equipment. The ASCII set consists of control characters and graphic 
  21800.    characters. (A) 
  21801.  
  21802.    Note:  IBM has defined an extension to ASCII code (characters 128-255). 
  21803.  
  21804.  anchor  A window procedure that handles Presentation Manager* message 
  21805.    conversions between an icon procedure and an application. 
  21806.  
  21807.  anchor block  An area of Presentation-Manager-internal resources to allocated 
  21808.    process or thread that calls WinInitialize. 
  21809.  
  21810.  anchor point  A point in a window used by a program designer or by a window 
  21811.    manager to position a subsequently appearing window. 
  21812.  
  21813.  ANSI  American National Standards Institute. 
  21814.  
  21815.  APA  All points addressable. 
  21816.  
  21817.  API  Application programming interface. 
  21818.  
  21819.  application  A collection of software components used to perform specific 
  21820.    types of work on a computer; for example, a payroll application, an airline 
  21821.    reservation application, a network application. 
  21822.  
  21823.  application object  In SAA Advanced Common User Access architecture, a form 
  21824.    that an application provides for a user; for example, a spreadsheet form. 
  21825.    Contrast with user object. 
  21826.  
  21827.  application programming interface (API)  A functional interface supplied by 
  21828.    the operating system or by a separately orderable licensed program that 
  21829.    allows an application program written in a high-level language to use 
  21830.    specific data or functions of the operating system or the licensed program. 
  21831.  
  21832.  application-modal  Pertaining to a message box or dialog box for which 
  21833.    processing must be completed before further interaction with any other 
  21834.    window owned by the same application may take place. 
  21835.  
  21836.  area  In computer graphics, a filled shape such as a solid rectangle. 
  21837.  
  21838.  ASCII  American National Standard Code for Information Interchange. 
  21839.  
  21840.  ASCIIZ  A string of ASCII characters that is terminated with a byte containing 
  21841.    the value 0. 
  21842.  
  21843.  aspect ratio  In computer graphics, the width-to-height ratio of an area, 
  21844.    symbol, or shape. 
  21845.  
  21846.  asynchronous (ASYNC)  (1) Pertaining to two or more processes that do not 
  21847.    depend upon the occurrence of specific events such as common timing 
  21848.    signals. (T)  (2) Without regular time relationship;  unexpected or 
  21849.    unpredictable with respect to the execution of program instructions. See 
  21850.    also synchronous. 
  21851.  
  21852.  atom  A constant that represents a string. As soon as a string has been 
  21853.    defined as an atom, the atom can be used in place of the string to save 
  21854.    space. Strings are associated with their respective atoms in an atom table. 
  21855.    See also integer atom. 
  21856.  
  21857.  atom table  A table used to relate atoms with the strings that they represent. 
  21858.    Also in the table is the mechanism by which the presence of a string can be 
  21859.    checked. 
  21860.  
  21861.  atomic operation  An operation that completes its work on an object before 
  21862.    another operation can be performed on the same object. 
  21863.  
  21864.  attribute  A characteristic or property that can be controlled, usually to 
  21865.    obtain a required appearance;  for example, the color of a line. See also 
  21866.    graphics attributes and segment attributes. 
  21867.  
  21868.  automatic link  In Information Presentation Facility (IPF), a link that begins 
  21869.    a chain reaction at the primary window. When the user selects the primary 
  21870.    window, an automatic link is activated to display secondary windows. 
  21871.  
  21872.  AVIO  Advanced Video Input/Output. 
  21873.  
  21874.  
  21875. ΓòÉΓòÉΓòÉ <hidden> Glossary - B ΓòÉΓòÉΓòÉ
  21876.  
  21877.  B╨Æzier curve  (1) A mathematical technique of specifying smooth continous 
  21878.    lines and surfaces, which require a starting point and a finishing point 
  21879.    with several intermediate points that influence or control the path of the 
  21880.    linking curve. Named after Dr. P. B╨Æzier. (2) (D of C) In the AIX Graphics 
  21881.    Library, a cubic spline approximation to a set of four control points that 
  21882.    passes through the first and fourth control points and that has a continuous 
  21883.    slope where two spline segments meet. Named after Dr. P. B╨Æzier. 
  21884.  
  21885.  background  (1) In multiprogramming, the conditions under which low-priority 
  21886.    programs are executed. Contrast with foreground. (2) An active session that 
  21887.    is not currently displayed on the screen. 
  21888.  
  21889.  background color  The color in which the background of a graphic primitive is 
  21890.    drawn. 
  21891.  
  21892.  background mix  An attribute that determines how the background of a graphic 
  21893.    primitive is combined with the existing color of the graphics presentation 
  21894.    space. Contrast with mix. 
  21895.  
  21896.  background program  In multiprogramming, a program that executes with a low 
  21897.    priority. Contrast with foreground program. 
  21898.  
  21899.  bit map  A representation in memory of the data displayed on an APA device, 
  21900.    usually the screen. 
  21901.  
  21902.  block  (1) A string of data elements recorded or transmitted as a unit. The 
  21903.    elements may be characters, words, or logical records. (T)  (2) To record 
  21904.    data in a block. (3) A collection of contiguous records recorded as a unit. 
  21905.    Blocks are separated by interblock gaps and each block may contain one or 
  21906.    more records. (A)
  21907.  
  21908.  block device  A storage device that performs I/O operations on blocks of data 
  21909.    called sectors. Data on block devices can be randomly accessed. Block 
  21910.    devices are designated by a drive letter (for example, C:). 
  21911.  
  21912.  blocking mode  A condition set by an application that determines when its 
  21913.    threads might block. For example, an application might set the Pipemode 
  21914.    parameter for the DosCreateNPipe function so that its threads perform I/O 
  21915.    operations to the named pipe block when no data is available. 
  21916.  
  21917.  border  A visual indication (for example, a separator line or a background 
  21918.    color) of the boundaries of a window. 
  21919.  
  21920.  boundary determination  An operation used to compute the size of the smallest 
  21921.    rectangle that encloses a graphics object on the screen. 
  21922.  
  21923.  breakpoint  (1) A point in a computer program where execution may be halted. A 
  21924.    breakpoint is usually at the beginning of an instruction where halts, caused 
  21925.    by external intervention, are convenient for resuming execution. (T)  (2) A 
  21926.    place in a program, specified by a command or a condition, where the system 
  21927.    halts execution and gives control to the workstation user or to a specified 
  21928.    program. 
  21929.  
  21930.  broken pipe  When all of the handles that access one end of a pipe have been 
  21931.    closed. 
  21932.  
  21933.  bucket  One or more fields in which the result of an operation is kept. 
  21934.  
  21935.  buffer  (1) A portion of storage used to hold input or output data 
  21936.    temporarily. (2) To allocate and schedule the use of buffers. (A)
  21937.  
  21938.  button  A mechanism used to request or initiate an action. See also barrel 
  21939.    buttons, bezel buttons, mouse button, push button, and radio button. 
  21940.  
  21941.  byte pipe  Pipes that handle data as byte streams. All unnamed pipes are byte 
  21942.    pipes. Named pipes can be byte pipes or message pipes. See byte stream. 
  21943.  
  21944.  byte stream  Data that consists of an unbroken stream of bytes. 
  21945.  
  21946.  
  21947. ΓòÉΓòÉΓòÉ <hidden> Glossary - C ΓòÉΓòÉΓòÉ
  21948.  
  21949.  cache  A high-speed buffer storage that contains frequently accessed 
  21950.    instructions and data; it is used to reduce access time. 
  21951.  
  21952.  cached micro presentation space  A presentation space from a 
  21953.    Presentation-Manager-owned store of micro presentation spaces. It can be 
  21954.    used for drawing to a window only, and must be returned to the store when 
  21955.    the task is complete. 
  21956.  
  21957.  CAD  Computer-Aided Design. 
  21958.  
  21959.  call  (1) The action of bringing a computer program, a routine, or a 
  21960.    subroutine into effect, usually by specifying the entry conditions and 
  21961.    jumping to an entry point. (I)  (A)  (2) To transfer control to a procedure, 
  21962.    program, routine, or subroutine. 
  21963.  
  21964.  calling sequence  A sequence of instructions together with any associated data 
  21965.    necessary to execute a call. (T)
  21966.  
  21967.  Cancel  An action that removes the current window or menu without processing 
  21968.    it, and returns the previous window. 
  21969.  
  21970.  cascaded menu  In the OS/2 operating system, a menu that appears when the 
  21971.    arrow to the right of a cascading choice is selected. It contains a set of 
  21972.    choices that are related to the cascading choice. Cascaded menus are used to 
  21973.    reduce the length of a menu. See also cascading choice. 
  21974.  
  21975.  cascading choice  In SAA Common User Access architecture, a choice in a menu 
  21976.    that, when selected, produces a cascaded menu containing other choices.  An 
  21977.    arrow () appears to the right of the cascading choice. 
  21978.  
  21979.  CASE statement  In PM programming, provides the body of a window procedure. 
  21980.    There is usually one CASE statement for each message type supported by an 
  21981.    application. 
  21982.  
  21983.  CGA  Color graphics adapter. 
  21984.  
  21985.  chained list  A list in which the data elements may be dispersed but in which 
  21986.    each data element contains information for locating the 
  21987.    next. (T)Synonymous with linked list. 
  21988.  
  21989.  character  A letter, digit, or other symbol. 
  21990.  
  21991.  character box  In computer graphics, the boundary that defines, in world 
  21992.    coordinates, the horizontal and vertical space occupied by a single 
  21993.    character from a character set. See also character mode. Contrast with 
  21994.    character cell. 
  21995.  
  21996.  character cell  The physical, rectangular space in which any single character 
  21997.    is displayed on a screen or printer device. Position is addressed by row and 
  21998.    column coordinates. Contrast with character box. 
  21999.  
  22000.  character code  The means of addressing a character in a character set, 
  22001.    sometimes called code point. 
  22002.  
  22003.  character device  A device that performs I/O operations on one character at a 
  22004.    time. Because character devices view data as a stream of bytes, 
  22005.    character-device data cannot be randomly accessed. Character devices include 
  22006.    the keyboard, mouse, and printer, and are referred to by name. 
  22007.  
  22008.  character mode  A mode that, in conjunction with the font type, determines the 
  22009.    extent to which graphics characters are affected by the character box, 
  22010.    shear, and angle attributes. 
  22011.  
  22012.  character set  (1) An ordered set of unique representations called characters; 
  22013.    for example, the 26 letters of English alphabet, Boolean 0 and 1, the set of 
  22014.    symbols in the Morse code, and the 128 ASCII characters. (A)  (2) All the 
  22015.    valid characters for a programming language or for a computer system. (3) A 
  22016.    group of characters used for a specific reason; for example, the set of 
  22017.    characters a printer can print. 
  22018.  
  22019.  check box  In SAA Advanced Common User Access architecture, a square box with 
  22020.    associated text that represents a choice. When a user selects a choice, an X 
  22021.    appears in the check box to indicate that the choice is in effect. The user 
  22022.    can clear the check box by selecting the choice again. Contrast with radio 
  22023.    button. 
  22024.  
  22025.  check mark   (1) (D of C) In SAA Advanced Common User Access architecture, a 
  22026.    symbol that shows that a choice is currently in effect. (2) The symbol that 
  22027.    is used to indicate a selected item on a pull-down menu. 
  22028.  
  22029.  child process  In the OS/2 operating system, a process started by another 
  22030.    process, which is called the parent process. Contrast with parent process. 
  22031.  
  22032.  child window  A window that appears within the border of its parent window 
  22033.    (either a primary window or another child window). When the parent window is 
  22034.    resized, moved, or destroyed, the child window also is resized, moved, or 
  22035.    destroyed; however, the child window can be moved or resized independently 
  22036.    from the parent window, within the boundaries of the parent window. Contrast 
  22037.    with parent window. 
  22038.  
  22039.  choice  (1) An option that can be selected. The choice can be presented as 
  22040.    text, as a symbol (number or letter), or as an icon (a pictorial symbol). 
  22041.    (2) (D of C) In SAA Common User Access architecture, an item that a user can 
  22042.    select. 
  22043.  
  22044.  chord  (1) To press more than one button on a pointing device while the 
  22045.    pointer is within the limits that the user has specified for the operating 
  22046.    environment. (2) (D of C) In graphics, a short line segment whose end points 
  22047.    lie on a circle. Chords are a means for producing a circular image from 
  22048.    straight lines. The higher the number of chords per circle, the smoother the 
  22049.    circular image. 
  22050.  
  22051.  class  In object-oriented design or programming, a group of objects that share 
  22052.    a common definition and that therefore share common properties, operations, 
  22053.    and behavior. Members of the group are called instances of the class. 
  22054.  
  22055.  class method  In System Object Model, an action that can be performed on a 
  22056.    class object. Synonymous with factory method. 
  22057.  
  22058.  class object  In System Object Model, the run-time implementation of a class. 
  22059.  
  22060.  class style  The set of properties that apply to every window in a window 
  22061.    class. 
  22062.  
  22063.  client  (1) A functional unit that receives shared services from a 
  22064.    server. (T)  (2) A user, as in a client process that uses a named pipe or 
  22065.    queue that is created and owned by a server process. 
  22066.  
  22067.  client area  The part of the window, inside the border, that is below the menu 
  22068.    bar. It is the user's work space, where a user types information and selects 
  22069.    choices from selection fields.  In primary windows, it is where an 
  22070.    application programmer presents the objects that a user works on. 
  22071.  
  22072.  client program  An application that creates and manipulates instances of 
  22073.    classes. 
  22074.  
  22075.  client window  The window in which the application displays output and 
  22076.    receives input. This window is located inside the frame window, under the 
  22077.    window title bar and any menu bar, and within any scroll bars. 
  22078.  
  22079.  clip limits  The area of the paper that can be reached by a printer or 
  22080.    plotter. 
  22081.  
  22082.  clipboard  In SAA Common User Access architecture, an area of computer memory, 
  22083.    or storage, that temporarily holds data. Data in the clipboard is available 
  22084.    to other applications. 
  22085.  
  22086.  clipping  In computer graphics, removing those parts of a display image that 
  22087.    lie outside a given boundary. (I)  (A)
  22088.  
  22089.  clipping area  The area in which the window can paint. 
  22090.  
  22091.  clipping path  A clipping boundary in world-coordinate space. 
  22092.  
  22093.  clock tick  The minimum unit of time that the system tracks. If the system 
  22094.    timer currently counts at a rate of X Hz, the system tracks the time every 
  22095.    1/X of a second. Also known as time tick. 
  22096.  
  22097.  CLOCK$  Character-device name reserved for the system clock. 
  22098.  
  22099.  code page  An assignment of graphic characters and control-function meanings 
  22100.    to all code points. 
  22101.  
  22102.  code point  (1) Synonym for character code. (2) (D of C) A 1-byte code 
  22103.    representing one of 256 potential characters. 
  22104.  
  22105.  code segment  An executable section of programming code within a load module. 
  22106.  
  22107.  color dithering  See dithering. 
  22108.  
  22109.  color graphics adapter (CGA)  An adapter that simultaneously provides four 
  22110.    colors and is supported by all IBM Personal Computer and Personal System/2 
  22111.    models. 
  22112.  
  22113.  command  The name and parameters associated with an action that a program can 
  22114.    perform. 
  22115.  
  22116.  command area  An area composed of a command field prompt and a command entry 
  22117.    field. 
  22118.  
  22119.  command entry field  An entry field in which users type commands. 
  22120.  
  22121.  command line  On a display screen, a display line, sometimes at the bottom of 
  22122.    the screen, in which only commands can be entered. 
  22123.  
  22124.  command mode  A state of a system or device in which the user can enter 
  22125.    commands. 
  22126.  
  22127.  command prompt  A field prompt showing the location of the command entry field 
  22128.    in a panel. 
  22129.  
  22130.  Common Programming Interface (CPI)  Definitions of those application 
  22131.    development languages and services that have, or are intended to have, 
  22132.    implementations on and a high degree of commonality across the SAA 
  22133.    environments. One of the three SAA architectural areas. See also Common User 
  22134.    Access architecture. 
  22135.  
  22136.  Common User Access (CUA) architecture   Guidelines for the dialog between a 
  22137.    human and a workstation or terminal. One of the three SAA architectural 
  22138.    areas. See also Common Programming Interface. 
  22139.  
  22140.  compile  To translate a program written in a higher-level programming language 
  22141.    into a machine language program. 
  22142.  
  22143.  composite window  A window composed of other windows (such as a frame window, 
  22144.    frame-control windows, and a client window) that are kept together as a unit 
  22145.    and that interact with each other. 
  22146.  
  22147.  computer-aided design (CAD)  The use of a computer to design or change a 
  22148.    product, tool, or machine, such as using a computer for drafting or 
  22149.    illustrating. 
  22150.  
  22151.  COM1, COM2, COM3  Character-device names reserved for serial ports 1 through 
  22152.    3. 
  22153.  
  22154.  CON  Character-device name reserved for the console keyboard and screen. 
  22155.  
  22156.  conditional cascaded menu  A pull-down menu associated with a menu item that 
  22157.    has a cascade mini-push button beside it in an object's pop-up menu. The 
  22158.    conditional cascaded menu is displayed when the user selects the mini-push 
  22159.    button. 
  22160.  
  22161.  container  In SAA Common User Access architecture, an object that holds other 
  22162.    objects. A folder is an example of a container object. See also folder and 
  22163.    object. 
  22164.  
  22165.  contextual help  In SAA Common User Access Architecture, help that gives 
  22166.    specific information about the item the cursor is on. The help is contextual 
  22167.    because it provides information about a specific item as it is currently 
  22168.    being used. Contrast with extended help. 
  22169.  
  22170.  contiguous  Touching or joining at a common edge or boundary, for example, an 
  22171.    unbroken consecutive series of storage locations. 
  22172.  
  22173.  control  In SAA Advanced Common User Access architecture, a component of the 
  22174.    user interface that allows a user to select choices or type information; for 
  22175.    example, a check box, an entry field, a radio button. 
  22176.  
  22177.  control area  A storage area used by a computer program to hold control information. (I)  (A)
  22178.  
  22179.  Control Panel  In the Presentation Manager, a program used to set up user 
  22180.    preferences that act globally across the system. 
  22181.  
  22182.  Control Program  (1) The basic functions of the operating system, including 
  22183.    DOS emulation and the support for keyboard, mouse, and video input/output. 
  22184.    (2) A computer program designed to schedule and to supervise the execution 
  22185.    of programs of a computer system. (I)  (A)
  22186.  
  22187.  control window  A window that is used as part of a composite window to perform 
  22188.    simple input and output tasks. Radio buttons and check boxes are examples. 
  22189.  
  22190.  control word  An instruction within a document that identifies its parts or 
  22191.    indicates how to format the document. 
  22192.  
  22193.  coordinate space  A two-dimensional set of points used to generate output on a 
  22194.    video display of printer. 
  22195.  
  22196.  Copy  A choice that places onto the clipboard, a copy of what the user has 
  22197.    selected. See also Cut and Paste. 
  22198.  
  22199.  correlation  The action of determining which element or object within a 
  22200.    picture is at a given position on the display. This follows a pick 
  22201.    operation. 
  22202.  
  22203.  coverpage window  A window in which the application's help information is 
  22204.    displayed. 
  22205.  
  22206.  CPI  Common Programming Interface. 
  22207.  
  22208.  critical extended attribute  An extended attribute that is necessary for the 
  22209.    correct operation of the system or a particular application. 
  22210.  
  22211.  critical section  (1) In programming languages, a part of an asynchronous 
  22212.    procedure that cannot be executed simultaneously with a certain part of 
  22213.    another asynchronous procedure. (I)
  22214.  
  22215.    Note:  Part of the other asynchronous procedure also is a critical section. 
  22216.    (2) A section of code that is not reentrant; that is, code that can be 
  22217.    executed by only one thread at a time. 
  22218.  
  22219.  CUA architecture  Common User Access architecture. 
  22220.  
  22221.  current position  In computer graphics, the position, in user coordinates, 
  22222.    that becomes the starting point for the next graphics routine, if that 
  22223.    routine does not explicitly specify a starting point. 
  22224.  
  22225.  cursor  A symbol displayed on the screen and associated with an input device. 
  22226.    The cursor indicates where input from the device will be placed. Types of 
  22227.    cursors include text cursors, graphics cursors, and selection cursors. 
  22228.    Contrast with pointer and input focus. 
  22229.  
  22230.  Cut  In SAA Common User Access architecture, a choice that removes a selected 
  22231.    object, or a part of an object, to the clipboard, usually compressing the 
  22232.    space it occupied in a window. See also Copy and Paste. 
  22233.  
  22234.  
  22235. ΓòÉΓòÉΓòÉ <hidden> Glossary - D ΓòÉΓòÉΓòÉ
  22236.  
  22237.  daisy chain  A method of device interconnection for determining interrupt 
  22238.    priority by connecting the interrupt sources serially. 
  22239.  
  22240.  data segment  A nonexecutable section of a program module; that is, a section 
  22241.    of a program that contains data definitions. 
  22242.  
  22243.  data structure  The syntactic structure of symbolic expressions and their 
  22244.    storage-allocation characteristics. (T)
  22245.  
  22246.  data transfer  The movement of data from one object to another by way of the 
  22247.    clipboard or by direct manipulation. 
  22248.  
  22249.  DBCS  Double-byte character set. 
  22250.  
  22251.  DDE  Dynamic data exchange. 
  22252.  
  22253.  deadlock  (1) Unresolved contention for the use of a resource. (2) An error 
  22254.    condition in which processing cannot continue because each of two elements 
  22255.    of the process is waiting for an action by, or a response from, the other. 
  22256.    (3) An impasse that occurs when multiple processes are waiting for the 
  22257.    availability of a resource that will not become available because it is 
  22258.    being held by another process that is in a similar wait state. 
  22259.  
  22260.  debug  To detect, diagnose, and eliminate errors in programs. (T)
  22261.  
  22262.  decipoint  In printing, one tenth of a point.  There are 72 points in an inch. 
  22263.  
  22264.  default procedure  A function provided by the Presentation Manager Interface 
  22265.    that may be used to process standard messages from dialogs or windows. 
  22266.  
  22267.  default value  A value assumed when no value has been specified. Synonymous 
  22268.    with assumed value. For example, in the graphics programming interface, the 
  22269.    default line-type is `solid'. 
  22270.  
  22271.  definition list  A type of list that pairs a term and its description. 
  22272.  
  22273.  delta  An application-defined threshold, or number of container items, from 
  22274.    either end of the list. 
  22275.  
  22276.  descendant  See child process. 
  22277.  
  22278.  descriptive text  Text used in addition to a field prompt to give more 
  22279.    information about a field. 
  22280.  
  22281.  Deselect all  A choice that cancels the selection of all of the objects that 
  22282.    have been selected in that window. 
  22283.  
  22284.  Desktop Manager  In the Presentation Manager, a window that displays a list of 
  22285.    groups of programs, each of which can be started or stopped. 
  22286.  
  22287.  desktop window  The window, corresponding to the physical device, against 
  22288.    which all other types of windows are established. 
  22289.  
  22290.  detached process  A background process that runs independent of the parent 
  22291.    process. 
  22292.  
  22293.  detent  A point on a slider that represents an exact value to which a user can 
  22294.    move the slider arm. 
  22295.  
  22296.  device context  A logical description of a data destination such as memory, 
  22297.    metafile, display, printer, or plotter. See also direct device context, 
  22298.    information device context, memory device context, metafile device context, 
  22299.    queued device context, and screen device context. 
  22300.  
  22301.  device driver  A file that contains the code needed to attach and use a device 
  22302.    such as a display, printer, or plotter. 
  22303.  
  22304.  device space  (1) Coordinate space in which graphics are assembled after all 
  22305.    GPI transformations have been applied. Device space is defined in 
  22306.    device-specific units. (2) (D of C) In computer graphics, a space defined by 
  22307.    the complete set of addressable points of a display device. (A)
  22308.  
  22309.  dialog  The interchange of information between a computer and its user through 
  22310.    a sequence of requests by the user and the presentation of responses by the 
  22311.    computer. 
  22312.  
  22313.  dialog box  In SAA Advanced Common User Access architecture, a movable window, 
  22314.    fixed in size, containing controls that a user uses to provide information 
  22315.    required by an application so that it can continue to process a user 
  22316.    request. See also message box, primary window, secondary window. Also known 
  22317.    as a pop-up window. 
  22318.  
  22319.  Dialog Box Editor  A WYSIWYG editor that creates dialog boxes for 
  22320.    communicating with the application user. 
  22321.  
  22322.  dialog item  A component (for example, a menu or a button) of a dialog box. 
  22323.    Dialog items are also used when creating dialog templates. 
  22324.  
  22325.  dialog procedure  A dialog window that is controlled by a window procedure. It 
  22326.    is responsible for responding to all messages sent to the dialog window. 
  22327.  
  22328.  dialog tag language  A markup language used by the DTL compiler to create 
  22329.    dialog objects. 
  22330.  
  22331.  dialog template  The definition of a dialog box, which contains details of its 
  22332.    position, appearance, and window ID, and the window ID of each of its child 
  22333.    windows. 
  22334.  
  22335.  direct device context  A logical description of a data destination that is a 
  22336.    device other than the screen (for example, a printer or plotter), and where 
  22337.    the output is not to go through the spooler. Its purpose is to satisfy 
  22338.    queries. See also device context. 
  22339.  
  22340.  direct manipulation  The user's ability to interact with an object by using 
  22341.    the mouse, typically by dragging an object around on the Desktop and 
  22342.    dropping it on other objects. 
  22343.  
  22344.  direct memory access (DMA)  A technique for moving data directly between main 
  22345.    storage and peripheral equipment without requiring processing of the data by 
  22346.    the processing unit.(T)
  22347.  
  22348.  directory  A type of file containing the names and controlling information for 
  22349.    other files or other directories. 
  22350.  
  22351.  display point  Synonym for pel. 
  22352.  
  22353.  dithering  (1) The process used in color displays whereby every other pel is 
  22354.    set to one color, and the intermediate pels are set to another. Together 
  22355.    they produce the effect of a third color at normal viewing distances. This 
  22356.    process can only be used on solid areas of color; it does not work, for 
  22357.    example, on narrow lines. (2) (D of C ) In computer graphics, a technique of 
  22358.    interleaving dark and light pixels so that the resulting image looks 
  22359.    smoothly shaded when viewed from a distance. 
  22360.  
  22361.  DMA  Direct memory access. 
  22362.  
  22363.  DOS Protect Mode Interface (DPMI)  An interface between protect mode and real 
  22364.    mode programs. 
  22365.  
  22366.  double-byte character set (DBCS)  A set of characters in which each character 
  22367.    is represented by two bytes.  Languages such as Japanese, Chinese, and 
  22368.    Korean, which contain more characters than can be represented by 256 code 
  22369.    points, require double-byte character sets. Since each character requires 
  22370.    two bytes, the entering, displaying, and printing of DBCS characters 
  22371.    requires hardware and software that can support DBCS. 
  22372.  
  22373.  doubleword  A contiguous sequence of bits or characters that comprises two 
  22374.    computer words and is capable of being addressed as a unit. (A)
  22375.  
  22376.  DPMI  DOS Protect Mode Interface. 
  22377.  
  22378.  drag  In SAA Common User Access, to use a pointing device to move an object; 
  22379.    for example, clicking on a window border, and dragging it to make the window 
  22380.    larger. 
  22381.  
  22382.  dragging  (1) In computer graphics, moving an object on the display screen as 
  22383.    if it were attached to the pointer. (2) (D of C) In computer graphics, 
  22384.    moving one or more segments on a display surface by translating. (I)  (A)
  22385.  
  22386.  drawing chain  See segment chain. 
  22387.  
  22388.  drop  To fix the position of an object that is being dragged, by releasing the 
  22389.    select button of the pointing device. 
  22390.  
  22391.  drop  To fix the position of an object that is being dragged, by releasing the 
  22392.    select button of the pointing device. See also drag. 
  22393.  
  22394.  DTL  Dialog tag language. 
  22395.  
  22396.  dual-boot function  A feature of the OS/2 operating system that allows the 
  22397.    user to start DOS from within the operating system, or an OS/2 session from 
  22398.    within DOS. 
  22399.  
  22400.  duplex  Pertaining to communication in which data can be sent and received at 
  22401.    the same time. Synonymous with full duplex. 
  22402.  
  22403.  dynamic data exchange (DDE)  A message protocol used to communicate between 
  22404.    applications that share data. The protocol uses shared memory as the means 
  22405.    of exchanging data between applications. 
  22406.  
  22407.  dynamic data formatting  A formatting procedure that enables you to 
  22408.    incorporate text, bit maps or metafiles in an IPF window at execution time. 
  22409.  
  22410.  dynamic link library  A collection of executable programming code and data 
  22411.    that is bound to an application at load time or run time, rather than during 
  22412.    linking. The programming code and data in a dynamic link library can be 
  22413.    shared by several applications simultaneously. 
  22414.  
  22415.  dynamic linking  The process of resolving external references in a program 
  22416.    module at load time or run time rather than during linking. 
  22417.  
  22418.  dynamic segments  Graphics segments drawn in exclusive-OR mix mode so that 
  22419.    they can be moved from one screen position to another without affecting the 
  22420.    rest of the displayed picture. 
  22421.  
  22422.  dynamic storage  (1) A device that stores data in a manner that permits the 
  22423.    data to move or vary with time such that the specified data is not always 
  22424.    available for recovery. (A)  (2) A storage in which the cells require 
  22425.    repetitive application of control signals in order to retain stored data. 
  22426.    Such repetitive application of the control signals is called a refresh 
  22427.    operation. A dynamic storage may use static addressing or sensing 
  22428.    circuits. (A)  (3) See also static storage. 
  22429.  
  22430.  dynamic time slicing  Varies the size of the time slice depending on system 
  22431.    load and paging activity. 
  22432.  
  22433.  dynamic-link module  A module that is linked at load time or run time. 
  22434.  
  22435.  
  22436. ΓòÉΓòÉΓòÉ <hidden> Glossary - E ΓòÉΓòÉΓòÉ
  22437.  
  22438.  EBCDIC  Extended binary-coded decimal interchange code. A coded character set 
  22439.    consisting of 8-bit coded characters (9 bits including parity check), used 
  22440.    for information interchange among data processing systems, data 
  22441.    communications systems, and associated equipment. 
  22442.  
  22443.  edge-triggered  Pertaining to an event semaphore that is posted then reset 
  22444.    before a waiting thread gets a chance to run. The semaphore is considered to 
  22445.    be posted for the rest of that thread's waiting period; the thread does not 
  22446.    have to wait for the semaphore to be posted again. 
  22447.  
  22448.  EGA  Extended graphics adapter. 
  22449.  
  22450.  element  An entry in a graphics segment that comprises one or more graphics 
  22451.    orders and that is addressed by the element pointer. 
  22452.  
  22453.  EMS  Expanded Memory Specification. 
  22454.  
  22455.  encapsulation  Hiding an object's implementation, that is, its private, 
  22456.    internal data and methods. Private variables and methods are accessible only 
  22457.    to the object that contains them. 
  22458.  
  22459.  entry field  In SAA Common User Access architecture, an area where a user 
  22460.    types information. Its boundaries are usually indicated. See also selection 
  22461.    field. 
  22462.  
  22463.  entry panel  A defined panel type containing one or more entry fields and 
  22464.    protected information such as headings, prompts, and explanatory text. 
  22465.  
  22466.  entry-field control  The component of a user interface that provides the means 
  22467.    by which the application receives data entered by the user in an entry 
  22468.    field. When it has the input focus, the entry field displays a flashing 
  22469.    pointer at the position where the next typed character will go. 
  22470.  
  22471.  environment segment  The list of environment variables and their values for a 
  22472.    process. 
  22473.  
  22474.  environment strings  ASCII text strings that define the value of environment 
  22475.    variables. 
  22476.  
  22477.  environment variables  Variables that describe the execution environment of a 
  22478.    process. These variables are named by the operating system or by the 
  22479.    application. Environment variables named by the operating system are PATH, 
  22480.    DPATH, INCLUDE, INIT, LIB, PROMPT, and TEMP. The values of environment 
  22481.    variables are defined by the user in the CONFIG.SYS file, or by using the 
  22482.    SET command at the OS/2 command prompt. 
  22483.  
  22484.  error message  An indication that an error has been detected. (A)
  22485.  
  22486.  event semaphore  A semaphore that enables a thread to signal a waiting thread 
  22487.    or threads that an event has occurred or that a task has been completed. The 
  22488.    waiting threads can then perform an action that is dependent on the 
  22489.    completion of the signaled event. 
  22490.  
  22491.  exception  An abnormal condition such as an I/O error encountered in 
  22492.    processing a data set or a file. 
  22493.  
  22494.  exclusive system semaphore  A system semaphore that can be modified only by 
  22495.    threads within the same process. 
  22496.  
  22497.  executable file  (1) A file that contains programs or commands that perform 
  22498.    operations or actions to be taken. (2) A collection of related data records 
  22499.    that execute programs. 
  22500.  
  22501.  exit  To execute an instruction within a portion of a computer program in 
  22502.    order to terminate the execution of that portion. Such portions of computer 
  22503.    programs include loops, subroutines, modules, and so on. (T)  Repeated exit 
  22504.    requests return the user to the point from which all functions provided to 
  22505.    the system are accessible. Contrast with cancel. 
  22506.  
  22507.  expanded memory specification (EMS)  Enables DOS applications to access memory 
  22508.    above the 1MB real mode addressing limit. 
  22509.  
  22510.  extended attribute  An additional piece of information about a file object, 
  22511.    such as its data format or category. It consists of a name and a value. A 
  22512.    file object may have more than one extended attribute associated with it. 
  22513.  
  22514.  extended help  In SAA Common User Access architecture, a help action that 
  22515.    provides information about the contents of the application window from which 
  22516.    a user requested help. Contrast with contextual help. 
  22517.  
  22518.  extended-choice selection  A mode that allows the user to select more than one 
  22519.    item from a window. Not all windows allow extended choice selection. 
  22520.    Contrast with multiple-choice selection. 
  22521.  
  22522.  extent  Continuous space on a disk or diskette that is occupied by or reserved 
  22523.    for a particular data set, data space, or file. 
  22524.  
  22525.  external link  In Information Presentation Facility, a link that connects 
  22526.    external online document files. 
  22527.  
  22528.  
  22529. ΓòÉΓòÉΓòÉ <hidden> Glossary - F ΓòÉΓòÉΓòÉ
  22530.  
  22531.  family-mode application  An application program that can run in the OS/2 
  22532.    environment and in the DOS environment; however, it cannot take advantage of 
  22533.    many of the OS/2-mode facilities, such as multitasking, interprocess 
  22534.    communication, and dynamic linking. 
  22535.  
  22536.  FAT  File allocation table. 
  22537.  
  22538.  FEA  Full extended attribute. 
  22539.  
  22540.  field-level help  Information specific to the field on which the cursor is 
  22541.    positioned. This help function is "contextual" because it provides 
  22542.    information about a specific item as it is currently used; the information 
  22543.    is dependent upon the context within the work session. 
  22544.  
  22545.  FIFO  First-in-first-out. (A)
  22546.  
  22547.  file  A named set of records stored or processed as a unit. (T)
  22548.  
  22549.  file allocation table (FAT)  In IBM personal computers, a table used by the 
  22550.    operating system to allocate space on a disk for a file, and to locate and 
  22551.    chain together parts of the file that may be scattered on different sectors 
  22552.    so that the file can be used in a random or sequential manner. 
  22553.  
  22554.  file attribute  Any of the attributes that describe the characteristics of a 
  22555.    file. 
  22556.  
  22557.  File Manager  In the Presentation Manager, a program that displays directories 
  22558.    and files, and allows various actions on them. 
  22559.  
  22560.  file specification  The full identifier for a file, which includes its drive 
  22561.    designation, path, file name, and extension. 
  22562.  
  22563.  file system  The combination of software and hardware that supports storing 
  22564.    information on a storage device. 
  22565.  
  22566.  file system driver (FSD)  A program that manages file I\O and controls the 
  22567.    format of information on the storage media. 
  22568.  
  22569.  fillet  A curve that is tangential to the end points of two adjoining lines. 
  22570.    See also polyfillet. 
  22571.  
  22572.  filtering  An application process that changes the order of data in a queue. 
  22573.  
  22574.  first-in-first-out (FIFO)  A queuing technique in which the next item to be 
  22575.    retrieved is the item that has been in the queue for the longest time. (A)
  22576.  
  22577.  flag  (1) An indicator or parameter that shows the setting of a switch. (2) A 
  22578.    character that signals the occurrence of some condition, such as the end of 
  22579.    a word. (A)  (3) (D of C) A characteristic of a file or directory that 
  22580.    enables it to be used in certain ways. See also archive flag, hidden flag, 
  22581.    and read-only flag. 
  22582.  
  22583.  focus  See input focus. 
  22584.  
  22585.  folder  A container used to organize objects. 
  22586.  
  22587.  font  A particular size and style of typeface that contains definitions of 
  22588.    character sets, marker sets, and pattern sets. 
  22589.  
  22590.  Font Editor  A utility program provided with the IBM Developers Toolkit that 
  22591.    enables the design and creation of new fonts. 
  22592.  
  22593.  foreground program  (1) The program with which the user is currently 
  22594.    interacting. Also known as interactive program. Contrast with background 
  22595.    program. (2) (D of C) In multiprogramming,  a high-priority program. 
  22596.  
  22597.  frame  The part of a window that can contain several different visual elements 
  22598.    specified by the application, but drawn and controlled by the Presentation 
  22599.    Manager. The frame encloses the client area. 
  22600.  
  22601.  frame styles  Standard window layouts provided by the Presentation Manager. 
  22602.  
  22603.  FSD  File system driver. 
  22604.  
  22605.  full-duplex  Synonym for duplex. 
  22606.  
  22607.  full-screen application  An application that has complete control of the 
  22608.    screen. 
  22609.  
  22610.  function  (1) In a programming language, a block, with or without formal 
  22611.    parameters, whose execution is invoked by means of a call. (2) A set of 
  22612.    related control statements that cause one or more programs to be performed. 
  22613.  
  22614.  function key  A key that causes a specified sequence of operations to be 
  22615.    performed when it is pressed, for example, F1 and Alt-K. 
  22616.  
  22617.  function key area  The area at the bottom of a window that contains function 
  22618.    key assignments such as F1=Help. 
  22619.  
  22620.  
  22621. ΓòÉΓòÉΓòÉ <hidden> Glossary - G ΓòÉΓòÉΓòÉ
  22622.  
  22623.  GDT  Global Descriptor Table. 
  22624.  
  22625.  general protection fault  An exception condition that occurs when a process 
  22626.    attempts to use storage or a module that has some level of protection 
  22627.    assigned to it, such as I/O privilege level. See also IOPL code segment. 
  22628.  
  22629.  Global Descriptor Table (GDT)  A table that defines code and data segments 
  22630.    available to all tasks in an application. 
  22631.  
  22632.  global dynamic-link module  A dynamic-link module that can be shared by all 
  22633.    processes in the system that refer to the module name. 
  22634.  
  22635.  global file-name character  Either a question mark (?) or an asterisk (*) used 
  22636.    as a variable in a file name or file name extension when referring to a 
  22637.    particular file or group of files. 
  22638.  
  22639.  glyph  A graphic symbol whose appearance conveys information. 
  22640.  
  22641.  GPI  Graphics programming interface. 
  22642.  
  22643.  graphic primitive  In computer graphics, a basic element, such as an arc or a 
  22644.    line, that is not made up of smaller parts and that is used to create 
  22645.    diagrams and pictures. See also graphics segment. 
  22646.  
  22647.  graphics  (1) A picture defined in terms of graphic primitives and graphics 
  22648.    attributes. (2) (D of C) The making of charts and pictures. (3) Pertaining 
  22649.    to charts, tables, and their creation. (4) See computer graphics, coordinate 
  22650.    graphics, fixed-image graphics, interactive graphics, passive graphics, 
  22651.    raster graphics. 
  22652.  
  22653.  graphics attributes  Attributes that apply to graphic primitives. Examples are 
  22654.    color, line type, and shading-pattern definition. See also segment 
  22655.    attributes. 
  22656.  
  22657.  graphics field  The clipping boundary that defines the visible part of the 
  22658.    presentation-page contents. 
  22659.  
  22660.  graphics mode  One of several states of a display. The mode determines the 
  22661.    resolution and color content of the screen. 
  22662.  
  22663.  graphics model space  The conceptual coordinate space in which a picture is 
  22664.    constructed after any model transforms have been applied. Also known as 
  22665.    model space. 
  22666.  
  22667.  Graphics programming interface  The formally defined programming language that 
  22668.    is between an IBM graphics program and the user of the program. 
  22669.  
  22670.  graphics segment  A sequence of related graphic primitives and graphics 
  22671.    attributes. See also graphic primitive. 
  22672.  
  22673.  graying  The indication that a choice on a pull-down is unavailable. 
  22674.  
  22675.  group  A collection of logically connected controls. For example, the buttons 
  22676.    controlling paper size for a printer could be called a group. See also 
  22677.    program group. 
  22678.  
  22679.  
  22680. ΓòÉΓòÉΓòÉ <hidden> Glossary - H ΓòÉΓòÉΓòÉ
  22681.  
  22682.  handle  (1) An identifier that represents an object, such as a device or 
  22683.    window, to the Presentation Interface. (2) (D of C) In the Advanced DOS and 
  22684.    OS/2 operating systems, a binary value created by the system that identifies 
  22685.    a drive, directory, and file so that the file can be found and opened. 
  22686.  
  22687.  hard error  An error condition on a network that requires either that the 
  22688.    system be reconfigured or that the source of the error be removed before the 
  22689.    system can resume reliable operation. 
  22690.  
  22691.  header  (1) System-defined control information that precedes user data. (2) 
  22692.    The portion of a message that contains control information for the message, 
  22693.    such as one or more destination fields, name of the originating station, 
  22694.    input sequence number, character string indicating the type of message, and 
  22695.    priority level for the message. 
  22696.  
  22697.  heading tags  A document element that enables information to be displayed in 
  22698.    windows, and that controls entries in the contents window controls placement 
  22699.    of push buttons in a window, and defines the shape and size of windows. 
  22700.  
  22701.  heap  An area of free storage available for dynamic allocation by an 
  22702.    application. Its size varies according to the storage requirements of the 
  22703.    application. 
  22704.  
  22705.  help function  (1) A function that provides information about a specific 
  22706.    field, an application panel, or information about the help facility. (2) (D 
  22707.    of C) One or more display images that describe how to use application 
  22708.    software or how to do a system operation. 
  22709.  
  22710.  Help index  In SAA Common User Access architecture, a help action that 
  22711.    provides an index of the help information available for an application. 
  22712.  
  22713.  help panel  A panel with information to assist users that is displayed in 
  22714.    response to a help request from the user. 
  22715.  
  22716.  help window  A Common-User-Access-defined secondary window that displays 
  22717.    information when the user requests help. 
  22718.  
  22719.  hidden file  An operating system file that is not displayed by a directory 
  22720.    listing. 
  22721.  
  22722.  hide button  In the OS/2 operating system, a small, square button located in 
  22723.    the right-hand corner of the title bar of a window that, when selected, 
  22724.    removes from the screen all the windows associated with that window. 
  22725.    Contrast with maximize button. See also restore button. 
  22726.  
  22727.  hierarchical inheritance  The relationship between parent and child classes. 
  22728.    An object that is lower in the inheritance hierarchy than another object, 
  22729.    inherits all the characteristics and behaviors of the objects above it in 
  22730.    the hierarchy. 
  22731.  
  22732.  hierarchy  A tree of segments beginning with the root segment and proceeding 
  22733.    downward to dependent segment types. 
  22734.  
  22735.  high-performance file system (HPFS)  In the OS/2 operating system, an 
  22736.    installable file system that uses high-speed buffer storage, known as a 
  22737.    cache, to provide fast access to large disk volumes. The file system also 
  22738.    supports the coexistence of multiple, active file systems on a single 
  22739.    personal computer, with the capability of multiple and different storage 
  22740.    devices. File names used with the HPFS can have as many as 254 characters. 
  22741.  
  22742.  hit testing  The means of identifying which window is associated with which 
  22743.    input device event. 
  22744.  
  22745.  hook  A point in a system-defined function where an application can supply 
  22746.    additional code that the system processes as though it were part of the 
  22747.    function. 
  22748.  
  22749.  hook chain  A sequence of hook procedures that are "chained" together so that 
  22750.    each event is passed, in turn, to each procedure in the chain. 
  22751.  
  22752.  hot spot  The part of the pointer that must touch an object before it can be 
  22753.    selected. This is usually the tip of the pointer. Contrast with action 
  22754.    point. 
  22755.  
  22756.  HPFS  high-performance file system. 
  22757.  
  22758.  hypergraphic link  A connection between one piece of information and another 
  22759.    through the use of graphics. 
  22760.  
  22761.  hypertext  A way of presenting information online with connections between one 
  22762.    piece of information and another, called hypertext links. See also hypertext 
  22763.    link. 
  22764.  
  22765.  hypertext link  A connection between one piece of information and another. 
  22766.  
  22767.  
  22768. ΓòÉΓòÉΓòÉ <hidden> Glossary - I ΓòÉΓòÉΓòÉ
  22769.  
  22770.  I/O operation  An input operation to, or output operation from a device 
  22771.    attached to a computer. 
  22772.  
  22773.  I-beam pointer  A pointer that indicates an area, such as an entry field in 
  22774.    which text can be edited. 
  22775.  
  22776.  icon  In SAA Advanced Common User Access architecture, a graphical 
  22777.    representation of an object, consisting of an image, image background, and a 
  22778.    label. Icons can represent items (such as a document file) that the user 
  22779.    wants to work on, and actions that the user wants to perform. In the 
  22780.    Presentation Manager, icons are used for data objects, system actions, and 
  22781.    minimized programs. 
  22782.  
  22783.  icon area  In the Presentation Manager, the area at the bottom of the screen 
  22784.    that is normally used to display the icons for minimized programs. 
  22785.  
  22786.  Icon Editor  The Presentation Manager-provided tool for creating icons. 
  22787.  
  22788.  IDL  Interface Definition Language. 
  22789.  
  22790.  image font  A set of symbols, each of which is described in a rectangular 
  22791.    array of pels. Some of the pels in the array are set to produce the image of 
  22792.    one of the symbols. Contrast with outline font. 
  22793.  
  22794.  implied metaclass  Subclassing the metaclass of a parent class without a 
  22795.    separate CSC for the resultant metaclass. 
  22796.  
  22797.  indirect manipulation  Interaction with an object through choices and 
  22798.    controls. 
  22799.  
  22800.  information device context  A logical description of a data destination other 
  22801.    than the screen (for example, a printer or plotter), but where no output 
  22802.    will occur. Its purpose is to satisfy queries. See also device context. 
  22803.  
  22804.  information panel  A defined panel type characterized by a body containing 
  22805.    only protected information. 
  22806.  
  22807.  Information Presentation Facility (IPF)  A facility provided by the OS/2 
  22808.    operating system, by which application developers can produce online 
  22809.    documentation and context-sensitive online help panels for their 
  22810.    applications. 
  22811.  
  22812.  inheritance  The derivation of new (child) classes from existing (parent) 
  22813.    classes. The new class inherits all the data and methods of the parent class 
  22814.    without having to redefine them. 
  22815.  
  22816.  input focus  (1) The area of a window where user interaction is possible using 
  22817.    an input device, such as a mouse or the keyboard. (2) The position in the 
  22818.    active window where a user's normal interaction with the keyboard will 
  22819.    appear. 
  22820.  
  22821.  input router  An internal OS/2 process that removes messages from the system 
  22822.    queue. 
  22823.  
  22824.  input/output control  A device-specific command that requests a function of a 
  22825.    device driver. 
  22826.  
  22827.  installable file system (IFS)  A file system in which software is installed 
  22828.    when the operating system is started. 
  22829.  
  22830.  instance  A single occurrence of an object class that has a particular 
  22831.    behavior. 
  22832.  
  22833.  instruction pointer  In system/38, a pointer that provides addressability for 
  22834.    a machine interface instruction in a program. 
  22835.  
  22836.  integer atom  An atom that represents a predefined system constant and carries 
  22837.    no storage overhead. For example, names of window classes provided by 
  22838.    Presentation Manager are expressed as integer atoms. 
  22839.  
  22840.  interactive graphics  Graphics that can be moved or manipulated by a user at a 
  22841.    terminal. 
  22842.  
  22843.  interactive program  (1) A program that is running (active) and is ready to 
  22844.    receive (or is receiving) input from a user. (2) A running program that can 
  22845.    receive input from the keyboard or another input device. Compare with active 
  22846.    program and contrast with noninteractive program. 
  22847.  
  22848.    Also known as a foreground program. 
  22849.  
  22850.  interchange file  A file containing data that can be sent from one 
  22851.    Presentation Manager interface application to another. 
  22852.  
  22853.  Interface Definition Language (IDL)  Language-neutral interface specification 
  22854.    for a SOM class. 
  22855.  
  22856.  interpreter  A program that translates and executes each instruction of a 
  22857.    high-level programming language before it translates and executes. 
  22858.  
  22859.  interprocess communication (IPC)  In the OS/2 operating system, the exchange 
  22860.    of information between processes or threads through semaphores, pipes, 
  22861.    queues, and shared memory. 
  22862.  
  22863.  interval timer  (1) A timer that provides program interruptions on a 
  22864.    program-controlled basis. (2) An electronic counter that counts intervals of 
  22865.    time under program control. 
  22866.  
  22867.  IOCtl  Input/output control. 
  22868.  
  22869.  IOPL  Input/output privilege level. 
  22870.  
  22871.  IOPL code segment  An IOPL executable section of programming code that enables 
  22872.    an application to directly manipulate hardware interrupts and ports without 
  22873.    replacing the device driver. See also privilege level. 
  22874.  
  22875.  IPC  Interprocess communication. 
  22876.  
  22877.  IPF  Information Presentation Facility. 
  22878.  
  22879.  IPF compiler  A text compiler that interpret tags in a source file and 
  22880.    converts the information into the specified format. 
  22881.  
  22882.  IPF tag language  A markup language that provides the instructions for 
  22883.    displaying online information. 
  22884.  
  22885.  item  A data object that can be passed in a DDE transaction. 
  22886.  
  22887.  
  22888. ΓòÉΓòÉΓòÉ <hidden> Glossary - J ΓòÉΓòÉΓòÉ
  22889.  
  22890.  journal  A special-purpose file that is used to record changes made in the 
  22891.    system. 
  22892.  
  22893.  
  22894. ΓòÉΓòÉΓòÉ <hidden> Glossary - K ΓòÉΓòÉΓòÉ
  22895.  
  22896.  Kanji  A graphic character set used in Japanese ideographic alphabets. 
  22897.  
  22898.  KBD$  Character-device name reserved for the keyboard. 
  22899.  
  22900.  kernel  The part of an operating system that performs basic functions, such as 
  22901.    allocating hardware resources. 
  22902.  
  22903.  kerning  The design of graphics characters so that their character boxes 
  22904.    overlap. Used to space text proportionally. 
  22905.  
  22906.  keyboard accelerator  A keystroke that generates a command message for an 
  22907.    application. 
  22908.  
  22909.  keyboard augmentation  A function that enables a user to press a keyboard key 
  22910.    while pressing a mouse button. 
  22911.  
  22912.  keyboard focus  A temporary attribute of a window. The window that has a 
  22913.    keyboard focus receives all keyboard input until the focus changes to a 
  22914.    different window. 
  22915.  
  22916.  Keys help  In SAA Common User Access architecture, a help action that provides 
  22917.    a listing of the application keys and their assigned functions. 
  22918.  
  22919.  
  22920. ΓòÉΓòÉΓòÉ <hidden> Glossary - L ΓòÉΓòÉΓòÉ
  22921.  
  22922.  label  In a graphics segment, an identifier of one or more elements that is 
  22923.    used when editing the segment. 
  22924.  
  22925.  LAN  local area network. 
  22926.  
  22927.  language support procedure  A function provided by the Presentation Manager 
  22928.    Interface for applications that do not, or cannot (as in the case of COBOL 
  22929.    and FORTRAN programs), provide their own dialog or window procedures. 
  22930.  
  22931.  lazy drag  See pickup and drop. 
  22932.  
  22933.  lazy drag set  See pickup set. 
  22934.  
  22935.  LDT  In the OS/2 operating system, Local Descriptor Table. 
  22936.  
  22937.  LIFO stack  A stack from which data is retrieved in last-in, first-out order. 
  22938.  
  22939.  linear address  A unique value that identifies the memory object. 
  22940.  
  22941.  linked list  Synonym for chained list. 
  22942.  
  22943.  list box  In SAA Advanced Common User Access architecture, a control that 
  22944.    contains scrollable choices from which a user can select one choice. 
  22945.  
  22946.    Note:  In CUA architecture, this is a programmer term. The end user term is 
  22947.    selection list. 
  22948.  
  22949.  list button  A button labeled with an underlined down-arrow that presents a 
  22950.    list of valid objects or choices that can be selected for that field. 
  22951.  
  22952.  list panel  A defined panel type that displays a list of items from which 
  22953.    users can select one or more choices and then specify one or more actions to 
  22954.    work on those choices. 
  22955.  
  22956.  load time  The point in time at which a program module is loaded into main 
  22957.    storage for execution. 
  22958.  
  22959.  load-on-call  A function of a linkage editor that allows selected segments of 
  22960.    the module to be disk resident while other segments are executing. Disk 
  22961.    resident segments are loaded for execution and given control when any entry 
  22962.    point that they contain is called. 
  22963.  
  22964.  local area network (LAN)  (1) A computer network located on a user's premises 
  22965.    within a limited geographical area. Communication within a local area 
  22966.    network is not subject to external regulations;  however, communication 
  22967.    across the LAN boundary may be subject to some form of regulation. (T)
  22968.  
  22969.    Note:  A LAN does not use store and forward techniques. (2) A network 
  22970.    inwhich a set of devices are connected to one another for communication and 
  22971.    that can be connected to a larger network. 
  22972.  
  22973.  Local Descriptor Table (LDT)  Defines code and data segments specific to a 
  22974.    single task. 
  22975.  
  22976.  lock  A serialization mechanism by means of which a resource is restricted for 
  22977.    use by the holder of the lock. 
  22978.  
  22979.  logical storage device  A device that the user can map to a physical (actual) 
  22980.    device. 
  22981.  
  22982.  LPT1, LPT2, LPT3  Character-device names reserved for parallel printers 1 
  22983.    through 3. 
  22984.  
  22985.  
  22986. ΓòÉΓòÉΓòÉ <hidden> Glossary - M ΓòÉΓòÉΓòÉ
  22987.  
  22988.  main window  The window that is positioned relative to the desktop window. 
  22989.  
  22990.  manipulation button  The button on a pointing device a user presses to 
  22991.    directly manipulate an object. 
  22992.  
  22993.  map  (1) A set of values having a defined correspondence with the quantities 
  22994.    or values of another set. (I)  (A)  (2) To establish a set of values having 
  22995.    a defined correspondence with the quantities or values of another set. (I)
  22996.  
  22997.  marker box  In computer graphics, the boundary that defines, in world 
  22998.    coordinates, the horizontal and vertical space occupied by a single marker 
  22999.    from a marker set. 
  23000.  
  23001.  marker symbol  A symbol centered on a point. Graphs and charts can use marker 
  23002.    symbols to indicate the plotted points. 
  23003.  
  23004.  marquee box  The rectangle that appears during a selection technique in which 
  23005.    a user selects objects by drawing a box around them with a pointing device. 
  23006.  
  23007.  Master Help Index  In the OS/2 operating system, an alphabetic list of help 
  23008.    topics related to using the operating system. 
  23009.  
  23010.  maximize  To enlarge a window to its largest possible size. 
  23011.  
  23012.  media window  The part of the physical device (display, printer, or plotter) 
  23013.    on which a picture is presented. 
  23014.  
  23015.  memory block  Part memory within a heap. 
  23016.  
  23017.  memory device context  A logical description of a data destination that is a 
  23018.    memory bit map. See also device context. 
  23019.  
  23020.  memory management  A feature of the operating system for allocating, sharing, 
  23021.    and freeing main storage. 
  23022.  
  23023.  memory object  Logical unit of memory requested by an application, which forms 
  23024.    the granular unit of memory manipulation from the application viewpoint. 
  23025.  
  23026.  menu  In SAA Advanced Common User Access architecture, an extension of the 
  23027.    menu bar that displays a list of choices available for a selected choice in 
  23028.    the menu bar. After a user selects a choice in menu bar, the corresponding 
  23029.    menu appears. Additional pop-up windows can appear from menu choices. 
  23030.  
  23031.  menu bar  In SAA Advanced Common User Access architecture, the area near the 
  23032.    top of a window, below the title bar and above the rest of the window, that 
  23033.    contains choices that provide access to other menus. 
  23034.  
  23035.  menu button  The button on a pointing device that a user presses to view a 
  23036.    pop-up menu associated with an object. 
  23037.  
  23038.  message  (1) In the Presentation Manager, a packet of data used for 
  23039.    communication between the Presentation Manager interface and Presentation 
  23040.    Manager applications (2) In a user interface, information not requested by 
  23041.    users but presented to users by the computer in response to a user action or 
  23042.    internal process. 
  23043.  
  23044.  message box  (1) A dialog window predefined by the system and used as a simple 
  23045.    interface for applications, without the necessity of creating 
  23046.    dialog-template resources or dialog procedures. (2) (D of C) In SAA Advanced 
  23047.    Common User Access architecture, a type of window that shows messages to 
  23048.    users. See also dialog box, primary window, secondary window. 
  23049.  
  23050.  message filter  The means of selecting which messages from a specific window 
  23051.    will be handled by the application. 
  23052.  
  23053.  message queue  A sequenced collection of messages to be read by the 
  23054.    application. 
  23055.  
  23056.  message stream mode  A method of operation in which data is treated as a 
  23057.    stream of messages.  Contrast with  byte stream. 
  23058.  
  23059.  metacharacter  See global file-name character. 
  23060.  
  23061.  metaclass  The conjunction of an object and its class information; that is, 
  23062.    the information pertaining to the class as a whole, rather than to a single 
  23063.    instance of the class. Each class is itself an object, which is an instance 
  23064.    of the metaclass. 
  23065.  
  23066.  metafile  A file containing a series of attributes that set color, shape and 
  23067.    size, usually of a picture or a drawing. Using a program that can interpret 
  23068.    these attributes, a user can view the assembled image. 
  23069.  
  23070.  metafile device context  A logical description of a data destination that is a 
  23071.    metafile, which is used for graphics interchange. See also device context. 
  23072.  
  23073.  metalanguage  A language used to specify another language. For example, data 
  23074.    types can be described using a metalanguage so as to make the descriptions 
  23075.    independent of any one computer language. 
  23076.  
  23077.  method  A function that defines a behavior for a class or object. 
  23078.  
  23079.  method override  The replacement, by a child class, of the implementation of a 
  23080.    method inherited from a parent and an ancestor class. 
  23081.  
  23082.  mickey  A unit of measurement for physical mouse motion whose value depends on 
  23083.    the mouse device driver currently loaded. 
  23084.  
  23085.  micro presentation space  A graphics presentation space in which a restricted 
  23086.    set of the GPI function calls is available. 
  23087.  
  23088.  minimize  To remove from the screen all windows associated with an application 
  23089.    and replace them with an icon that represents the application. 
  23090.  
  23091.  mix  An attribute that determines how the foreground of a graphic primitive is 
  23092.    combined with the existing color of graphics output. Also known as 
  23093.    foreground mix. Contrast with background mix. 
  23094.  
  23095.  mixed character string  A string containing a mixture of one-byte and Kanji or 
  23096.    Hangeul (two-byte) characters. 
  23097.  
  23098.  mnemonic  (1) A method of selecting an item on a pull-down by means of typing 
  23099.    the highlighted letter in the menu item. (2) (D of C) In SAA Advanced Common 
  23100.    User Access architecture, usually a single character, within the text of a 
  23101.    choice, identified by an underscore beneath the character. If all characters 
  23102.    in a choice already serve as mnemonics for other choices, another character, 
  23103.    placed in parentheses immediately following the choice, can be used. When a 
  23104.    user types the mnemonic for a choice, the choice is either selected or the 
  23105.    cursor is moved to that choice. 
  23106.  
  23107.  modal dialog box  In SAA Advanced Common User Access architecture, a type of 
  23108.    movable window, fixed in size, that requires a user to enter information 
  23109.    before continuing to work in the application window from which it was 
  23110.    displayed. Contrast with modeless dialog box. Also known as a serial dialog 
  23111.    box. Contrast with parallel dialog box. 
  23112.  
  23113.    Note:  In CUA architecture, this is a programmer term. The end user term is 
  23114.    pop-up window. 
  23115.  
  23116.  model space  See graphics model space. 
  23117.  
  23118.  modeless dialog box  In SAA Advanced Common User Access architecture, a type 
  23119.    of movable window, fixed in size, that allows users to continue their dialog 
  23120.    with the application without entering information in the dialog box. Also 
  23121.    known as a parallel dialog box. Contrast with modal dialog box. 
  23122.  
  23123.    Note:  In CUA architecture, this is a programmer term. The end user term is 
  23124.    pop-up window. 
  23125.  
  23126.  module definition file  A file that describes the code segments within a load 
  23127.    module. For example, it indicates whether a code segment is loadable before 
  23128.    module execution begins (preload), or loadable only when referred to at run 
  23129.    time (load-on-call). 
  23130.  
  23131.  mouse  In SAA usage, a device that a user moves on a flat surface to position 
  23132.    a pointer on the screen. It allows a user to select a choice o function to 
  23133.    be performed or to perform operations on the screen, such as dragging or 
  23134.    drawing lines from one position to another. 
  23135.  
  23136.  MOUSE$  Character-device name reserved for a mouse. 
  23137.  
  23138.  multiple-choice selection  In SAA Basic Common User Access architecture, a 
  23139.    type of field from which a user can select one or more choices or select 
  23140.    none. See also check box. Contrast with extended-choice selection. 
  23141.  
  23142.  multiple-line entry field  In SAA Advanced Common User Access architecture, a 
  23143.    control into which a user types more than one line of information. See also 
  23144.    single-line entry field. 
  23145.  
  23146.  multitasking  The concurrent processing of applications or parts of 
  23147.    applications. A running application and its data are protected from other 
  23148.    concurrently running applications. 
  23149.  
  23150.  mutex semaphore  (Mutual exclusion semaphore). A semaphore that enables 
  23151.    threads to serialize their access to resources. Only the thread that 
  23152.    currently owns the mutex semaphore can gain access to the resource, thus 
  23153.    preventing one thread from interrupting operations being performed by 
  23154.    another. 
  23155.  
  23156.  muxwait semaphore  (Multiple wait semaphore). A semaphore that enables a 
  23157.    thread to wait either for multiple event semaphores to be posted or for 
  23158.    multiple mutex semaphores to be released. Alternatively, a muxwait semaphore 
  23159.    can be set to enable a thread to wait for any ONE of the event or mutex 
  23160.    semaphores in the muxwait semaphore's list to be posted or released. 
  23161.  
  23162.  
  23163. ΓòÉΓòÉΓòÉ <hidden> Glossary - N ΓòÉΓòÉΓòÉ
  23164.  
  23165.  named pipe  A named buffer that provides client-to-server, server-to-client, 
  23166.    or full duplex communication between unrelated processes. Contrast with 
  23167.    unnamed pipe. 
  23168.  
  23169.  national language support (NLS)  The modification or conversion of a United 
  23170.    States English product to conform to the requirements of another language or 
  23171.    country. This can include the enabling or retrofitting of a product and the 
  23172.    translation of nomenclature, MRI, or documentation of a product. 
  23173.  
  23174.  nested list  A list that is contained within another list. 
  23175.  
  23176.  NLS  national language support. 
  23177.  
  23178.  non-8.3 file-name format  A file-naming convention in which file names can 
  23179.    consist of up to 255 characters. See also 8.3 file-name format. 
  23180.  
  23181.  noncritical extended attribute  An extended attribute that is not necessary 
  23182.    for the function of an application. 
  23183.  
  23184.  nondestructive read  Reading that does not erase the data in the source 
  23185.    location. (T)
  23186.  
  23187.  noninteractive program  A running program that cannot receive input from the 
  23188.    keyboard or other input device. Compare with active program, and contrast 
  23189.    with interactive program. 
  23190.  
  23191.  nonretained graphics  Graphic primitives that are not remembered by the 
  23192.    Presentation Manager interface when they have been drawn. Contrast with 
  23193.    retained graphics. 
  23194.  
  23195.  null character (NUL)  (1) Character-device name reserved for a nonexistent 
  23196.    (dummy) device. (2) (D of C) A control character that is used to accomplish 
  23197.    media-fill or time-fill and that may be inserted into or removed from a 
  23198.    sequence of characters without affecting the meaning of the sequence; 
  23199.    however, the control of equipment or the format may be affected by this 
  23200.    character. (I)  (A)
  23201.  
  23202.  null-terminated string  A string of (n+1) characters where the (n+1)th 
  23203.    character is the `null' character (0x00) Also known as `zero-terminated' 
  23204.    string and 'ASCIIZ' string. 
  23205.  
  23206.  
  23207. ΓòÉΓòÉΓòÉ <hidden> Glossary - O ΓòÉΓòÉΓòÉ
  23208.  
  23209.  object  A set of data and actions that can be performed on that data. 
  23210.  
  23211.  Object Interface Definition Language (OIDL)  Specification language used in 
  23212.    SOM Version 1 for defining classes. Replaced by Interface Definition 
  23213.    Language (IDL). 
  23214.  
  23215.  object window  A window that does not have a parent but which might have child 
  23216.    windows. An object window cannot be presented on a device. 
  23217.  
  23218.  OIDL  Object Interface Definition Language. 
  23219.  
  23220.  open  To start working with a file, directory, or other object. 
  23221.  
  23222.  ordered list  Vertical arrangements of items, with each item in the list 
  23223.    preceded by a number or letter. 
  23224.  
  23225.  outline font  A set of symbols, each of which is created as a series of lines 
  23226.    and curves.  Synonymous with vector font. Contrast with image font. 
  23227.  
  23228.  output area  An area of storage reserved for output. (A)
  23229.  
  23230.  owner window  A window into which specific events that occur in another 
  23231.    (owned) window are reported. 
  23232.  
  23233.  ownership  The determination of how windows communicate using messages. 
  23234.  
  23235.  owning process  The process that owns the resources that might be shared with 
  23236.    other processes. 
  23237.  
  23238.  
  23239. ΓòÉΓòÉΓòÉ <hidden> Glossary - P ΓòÉΓòÉΓòÉ
  23240.  
  23241.  page  (1) A 4KB segment of contiguous physical memory. (2) (D of C) A defined 
  23242.    unit of space on a storage medium. 
  23243.  
  23244.  page viewport  A boundary in device coordinates that defines the area of the 
  23245.    output device in which graphics are to be displayed. The presentation-page 
  23246.    contents are transformed automatically to the page viewport in device space. 
  23247.  
  23248.  paint  (1) The action of drawing or redrawing the contents of a window. (2) In 
  23249.    computer graphics, to shade an area of a display image;  for example, with 
  23250.    crosshatching or color. 
  23251.  
  23252.  panel  In SAA Basic Common User Access architecture, a particular arrangement 
  23253.    of information that is presented in a window or pop-up. If some of the 
  23254.    information is not visible, a user can scroll through the information. 
  23255.  
  23256.  panel area  An area within a panel that contains related information. The 
  23257.    three major Common User Access-defined panel areas are the action bar, the 
  23258.    function key area, and the panel body. 
  23259.  
  23260.  panel area separator  In SAA Basic Common User Access architecture, a solid, 
  23261.    dashed, or blank line that provides a visual distinction between two 
  23262.    adjacent areas of a panel. 
  23263.  
  23264.  panel body  The portion of a panel not occupied by the action bar, function 
  23265.    key area, title or scroll bars. The panel body can contain protected 
  23266.    information, selection fields, and entry fields. The layout and content of 
  23267.    the panel body determine the panel type. 
  23268.  
  23269.  panel body area  See client area. 
  23270.  
  23271.  panel definition  A description of the contents and characteristics of a 
  23272.    panel. A panel definition is the application developer's mechanism for 
  23273.    predefining the format to be presented to users in a window. 
  23274.  
  23275.  panel ID  In SAA Basic Common User Access architecture, a panel identifier, 
  23276.    located in the upper-left corner of a panel.  A user can choose whether to 
  23277.    display the panel ID. 
  23278.  
  23279.  panel title  In SAA Basic Common User Access architecture, a particular 
  23280.    arrangement of information that is presented in a window or pop-up. If some 
  23281.    of the information is not visible, a user can scroll through the 
  23282.    information. 
  23283.  
  23284.  paper size  The size of paper, defined in either standard U.S. or European 
  23285.    names (for example, A, B, A4), and measured in inches or millimeters 
  23286.    respectively. 
  23287.  
  23288.  parallel dialog box  See modeless dialog box. 
  23289.  
  23290.  parameter list  A list of values that provides a means of associating 
  23291.    addressability of data defined in a called program with data in the calling 
  23292.    program. It contains parameter names and the order in which they are to be 
  23293.    associated in the calling and called program. 
  23294.  
  23295.  parent process  In the OS/2 operating system, a process that creates other 
  23296.    processes. Contrast with child process. 
  23297.  
  23298.  parent window  In the OS/2 operating system, a window that creates a child 
  23299.    window. The child window is drawn within the parent window. If the parent 
  23300.    window is moved, resized, or destroyed, the child window also will be moved, 
  23301.    resized, or destroyed. However, the child window can be moved and resized 
  23302.    independently from the parent window, within the boundaries of the parent 
  23303.    window. Contrast with child window. 
  23304.  
  23305.  partition  (1) A fixed-size division of storage. (2) On an IBM personal 
  23306.    computer fixed disk, one of four possible storage areas of variable size; 
  23307.    one may be accessed by DOS, and each of the others may be assigned to 
  23308.    another operating system. 
  23309.  
  23310.  Paste  A choice in the Edit pull-down that a user selects to move the contents 
  23311.    of the clipboard into a preselected location. See also Copy and Cut. 
  23312.  
  23313.  path  The route used to locate files; the storage location of a file. A fully 
  23314.    qualified path lists the drive identifier, directory name, subdirectory name 
  23315.    (if any), and file name with the associated extension. 
  23316.  
  23317.  PDD  Physical device driver. 
  23318.  
  23319.  peeking  An action taken by any thread in the process that owns the queue to 
  23320.    examine queue elements without removing them. 
  23321.  
  23322.  pel  (1) The smallest area of a display screen capable of being addressed and 
  23323.    switched between visible and invisible states. Synonym for display point, 
  23324.    pixel, and picture element. (2) (D of C) Picture element. 
  23325.  
  23326.  persistent object  An object whose instance data and state are preserved 
  23327.    between system shutdown and system startup. 
  23328.  
  23329.  physical device driver (PDD)  A system interface that handles hardware 
  23330.    interrupts and supports a set of input and output functions. 
  23331.  
  23332.  pick  To select part of a displayed object using the pointer. 
  23333.  
  23334.  pickup  To add an object or set of objects to the pickup set. 
  23335.  
  23336.  pickup and drop  A drag operation that does not require the direct 
  23337.    manipulation button to be pressed for the duration of the drag. 
  23338.  
  23339.  pickup set  The set of objects that have been picked up as part of a pickup 
  23340.    and drop operation. 
  23341.  
  23342.  picture chain  See segment chain. 
  23343.  
  23344.  picture element  (1) Synonym for pel. (2) (D of C) In computer graphics, the 
  23345.    smallest element of a display surface that can be independently assigned 
  23346.    color and intensity. (T)  . (3) The area of the finest detail that can be 
  23347.    reproduced effectively on the recording medium. 
  23348.  
  23349.  PID  Process identification. 
  23350.  
  23351.  pipe  (1) A named or unnamed buffer used to pass data between processes. A 
  23352.    process reads from or writes to a pipe as if the pipe were a standard-input 
  23353.    or standard-output file. See also named pipe and unnamed pipe. (2) (D of C) 
  23354.    To direct data so that the output from one process becomes the input to 
  23355.    another process. The standard output of one command can be connected to the 
  23356.    standard input of another with the pipe operator (|). 
  23357.  
  23358.  pixel  (1) Synonym for pel. (2) (D of C) Picture element. 
  23359.  
  23360.  plotter  An output unit that directly produces a hardcopy record of data on a 
  23361.    removable medium, in the form of a two-dimensional graphic representation. (T)
  23362.  
  23363.  PM  Presentation Manager. 
  23364.  
  23365.  pointer  (1) The symbol displayed on the screen that is moved by a pointing 
  23366.    device, such as a mouse. The pointer is used to point at items that users 
  23367.    can select. Contrast with cursor. (2) A data element that indicates the 
  23368.    location of another data element. (T)
  23369.  
  23370.  POINTER$  Character-device name reserved for a pointer device (mouse screen 
  23371.    support). 
  23372.  
  23373.  pointing device  In SAA Advanced Common User Access architecture, an 
  23374.    instrument, such as a mouse, trackball, or joystick, used to move a pointer 
  23375.    on the screen. 
  23376.  
  23377.  pointings  Pairs of x-y coordinates produced by an operator defining positions 
  23378.    on a screen with a pointing device, such as a mouse. 
  23379.  
  23380.  polyfillet  A curve based on a sequence of lines. The curve is tangential to 
  23381.    the end points of the first and last lines, and tangential also to the 
  23382.    midpoints of all other lines. See also fillet. 
  23383.  
  23384.  polygon  One or more closed figures that can be drawn filled, outlined, or 
  23385.    filled and outlined. 
  23386.  
  23387.  polyline  A sequence of adjoining lines. 
  23388.  
  23389.  polymorphism  The ability to have different implementations of the same method 
  23390.    for two or more classes of objects. 
  23391.  
  23392.  pop  To retrieve an item from a last-in-first-out stack of items. Contrast 
  23393.    with push. 
  23394.  
  23395.  pop-up menu  A menu that lists the actions that a user can perform on an 
  23396.    object. The contents of the pop-up menu can vary depending on the context, 
  23397.    or state, of the object. 
  23398.  
  23399.  pop-up window  (1) A window that appears on top of another window in a dialog. 
  23400.    Each pop-up window must be completed before returning to the underlying 
  23401.    window. (2) (D of C) In SAA Advanced Common User Access architecture, a 
  23402.    movable window, fixed in size, in which a user provides information required 
  23403.    by an application so that it can continue to process a user request. 
  23404.  
  23405.  presentation drivers  Special purpose I/O routines that handle field 
  23406.    device-independent I/O requests from the PM and its applications. 
  23407.  
  23408.  Presentation Manager (PM)  The interface of the OS/2 operating system that 
  23409.    presents, in windows a graphics-based interface to applications and files 
  23410.    installed and running under the OS/2 operating system. 
  23411.  
  23412.  presentation page  The coordinate space in which a picture is assembled for 
  23413.    display. 
  23414.  
  23415.  presentation space (PS)  (1) Contains the device-independent definition of a 
  23416.    picture. (2) (D of C) The display space on a display device. 
  23417.  
  23418.  primary window  In SAA Common User Access architecture, the window in which 
  23419.    the main interaction between the user and the application takes place. In a 
  23420.    multiprogramming environment, each application starts in its own primary 
  23421.    window. The primary window remains for the duration of the application, 
  23422.    although the panel displayed will change as the user's dialog moves forward. 
  23423.    See also secondary window. 
  23424.  
  23425.  primitive  In computer graphics, one of several simple functions for drawing 
  23426.    on the screen, including, for example, the rectangle, line, ellipse, 
  23427.    polygon, and so on. 
  23428.  
  23429.  primitive attribute  A specifiable characteristic of a graphic primitive. See 
  23430.    graphics attributes. 
  23431.  
  23432.  print job  The result of sending a document or picture to be printed. 
  23433.  
  23434.  Print Manager  In the Presentation Manager, the part of the spooler that 
  23435.    manages the spooling process. It also allows users to view print queues and 
  23436.    to manipulate print jobs. 
  23437.  
  23438.  privilege level  A protection level imposed by the hardware architecture of 
  23439.    the IBM personal computer.  There are four privilege levels (number 0 
  23440.    through 3).  Only certain types of programs are allowed to execute at each 
  23441.    privilege level.  See also IOPL code segment. 
  23442.  
  23443.  procedure call  In programming languages, a language construct for invoking 
  23444.    execution of a procedure. 
  23445.  
  23446.  process  An instance of an executing application and the resources it is 
  23447.    using. 
  23448.  
  23449.  program  A sequence of instructions that a computer can interpret and execute. 
  23450.  
  23451.  program details  Information about a program that is specified in the Program 
  23452.    Manager window and is used when the program is started. 
  23453.  
  23454.  program group  In the Presentation Manager, several programs that can be acted 
  23455.    upon as a single entity. 
  23456.  
  23457.  program name  The full file specification of a program. Contrast with program 
  23458.    title. 
  23459.  
  23460.  program title  The name of a program as it is listed in the Program Manager 
  23461.    window. Contrast with program name. 
  23462.  
  23463.  prompt  A displayed symbol or message that requests input from the user or 
  23464.    gives operational information; for example, on the display screen of an IBM 
  23465.    personal computer, the DOS A> prompt. The user must respond to the prompt in 
  23466.    order to proceed. 
  23467.  
  23468.  protect mode  A method of program operation that limits or prevents access to 
  23469.    certain instructions or areas of storage. Contrast with real mode. 
  23470.  
  23471.  protocol  A set of semantic and syntactic rules that determines the behavior 
  23472.    of functional units in achieving communication. (I)
  23473.  
  23474.  pseudocode  An artificial language used to describe computer program 
  23475.    algorithms without using the syntax of any particular programming language. (A)
  23476.  
  23477.  pull-down  (1) An action bar extension that displays a list of choices 
  23478.    available for a selected action bar choice. After users select an action bar 
  23479.    choice, the pull-down appears with the list of choices. Additional pop-up 
  23480.    windows may appear from pull-down choices to further extend the actions 
  23481.    available to users. (2) (D of C) In SAA Common User Access architecture, 
  23482.    pertaining to a choice in an action bar pull-down. 
  23483.  
  23484.  push  To add an item to a last-in-first-out stack of items. Contrast with pop. 
  23485.  
  23486.  push button  In SAA Advanced Common User Access architecture, a rectangle with 
  23487.    text inside. Push buttons are used in windows for actions that occur 
  23488.    immediately when the push button is selected. 
  23489.  
  23490.  putback  To remove an object or set of objects from the lazy drag set. This 
  23491.    has the effect of undoing the pickup operation for those objects 
  23492.  
  23493.  putdown  To drop the objects in the lazy drag set on the target object. 
  23494.  
  23495.  
  23496. ΓòÉΓòÉΓòÉ <hidden> Glossary - Q ΓòÉΓòÉΓòÉ
  23497.  
  23498.  queue  (1) A linked list of elements waiting to be processed in FIFO order. 
  23499.    For example, a queue may be a list of print jobs waiting to be printed. (2) 
  23500.    (D of C) A line or list of items waiting to be processed; for example, work 
  23501.    to be performed or messages to be displayed. 
  23502.  
  23503.  queued device context  A logical description of a data destination (for 
  23504.    example, a printer or plotter) where the output is to go through the 
  23505.    spooler. See also device context. 
  23506.  
  23507.  
  23508. ΓòÉΓòÉΓòÉ <hidden> Glossary - R ΓòÉΓòÉΓòÉ
  23509.  
  23510.  radio button  (1) A control window, shaped like a round button on the screen, 
  23511.    that can be in a checked or unchecked state. It is used to select a single 
  23512.    item from a list. Contrast with check box. (2) In SAA Advanced Common User 
  23513.    Access architecture, a circle with text beside it. Radio buttons are 
  23514.    combined to show a user a fixed set of choices from which only one can be 
  23515.    selected. The circle is partially filled when a choice is selected. 
  23516.  
  23517.  RAS  Reliability, availability, and serviceability. 
  23518.  
  23519.  raster  (1) In computer graphics, a predetermined pattern of lines that 
  23520.    provides uniform coverage of a display space. (T)  (2) The coordinate grid 
  23521.    that divides the display area of a display device.  (A)
  23522.  
  23523.  read-only file  A file that can be read from but not written to. 
  23524.  
  23525.  real mode  A method of program operation that does not limit or prevent access 
  23526.    to any instructions or areas of storage.  The operating system loads the 
  23527.    entire program into storage and gives the program access to all system 
  23528.    resources. Contrast with protect mode. 
  23529.  
  23530.  realize  To cause the system to ensure, wherever possible, that the physical 
  23531.    color table of a device is set to the closest possible match in the logical 
  23532.    color table. 
  23533.  
  23534.  recursive routine  A routine that can call itself, or be called by another 
  23535.    routine that was called by the recursive routine. 
  23536.  
  23537.  reentrant  The attribute of a program or routine that allows the same copy of 
  23538.    the program or routine to be used concurrently by two or more tasks. 
  23539.  
  23540.  reference phrase  (1) A word or phrase that is emphasized in a 
  23541.    device-dependent manner to inform the user that additional information for 
  23542.    the word or phrase is available. (2) (D of C) In hypertext, text that is 
  23543.    highlighted and preceded by a single-character input field used to signify 
  23544.    the existence of a hypertext link. 
  23545.  
  23546.  reference phrase help  In SAA Common User Access architecture, highlighted 
  23547.    words or phrases within help information that a user selects to get 
  23548.    additional information. 
  23549.  
  23550.  refresh  To update a window, with changed information, to its current status. 
  23551.  
  23552.  region  A clipping boundary in device space. 
  23553.  
  23554.  register  A part of internal storage having a specified storage capacity and 
  23555.    usually intended for a specific purpose. (T)
  23556.  
  23557.  remote file system  A file-system driver that gains access to a remote system 
  23558.    without a block device driver. 
  23559.  
  23560.  resource  The means of providing extra information used in the definition of a 
  23561.    window. A resource can contain definitions of fonts, templates, 
  23562.    accelerators, and mnemonics; the definitions are held in a resource file. 
  23563.  
  23564.  resource file  A file containing information used in the definition of a 
  23565.    window. Definitions can be of fonts, templates, accelerators, and mnemonics. 
  23566.  
  23567.  restore  To return a window to its original size or position following a 
  23568.    sizing or moving action. 
  23569.  
  23570.  retained graphics  Graphic primitives that are remembered by the Presentation 
  23571.    Manager interface after they have been drawn. Contrast with nonretained 
  23572.    graphics. 
  23573.  
  23574.  return code  (1) A value returned to a program to indicate the results of an 
  23575.    operation requested by that program. (2) A code used to influence the 
  23576.    execution of succeeding instructions.(A) 
  23577.  
  23578.  reverse video  (1) A form of highlighting a character, field, or cursor by 
  23579.    reversing the color of the character, field, or cursor with its background; 
  23580.    for example, changing a red character on a black background to a black 
  23581.    character on a red background. (2) In SAA Basic Common User Access 
  23582.    architecture, a screen emphasis feature that interchanges the foreground and 
  23583.    background colors of an item. 
  23584.  
  23585.  REXX Language  Restructured Extended Executor. A procedural language that 
  23586.    provides batch language functions along with structured programming 
  23587.    constructs such as loops; conditional testing and subroutines. 
  23588.  
  23589.  RGB  (1) Color coding in which the brightness of the additive primary colors 
  23590.    of light, red, green, and blue, are specified as three distinct values of 
  23591.    white light. (2) Pertaining to a color display that accepts signals 
  23592.    representing red, green, and blue. 
  23593.  
  23594.  roman  Relating to a type style with upright characters. 
  23595.  
  23596.  root segment  In a hierarchical database, the highest segment in the tree 
  23597.    structure. 
  23598.  
  23599.  round-robin scheduling  A process that allows each thread to run for a 
  23600.    specified amount of time. 
  23601.  
  23602.  run time  (1) Any instant at which the execution of a particular computer 
  23603.    program takes place. (T)  (2) The amount of time needed for the execution of 
  23604.    a particular computer program. (T)  (3) The time during which an instruction 
  23605.    in an instruction register is decoded and performed. Synonym for execution 
  23606.    time. 
  23607.  
  23608.  
  23609. ΓòÉΓòÉΓòÉ <hidden> Glossary - S ΓòÉΓòÉΓòÉ
  23610.  
  23611.  SAA  Systems Application Architecture. 
  23612.  
  23613.  SBCS  Single-byte character set. 
  23614.  
  23615.  scheduler  A computer program designed to perform functions such as 
  23616.    scheduling, initiation, and termination of jobs. 
  23617.  
  23618.  screen  In SAA Basic Common User Access architecture, the physical surface of 
  23619.    a display device upon which information is shown to a user. 
  23620.  
  23621.  screen device context  A logical description of a data destination that is a 
  23622.    particular window on the screen. See also device context. 
  23623.  
  23624.  SCREEN$  Character-device name reserved for the display screen. 
  23625.  
  23626.  scroll bar  In SAA Advanced Common User Access architecture, a part of a 
  23627.    window, associated with a scrollable area, that a user interacts with to see 
  23628.    information that is not currently allows visible. 
  23629.  
  23630.  scrollable entry field  An entry field larger than the visible field. 
  23631.  
  23632.  scrollable selection field  A selection field that contains more choices than 
  23633.    are visible. 
  23634.  
  23635.  scrolling  Moving a display image vertically or horizontally in a manner such 
  23636.    that new data appears at one edge, as existing data disappears at the 
  23637.    opposite edge. 
  23638.  
  23639.  secondary window  A window that contains information that is dependent on 
  23640.    information in a primary window and is used to supplement the interaction in 
  23641.    the primary window. 
  23642.  
  23643.  sector  On disk or diskette storage, an addressable subdivision of a track 
  23644.    used to record one block of a program or data. 
  23645.  
  23646.  segment  See graphics segment. 
  23647.  
  23648.  segment attributes  Attributes that apply to the segment as an entity, as 
  23649.    opposed to the individual primitives within the segment. For example, the 
  23650.    visibility or detectability of a segment. 
  23651.  
  23652.  segment chain  All segments in a graphics presentation space that are defined 
  23653.    with the `chained' attribute. Synonym for picture chain. 
  23654.  
  23655.  segment priority  The order in which segments are drawn. 
  23656.  
  23657.  segment store  An area in a normal graphics presentation space where retained 
  23658.    graphics segments are stored. 
  23659.  
  23660.  select  To mark or choose an item. Note that select means to mark or type in a 
  23661.    choice on the screen; enter means to send all selected choices to the 
  23662.    computer for processing. 
  23663.  
  23664.  select button  The button on a pointing device, such as a mouse, that is 
  23665.    pressed to select a menu choice.  Also known as button 1. 
  23666.  
  23667.  selection cursor  In SAA Advanced Common User Access architecture, a visual 
  23668.    indication that a user has selected a choice. It is represented by outlining 
  23669.    the choice with a dotted box. See also text cursor. 
  23670.  
  23671.  selection field  (1) In SAA Advanced Common User Access architecture, a set of 
  23672.    related choices. See also entry field. (2) In SAA Basic Common User Access 
  23673.    architecture, an area of a panel that cannot be scrolled and contains a 
  23674.    fixed number of choices. 
  23675.  
  23676.  semantics  The relationships between symbols and their meanings. 
  23677.  
  23678.  semaphore  An object used by applications for signalling purposes and for 
  23679.    controlling access to serially reusable resources. 
  23680.  
  23681.  separator  In SAA Advanced Common User Access architecture, a line or color 
  23682.    boundary that provides a visual distinction between two adjacent areas. 
  23683.  
  23684.  serial dialog box  See modal dialog box. 
  23685.  
  23686.  serialization  The consecutive ordering of items. 
  23687.  
  23688.  serialize  To ensure that one or more events occur in a specified sequence. 
  23689.  
  23690.  serially reusable resource (SRR)  A logical resource or object that can be 
  23691.    accessed by only one task at a time. 
  23692.  
  23693.  session  (1) A routing mechanism for user interaction via the console; a 
  23694.    complete environment that determines how an application runs and how users 
  23695.    interact with the application. OS/2 can manage more than one session at a 
  23696.    time, and more than one process can run in a session. Each session has its 
  23697.    own set of environment variables that determine where OS/2 looks for 
  23698.    dynamic-link libraries and other important files. (2) (D of C) In the OS/2 
  23699.    operating system, one instance of a started program or command prompt. Each 
  23700.    session is separate from all other sessions that might be running on the 
  23701.    computer. The operating system is responsible for coordinating the resources 
  23702.    that each session uses, such as computer memory, allocation of processor 
  23703.    time, and windows on the screen. 
  23704.  
  23705.  Settings Notebook  A control window that is used to display the settings for 
  23706.    an object and to enable the user to change them. 
  23707.  
  23708.  shadow  An object that refers to another object. A shadow is not a copy of 
  23709.    another object, but is another representation of the object. 
  23710.  
  23711.  shadow box  The area on the screen that follows mouse movements and shows what 
  23712.    shape the window will take if the mouse button is released. 
  23713.  
  23714.  shared data  Data that is used by two or more programs. 
  23715.  
  23716.  shared memory  In the OS/2 operating system, a segment that can be used by 
  23717.    more than one program. 
  23718.  
  23719.  shear  In computer graphics, the forward or backward slant of a graphics 
  23720.    symbol or string of such symbols relative to a line perpendicular to the 
  23721.    baseline of the symbol. 
  23722.  
  23723.  shell  (1) A software interface between a user and the operating system of a 
  23724.    computer. Shell programs interpret commands and user interactions on devices 
  23725.    such as keyboards, pointing devices, and touch-sensitive screens, and 
  23726.    communicate them to the operating system. (2) Software that allows a kernel 
  23727.    program to run under different operating-system environments. 
  23728.  
  23729.  shutdown  The process of ending operation of a system or a subsystem, 
  23730.    following a defined procedure. 
  23731.  
  23732.  sibling processes  Child processes that have the same parent process. 
  23733.  
  23734.  sibling windows  Child windows that have the same parent window. 
  23735.  
  23736.  simple list  A list of like values; for example, a list of user names. 
  23737.    Contrast with mixed list. 
  23738.  
  23739.  single-byte character set (SBCS)  A character set in which each character is 
  23740.    represented by a one-byte code.  Contrast with double-byte character set. 
  23741.  
  23742.  slider box  In SAA Advanced Common User Access architecture: a part of the 
  23743.    scroll bar that shows the position and size of the visible information in a 
  23744.    window relative to the total amount of information available. Also known as 
  23745.    thumb mark. 
  23746.  
  23747.  SOM  System Object Model. 
  23748.  
  23749.  source file  A file that contains source statements for items such as 
  23750.    high-level language programs and data description specifications. 
  23751.  
  23752.  source statement  A statement written in a programming language. 
  23753.  
  23754.  specific dynamic-link module  A dynamic-link module created for the exclusive 
  23755.    use of an application. 
  23756.  
  23757.  spin button  In SAA Advanced Common User Access architecture, a type of entry 
  23758.    field that shows a scrollable ring of choices from which a user can select a 
  23759.    choice. After the last choice is displayed, the first choice is displayed 
  23760.    again.  A user can also type a choice from the scrollable ring into the 
  23761.    entry field without interacting with the spin button. 
  23762.  
  23763.  spline  A sequence of one or more B╨Æzier curves. 
  23764.  
  23765.  spooler  A program that intercepts the data going to printer devices and 
  23766.    writes it to disk. The data is printed or plotted when it is complete and 
  23767.    the required device is available.  The spooler prevents output from 
  23768.    different sources from being intermixed. 
  23769.  
  23770.  stack  A list constructed and maintained so that the next data element to be 
  23771.    retrieved is the most recently stored. This method is characterized as 
  23772.    last-in-first-out (LIFO). 
  23773.  
  23774.  standard window  A collection of window elements that form a panel. The 
  23775.    standard window can include one or more of the following window elements: 
  23776.    sizing borders, system menu icon, title bar, maximize/minimize/restore 
  23777.    icons, action bar and pull-downs, scroll bars, and client area. 
  23778.  
  23779.  static control  The means by which the application presents descriptive 
  23780.    information (for example, headings and descriptors) to the user. The user 
  23781.    cannot change this information. 
  23782.  
  23783.  static storage  (1) A read/write storage unit in which data is retained in the 
  23784.    absence of control signals. (A)  Static storage may use dynamic addressing 
  23785.    or sensing circuits. (2) Storage other than dynamic storage. (A)
  23786.  
  23787.  style  See window style. 
  23788.  
  23789.  subclass  A class that is a child of another class. See also Inheritance. 
  23790.  
  23791.  subdirectory  In an IBM personal computer, a file referred to in a root 
  23792.    directory that contains the names of other files stored on the diskette or 
  23793.    fixed disk. 
  23794.  
  23795.  swapping  (1) A process that interchanges the contents of an area of real 
  23796.    storage with the contents of an area in auxiliary storage. (I)  (A)  (2) In 
  23797.    a system with virtual storage, a paging technique that writes the active 
  23798.    pages of a job to auxiliary storage and reads pages of another job from 
  23799.    auxiliary storage into real storage. (3) The process of temporarily removing 
  23800.    an active job from main storage, saving it on disk, and processing another 
  23801.    job in the area of main storage formerly occupied by the first job. 
  23802.  
  23803.  switch  (1) In SAA usage, to move the cursor from one point of interest to 
  23804.    another;  for example, to move from one screen or window to another or from 
  23805.    a place within a displayed image to another place on the same displayed 
  23806.    image. (2) In a computer program, a conditional instruction and an indicator 
  23807.    to be interrogated by that instruction. (3) A device or programming 
  23808.    technique for making a selection, for example, a toggle, a conditional jump. 
  23809.  
  23810.  switch list  See Task List. 
  23811.  
  23812.  symbolic identifier  A text string that equates to an integer value in an 
  23813.    include file, which is used to identify a programming object. 
  23814.  
  23815.  symbols  In Information Presentation Facility, a document element used to 
  23816.    produce characters that cannot be entered from the keyboard. 
  23817.  
  23818.  synchronous  Pertaining to two or more processes that depend upon the 
  23819.    occurrence of specific events such as common timing signals. (T)  See also 
  23820.    asynchronous. 
  23821.  
  23822.  System Menu  In the Presentation Manager, the pull-down in the top left corner 
  23823.    of a window that allows it to be moved and sized with the keyboard. 
  23824.  
  23825.  System Object Model (SOM)  A mechanism for language-neutral, object-oriented 
  23826.    programming in the OS/2 environment. 
  23827.  
  23828.  system queue  The master queue for all pointer device or keyboard events. 
  23829.  
  23830.  system-defined messages  Messages that control the operations of applications 
  23831.    and provides input an other information for applications to process. 
  23832.  
  23833.  Systems Application Architecture (SAA)  A set of IBM software interfaces, 
  23834.    conventions, and protocols that provide a framework for designing and 
  23835.    developing applications that are consistent across systems. 
  23836.  
  23837.  
  23838. ΓòÉΓòÉΓòÉ <hidden> Glossary - T ΓòÉΓòÉΓòÉ
  23839.  
  23840.  table tags  In Information Presentation Facility, a document element that 
  23841.    formats text in an arrangement of rows and columns. 
  23842.  
  23843.  tag  (1) One or more characters attached to a set of data that contain 
  23844.    information about the set, including its identification. (I)  (A)  (2) In 
  23845.    Generalized Markup Language markup, a name for a type of document or 
  23846.    document element that is entered in the source document to identify it. 
  23847.  
  23848.  target object  An object to which the user is transferring information. 
  23849.  
  23850.  Task List  In the Presentation Manager, the list of programs that are active. 
  23851.    The list can be used to switch to a program and to stop programs. 
  23852.  
  23853.  terminate-and-stay-resident (TSR)  Pertaining to an application that modifies 
  23854.    an operating system interrupt vector to point to its own location (known as 
  23855.    hooking an interrupt). 
  23856.  
  23857.  text  Characters or symbols. 
  23858.  
  23859.  text cursor  A symbol displayed in an entry field that indicates where typed 
  23860.    input will appear. 
  23861.  
  23862.  text window  Also known as the VIO window. 
  23863.  
  23864.  text-windowed application  The environment in which the operating system 
  23865.    performs advanced-video input and output operations. 
  23866.  
  23867.  thread  A unit of execution within a process. It uses the resources of the 
  23868.    process. 
  23869.  
  23870.  thumb mark  The portion of the scroll bar that describes the range and 
  23871.    properties of the data that is currently visible in a window. Also known as 
  23872.    a slider box. 
  23873.  
  23874.  thunk  Term used to describe the process of address conversion, stack and 
  23875.    structure realignment, etc., necessary when passing control between 16-bit 
  23876.    and 32-bit modules. 
  23877.  
  23878.  tilde  A mark used to denote the character that is to be used as a mnemonic 
  23879.    when selecting text items within a menu. 
  23880.  
  23881.  time slice  (1) An interval of time on the processing unit allocated for use 
  23882.    in performing a task. After the interval has expired, processing-unit time 
  23883.    is allocated to another task, so a task cannot monopolize processing-unit 
  23884.    time beyond a fixed limit. (2) In systems with time sharing, a segment of 
  23885.    time allocated to a terminal job. 
  23886.  
  23887.  time-critical process  A process that must be performed within a specified 
  23888.    time after an event has occurred. 
  23889.  
  23890.  timer  A facility provided under the Presentation Manager, whereby 
  23891.    Presentation Manager will dispatch a message of class WM_TIMER to a 
  23892.    particular window at specified intervals. This capability may be used by an 
  23893.    application to perform a specific processing task at predetermined 
  23894.    intervals, without the necessity for the application to explicitly keep 
  23895.    track of the passage of time. 
  23896.  
  23897.  timer tick  See clock tick. 
  23898.  
  23899.  title bar  In SAA Advanced Common User Access architecture, the area at the 
  23900.    top of each window that contains the window title and system menu icon. When 
  23901.    appropriate, it also contains the minimize, maximize, and restore icons. 
  23902.    Contrast with panel title. 
  23903.  
  23904.  TLB  Translation lookaside buffer. 
  23905.  
  23906.  transaction  An exchange between a workstation and another device that 
  23907.    accomplishes a particular action or result. 
  23908.  
  23909.  transform  (1) The action of modifying a picture by scaling, shearing, 
  23910.    reflecting, rotating, or translating. (2) The object that performs or 
  23911.    defines such a modification; also referred to as a transformation. 
  23912.  
  23913.  Translation lookaside buffer (TLB)  A hardware-based address caching mechanism 
  23914.    for paging information. 
  23915.  
  23916.  Tree  In the Presentation Manager, the window in the File Manager that shows 
  23917.    the organization of drives and directories. 
  23918.  
  23919.  truncate  (1) To terminate a computational process in accordance with some 
  23920.    rule (A)  (2) To remove the beginning or ending elements of a string. (3) To 
  23921.    drop data that cannot be printed or displayed in the line width specified or 
  23922.    available. (4) To shorten a field or statement to a specified length. 
  23923.  
  23924.  TSR  Terminate-and-stay-resident. 
  23925.  
  23926.  unnamed pipe  A circular buffer, created in memory, used by related processes 
  23927.    to communicate with one another. Contrast with named pipe. 
  23928.  
  23929.  unordered list  In Information Presentation Facility, a vertical arrangement 
  23930.    of items in a list, with each item in the list preceded by a special 
  23931.    character or bullet. 
  23932.  
  23933.  update region  A system-provided area of dynamic storage containing one or 
  23934.    more (not necessarily contiguous) rectangular areas of a window that are 
  23935.    visually invalid or incorrect, and therefore are in need of repainting. 
  23936.  
  23937.  user interface  Hardware, software, or both that allows a user to interact 
  23938.    with and perform operations on a system, program, or device. 
  23939.  
  23940.  User Shell  A component of OS/2 that uses a graphics-based, windowed interface 
  23941.    to allow the user to manage applications and files installed and running 
  23942.    under OS/2. 
  23943.  
  23944.  utility program  (1) A computer program in general support of computer 
  23945.    processes; for example, a diagnostic program, a trace program, a sort 
  23946.    program. (T)  (2) A program designed to perform an everyday task such as 
  23947.    copying data from one storage device to another. (A)
  23948.  
  23949.  
  23950. ΓòÉΓòÉΓòÉ <hidden> Glossary - U ΓòÉΓòÉΓòÉ
  23951.  
  23952. There are no glossary terms for this starting letter. 
  23953.  
  23954.  
  23955. ΓòÉΓòÉΓòÉ <hidden> Glossary - V ΓòÉΓòÉΓòÉ
  23956.  
  23957.  value set control  A visual component that enables a user to select one choice 
  23958.    from a group of mutually exclusive choices. 
  23959.  
  23960.  vector font  A set of symbols, each of which is created as a series of lines 
  23961.    and curves. Synonymous with outline font. Contrast with image font. 
  23962.  
  23963.  VGA  Video graphics array. 
  23964.  
  23965.  view  A way of looking at an object's information. 
  23966.  
  23967.  viewing pipeline  The series of transformations applied to a graphic object to 
  23968.    map the object to the device on which it is to be presented. 
  23969.  
  23970.  viewing window  A clipping boundary that defines the visible part of model 
  23971.    space. 
  23972.  
  23973.  VIO  Video Input/Output. 
  23974.  
  23975.  virtual memory (VM)  Synonymous with virtual storage. 
  23976.  
  23977.  virtual storage  (1) The storage space that may be regarded as addressable 
  23978.    main storage by the user of a computer system in which virtual addresses are 
  23979.    mapped into real addresses. The size of virtual storage is limited by the 
  23980.    addressing scheme of the computer system and by the amount of auxiliary 
  23981.    storage available, not by the actual number of main storage 
  23982.    locations. (I)  (A)  (2) Addressable space that is apparent to the user as 
  23983.    the processor storage space, from which the instructions and the data are 
  23984.    mapped into the processor storage locations. (3) Synonymous with virtual 
  23985.    memory. 
  23986.  
  23987.  visible region  A window's presentation space, clipped to the boundary of the 
  23988.    window and the boundaries of any overlying window. 
  23989.  
  23990.  volume  (1) A file-system driver that uses a block device driver for input and 
  23991.    output operations to a local or remote device. (I)  (2) A portion of data, 
  23992.    together with its data carrier, that can be handled conveniently as a unit. 
  23993.  
  23994.  
  23995. ΓòÉΓòÉΓòÉ <hidden> Glossary - W ΓòÉΓòÉΓòÉ
  23996.  
  23997.  wildcard character  Synonymous with global file-name character. 
  23998.  
  23999.  window  (1) A portion of a display surface in which display images pertaining 
  24000.    to a particular application can be presented. Different applications can be 
  24001.    displayed simultaneously in different windows. (A)  (2) An area of the 
  24002.    screen with visible boundaries within which information is displayed. A 
  24003.    window can be smaller than or the same size as the screen. Windows can 
  24004.    appear to overlap on the screen. 
  24005.  
  24006.  window class  The grouping of windows whose processing needs conform to the 
  24007.    services provided by one window procedure. 
  24008.  
  24009.  window coordinates  A set of coordinates by which a window position or size is 
  24010.    defined; measured in device units, or pels. 
  24011.  
  24012.  window handle  Unique identifier of a window, generated by Presentation 
  24013.    Manager when the window is created, and used by applications to direct 
  24014.    messages to the window. 
  24015.  
  24016.  window procedure  Code that is activated in response to a message. The 
  24017.    procedure controls the appearance and behavior of its associated windows. 
  24018.  
  24019.  window rectangle  The means by which the size and position of a window is 
  24020.    described in relation to the desktop window. 
  24021.  
  24022.  window resource  A read-only data segment stored in the .EXE file of an 
  24023.    application o the .DLL file of a dynamic link library. 
  24024.  
  24025.  window style  The set of properties that influence how events related to a 
  24026.    particular window will be processed. 
  24027.  
  24028.  window title  In SAA Advanced Common User Access architecture, the area in the 
  24029.    title bar that contains the name of the application and the OS/2 operating 
  24030.    system file name, if applicable. 
  24031.  
  24032.  Workplace Shell  The OS/2 object-oriented, graphical user interface. 
  24033.  
  24034.  workstation  (1) A display screen together with attachments such as a 
  24035.    keyboard, a local copy device, or a tablet. (2) (D of C) One or more 
  24036.    programmable or nonprogrammable devices that allow a user to do work. 
  24037.  
  24038.  world coordinates  A device-independent Cartesian coordinate system used by 
  24039.    the application program for specifying graphical input and output. (I)  (A)
  24040.  
  24041.  world-coordinate space  Coordinate space in which graphics are defined before 
  24042.    transformations are applied. 
  24043.  
  24044.  WYSIWYG  What-You-See-Is-What-You-Get. A capability of a text editor to 
  24045.    continually display pages exactly as they will be printed. 
  24046.  
  24047.  
  24048. ΓòÉΓòÉΓòÉ <hidden> Glossary - X ΓòÉΓòÉΓòÉ
  24049.  
  24050. There are no glossary terms for this starting letter. 
  24051.  
  24052.  
  24053. ΓòÉΓòÉΓòÉ <hidden> Glossary - Y ΓòÉΓòÉΓòÉ
  24054.  
  24055. There are no glossary terms for this starting letter. 
  24056.  
  24057.  
  24058. ΓòÉΓòÉΓòÉ <hidden> Glossary - Z ΓòÉΓòÉΓòÉ
  24059.  
  24060.  z-order  The order in which sibling windows are presented. The topmost sibling 
  24061.    window obscures any portion of the siblings that it overlaps; the same 
  24062.    effect occurs down through the order of lower sibling windows. 
  24063.  
  24064.  zooming  The progressive scaling of an entire display image in order to give 
  24065.    the visual impression of movement of all or part of a display group toward 
  24066.    or away from an observer. (I)  (A)
  24067.  
  24068.  8.3 file-name format  A file-naming convention in which file names are limited 
  24069.    to eight characters before and three characters after a single dot. Usually 
  24070.    pronounced "eight-dot-three." See also non-8.3 file-name format. 
  24071.