home *** CD-ROM | disk | FTP | other *** search
/ The Developer Connection…ice Driver Kit for OS/2 3 / DEV3-D1.ISO / docs / pmfun.inf (.txt) < prev    next >
Encoding:
OS/2 Help File  |  1994-02-27  |  611.0 KB  |  25,568 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. IBM Trademarks ΓòÉΓòÉΓòÉ
  3.  
  4. The following are trademarks of the IBM Corporation. 
  5.  
  6. CUA 
  7. Common User Access 
  8. IBM 
  9. IBM C/2 
  10. Operating System/2 
  11. OS/2 
  12. Presentation Manager 
  13. SAA 
  14. Systems Application Architecture 
  15. Workplace Shell 
  16.  
  17.  
  18. ΓòÉΓòÉΓòÉ 2. Non-IBM Trademarks ΓòÉΓòÉΓòÉ
  19.  
  20. Adobe is a trademark of Adobe Systems Incorporated. 
  21. Helvetica is a trademark of Linotype. 
  22. Intel is a trademark of the Intel Corporation. 
  23. Microsoft and Windows are trademarks of the Microsoft Corporation. 
  24. Postscript is a trademark of Adobe Systems Incorporated. 
  25. Times New Roman is a trademark of Monotype. 
  26. 80386 is a trademark of the Intel Corporation. 
  27. 80386SX is a trademark of the Intel Corporation. 
  28. 80387 is a trademark of the Intel Corporation. 
  29. 80387 NPX is a trademark of the Intel Corporation. 
  30.  
  31.  
  32. ΓòÉΓòÉΓòÉ 3. How to Use the PM Reference ΓòÉΓòÉΓòÉ
  33.  
  34. The OS/2* Presentation Manager Reference is a detailed technical reference for 
  35. application programmers.  It gives reference information and code examples to 
  36. enable you to write source code using Presentation Manager* (PM) functions. 
  37.  
  38. Before you begin to use this information, it would be helpful to understand how 
  39. you can: 
  40.  
  41. o Expand the Contents to see all available topics 
  42. o Obtain additional information for a highlighted word or phrase 
  43. o Use action bar choices 
  44. o Use the programming information. 
  45.  
  46. How to Use the Contents 
  47.  
  48. When the Contents window first appears, some topics have a plus (+) sign beside 
  49. them. The plus sign indicates that additional topics are available. 
  50.  
  51. To expand the Contents if you are using a mouse, click on the plus sign. If you 
  52. are using the keyboard, use the Up or Down Arrow key to highlight the topic, 
  53. and press the plus (+) key. For example, Code Pages has a plus sign beside it. 
  54. To see additional topics for that heading, click on the plus sign or highlight 
  55. that topic and press the plus (+) key. 
  56.  
  57. To view a topic, double-click on the topic (or press the Up or Down Arrow key 
  58. to highlight the topic, and then press the Enter key). 
  59.  
  60. How to Obtain Additional Information 
  61.  
  62. After you select a topic, the information for that topic appears in a window. 
  63. Highlighted words or phrases indicate that additional information is available. 
  64. You will notice that certain words and phrases are highlighted in green 
  65. letters, or in white letters on a black background. These are called hypertext 
  66. terms. If you are using a mouse, double-click on the highlighted word.  If you 
  67. are using a keyboard, press the Tab key to move to the highlighted word, and 
  68. then press the Enter key. Additional information then appears in a window. 
  69.  
  70. How to Use Action Bar Choices 
  71.  
  72. Several choices are available for managing information presented in the OS/2* 
  73. Presentation Manager Reference.  There are three pull-down menus on the action 
  74. bar:  the Services menu, the Options menu, and the Help menu. 
  75.  
  76. The actions that are selectable from the Services menu operate on the active 
  77. window currently displayed on the screen. These actions include the following: 
  78.  
  79. Bookmark 
  80.    Allows you to set a placeholder so you can retrieve information of interest 
  81.    to you. 
  82.  
  83.    When you place a bookmark on a topic, it is added to a list of bookmarks you 
  84.    have previously set.  You can view the list, and you can remove one or all 
  85.    bookmarks from the list. If you have not set any bookmarks, the list is 
  86.    empty. 
  87.  
  88.    To set a bookmark, do the following: 
  89.  
  90.     1. Select a topic from the Contents. 
  91.  
  92.     2. When that topic appears, choose the Bookmark option from the Services 
  93.        pull-down. 
  94.  
  95.     3. If you want to change the name used for the bookmark, type the new name 
  96.        in the field. 
  97.  
  98.     4. Click on the Place radio button (or press the Up or Down Arrow key to 
  99.        select it). 
  100.  
  101.     5. Click on OK (or select it and press Enter). The bookmark is then added 
  102.        to the bookmark list. 
  103.  
  104. Search 
  105.    Allows you to find occurrences of a word or phrase in the current topic, 
  106.    selected topics, or all topics. 
  107.  
  108.    You can specify a word or phrase to be searched. You can also limit the 
  109.    search to a set of topics by first marking the topics in the Contents list. 
  110.  
  111.    To search for a word or phrase in all topics, do the following: 
  112.  
  113.     1. Choose the Search option from the Services pull-down. 
  114.  
  115.     2. Type the word or words to be searched for. 
  116.  
  117.     3. Click on All sections (or press the Up or Down Arrow keys to select it). 
  118.  
  119.     4. Click on Search (or select it and press Enter) to begin the search. 
  120.  
  121.     5. The list of topics where the word or phrase appears is displayed. 
  122.  
  123. Print 
  124.    Allows you to print one or more topics.  You can also print a set of topics 
  125.    by first marking the topics in the Contents list. 
  126.  
  127.    To print the document Contents list, do the following: 
  128.  
  129.     1. Choose Print from the Services pull-down. 
  130.  
  131.     2. Click on Contents (or press the Up or Down Arrow key to select it). 
  132.  
  133.     3. Click on Print (or select it and press Enter). 
  134.  
  135.     4. The Contents list is printed on your printer. 
  136.  
  137. Copy 
  138.    Allows you to copy a topic that you are viewing to the System Clipboard or 
  139.    to a file that you can edit. You will find this particularly useful for 
  140.    copying syntax definitions and program samples into the application that you 
  141.    are developing. 
  142.  
  143.    You can copy a topic that you are viewing in two ways: 
  144.  
  145.    o Copy copies the topic that you are viewing into the System Clipboard.  If 
  146.      you are using a Presentation Manager* (PM) editor (for example, the System 
  147.      Editor) that copies or cuts (or both) to the System Clipboard, and pastes 
  148.      to the System Clipboard, you can easily add the copied information to your 
  149.      program source module. 
  150.  
  151.    o Copy to file copies the topic that you are viewing into a temporary file 
  152.      named TEXT.TMP. You can later edit that file by using any editor.  You 
  153.      will find TEXT.TMP in the directory where your viewable document resides. 
  154.  
  155.      To copy a topic, do the following: 
  156.  
  157.        1. Expand the Contents list and select a topic. 
  158.  
  159.        2. When the topic appears, choose Copy to file from the Services 
  160.           pull-down. 
  161.  
  162.        3. The system puts the text pertaining to that topic into the temporary 
  163.           file named TEXT.TMP. 
  164.  
  165.    For information on one of the other choices in the Services pull-down, 
  166.    highlight the choice and press the F1 key. 
  167.  
  168. The actions that are selectable from the Options menu allow you to change the 
  169. way your Contents list is displayed. To expand the Contents and show all levels 
  170. for all topics, choose Expand all from the Options pull-down. You can also 
  171. press the Ctrl and * keys together. For information on one of the other choices 
  172. in the Options pull-down, highlight the choice and press the F1 key. 
  173.  
  174. The actions that are selectable from the Help menu allow you to select 
  175. different types of help information. You can also press the F1 key for help 
  176. information about the Information Presentation Facility (IPF). 
  177.  
  178. How to Use the Programming Information 
  179.  
  180. The Presentation Manager Reference consists of reference information that 
  181. provides a detailed description of each function, message, constant, and data 
  182. type. It provides language-dependent information about the functions which 
  183. enable the user to generate call statements in the C Language. 
  184.  
  185. Presentation Manager* programming information is presented by component, such 
  186. as Device Functions, Direct Manipulation Functions, and Font-File format, for 
  187. example: 
  188.  
  189.      ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  190.      Γöé            Contents                     Γöé
  191.      Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  192.      Γöé                                         Γöé
  193.      Γöé  + Device Functions                     Γöé
  194.      Γöé  + Direct Manipulation Functions        Γöé
  195.      Γöé  + Font-File Format                     Γöé
  196.      Γöé                                         Γöé
  197.      ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  198.  
  199. By clicking on the plus sign beside "Device Functions", you see an alphabetic 
  200. list of the Presentation Manager Device functions. Selecting a function takes 
  201. you directly into the reference information for that function. 
  202.  
  203. Units of reference information are presented in selectable multiple windows or 
  204. viewports. A viewport is a Presentation Manager* window that can be sized, 
  205. moved, minimized, maximized, or closed.  By selecting a unit (in this case, an 
  206. entry on the Contents list), you will see two windows displayed: 
  207.  
  208.    ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  209.    Γöé Unit Title         Γöé      Selection Title     Γöé
  210.    Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  211.    Γöé Select an item     Γöé                          Γöé
  212.    Γöé                    Γöé                          Γöé
  213.    Γöé Function Syntax    Γöé                          Γöé
  214.    Γöé Parameters         Γöé                          Γöé
  215.    Γöé Return Values      Γöé                          Γöé
  216.    Γöé Notes              Γöé                          Γöé
  217.    Γöé Example            Γöé                          Γöé
  218.    Γöé Related Functions  Γöé                          Γöé
  219.    Γöé Glossary           Γöé                          Γöé
  220.    Γöé                    Γöé                          Γöé
  221.    ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  222.  
  223. The window on the left is the primary window.  It contains a list of items that 
  224. are always available to you.  The window on the right is the secondary window. 
  225. It contains a "snapshot" of the unit information. For reference units (that is, 
  226. function descriptions), this window contains the Function Syntax. 
  227.  
  228. All of the information needed to understand a reference unit (or topic) is 
  229. readily available to you through the primary window. The information is divided 
  230. into discrete information groups, and only the appropriate information group 
  231. appears for the topic that you are viewing. 
  232.  
  233. The information groups for a reference unit (that is, a function description) 
  234. can include all or some of the following: 
  235.  
  236. o Function Syntax 
  237. o Parameters 
  238. o Return Values 
  239. o Errors 
  240. o Notes 
  241. o Example 
  242. o Related Functions 
  243. o Graphic Elements and Orders 
  244. o Glossary 
  245.  
  246. This list may vary. Some topics may be omitted when they do not apply. 
  247.  
  248. Information groups are displayed in separate viewports that are stacked in a 
  249. third window location that overlaps the secondary window. By selecting an item 
  250. (information group) in the primary window, the item is displayed in the third 
  251. window location, as follows: 
  252.  
  253.  ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  254.  Γöé Unit Title     Γöé   Selection Γöé   Glossary       Γöé
  255.  Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  256.  Γöé Select an item Γöé             Γöé Select a startingΓöé
  257.  Γöé                Γöé             Γöé letter of        Γöé
  258.  Γöé    .           Γöé             Γöé glossary terms   Γöé
  259.  Γöé    .           Γöé             Γöé                  Γöé
  260.  Γöé    .           Γöé             Γöé A    N           Γöé
  261.  Γöé    .           Γöé             Γöé B    O           Γöé
  262.  Γöé    .           Γöé             Γöé C    P           Γöé
  263.  Γöé Glossary       Γöé             Γöé .    .           Γöé
  264.  Γöé                Γöé             Γöé .    .           Γöé
  265.  Γöé                Γöé             Γöé .    .           Γöé
  266.  Γöé                Γöé             Γöé M    Z           Γöé
  267.  ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  268.  
  269. By selecting successive items from the primary window, additional windows are 
  270. displayed on top of the previous windows displayed in the third window 
  271. location.  For example, in a function description, Parameters and Return Values 
  272. are items listed in the primary window.  When selected, they appear one on top 
  273. of the other in the third window location. Because of this, you may move the 
  274. first selected (topmost) window to the left before selecting the next item. 
  275. This allows simultaneous display of two related pieces of information from the 
  276. "stack" of windows in the third window location, as follows: 
  277.  
  278.  ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  279.  Γöé Unit Title     Γöé  Parameters  Γöé  Return Values  Γöé
  280.  Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  281.  Γöé Select an item Γöé              Γöé                 Γöé
  282.  Γöé    .           Γöé              Γöé                 Γöé
  283.  Γöé    .           Γöé              Γöé                 Γöé
  284.  Γöé    .           Γöé              Γöé                 Γöé
  285.  Γöé Parameters     Γöé              Γöé                 Γöé
  286.  Γöé Return Values  Γöé              Γöé                 Γöé
  287.  Γöé    .           Γöé              Γöé                 Γöé
  288.  Γöé    .           Γöé              Γöé                 Γöé
  289.  Γöé    .           Γöé              Γöé                 Γöé
  290.  Γöé                Γöé              Γöé                 Γöé
  291.  ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  292.  
  293. Each window can be individually closed from its system menu. All windows are 
  294. closed when you close the primary window. 
  295.  
  296. Some secondary windows may have the appearance of a split screen. For example, 
  297. an illustration may appear in the left half of the window, and scrollable, 
  298. explanatory information may appear in the right half of the window. Because 
  299. illustrations may not necessarily fit into the small window size on your 
  300. screen, you may maximize the secondary window for better readability. 
  301.  
  302.  
  303. ΓòÉΓòÉΓòÉ 3.1. Notices ΓòÉΓòÉΓòÉ
  304.  
  305. References in this publication to IBM* products, programs, or services do not 
  306. imply that IBM intends to make these available in all countries in which IBM 
  307. operates. Any reference to an IBM product, program, or service is not intended 
  308. to state or imply that only IBM's product, program, or service may be used. Any 
  309. functionally equivalent product, program, or service that does not infringe any 
  310. of IBM's intellectual property rights or other legally protectible rights may 
  311. be used instead of the IBM product, program, or service. Evaluation and 
  312. verification of operation in conjunction with other products, programs, or 
  313. services, except those expressly designated by IBM, are the user's 
  314. responsibility. 
  315.  
  316.  
  317. ΓòÉΓòÉΓòÉ 3.2. Trademarks ΓòÉΓòÉΓòÉ
  318.  
  319. The following terms, denoted by an asterisk (*) in this publication, are 
  320. trademarks of the IBM* Corporation in the United States or other countries or 
  321. both: 
  322.  
  323. Common User Access 
  324. CUA 
  325. IBM 
  326. Operating System/2 
  327. OS/2 
  328. Presentation Manager 
  329. SAA 
  330. Systems Application Architecture 
  331.  
  332. The following terms, denoted by a double asterisk (**) in this publication, are 
  333. trademarks of another company as follows: 
  334.  
  335. Adobe is a trademark of Adobe Systems Incorporated. 
  336. Helvetica is a trademark of Linotype. 
  337. Intel is a trademark of the Intel Corporation. 
  338. Microsoft and Windows are trademarks of the Microsoft Corporation. 
  339. Postscript is a trademark of Adobe Systems Incorporated. 
  340. Times New Roman is a trademark of Monotype. 
  341. 80386 is a trademark of the Intel Corporation. 
  342. 80386SX is a trademark of the Intel Corporation. 
  343. 80387 is a trademark of the Intel Corporation. 
  344. 80387 NPX is a trademark of the Intel Corporation. 
  345.  
  346.  
  347. ΓòÉΓòÉΓòÉ 3.3. Copyright ΓòÉΓòÉΓòÉ
  348.  
  349. Copyright International Business Machines Corporation 1986, 1991. All rights 
  350. reserved. 
  351.  
  352. Note to U.S. Government Users - Documentation related to restricted rights - 
  353. Use, duplication, or disclosure is subject to restrictions set forth in GSA ADP 
  354. Schedule Contract with IBM* Corp. 
  355.  
  356.  
  357. ΓòÉΓòÉΓòÉ 3.4. Conventions Used in this Reference ΓòÉΓòÉΓòÉ
  358.  
  359. The purpose of this reference is to give important information about functions, 
  360. messages, constants, and data types. It provides language-dependent information 
  361. about the functions which enables the user to generate call statements in C 
  362. Language. 
  363.  
  364. The following information is provided: 
  365.  
  366. o The parameter list for each function. 
  367. o The syntax of each data type and structure 
  368.  
  369. Notation Conventions 
  370.  
  371. The following notation conventions are used in this reference: 
  372.  
  373. NULL 
  374.    The term NULL applied to a parameter is used to indicate the presence of the 
  375.    pointer parameter, but with no value. 
  376.  
  377. NULLHANDLE 
  378.    The term NULLHANDLE applied to a parameter is used to indicate the presence 
  379.    of the handle parameter, but with no value. 
  380.  
  381. Implicit Pointer 
  382.    If no entry for a data type "Pxxxxxxx" is found in Data Types, then it is 
  383.    implicitly a pointer to the data type "xxxxxxx". See Implicit Pointer Data 
  384.    Types. 
  385.  
  386. Constant Names 
  387.    All constants are written in uppercase.  Where applicable, constant names 
  388.    have a prefix derived from the name of a function, message, or idea 
  389.    associated with the constant.  For example: 
  390.  
  391.    WM_CREATE        Window message 
  392.    SV_CXICON        System value 
  393.    CF_TEXT          Clipboard format. 
  394.  
  395.    In this reference, a set of constants with the same prefix is written as in 
  396.    these examples: 
  397.  
  398.    Window message   WM_* 
  399.    System value     SV_* 
  400.  
  401.  
  402. ΓòÉΓòÉΓòÉ 3.4.1. Conventions used in Function Descriptions ΓòÉΓòÉΓòÉ
  403.  
  404. The documentation of each function contains these sections: 
  405.  
  406. Function name 
  407.    The function name, listed in alphabetic order of C (long) name together with 
  408.    the English name.  This is at the top of each page followed by the name of 
  409.    the define that calls the correct header files to be included, the function 
  410.    prototype, and a brief description of the function. 
  411.  
  412. Parameters 
  413.    Each parameter is listed with its data type and a brief description. 
  414.  
  415.    There are four kinds of parameters: 
  416.  
  417.    Input            Specified by the programmer. 
  418.  
  419.    Output           Returned by the Presentation Manager* (PM) interface. 
  420.  
  421.    Input/Output     Specified by the programmer and modified by PM. 
  422.  
  423.    Return           The return values are shown, together with possible errors, 
  424.                     or TRUE/FALSE indicators if a Boolean function. 
  425.  
  426.                     A list of possible errors (where appropriate) is included 
  427.                     in this section.  Some functions do not have error 
  428.                     messages. 
  429.  
  430.    Note:  Data types are given in C. 
  431.  
  432. Remarks 
  433.    Additional information about the function, where required. 
  434.  
  435. Related Functions 
  436.    Functions that can be used with the described function. 
  437.  
  438. Example Code 
  439.    Example of how the function can be used. 
  440.  
  441. Note:  The functions in this book are named in mixed-case for readability, but 
  442.        are known to the system as uppercase character strings.  For example, 
  443.        the function "GpiBeginArea" is actually the external name 
  444.        "GPIBEGINAREA". 
  445.  
  446. If you are using a compiler that generates a mixed-case external name, you 
  447. should code the OS/2 functions in uppercase. 
  448.  
  449. Message Queues 
  450.  
  451. For some functions, the Remarks section of the function description includes a 
  452. statement that the function requires a message queue.  This means that, before 
  453. issuing the call, WinCreateMsgQueue must be issued by the same thread.  For 
  454. other functions, no previous WinCreateMsgQueue is required, and it is only 
  455. necessary to issue WinInitialize from the same thread. 
  456.  
  457.  
  458. ΓòÉΓòÉΓòÉ 3.5. Error Severities ΓòÉΓòÉΓòÉ
  459.  
  460. Each of the error conditions given in the list of errors for each call falls 
  461. into one of these areas: 
  462.  
  463. Warning 
  464.    The function detected a problem, but took some remedial action that enabled 
  465.    the function to complete successfully. The return code in this case 
  466.    indicates that the function completed successfully. 
  467.  
  468. Error 
  469.    The function detected a problem for which it could not take any sensible 
  470.    remedial action. The system has recovered from the problem, and the state of 
  471.    the system with respect to the application remains the same as at the time 
  472.    when the function was requested. The system has not even partially executed 
  473.    the function (other than reporting the error). 
  474.  
  475. Severe Error 
  476.    The function detected a problem from which the system could not reestablish 
  477.    its state, with respect to the application, at the time when that function 
  478.    was requested; that is, the system partially executed the function. This, 
  479.    therefore, necessitates the application performing some corrective activity 
  480.    to restore the system to some known state. 
  481.  
  482. Unrecoverable Error 
  483.    The function detected some problem from which the system could not 
  484.    re-establish its state, with respect to the application, at the time when 
  485.    that call was issued. It is possible that the application cannot perform 
  486.    some corrective action to restore the system to some known state. 
  487.  
  488. The WinGetLastError and WinGetErrorInfo functions can be used to find out more 
  489. about an error (or warning) that occurs as a result of executing a call. 
  490.  
  491.  
  492. ΓòÉΓòÉΓòÉ 3.6. Header Files ΓòÉΓòÉΓòÉ
  493.  
  494. All functions require an "include" for the system header file OS2.H: 
  495.  
  496. #include  <OS2.H>
  497.  
  498. Also, most functions require a "define" to select an appropriate (conditional) 
  499. section of the header file, and hence, the required entry point. Where this is 
  500. necessary, it is shown at the head of the function definition in the form: 
  501.  
  502. #define   INCL_name
  503.  
  504. Note:  These "#defines" must precede the "#include <OS2.H>". 
  505.  
  506.  
  507. ΓòÉΓòÉΓòÉ 3.7. Helper Macros ΓòÉΓòÉΓòÉ
  508.  
  509. A series of macros is defined for packing data into, and extracting data from, 
  510. variables of MPARAM and MRESULT data types. They are used in conjunction with 
  511. the WinSendMsg and the other message functions, and also inside window and 
  512. dialog procedures. 
  513.  
  514. These macros always cast their arguments to the specified type, so values of 
  515. any of the types specified for each macro may be passed without additional 
  516. casting.  NULL may be used to pass unused parameter data. 
  517.  
  518. Macros for packing data into a MPARAM variable: 
  519.  
  520.  
  521. /* Used to pass any pointer type: */
  522. #define MPFROMP(p)            ((MPARAM)(VOID *)(p))
  523.  
  524. /* Used to pass a window handle: */
  525. #define MPFROMHWND(hwnd)      ((MPARAM)(HWND)(hwnd))
  526.  
  527. /* Used to pass a CHAR, UCHAR, or BYTE: */
  528. #define MPFROMCHAR(ch)        ((MPARAM)(USHORT)(ch))
  529.  
  530. /* Used to pass a SHORT, USHORT, or BOOL: */
  531. #define MPFROMSHORT(s)        ((MPARAM)(USHORT)(s))
  532.  
  533. /* Used to pass two SHORTs or USHORTs: */
  534. #define MPFROM2SHORT(s1, s2)  ((MPARAM)MAKELONG(s1, s2))
  535.  
  536. /* Used to pass a SHORT and 2 UCHARs: (WM_CHAR msg)*/
  537. #define MPFROMSH2CH(s, uch1, uch2)
  538.  ((MPARAM)MAKELONG(s, MAKESHORT(uch1, uch2)))
  539.  
  540. /* Used to pass a LONG or ULONG: */
  541. #define MPFROMLONG(l)         ((MPARAM)(ULONG)(l))
  542.  
  543. Macros for extracting data from a MPARAM variable: 
  544.  
  545.  
  546. /* Used to get any pointer type: */
  547. #define PVOIDFROMMP(mp)     ((VOID *)(mp))
  548.  
  549. /* Used to get a window handle: */
  550. #define HWNDFROMMP(mp)      ((HWND)(mp))
  551.  
  552. /* Used to get CHAR, UCHAR, or BYTE: */
  553. #define CHAR1FROMMP(mp)     ((UCHAR)(mp))
  554. #define CHAR2FROMMP(mp)     ((UCHAR)((ULONG)mp >> 8))
  555. #define CHAR3FROMMP(mp)     ((UCHAR)((ULONG)mp >> 16))
  556. #define CHAR4FROMMP(mp)     ((UCHAR)((ULONG)mp >> 24))
  557.  
  558. /* Used to get a SHORT, USHORT, or BOOL: */
  559. #define SHORT1FROMMP(mp)    ((USHORT)(ULONG)(mp))
  560. #define SHORT2FROMMP(mp)    ((USHORT)((ULONG)mp >> 16))
  561.  
  562. /* Used to get a LONG or ULONG: */
  563. #define LONGFROMMP(mp)      ((ULONG)(mp))
  564.  
  565. Macros for packing data into a MRESULT variable: 
  566.  
  567.  
  568. /* Used to pass any pointer type: */
  569. #define MRFROMP(p)            ((MRESULT)(VOID *)(p))
  570.  
  571. /* Used to pass a SHORT, USHORT, or BOOL: */
  572. #define MRFROMSHORT(s)        ((MRESULT)(USHORT)(s))
  573.  
  574. /* Used to pass two SHORTs or USHORTs: */
  575. #define MRFROM2SHORT(s1, s2)  ((MRESULT)MAKELONG(s1, s2))
  576.  
  577. /* Used to pass a LONG or ULONG: */
  578. #define MRFROMLONG(l)         ((MRESULT)(ULONG)(l))
  579.  
  580. Macros for extracting data from a MRESULT variable: 
  581.  
  582.  
  583. /* Used to get any pointer type: */
  584. #define PVOIDFROMMR(mr)     ((VOID *)(mr))
  585.  
  586. /* Used to get a SHORT, USHORT, or BOOL: */
  587. #define SHORT1FROMMR(mr)    ((USHORT)((ULONG)mr))
  588. #define SHORT2FROMMR(mr)    ((USHORT)((ULONG)mr >> 16))
  589.  
  590. /* Used to get a LONG or ULONG: */
  591. #define LONGFROMMR(mr)      ((ULONG)(mr))
  592.  
  593. The following macros are for use with DDESTRUCT and DDEINIT structures: 
  594.  
  595.  
  596. /* Used to return a PSZ pointing to the DDE item name: */
  597. #define DDES_PSZITEMNAME(pddes) \
  598.         (((PSZ)pddes) + ((PDDESTRUCT)pddes)->offszItemName)
  599.  
  600. /* Used to return a PBYTE pointing to the DDE data: */
  601. #define DDES_PABDATA(pddes)       \
  602.         (((PBYTE)pddes) + ((PDDESTRUCT)pddes)->offabData)
  603.  
  604. /* Used to convert a selector to a PDDESTRUCT: */
  605. #define SELTOPDDES(sel)             ((PDDESTRUCT)MAKEP(sel, 0))
  606.  
  607. /* Used to PDDESTRUCT to a selector for freeing / reallocating: */
  608. #define PDDESTOSEL(pddes)           (SELECTOROF(pddes))
  609.  
  610. /* Used to PDDEINIT to a selector for freeing: */
  611. #define PDDEITOSEL(pddei)           (SELECTOROF(pddei))
  612.  
  613.  
  614. ΓòÉΓòÉΓòÉ 3.8. Addressing Elements in Arrays ΓòÉΓòÉΓòÉ
  615.  
  616. Constants defining array elements are given values that are zero-based in C; 
  617. that is, the numbering of the array elements starts at zero, not one. 
  618.  
  619. For example, in the DevQueryCaps function, the sixth element of the alArray 
  620. parameter is CAPS_HEIGHT, which is equated to 5. 
  621.  
  622. Count parameters related to such arrays always mean the actual number of 
  623. elements available.  Therefore, again using the DevQueryCaps function as an 
  624. example, if all elements up to and including CAPS_HEIGHT are provided for, 
  625. lCount could be set to (CAPS_HEIGHT+1). 
  626.  
  627. In functions for which the starting array element can be specified, this is 
  628. always zero-based, and so the C element number constants can be used directly. 
  629. For example, to start with the CAPS_HEIGHT element, the lStart parameter can be 
  630. set to CAPS_HEIGHT. 
  631.  
  632.  
  633. ΓòÉΓòÉΓòÉ 3.9. Implicit Pointer Data Types ΓòÉΓòÉΓòÉ
  634.  
  635. A data type name beginning with "P" (for example, PERRORCODE) is likely to be a 
  636. pointer to another data type (in this instance, ERRORCODE). 
  637.  
  638. In the data type summary, Data Types, no explicit "typedefs" are shown for 
  639. pointers. Therefore, if no data type definition can be found in the summary for 
  640. a data type name "Pxxxxxx", it becomes a pointer to the data type "xxxxxx", for 
  641. which a definition should be found in the summary. 
  642.  
  643. The implicit type definition needed for such a pointer "Pxxxxxx" is: 
  644.  
  645. typedef xxxxxx *Pxxxxxx;
  646.  
  647. Such definitions are provided by means of the system header file OS2.H. 
  648.  
  649.  
  650. ΓòÉΓòÉΓòÉ 3.10. Storage Mapping of Data Types ΓòÉΓòÉΓòÉ
  651.  
  652. The storage mapping of the data types is dependent on the machine architecture. 
  653. To be portable, applications must access the data types using the definitions 
  654. supplied for that environment. 
  655.  
  656.  
  657. ΓòÉΓòÉΓòÉ 3.11. Double-Byte Character Set (DBCS) ΓòÉΓòÉΓòÉ
  658.  
  659. Throughout this publication, you will see references to specific values for 
  660. character strings.  The values are for single-byte character set (SBCS).  If 
  661. you use the double-byte character set (DBCS), note that one DBCS character 
  662. equals two SBCS characters. 
  663.  
  664.  
  665. ΓòÉΓòÉΓòÉ 4. Data Types ΓòÉΓòÉΓòÉ
  666.  
  667. This section describes data types in C language. 
  668.  
  669.  
  670. ΓòÉΓòÉΓòÉ 4.1. ACCEL ΓòÉΓòÉΓòÉ
  671.  
  672. ACCEL Accelerator structure. 
  673.  
  674. typedef struct _ACCEL {
  675. USHORT    fs;   /* Options  */
  676. USHORT    key;  /* Key  */
  677. USHORT    cmd;  /* Command code  */
  678.  } ACCEL;
  679.  
  680.  
  681. ΓòÉΓòÉΓòÉ <hidden> fs ΓòÉΓòÉΓòÉ
  682.  
  683. fs (USHORT) 
  684.    Options. 
  685.  
  686.  
  687. ΓòÉΓòÉΓòÉ <hidden> key ΓòÉΓòÉΓòÉ
  688.  
  689. key (USHORT) 
  690.    Key. 
  691.  
  692.  
  693. ΓòÉΓòÉΓòÉ <hidden> cmd ΓòÉΓòÉΓòÉ
  694.  
  695. cmd (USHORT) 
  696.    Command code. 
  697.  
  698.    The value to be placed in the uscmd parameter of a WM_HELP, a WM_COMMAND, or 
  699.    a WM_SYSCOMMAND. 
  700.  
  701.  
  702. ΓòÉΓòÉΓòÉ 4.2. ACCELTABLE ΓòÉΓòÉΓòÉ
  703.  
  704. ACCELTABLE Accelerator-table structure. 
  705.  
  706. typedef struct _ACCELTABLE {
  707. USHORT    cAccel;     /* Number of accelerator entries  */
  708. USHORT    codepage;   /* Code page for accelerator entries  */
  709. ACCEL     aaccel[1];  /* Accelerator entries  */
  710.  } ACCELTABLE;
  711.  
  712.  
  713. ΓòÉΓòÉΓòÉ <hidden> cAccel ΓòÉΓòÉΓòÉ
  714.  
  715. cAccel (USHORT) 
  716.    Number of accelerator entries. 
  717.  
  718.  
  719. ΓòÉΓòÉΓòÉ <hidden> codepage ΓòÉΓòÉΓòÉ
  720.  
  721. codepage (USHORT) 
  722.    Code page for accelerator entries. 
  723.  
  724.  
  725. ΓòÉΓòÉΓòÉ <hidden> aaccel[1] ΓòÉΓòÉΓòÉ
  726.  
  727. aaccel[1] (ACCEL) 
  728.    Accelerator entries. 
  729.  
  730.  
  731.    The default accelerator table has the following 16 entries: 
  732.  
  733.       Options                           Key           Command
  734.  
  735.       HELP                VIRTUALKEY    VK_F1         0
  736.       SYSCOMMAND ALT      VIRTUALKEY    VK_F4         SC_CLOSE
  737.       SYSCOMMAND ALT      VIRTUALKEY    VK_ENTER      SC_RESTORE
  738.       SYSCOMMAND ALT      VIRTUALKEY    VK_NEWLINE    SC_RESTORE
  739.       SYSCOMMAND ALT      VIRTUALKEY    VK_F5         SC_RESTORE
  740.       SYSCOMMAND ALT      VIRTUALKEY    VK_F6         SC_NEXTFRAME
  741.       SYSCOMMAND ALT      VIRTUALKEY    VK_F7         SC_MOVE
  742.       SYSCOMMAND ALT      VIRTUALKEY    VK_F8         SC_SIZE
  743.       SYSCOMMAND ALT      VIRTUALKEY    VK_F9         SC_MINIMIZE
  744.       SYSCOMMAND ALT      VIRTUALKEY    VK_F10        SC_MAXIMIZE
  745.       SYSCOMMAND          VIRTUALKEY    VK_F10        SC_APPMENU
  746.       SYSCOMMAND LONEKEY  VIRTUALKEY    VK_ALT        SC_APPMENU
  747.       SYSCOMMAND LONEKEY  VIRTUALKEY    VK_ALTGRAF    SC_APPMENU
  748.       SYSCOMMAND ALT      VIRTUALKEY    VK_SPACE      SC_SYSMENU
  749.       SYSCOMMAND SHIFT    VIRTUALKEY    VK_ESC        SC_SYSMENU
  750.       SYSCOMMAND CONTROL  VIRTUALKEY    VK_ESC        SC_TASKMANAGER
  751.  
  752.  
  753. ΓòÉΓòÉΓòÉ 4.3. APSZ ΓòÉΓòÉΓòÉ
  754.  
  755. APSZ Array of pointers to NULL-terminated strings. 
  756.  
  757. typedef PSZ APSZ[1];
  758.  
  759.  
  760. ΓòÉΓòÉΓòÉ 4.4. ARCPARAMS ΓòÉΓòÉΓòÉ
  761.  
  762. ARCPARAMS Arc-parameters structure. 
  763.  
  764. typedef struct _ARCPARAMS {
  765. LONG    lP;  /* P coefficient  */
  766. LONG    lQ;  /* Q coefficient  */
  767. LONG    lR;  /* R coefficient  */
  768. LONG    lS;  /* S coefficient  */
  769.  } ARCPARAMS;
  770.  
  771.  
  772. ΓòÉΓòÉΓòÉ <hidden> lP ΓòÉΓòÉΓòÉ
  773.  
  774. lP (LONG) 
  775.    P coefficient. 
  776.  
  777.  
  778. ΓòÉΓòÉΓòÉ <hidden> lQ ΓòÉΓòÉΓòÉ
  779.  
  780. lQ (LONG) 
  781.    Q coefficient. 
  782.  
  783.  
  784. ΓòÉΓòÉΓòÉ <hidden> lR ΓòÉΓòÉΓòÉ
  785.  
  786. lR (LONG) 
  787.    R coefficient. 
  788.  
  789.  
  790. ΓòÉΓòÉΓòÉ <hidden> lS ΓòÉΓòÉΓòÉ
  791.  
  792. lS (LONG) 
  793.    S coefficient. 
  794.  
  795.  
  796. ΓòÉΓòÉΓòÉ 4.5. AREABUNDLE ΓòÉΓòÉΓòÉ
  797.  
  798. AREABUNDLE Area-attributes bundle structure. 
  799.  
  800. typedef struct _AREABUNDLE {
  801. LONG      lColor;         /* Area foreground color  */
  802. LONG      lBackColor;     /* Area background color  */
  803. USHORT    usMixMode;      /* Area foreground-mix mode  */
  804. USHORT    usBackMixMode;  /* Area background-mix mode  */
  805. USHORT    usSet;          /* Pattern set  */
  806. USHORT    usSymbol;       /* Pattern symbol  */
  807. POINTL    ptlRefPoint;    /* Pattern reference point  */
  808.  } AREABUNDLE;
  809.  
  810.  
  811. ΓòÉΓòÉΓòÉ <hidden> lColor ΓòÉΓòÉΓòÉ
  812.  
  813. lColor (LONG) 
  814.    Area foreground color. 
  815.  
  816.  
  817. ΓòÉΓòÉΓòÉ <hidden> lBackColor ΓòÉΓòÉΓòÉ
  818.  
  819. lBackColor (LONG) 
  820.    Area background color. 
  821.  
  822.  
  823. ΓòÉΓòÉΓòÉ <hidden> usMixMode ΓòÉΓòÉΓòÉ
  824.  
  825. usMixMode (USHORT) 
  826.    Area foreground-mix mode. 
  827.  
  828.  
  829. ΓòÉΓòÉΓòÉ <hidden> usBackMixMode ΓòÉΓòÉΓòÉ
  830.  
  831. usBackMixMode (USHORT) 
  832.    Area background-mix mode. 
  833.  
  834.  
  835. ΓòÉΓòÉΓòÉ <hidden> usSet ΓòÉΓòÉΓòÉ
  836.  
  837. usSet (USHORT) 
  838.    Pattern set. 
  839.  
  840.  
  841. ΓòÉΓòÉΓòÉ <hidden> usSymbol ΓòÉΓòÉΓòÉ
  842.  
  843. usSymbol (USHORT) 
  844.    Pattern symbol. 
  845.  
  846.  
  847. ΓòÉΓòÉΓòÉ <hidden> ptlRefPoint ΓòÉΓòÉΓòÉ
  848.  
  849. ptlRefPoint (POINTL) 
  850.    Pattern reference point. 
  851.  
  852.  
  853. ΓòÉΓòÉΓòÉ 4.6. ATOM ΓòÉΓòÉΓòÉ
  854.  
  855. ATOM Atom identity. 
  856.  
  857. typedef ULONG ATOM;
  858.  
  859.  
  860. ΓòÉΓòÉΓòÉ 4.7. BANDRECT ΓòÉΓòÉΓòÉ
  861.  
  862. BANDRECT Rectangle structure, used for the coordinates of an output band (see 
  863. DevEscape). 
  864.  
  865. An empty rectangle is one for which xleft is greater than xright, or ybottom is 
  866. greater than ytop. 
  867.  
  868. typedef struct _BANDRECT {
  869. LONG    xleft;    /* X-coordinate of left edge of rectangle  */
  870. LONG    ybottom;  /* Y-coordinate of bottom edge of rectangle  */
  871. LONG    xright;   /* X-coordinate of right edge of rectangle  */
  872. LONG    ytop;     /* Y-coordinate of top edge of rectangle  */
  873.  } BANDRECT;
  874.  
  875.  
  876. ΓòÉΓòÉΓòÉ <hidden> xleft ΓòÉΓòÉΓòÉ
  877.  
  878. xleft (LONG) 
  879.    X-coordinate of left edge of rectangle. 
  880.  
  881.  
  882. ΓòÉΓòÉΓòÉ <hidden> ybottom ΓòÉΓòÉΓòÉ
  883.  
  884. ybottom (LONG) 
  885.    Y-coordinate of bottom edge of rectangle. 
  886.  
  887.  
  888. ΓòÉΓòÉΓòÉ <hidden> xright ΓòÉΓòÉΓòÉ
  889.  
  890. xright (LONG) 
  891.    X-coordinate of right edge of rectangle. 
  892.  
  893.  
  894. ΓòÉΓòÉΓòÉ <hidden> ytop ΓòÉΓòÉΓòÉ
  895.  
  896. ytop (LONG) 
  897.    Y-coordinate of top edge of rectangle. 
  898.  
  899.  
  900. ΓòÉΓòÉΓòÉ 4.8. BITMAPARRAYFILEHEADER ΓòÉΓòÉΓòÉ
  901.  
  902. See Bit-Map File Format for the format and description of this structure. 
  903.  
  904.  
  905. ΓòÉΓòÉΓòÉ 4.9. BITMAPARRAYFILEHEADER2 ΓòÉΓòÉΓòÉ
  906.  
  907. See Bit-Map File Format for the format and description of this structure. 
  908.  
  909.  
  910. ΓòÉΓòÉΓòÉ 4.10. BITMAPFILEHEADER ΓòÉΓòÉΓòÉ
  911.  
  912. See Bit-Map File Format for the format and description of this structure. 
  913.  
  914.  
  915. ΓòÉΓòÉΓòÉ 4.11. BITMAPFILEHEADER2 ΓòÉΓòÉΓòÉ
  916.  
  917. See Bit-Map File Format for the format and description of this structure. 
  918.  
  919.  
  920. ΓòÉΓòÉΓòÉ 4.12. BITMAPINFO ΓòÉΓòÉΓòÉ
  921.  
  922. BITMAPINFO Bit-map information structure. 
  923.  
  924. Each bit plane logically contains (cx * cy * cBitCount) bits, although the 
  925. actual length can be greater because of padding. 
  926.  
  927. See also BITMAPINFO2, which is preferred. 
  928.  
  929. typedef struct _BITMAPINFO {
  930. ULONG     cbFix;         /* Length of fixed portion of structure  */
  931. USHORT    cx;            /* Bit-map width in pels  */
  932. USHORT    cy;            /* Bit-map height in pels  */
  933. USHORT    cPlanes;       /* Number of bit planes  */
  934. USHORT    cBitCount;     /* Number of bits per pel within a plane  */
  935. RGB       argbColor[1];  /* Array of RGB values  */
  936.  } BITMAPINFO;
  937.  
  938.  
  939. ΓòÉΓòÉΓòÉ <hidden> cbFix ΓòÉΓòÉΓòÉ
  940.  
  941. cbFix (ULONG) 
  942.    Length of fixed portion of structure. 
  943.  
  944.  
  945. ΓòÉΓòÉΓòÉ <hidden> cx ΓòÉΓòÉΓòÉ
  946.  
  947. cx (USHORT) 
  948.    Bit-map width in pels. 
  949.  
  950.  
  951. ΓòÉΓòÉΓòÉ <hidden> cy ΓòÉΓòÉΓòÉ
  952.  
  953. cy (USHORT) 
  954.    Bit-map height in pels. 
  955.  
  956.  
  957. ΓòÉΓòÉΓòÉ <hidden> cPlanes ΓòÉΓòÉΓòÉ
  958.  
  959. cPlanes (USHORT) 
  960.    Number of bit planes. 
  961.  
  962.  
  963. ΓòÉΓòÉΓòÉ <hidden> cBitCount ΓòÉΓòÉΓòÉ
  964.  
  965. cBitCount (USHORT) 
  966.    Number of bits per pel within a plane. 
  967.  
  968.  
  969. ΓòÉΓòÉΓòÉ <hidden> argbColor[1] ΓòÉΓòÉΓòÉ
  970.  
  971. argbColor[1] (RGB) 
  972.    Array of RGB values. 
  973.  
  974.    This is a packed array of 24-bit RGB values.  If there are N bits per pel (N 
  975.    = cPlanes* cBitCount), the array contains 2**N RGB values.  However, if N = 
  976.    24 the bit map does not need the color array because the standard-format bit 
  977.    map, with 24 bits per pel, is assumed to contain RGB values. 
  978.  
  979.  
  980. ΓòÉΓòÉΓòÉ 4.13. BITMAPINFO2 ΓòÉΓòÉΓòÉ
  981.  
  982. BITMAPINFO2 Bit-map information structure. 
  983.  
  984. Each bit plane logically contains (cx * cy * cBitCount) bits, although the 
  985. actual length can be greater because of padding. 
  986.  
  987. Note:  Many functions can accept either this structure or the BITMAPINFO 
  988. structure. Where possible, BITMAPINFO2 should be used. 
  989.  
  990. The cbFix field is used to find the color table, if any, that goes with the 
  991. information in this structure. A color table is an array of color (RGB2) 
  992. values. If there are N bits per pel (N = cPlanes* cBitCount), the array 
  993. contains 2**N color values. However, if N = 24, the color table is not required 
  994. (because the standard-format bit map, with 24 bits per pel, is assumed to 
  995. contain RGB values), unless either cclrUsed or cclrImportant is non-zero. 
  996.  
  997. typedef struct _BITMAPINFO2 {
  998. ULONG     cbFix;            /* Length of fixed portion of structure  */
  999. ULONG     cx;               /* Bit-map width in pels  */
  1000. ULONG     cy;               /* Bit-map height in pels  */
  1001. USHORT    cPlanes;          /* Number of bit planes  */
  1002. USHORT    cBitCount;        /* Number of bits per pel within a plane  */
  1003. ULONG     ulCompression;    /* Compression scheme used to store the bit map  */
  1004. ULONG     cbImage;          /* Length of bit-map storage data, in bytes  */
  1005. ULONG     cxResolution;     /* Horizontal component of the resolution of target device  */
  1006. ULONG     cyResolution;     /* Vertical component of the resolution of target device  */
  1007. ULONG     cclrUsed;         /* Number of color indexes used  */
  1008. ULONG     cclrImportant;    /* Minimum number of color indexes for satisfactory appearance of the bit map  */
  1009. USHORT    usUnits;          /* Units of measure  */
  1010. USHORT    usReserved;       /* Reserved  */
  1011. USHORT    usRecording;      /* Recording algorithm  */
  1012. USHORT    usRendering;      /* Halftoning algorithm  */
  1013. ULONG     cSize1;           /* Size value 1  */
  1014. ULONG     cSize2;           /* Size value 2  */
  1015. ULONG     ulColorEncoding;  /* Color encoding  */
  1016. ULONG     ulIdentifier;     /* Reserved for application use  */
  1017. RGB2      argbColor[1];     /* Array of RGB values  */
  1018.  } BITMAPINFO2;
  1019.  
  1020.  
  1021. ΓòÉΓòÉΓòÉ <hidden> cbFix ΓòÉΓòÉΓòÉ
  1022.  
  1023. cbFix (ULONG) 
  1024.    Length of fixed portion of structure. 
  1025.  
  1026.  
  1027.    The structure can be truncated after cBitCount or any subsequent field. 
  1028.    The length does not include the length of the color table. Where the color 
  1029.    table is present, it is at an offset of cbFix from the start of the 
  1030.    BITMAPINFO2 structure. 
  1031.  
  1032.  
  1033. ΓòÉΓòÉΓòÉ <hidden> cx ΓòÉΓòÉΓòÉ
  1034.  
  1035. cx (ULONG) 
  1036.    Bit-map width in pels. 
  1037.  
  1038.  
  1039. ΓòÉΓòÉΓòÉ <hidden> cy ΓòÉΓòÉΓòÉ
  1040.  
  1041. cy (ULONG) 
  1042.    Bit-map height in pels. 
  1043.  
  1044.  
  1045. ΓòÉΓòÉΓòÉ <hidden> cPlanes ΓòÉΓòÉΓòÉ
  1046.  
  1047. cPlanes (USHORT) 
  1048.    Number of bit planes. 
  1049.  
  1050.  
  1051. ΓòÉΓòÉΓòÉ <hidden> cBitCount ΓòÉΓòÉΓòÉ
  1052.  
  1053. cBitCount (USHORT) 
  1054.    Number of bits per pel within a plane. 
  1055.  
  1056.  
  1057. ΓòÉΓòÉΓòÉ <hidden> ulCompression ΓòÉΓòÉΓòÉ
  1058.  
  1059. ulCompression (ULONG) 
  1060.    Compression scheme used to store the bit map. 
  1061.  
  1062.    BCA_UNCOMP 
  1063.       Bit map is uncompressed. 
  1064.  
  1065.    BCA_HUFFMAN1D 
  1066.       The bit map is compressed by a modified Huffman encoding. This is valid 
  1067.       for a bi-level (one bit per pel) bit map. 
  1068.  
  1069.    BCA_RLE4 
  1070.       The bit map is a 4-bit per pel run-length encoded bit map. See below for 
  1071.       a description of the format of the compressed data. 
  1072.  
  1073.    BCA_RLE8 
  1074.       The bit map is a 8-bit per pel run-length encoded bit map. See below for 
  1075.       a description of the format of the compressed data. 
  1076.  
  1077.    BCA_RLE24 
  1078.       The bit map is a 24-bit per pel run-length encoded bit map. See below for 
  1079.       a description of the format of the compressed data. 
  1080.       Format of Compressed Data 
  1081.       Encoding a runlength: 
  1082.       Run length encoded bit maps are encoded in the buffer in a controlled 
  1083.       format. In all cases, if the first byte is non-zero, it is the length of 
  1084.       a run of Pels of a particular color or, in the case of a BCA_RLE4 bit 
  1085.       map, a run of a length of pels of alternating colors. 
  1086.  
  1087.             1st-byte       pel repetition count >= 1
  1088.             2nd-4th bytes  (BCA_RLE24 only) RGB value of pel.
  1089.             2nd-byte       (BCA_RLE8) color index of pel to be repeated
  1090.                            (BCA_RLE4) the second byte contains 2 4-bit
  1091.                            color indices.  The repetition count is
  1092.                            completed by alternately choosing the high-order
  1093.                            nibble followed by the low-order nibble for the
  1094.                            succeeding Pels until the count is exhausted.
  1095.  
  1096.  
  1097.       Unencoded run: 
  1098.       An unencoded run is a string of pels to be placed in consecutive 
  1099.       positions in the destination bit map. 
  1100.  
  1101.             1st-byte     0
  1102.             2nd-byte     COUNT = a multiple of 3 for BCA_RLE24 bit maps, or
  1103.                          COUNT >= 3 (for BCA_RLE4 and BCA_RLE8 bit maps).
  1104.  
  1105.  
  1106.       followed by the bytes as follows: 
  1107.  
  1108.       BCA_RLE24 
  1109.          A string of bytes specifying the RGB color values of succeeding pels. 
  1110.          If COUNT is odd, it must be padded by a zero byte for an even length 
  1111.          overall. 
  1112.  
  1113.       BCA_RLE8 
  1114.          A string of bytes specifying color indices for succeeding pels. If 
  1115.          COUNT is odd it must be padded by a zero byte for an even length 
  1116.          overall. 
  1117.  
  1118.       BCA_RLE4 
  1119.          A string of bytes, each byte providing two color indices, with the 
  1120.          high order nibble specifying the index of the pel preceding the low 
  1121.          order nibble.  The COUNT specifies the number of indices.  The overall 
  1122.          length of the string must be an even number of bytes, and thus may be 
  1123.          padded with a zero byte, and the low order nibble of the last 
  1124.          significant byte may also be zero and not used. 
  1125.       Delta record: 
  1126.       A delta record indicates a shift in position in the destination bit map 
  1127.       before the next record is decoded. 
  1128.  
  1129.             1st-byte        0
  1130.             2nd-byte        2
  1131.             3rd-byte        Delta-x (unsigned)
  1132.             4th-byte        Delta-y (unsigned)
  1133.  
  1134.       This is a relative jump record.  It implies that the next record is to be 
  1135.       decoded into a position in the destination bit map at an offset from the 
  1136.       current position, determined by changing the horizontal and vertical 
  1137.       positions by Delta-x and Delta-y, respectively. 
  1138.       End-of-line record: The end-of-line record signifies that the data for 
  1139.       the current scan line is complete and that decoding of the next record 
  1140.       should begin at the start of the next scan line. 
  1141.  
  1142.             1st-byte        0
  1143.             2nd-byte        0
  1144.  
  1145.       End-of-RLE record: 
  1146.       The end-of-RLE record signifies the end of the data in the RLE compressed 
  1147.       bit map. 
  1148.  
  1149.             1st-byte        0
  1150.             2nd-byte        1
  1151.  
  1152.  
  1153. ΓòÉΓòÉΓòÉ <hidden> cbImage ΓòÉΓòÉΓòÉ
  1154.  
  1155. cbImage (ULONG) 
  1156.    Length of bit-map storage data, in bytes. 
  1157.  
  1158.    If the bit map is uncompressed, zero (default) can be specified for this. 
  1159.  
  1160.  
  1161. ΓòÉΓòÉΓòÉ <hidden> cxResolution ΓòÉΓòÉΓòÉ
  1162.  
  1163. cxResolution (ULONG) 
  1164.    Horizontal component of the resolution of target device. 
  1165.  
  1166.    The resolution of the device the bit map is intended for, in the units 
  1167.    specified by usUnits. This information enables an application to select from 
  1168.    a resource group the bit map that best matches the characteristics of the 
  1169.    current output device. 
  1170.  
  1171.  
  1172. ΓòÉΓòÉΓòÉ <hidden> cyResolution ΓòÉΓòÉΓòÉ
  1173.  
  1174. cyResolution (ULONG) 
  1175.    Vertical component of the resolution of target device. 
  1176.  
  1177.    See the description of cxResolution. 
  1178.  
  1179.  
  1180. ΓòÉΓòÉΓòÉ <hidden> cclrUsed ΓòÉΓòÉΓòÉ
  1181.  
  1182. cclrUsed (ULONG) 
  1183.    Number of color indexes used. 
  1184.  
  1185.    The number of color indexes from the color table that are used by the bit 
  1186.    map. If it is zero (the default), all the indexes are used. If it is 
  1187.    non-zero, only the first cclrUsed entries in the table are accessed by the 
  1188.    system, and further entries can be omitted. 
  1189.    For the standard formats with a cBitCount of 1, 4, or 8 (and cPlanes equal 
  1190.    to 1), any indexes beyond cclrUsed are not valid. For example, a bit map 
  1191.    with 64 colors can use the 8-bitcount format without having to supply the 
  1192.    other 192 entries in the color table. For the 24-bitcount standard format, 
  1193.    cclrUsed is the number of colors used by the bit map. 
  1194.  
  1195.  
  1196. ΓòÉΓòÉΓòÉ <hidden> cclrImportant ΓòÉΓòÉΓòÉ
  1197.  
  1198. cclrImportant (ULONG) 
  1199.    Minimum number of color indexes for satisfactory appearance of the bit map. 
  1200.  
  1201.    More colors may be used in the bit map, but it is not necessary to assign 
  1202.    them to the device palette. These additional colors may be mapped to the 
  1203.    nearest colors available. 
  1204.    Zero (the default) means that all entries are important. 
  1205.    For a 24-bitcount standard format bit map, the cclrImportant colors are also 
  1206.    listed in the color table following the BITMAPINFO2 structure. 
  1207.  
  1208.  
  1209. ΓòÉΓòÉΓòÉ <hidden> usUnits ΓòÉΓòÉΓòÉ
  1210.  
  1211. usUnits (USHORT) 
  1212.    Units of measure. 
  1213.  
  1214.    Units of measure of the horizontal and vertical components of resolution, 
  1215.    cxResolution and cyResolution. 
  1216.  
  1217.    BRU_METRIC 
  1218.       pels per meter. This is the default value. 
  1219.  
  1220.  
  1221. ΓòÉΓòÉΓòÉ <hidden> usReserved ΓòÉΓòÉΓòÉ
  1222.  
  1223. usReserved (USHORT) 
  1224.    Reserved. 
  1225.  
  1226.    This is a reserved field. 
  1227.  
  1228.  
  1229. ΓòÉΓòÉΓòÉ <hidden> usRecording ΓòÉΓòÉΓòÉ
  1230.  
  1231. usRecording (USHORT) 
  1232.    Recording algorithm. 
  1233.  
  1234.    The format in which the bit map data is recorded. 
  1235.  
  1236.    BRA_BOTTOMUP 
  1237.       Scan lines are recorded bottom-to-top. This is the default value. 
  1238.  
  1239.  
  1240. ΓòÉΓòÉΓòÉ <hidden> usRendering ΓòÉΓòÉΓòÉ
  1241.  
  1242. usRendering (USHORT) 
  1243.    Halftoning algorithm. 
  1244.  
  1245.    The algorithm used to record bit map data that has been digitally halftoned. 
  1246.  
  1247.    BRH_NOTHALFTONED 
  1248.       Bit-map data is not halftoned. This is the default value. 
  1249.    BRH_ERRORDIFFUSION 
  1250.       Error Diffusion or Damped Error Diffusion algorithm. 
  1251.    BRH_PANDA 
  1252.       Processing Algorithm for Non-coded Document Acquisition. 
  1253.    BRH_SUPERCIRCLE 
  1254.       Super Circle algorithm. 
  1255.  
  1256.  
  1257. ΓòÉΓòÉΓòÉ <hidden> cSize1 ΓòÉΓòÉΓòÉ
  1258.  
  1259. cSize1 (ULONG) 
  1260.    Size value 1. 
  1261.  
  1262.    If BRH_ERRORDIFFUSION is specified in usRendering, cSize1 is the error 
  1263.    damping as a percentage in the range 0 through 100. A value of 100% 
  1264.    indicates no damping, and a value of 0% indicates that any errors are not 
  1265.    diffused. 
  1266.    If BRH_PANDA or BRH_SUPERCIRCLE is specified, cSize1 is the x dimension of 
  1267.    the pattern used, in pels. 
  1268.  
  1269.  
  1270. ΓòÉΓòÉΓòÉ <hidden> cSize2 ΓòÉΓòÉΓòÉ
  1271.  
  1272. cSize2 (ULONG) 
  1273.    Size value 2. 
  1274.  
  1275.    If BRH_ERRORDIFFUSION is specified in usRendering, this parameter is 
  1276.    ignored. 
  1277.    If BRH_PANDA or BRH_SUPERCIRCLE is specified, cSize2 is the y dimension of 
  1278.    the pattern used, in pels. 
  1279.  
  1280.  
  1281. ΓòÉΓòÉΓòÉ <hidden> ulColorEncoding ΓòÉΓòÉΓòÉ
  1282.  
  1283. ulColorEncoding (ULONG) 
  1284.    Color encoding. 
  1285.  
  1286.    BCE_RGB 
  1287.       Each element in the color array is an RGB2 datatype. This is the default 
  1288.       value. 
  1289.  
  1290.  
  1291. ΓòÉΓòÉΓòÉ <hidden> ulIdentifier ΓòÉΓòÉΓòÉ
  1292.  
  1293. ulIdentifier (ULONG) 
  1294.    Reserved for application use. 
  1295.  
  1296.  
  1297. ΓòÉΓòÉΓòÉ <hidden> argbColor[1] ΓòÉΓòÉΓòÉ
  1298.  
  1299. argbColor[1] (RGB2) 
  1300.    Array of RGB values. 
  1301.  
  1302.    This is a packed array of 24-bit RGB values.  If there are N bits per pel (N 
  1303.    = the array contains 2**N RGB values.  However, if N = 24 the bit map does 
  1304.    not need the color array because the standard-format bit map, with 24 bits 
  1305.    per pel, is assumed to contain RGB values. 
  1306.  
  1307.  
  1308. ΓòÉΓòÉΓòÉ 4.14. BITMAPINFOHEADER ΓòÉΓòÉΓòÉ
  1309.  
  1310. BITMAPINFOHEADER Bit-map information header structure. 
  1311.  
  1312. Each bit plane logically contains (cx * cy * cBitCount) bits, although the 
  1313. actual length can be greater because of padding. 
  1314.  
  1315. See also BITMAPINFOHEADER2, which is preferred. 
  1316.  
  1317. typedef struct _BITMAPINFOHEADER {
  1318. ULONG     cbFix;      /* Length of structure  */
  1319. USHORT    cx;         /* Bit-map width in pels  */
  1320. USHORT    cy;         /* Bit-map height in pels  */
  1321. USHORT    cPlanes;    /* Number of bit planes  */
  1322. USHORT    cBitCount;  /* Number of bits per pel within a plane  */
  1323.  } BITMAPINFOHEADER;
  1324.  
  1325.  
  1326. ΓòÉΓòÉΓòÉ <hidden> cbFix ΓòÉΓòÉΓòÉ
  1327.  
  1328. cbFix (ULONG) 
  1329.    Length of structure. 
  1330.  
  1331.  
  1332. ΓòÉΓòÉΓòÉ <hidden> cx ΓòÉΓòÉΓòÉ
  1333.  
  1334. cx (USHORT) 
  1335.    Bit-map width in pels. 
  1336.  
  1337.  
  1338. ΓòÉΓòÉΓòÉ <hidden> cy ΓòÉΓòÉΓòÉ
  1339.  
  1340. cy (USHORT) 
  1341.    Bit-map height in pels. 
  1342.  
  1343.  
  1344. ΓòÉΓòÉΓòÉ <hidden> cPlanes ΓòÉΓòÉΓòÉ
  1345.  
  1346. cPlanes (USHORT) 
  1347.    Number of bit planes. 
  1348.  
  1349.  
  1350. ΓòÉΓòÉΓòÉ <hidden> cBitCount ΓòÉΓòÉΓòÉ
  1351.  
  1352. cBitCount (USHORT) 
  1353.    Number of bits per pel within a plane. 
  1354.  
  1355.  
  1356. ΓòÉΓòÉΓòÉ 4.15. BITMAPINFOHEADER2 ΓòÉΓòÉΓòÉ
  1357.  
  1358. BITMAPINFOHEADER2 Bit-map information header structure. 
  1359.  
  1360. Each bit plane logically contains (cx * cy * cBitCount) bits, although the 
  1361. actual length can be greater because of padding. 
  1362.  
  1363. Note:  Many functions can accept either this structure or the BITMAPINFOHEADER 
  1364. structure. Where possible, use BITMAPINFOHEADER2. 
  1365.  
  1366. typedef struct _BITMAPINFOHEADER2 {
  1367. ULONG     cbFix;            /* Length of structure  */
  1368. ULONG     cx;               /* Bit-map width in pels  */
  1369. ULONG     cy;               /* Bit-map height in pels  */
  1370. USHORT    cPlanes;          /* Number of bit planes  */
  1371. USHORT    cBitCount;        /* Number of bits per pel within a plane  */
  1372. ULONG     ulCompression;    /* Compression scheme used to store the bit map  */
  1373. ULONG     cbImage;          /* Length of bit-map storage data, in bytes  */
  1374. ULONG     cxResolution;     /* Horizontal component of the resolution of target device  */
  1375. ULONG     cyResolution;     /* Vertical component of the resolution of target device  */
  1376. ULONG     cclrUsed;         /* Number of color indexes used  */
  1377. ULONG     cclrImportant;    /* Minimum number of color indexes for satisfactory appearance of the bit map  */
  1378. USHORT    usUnits;          /* Units of measure  */
  1379. USHORT    usReserved;       /* Reserved  */
  1380. USHORT    usRecording;      /* Recording algorithm  */
  1381. USHORT    usRendering;      /* Halftoning algorithm  */
  1382. ULONG     cSize1;           /* Size value 1  */
  1383. ULONG     cSize2;           /* Size value 2  */
  1384. ULONG     ulColorEncoding;  /* Color encoding  */
  1385. ULONG     ulIdentifier;     /* Reserved for application use  */
  1386.  } BITMAPINFOHEADER2;
  1387.  
  1388.  
  1389. ΓòÉΓòÉΓòÉ <hidden> cbFix ΓòÉΓòÉΓòÉ
  1390.  
  1391. cbFix (ULONG) 
  1392.    Length of structure. 
  1393.  
  1394.  
  1395.    The structure can be truncated after cBitCount or any subsequent field. 
  1396.  
  1397.  
  1398. ΓòÉΓòÉΓòÉ <hidden> cx ΓòÉΓòÉΓòÉ
  1399.  
  1400. cx (ULONG) 
  1401.    Bit-map width in pels. 
  1402.  
  1403.  
  1404. ΓòÉΓòÉΓòÉ <hidden> cy ΓòÉΓòÉΓòÉ
  1405.  
  1406. cy (ULONG) 
  1407.    Bit-map height in pels. 
  1408.  
  1409.  
  1410. ΓòÉΓòÉΓòÉ <hidden> cPlanes ΓòÉΓòÉΓòÉ
  1411.  
  1412. cPlanes (USHORT) 
  1413.    Number of bit planes. 
  1414.  
  1415.  
  1416. ΓòÉΓòÉΓòÉ <hidden> cBitCount ΓòÉΓòÉΓòÉ
  1417.  
  1418. cBitCount (USHORT) 
  1419.    Number of bits per pel within a plane. 
  1420.  
  1421.  
  1422. ΓòÉΓòÉΓòÉ <hidden> ulCompression ΓòÉΓòÉΓòÉ
  1423.  
  1424. ulCompression (ULONG) 
  1425.    Compression scheme used to store the bit map. 
  1426.  
  1427.    BCA_UNCOMP 
  1428.       Bit map is uncompressed. 
  1429.  
  1430.    BCA_HUFFMAN1D 
  1431.       The bit map is compressed by a modified Huffman encoding. This is valid 
  1432.       for a bi-level (one bit per pel) bit map. 
  1433.  
  1434.    BCA_RLE4 
  1435.       The bit map is a 4-bit per pel run-length encoded bit map. See below for 
  1436.       a description of the format of the compressed data. 
  1437.  
  1438.    BCA_RLE8 
  1439.       The bit map is a 8-bit per pel run-length encoded bit map. See below for 
  1440.       a description of the format of the compressed data. 
  1441.  
  1442.    BCA_RLE24 
  1443.       The bit map is a 24-bit per pel run-length encoded bit map. See below for 
  1444.       a description of the format of the compressed data. 
  1445.       Format of Compressed Data 
  1446.       Encoding a runlength: 
  1447.       Run length encoded bit maps are encoded in the buffer in a controlled 
  1448.       format. In all cases, if the first byte is non-zero, it is the length of 
  1449.       a run of Pels of a particular color or, in the case of a BCA_RLE4 bit 
  1450.       map, a run of a length of pels of alternating colors. 
  1451.  
  1452.             1st-byte       pel repetition count >= 1
  1453.             2nd-4th bytes  (BCA_RLE24 only) RGB value of pel.
  1454.             2nd-byte       (BCA_RLE8) color index of pel to be repeated
  1455.                            (BCA_RLE4) the second byte contains 2 4-bit
  1456.                            color indices.  The repetition count is
  1457.                            completed by alternately choosing the high-order
  1458.                            nibble followed by the low-order nibble for the
  1459.                            succeeding Pels until the count is exhausted.
  1460.  
  1461.  
  1462.       Unencoded run: 
  1463.       An unencoded run is a string of pels to be placed in consecutive 
  1464.       positions in the destination bit map. 
  1465.  
  1466.             1st-byte     0
  1467.             2nd-byte     COUNT = a multiple of 3 for BCA_RLE24 bit maps, or
  1468.                          COUNT >= 3 (for BCA_RLE4 and BCA_RLE8 bit maps).
  1469.  
  1470.  
  1471.       followed by the bytes as follows: 
  1472.  
  1473.       BCA_RLE24 
  1474.          A string of bytes specifying the RGB color values of succeeding pels. 
  1475.          If COUNT is odd, it must be padded by a zero byte for an even length 
  1476.          overall. 
  1477.  
  1478.       BCA_RLE8 
  1479.          A string of bytes specifying color indices for succeeding pels. If 
  1480.          COUNT is odd it must be padded by a zero byte for an even length 
  1481.          overall. 
  1482.  
  1483.       BCA_RLE4 
  1484.          A string of bytes, each byte providing two color indices, with the 
  1485.          high order nibble specifying the index of the pel preceding the low 
  1486.          order nibble.  The COUNT specifies the number of indices.  The overall 
  1487.          length of the string must be an even number of bytes, and thus may be 
  1488.          padded with a zero byte, and the low order nibble of the last 
  1489.          significant byte may also be zero and not used. 
  1490.       Delta record: 
  1491.       A delta record indicates a shift in position in the destination bit map 
  1492.       before the next record is decoded. 
  1493.  
  1494.             1st-byte        0
  1495.             2nd-byte        2
  1496.             3rd-byte        Delta-x (unsigned)
  1497.             4th-byte        Delta-y (unsigned)
  1498.  
  1499.       This is a relative jump record.  It implies that the next record is to be 
  1500.       decoded into a position in the destination bit map at an offset from the 
  1501.       current position, determined by changing the horizontal and vertical 
  1502.       positions by Delta-x and Delta-y, respectively. 
  1503.       End-of-line record: The end-of-line record signifies that the data for 
  1504.       the current scan line is complete and that decoding of the next record 
  1505.       should begin at the start of the next scan line. 
  1506.  
  1507.             1st-byte        0
  1508.             2nd-byte        0
  1509.  
  1510.       End-of-RLE record: 
  1511.       The end-of-RLE record signifies the end of the data in the RLE compressed 
  1512.       bit map. 
  1513.  
  1514.             1st-byte        0
  1515.             2nd-byte        1
  1516.  
  1517.  
  1518. ΓòÉΓòÉΓòÉ <hidden> cbImage ΓòÉΓòÉΓòÉ
  1519.  
  1520. cbImage (ULONG) 
  1521.    Length of bit-map storage data, in bytes. 
  1522.  
  1523.    If the bit map is uncompressed, zero (the default) can be specified for 
  1524.    this. 
  1525.  
  1526.  
  1527. ΓòÉΓòÉΓòÉ <hidden> cxResolution ΓòÉΓòÉΓòÉ
  1528.  
  1529. cxResolution (ULONG) 
  1530.    Horizontal component of the resolution of target device. 
  1531.  
  1532.    The resolution of the device the bit map is intended for, in the units 
  1533.    specified by usUnits. This information enables applications to select from a 
  1534.    resource group the bit map that best matches the characteristics of the 
  1535.    current output device. 
  1536.  
  1537.  
  1538. ΓòÉΓòÉΓòÉ <hidden> cyResolution ΓòÉΓòÉΓòÉ
  1539.  
  1540. cyResolution (ULONG) 
  1541.    Vertical component of the resolution of target device. 
  1542.  
  1543.    See the description of cxResolution. 
  1544.  
  1545.  
  1546. ΓòÉΓòÉΓòÉ <hidden> cclrUsed ΓòÉΓòÉΓòÉ
  1547.  
  1548. cclrUsed (ULONG) 
  1549.    Number of color indexes used. 
  1550.  
  1551.    The number of color indexes from the color table that are used by the bit 
  1552.    map. If this is zero (the default), all the indexes are used. If it is 
  1553.    non-zero, only the first cclrUsed entries in the table are accessed by the 
  1554.    system, and further entries can be omitted. 
  1555.    For the standard formats with a cBitCount of 1, 4, or 8 (and cPlanes equal 
  1556.    to 1), any indexes beyond cclrUsed are invalid. For example, a bit map with 
  1557.    64 colors can use the 8-bitcount format without having to supply the other 
  1558.    192 entries in the color table. For the 24-bitcount standard format, 
  1559.    cclrUsed is the number of colors used by the bit map. 
  1560.  
  1561.  
  1562. ΓòÉΓòÉΓòÉ <hidden> cclrImportant ΓòÉΓòÉΓòÉ
  1563.  
  1564. cclrImportant (ULONG) 
  1565.    Minimum number of color indexes for satisfactory appearance of the bit map. 
  1566.  
  1567.    More colors may be used in the bit map, but it is not necessary to assign 
  1568.    them to the device palette. These additional colors may be mapped to the 
  1569.    nearest colors available. 
  1570.    Zero (the default) means that all entries are important. 
  1571.    For a 24-bitcount standard format bit map, the cclrImportant colors are also 
  1572.    listed in the color table relating to this bit map. 
  1573.  
  1574.  
  1575. ΓòÉΓòÉΓòÉ <hidden> usUnits ΓòÉΓòÉΓòÉ
  1576.  
  1577. usUnits (USHORT) 
  1578.    Units of measure. 
  1579.  
  1580.    Units of measure of the horizontal and vertical resolution, cxResolution and 
  1581.    cyResolution. 
  1582.  
  1583.    BRU_METRIC 
  1584.       pels per meter. This is the default value. 
  1585.  
  1586.  
  1587. ΓòÉΓòÉΓòÉ <hidden> usReserved ΓòÉΓòÉΓòÉ
  1588.  
  1589. usReserved (USHORT) 
  1590.    Reserved. 
  1591.  
  1592.    This is a reserved field. If present, it must be zero. 
  1593.  
  1594.  
  1595. ΓòÉΓòÉΓòÉ <hidden> usRecording ΓòÉΓòÉΓòÉ
  1596.  
  1597. usRecording (USHORT) 
  1598.    Recording algorithm. 
  1599.  
  1600.    The format in which the bit-map data is recorded. 
  1601.  
  1602.    BRA_BOTTOMUP 
  1603.       Scan lines are recorded bottom-to-top. This is the default value. 
  1604.  
  1605.  
  1606. ΓòÉΓòÉΓòÉ <hidden> usRendering ΓòÉΓòÉΓòÉ
  1607.  
  1608. usRendering (USHORT) 
  1609.    Halftoning algorithm. 
  1610.  
  1611.    The algorithm used to record bit-map data that has been digitally halftoned. 
  1612.  
  1613.    BRH_NOTHALFTONED 
  1614.       Bit-map data is not halftoned. This is the default value. 
  1615.    BRH_ERRORDIFFUSION 
  1616.       Error Diffusion or Damped Error Diffusion algorithm. 
  1617.    BRH_PANDA 
  1618.       Processing Algorithm for Non-coded Document Acquisition. 
  1619.    BRH_SUPERCIRCLE 
  1620.       Super Circle algorithm. 
  1621.  
  1622.  
  1623. ΓòÉΓòÉΓòÉ <hidden> cSize1 ΓòÉΓòÉΓòÉ
  1624.  
  1625. cSize1 (ULONG) 
  1626.    Size value 1. 
  1627.  
  1628.    If BRH_ERRORDIFFUSION is specified in usRendering, cSize1 is the error 
  1629.    damping as a percentage in the range 0 through 100. A value of 100% 
  1630.    indicates no damping, and a value of 0% indicates that any errors are not 
  1631.    diffused. 
  1632.    If BRH_PANDA or BRH_SUPERCIRCLE is specified, cSize1 is the x dimension of 
  1633.    the pattern used, in pels. 
  1634.  
  1635.  
  1636. ΓòÉΓòÉΓòÉ <hidden> cSize2 ΓòÉΓòÉΓòÉ
  1637.  
  1638. cSize2 (ULONG) 
  1639.    Size value 2. 
  1640.  
  1641.    If BRH_ERRORDIFFUSION is specified in usRendering, this parameter is 
  1642.    ignored. 
  1643.    If BRH_PANDA or BRH_SUPERCIRCLE is specified, cSize2 is the y dimension of 
  1644.    the pattern used, in pels. 
  1645.  
  1646.  
  1647. ΓòÉΓòÉΓòÉ <hidden> ulColorEncoding ΓòÉΓòÉΓòÉ
  1648.  
  1649. ulColorEncoding (ULONG) 
  1650.    Color encoding. 
  1651.  
  1652.    BCE_RGB 
  1653.       Each element in the color array is an RGB2 datatype. This is the default 
  1654.       value. 
  1655.  
  1656.  
  1657. ΓòÉΓòÉΓòÉ <hidden> ulIdentifier ΓòÉΓòÉΓòÉ
  1658.  
  1659. ulIdentifier (ULONG) 
  1660.    Reserved for application use. 
  1661.  
  1662.  
  1663. ΓòÉΓòÉΓòÉ 4.16. BOOKTEXT ΓòÉΓòÉΓòÉ
  1664.  
  1665. BOOKTEXT Notebook data structure that contains text strings for notebook status 
  1666. lines and tabs. This data structure is used with the BKM_QUERYSTATUSLINETEXT 
  1667. and the BKM_QUERYTABTEXT messages only. 
  1668.  
  1669. typedef struct _BOOKTEXT {
  1670. PSZ      pString;  /* Pointer to a string buffer  */
  1671. ULONG    textLen;  /* String length  */
  1672.  } BOOKTEXT;
  1673.  
  1674.  
  1675. ΓòÉΓòÉΓòÉ <hidden> pString ΓòÉΓòÉΓòÉ
  1676.  
  1677. pString (PSZ) 
  1678.    Pointer to a string buffer 
  1679.  
  1680.    Buffer in which the text string is to be placed. For the 
  1681.    BKM_QUERYSTATUSLINETEXT message, this is the buffer in which the status line 
  1682.    text is placed. 
  1683.    For the BKM_QUERYTABTEXT message, this is the buffer in which the tab text 
  1684.    is placed. 
  1685.  
  1686.  
  1687. ΓòÉΓòÉΓòÉ <hidden> textLen ΓòÉΓòÉΓòÉ
  1688.  
  1689. textLen (ULONG) 
  1690.    String length. 
  1691.  
  1692.    Length of the text string. For the BKM_QUERYSTATUSLINETEXT message, this is 
  1693.    the length of the status line text string. 
  1694.    For the BKM_QUERYTABTEXT message, this is the length of the tab text string. 
  1695.  
  1696.  
  1697. ΓòÉΓòÉΓòÉ 4.17. BOOL ΓòÉΓòÉΓòÉ
  1698.  
  1699. BOOL Boolean. 
  1700.  
  1701. Valid values are FALSE, which is 0, and TRUE, which is 1. 
  1702.  
  1703. typedef unsigned long BOOL;
  1704.  
  1705.  
  1706. ΓòÉΓòÉΓòÉ 4.18. BTNCDATA ΓòÉΓòÉΓòÉ
  1707.  
  1708. BTNCDATA Button-control-data structure. 
  1709.  
  1710. typedef struct _BTNCDATA {
  1711. USHORT     cb;             /* Length of the control data in bytes  */
  1712. USHORT     fsCheckState;   /* Check state of button  */
  1713. USHORT     fsHiliteState;  /* Highlighting state of button  */
  1714. LHANDLE    hImage;         /* Resource handle for icon or bit map  */
  1715.  } BTNCDATA;
  1716.  
  1717.  
  1718. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  1719.  
  1720. cb (USHORT) 
  1721.    Length of the control data in bytes. 
  1722.  
  1723.    This is the length of the control data for a button control. 
  1724.  
  1725.  
  1726. ΓòÉΓòÉΓòÉ <hidden> fsCheckState ΓòÉΓòÉΓòÉ
  1727.  
  1728. fsCheckState (USHORT) 
  1729.    Check state of button. 
  1730.  
  1731.    This is the same value as returned by the BM_QUERYCHECK message and passed 
  1732.    to the BM_SETCHECK message. 
  1733.  
  1734.  
  1735. ΓòÉΓòÉΓòÉ <hidden> fsHiliteState ΓòÉΓòÉΓòÉ
  1736.  
  1737. fsHiliteState (USHORT) 
  1738.    Highlighting state of button. 
  1739.  
  1740.    This is the same value as returned by the BM_QUERYHILITE message and passed 
  1741.    to the BM_SETHILITE message. 
  1742.  
  1743.  
  1744. ΓòÉΓòÉΓòÉ <hidden> hImage ΓòÉΓòÉΓòÉ
  1745.  
  1746. hImage (LHANDLE) 
  1747.    Resource handle for icon or bit map. 
  1748.  
  1749.  
  1750. ΓòÉΓòÉΓòÉ 4.19. BYTE ΓòÉΓòÉΓòÉ
  1751.  
  1752. BYTE Byte. 
  1753.  
  1754. typedef unsigned char BYTE;
  1755.  
  1756.  
  1757. ΓòÉΓòÉΓòÉ 4.20. CATCHBUF ΓòÉΓòÉΓòÉ
  1758.  
  1759. CATCHBUF Saved execution environment buffer. 
  1760.  
  1761. typedef struct _CATCHBUF {
  1762. ULONG    reserved[4];  /* Save area  */
  1763.  } CATCHBUF;
  1764.  
  1765.  
  1766. ΓòÉΓòÉΓòÉ <hidden> reserved[7] ΓòÉΓòÉΓòÉ
  1767.  
  1768. reserved[7] (ULONG) 
  1769.    Save area. 
  1770.  
  1771.  
  1772. ΓòÉΓòÉΓòÉ 4.21. CDATE ΓòÉΓòÉΓòÉ
  1773.  
  1774. CDATE Structure that contains date information for a data element in the 
  1775. details view of a container control. 
  1776.  
  1777. typedef struct _CDATE {
  1778. UCHAR     day;    /* Current day  */
  1779. UCHAR     month;  /* Current month  */
  1780. USHORT    year;   /* Current year  */
  1781.  } CDATE;
  1782.  
  1783.  
  1784. ΓòÉΓòÉΓòÉ <hidden> day ΓòÉΓòÉΓòÉ
  1785.  
  1786. day (UCHAR) 
  1787.    Current day. 
  1788.  
  1789.  
  1790. ΓòÉΓòÉΓòÉ <hidden> month ΓòÉΓòÉΓòÉ
  1791.  
  1792. month (UCHAR) 
  1793.    Current month. 
  1794.  
  1795.  
  1796. ΓòÉΓòÉΓòÉ <hidden> year ΓòÉΓòÉΓòÉ
  1797.  
  1798. year (USHORT) 
  1799.    Current year. 
  1800.  
  1801.  
  1802. ΓòÉΓòÉΓòÉ 4.22. CELL ΓòÉΓòÉΓòÉ
  1803.  
  1804. CELL Class specific cell data follows immediately afterwards. 
  1805.  
  1806. typedef struct _CELL {
  1807. ULONG    cbData;  /* Size of the data that follows  */
  1808.  } CELL;
  1809.  
  1810.  
  1811. ΓòÉΓòÉΓòÉ <hidden> cbData ΓòÉΓòÉΓòÉ
  1812.  
  1813. cbData (ULONG) 
  1814.    Size of the data that follows. 
  1815.  
  1816.    Class specific cell data follows immediately afterwards. For example the 
  1817.    font palette would store the ASCII name of the font, and the color palette 
  1818.    would store the RGB color of the cell. 
  1819.  
  1820.  
  1821. ΓòÉΓòÉΓòÉ 4.23. CHAR ΓòÉΓòÉΓòÉ
  1822.  
  1823. CHAR Single-byte character. 
  1824.  
  1825. #define CHAR char
  1826.  
  1827.  
  1828. ΓòÉΓòÉΓòÉ 4.24. CHARBUNDLE ΓòÉΓòÉΓòÉ
  1829.  
  1830. CHARBUNDLE Character-attributes bundle structure. 
  1831.  
  1832. typedef struct _CHARBUNDLE {
  1833. LONG      lColor;         /* Character foreground color  */
  1834. LONG      lBackColor;     /* Character background color  */
  1835. USHORT    usMixMode;      /* Character foreground-mix mode  */
  1836. USHORT    usBackMixMode;  /* Character background-mix mode  */
  1837. USHORT    usSet;          /* Character set  */
  1838. USHORT    usPrecision;    /* Character precision  */
  1839. SIZEF     sizfxCell;      /* Character cell size  */
  1840. POINTL    ptlAngle;       /* Character angle  */
  1841. POINTL    ptlShear;       /* Character shear  */
  1842. USHORT    usDirection;    /* Character direction  */
  1843. USHORT    usTextAlign;    /* Text alignment  */
  1844. FIXED     fxExtra;        /* Character extra  */
  1845. FIXED     fxBreakExtra;   /* Character break extra  */
  1846.  } CHARBUNDLE;
  1847.  
  1848.  
  1849. ΓòÉΓòÉΓòÉ <hidden> lColor ΓòÉΓòÉΓòÉ
  1850.  
  1851. lColor (LONG) 
  1852.    Character foreground color. 
  1853.  
  1854.  
  1855. ΓòÉΓòÉΓòÉ <hidden> lBackColor ΓòÉΓòÉΓòÉ
  1856.  
  1857. lBackColor (LONG) 
  1858.    Character background color. 
  1859.  
  1860.  
  1861. ΓòÉΓòÉΓòÉ <hidden> usMixMode ΓòÉΓòÉΓòÉ
  1862.  
  1863. usMixMode (USHORT) 
  1864.    Character foreground-mix mode. 
  1865.  
  1866.  
  1867. ΓòÉΓòÉΓòÉ <hidden> usBackMixMode ΓòÉΓòÉΓòÉ
  1868.  
  1869. usBackMixMode (USHORT) 
  1870.    Character background-mix mode. 
  1871.  
  1872.  
  1873. ΓòÉΓòÉΓòÉ <hidden> usSet ΓòÉΓòÉΓòÉ
  1874.  
  1875. usSet (USHORT) 
  1876.    Character set. 
  1877.  
  1878.  
  1879. ΓòÉΓòÉΓòÉ <hidden> usPrecision ΓòÉΓòÉΓòÉ
  1880.  
  1881. usPrecision (USHORT) 
  1882.    Character precision. 
  1883.  
  1884.  
  1885. ΓòÉΓòÉΓòÉ <hidden> sizfxCell ΓòÉΓòÉΓòÉ
  1886.  
  1887. sizfxCell (SIZEF) 
  1888.    Character cell size. 
  1889.  
  1890.  
  1891. ΓòÉΓòÉΓòÉ <hidden> ptlAngle ΓòÉΓòÉΓòÉ
  1892.  
  1893. ptlAngle (POINTL) 
  1894.    Character angle. 
  1895.  
  1896.  
  1897. ΓòÉΓòÉΓòÉ <hidden> ptlShear ΓòÉΓòÉΓòÉ
  1898.  
  1899. ptlShear (POINTL) 
  1900.    Character shear. 
  1901.  
  1902.  
  1903. ΓòÉΓòÉΓòÉ <hidden> usDirection ΓòÉΓòÉΓòÉ
  1904.  
  1905. usDirection (USHORT) 
  1906.    Character direction. 
  1907.  
  1908.  
  1909. ΓòÉΓòÉΓòÉ <hidden> usTextAlign ΓòÉΓòÉΓòÉ
  1910.  
  1911. usTextAlign (USHORT) 
  1912.    Text alignment. 
  1913.  
  1914.  
  1915. ΓòÉΓòÉΓòÉ <hidden> fxExtra ΓòÉΓòÉΓòÉ
  1916.  
  1917. fxExtra (FIXED) 
  1918.    Character extra. 
  1919.  
  1920.  
  1921. ΓòÉΓòÉΓòÉ <hidden> fxBreakExtra ΓòÉΓòÉΓòÉ
  1922.  
  1923. fxBreakExtra (FIXED) 
  1924.    Character break extra. 
  1925.  
  1926.  
  1927. ΓòÉΓòÉΓòÉ 4.25. CHRMSG ΓòÉΓòÉΓòÉ
  1928.  
  1929. CHRMSG This data structure and an associated macro (CHARMSG) are used to access 
  1930. the WM_CHAR message parameters. 
  1931.  
  1932. The macro associated with this data structure, CHARMSG, is defined as follows: 
  1933.  
  1934. #define CHARMSG(pmsg)   ((PCHRMSG)((PBYTE)pmsg + sizeof(MPARAM) ))
  1935.  
  1936. The structure and macro are both defined in PMWIN.H. 
  1937.  
  1938. typedef struct _CHARMSG {
  1939. USHORT    fs;        /* Keyboard control codes  */
  1940. UCHAR     cRepeat;   /* Repeat count  */
  1941. UCHAR     scancode;  /* Hardware scan code  */
  1942. USHORT    chr;       /* Character code  */
  1943. USHORT    vkey;      /* Virtual key code  */
  1944.  } CHRMSG;
  1945.  
  1946.  
  1947. ΓòÉΓòÉΓòÉ <hidden> fs ΓòÉΓòÉΓòÉ
  1948.  
  1949. fs (USHORT) 
  1950.    Keyboard control codes. 
  1951.  
  1952.    This field is from the first message parameter (mp1). 
  1953.  
  1954.  
  1955. ΓòÉΓòÉΓòÉ <hidden> cRepeat ΓòÉΓòÉΓòÉ
  1956.  
  1957. cRepeat (UCHAR) 
  1958.    Repeat count. 
  1959.  
  1960.    This field is from the first message parameter (mp1). 
  1961.  
  1962.  
  1963. ΓòÉΓòÉΓòÉ <hidden> scancode ΓòÉΓòÉΓòÉ
  1964.  
  1965. scancode (UCHAR) 
  1966.    Hardware scan code. 
  1967.  
  1968.    This field is from the first message parameter (mp1). 
  1969.  
  1970.  
  1971. ΓòÉΓòÉΓòÉ <hidden> chr ΓòÉΓòÉΓòÉ
  1972.  
  1973. chr (USHORT) 
  1974.    Character code. 
  1975.  
  1976.    This field is from the second message parameter (mp2). 
  1977.  
  1978.  
  1979. ΓòÉΓòÉΓòÉ <hidden> vkey ΓòÉΓòÉΓòÉ
  1980.  
  1981. vkey (USHORT) 
  1982.    Virtual key code. 
  1983.  
  1984.    This field is from the second message parameter (mp2). 
  1985.  
  1986.  
  1987. ΓòÉΓòÉΓòÉ 4.26. CLASS ΓòÉΓòÉΓòÉ
  1988.  
  1989. CLASS An array of class objects. The final element of the array should be NULL. 
  1990.  
  1991. typedef M_WPObject *CLASS;
  1992.  
  1993.  
  1994. ΓòÉΓòÉΓòÉ 4.27. CLASSDETAILS ΓòÉΓòÉΓòÉ
  1995.  
  1996. CLASSDETAILS Class details data structure. 
  1997.  
  1998. typedef struct _CLASSDETAILS {
  1999. PSZ      pszAttribute;   /* Translatable string */
  2000. PVOID    pSortRecord;    /* Function pointer */
  2001.  } CLASSDETAILS;
  2002.  
  2003.  
  2004. ΓòÉΓòÉΓòÉ <hidden> pAttribute ΓòÉΓòÉΓòÉ
  2005.  
  2006. pAttribute (PSZ) 
  2007.  
  2008.    Translatable string for a class attribute. 
  2009.  
  2010.  
  2011. ΓòÉΓòÉΓòÉ <hidden> pSortRecord ΓòÉΓòÉΓòÉ
  2012.  
  2013. pSortRecord (PVOID) 
  2014.  
  2015.    Function pointer for sort function for attribute. 
  2016.  
  2017.  
  2018. ΓòÉΓòÉΓòÉ 4.28. CLASSINFO ΓòÉΓòÉΓòÉ
  2019.  
  2020. CLASSINFO Class-information structure. 
  2021.  
  2022. typedef struct _CLASSINFO {
  2023. ULONG    flClassStyle;   /* Class-style flags  */
  2024. PFNWP    pfnWindowProc;  /* Window procedure  */
  2025. ULONG    cbWindowData;   /* Number of additional window words  */
  2026.  } CLASSINFO;
  2027.  
  2028.  
  2029. ΓòÉΓòÉΓòÉ <hidden> flClassStyle ΓòÉΓòÉΓòÉ
  2030.  
  2031. flClassStyle (ULONG) 
  2032.    Class-style flags. 
  2033.  
  2034.  
  2035. ΓòÉΓòÉΓòÉ <hidden> pfnWindowProc ΓòÉΓòÉΓòÉ
  2036.  
  2037. pfnWindowProc (PFNWP) 
  2038.    Window procedure. 
  2039.  
  2040.  
  2041. ΓòÉΓòÉΓòÉ <hidden> cbWindowData ΓòÉΓòÉΓòÉ
  2042.  
  2043. cbWindowData (ULONG) 
  2044.    Number of additional window words. 
  2045.  
  2046.  
  2047. ΓòÉΓòÉΓòÉ 4.29. CMDMSG ΓòÉΓòÉΓòÉ
  2048.  
  2049. CMDMSG This data structure and an associated macro (COMMANDMSG) are used to 
  2050. access the WM_COMMAND, WM_HELP, and WM_SYSCOMMAND message parameters. 
  2051.  
  2052. The macro associated with this data structure, COMMANDMSG, is defined as 
  2053. follows: 
  2054.  
  2055. #define COMMANDMSG(pmsg) ((PCMDMSG)((PBYTE)pmsg + sizeof(MPARAM) ))
  2056.  
  2057. The structure and macro are both defined in PMWIN.H. 
  2058.  
  2059. typedef struct _COMMANDMSG {
  2060. USHORT    cmd;     /* Command value  */
  2061. USHORT    unused;  /* Not used  */
  2062. USHORT    source;  /* Source type  */
  2063. USHORT    fMouse;  /* Pointer-device indicator  */
  2064.  } CMDMSG;
  2065.  
  2066.  
  2067. ΓòÉΓòÉΓòÉ <hidden> cmd ΓòÉΓòÉΓòÉ
  2068.  
  2069. cmd (USHORT) 
  2070.    Command value. 
  2071.  
  2072.    This field is from the first message parameter (mp1). 
  2073.  
  2074.  
  2075. ΓòÉΓòÉΓòÉ <hidden> unused ΓòÉΓòÉΓòÉ
  2076.  
  2077. unused (USHORT) 
  2078.    Not used. 
  2079.  
  2080.  
  2081. ΓòÉΓòÉΓòÉ <hidden> source ΓòÉΓòÉΓòÉ
  2082.  
  2083. source (USHORT) 
  2084.    Source type. 
  2085.  
  2086.    Identifies the type of control that was the source of the command. 
  2087.    This field is from the second message parameter (mp2). 
  2088.  
  2089.  
  2090. ΓòÉΓòÉΓòÉ <hidden> fMouse ΓòÉΓòÉΓòÉ
  2091.  
  2092. fMouse (USHORT) 
  2093.    Pointer-device indicator. 
  2094.  
  2095.    If TRUE, the message was posted as a result of a pointer-device operation. 
  2096.    If FALSE, the message was posted as a result of a keyboard operation. 
  2097.    This field is from the second message parameter (mp2). 
  2098.  
  2099.  
  2100. ΓòÉΓòÉΓòÉ 4.30. CNRDRAGINFO ΓòÉΓòÉΓòÉ
  2101.  
  2102. CNRDRAGINFO Structure that contains information about a direct manipulation 
  2103. event that is occurring over the container. The information specified for this 
  2104. structure depends on the container notification code with which it is used. The 
  2105. differences are specified in the following field descriptions. The applicable 
  2106. notification codes are: 
  2107.  
  2108. o CN_DRAGAFTER 
  2109. o CN_DRAGLEAVE 
  2110. o CN_DRAGOVER 
  2111. o CN_DROP 
  2112. o CN_DROPHELP 
  2113.  
  2114. typedef struct _CNRDRAGINFO {
  2115. PDRAGINFO      pDragInfo;  /* Pointer  */
  2116. PRECORDCORE    pRecord;    /* Pointer  */
  2117.  } CNRDRAGINFO;
  2118.  
  2119.  
  2120. ΓòÉΓòÉΓòÉ <hidden> pDragInfo ΓòÉΓòÉΓòÉ
  2121.  
  2122. pDragInfo (PDRAGINFO) 
  2123.    Pointer to a DRAGINFO structure. 
  2124.  
  2125.  
  2126. ΓòÉΓòÉΓòÉ <hidden> pRecord ΓòÉΓòÉΓòÉ
  2127.  
  2128. pRecord (PRECORDCORE) 
  2129.    Pointer to a RECORDCORE structure. The structure that is pointed to depends 
  2130.    on the notification code being used. 
  2131.  
  2132.    Note:  If the CCS_MINIRECORDCORE style bit is specified when a container is 
  2133.    created, then MINIRECORDCORE should be used instead of RECORDCORE and 
  2134.    PMINIRECORDCORE should be used instead of PRECORDCORE in all applicable data 
  2135.    structures and messages. For the CN_DRAGAFTER notification code, this field 
  2136.    contains a pointer to the RECORDCORE structure after which ordered target 
  2137.    emphasis is drawn. If ordered target emphasis is applied above the first 
  2138.    record in item order, the CMA_FIRST attribute is returned. 
  2139.    For the CN_DRAGLEAVE notification code, this field is NULL. 
  2140.    For the CN_DRAGOVER, CN_DROP, and CN_DROPHELP notification codes, this field 
  2141.    contains a pointer to a container record over which direct manipulation 
  2142.    occurred. This field has a value of NULL if the direct manipulation event 
  2143.    occurs over white space. 
  2144.  
  2145.  
  2146. ΓòÉΓòÉΓòÉ 4.31. CNRDRAGINIT ΓòÉΓòÉΓòÉ
  2147.  
  2148. CNRDRAGINIT Structure that contains information about a direct manipulation 
  2149. event that is initiated in a container. This structure is used with the 
  2150. CN_INITDRAG notification code only. 
  2151.  
  2152. typedef struct _CNRDRAGINIT {
  2153. HWND           hwndCnr;  /* Container control handle  */
  2154. PRECORDCORE    pRecord;  /* Pointer  */
  2155. LONG           x;        /* X-coordinate  */
  2156. LONG           y;        /* Y-coordinate  */
  2157. LONG           cx;       /* X-offset  */
  2158. LONG           cy;       /* Y-offset  */
  2159.  } CNRDRAGINIT;
  2160.  
  2161.  
  2162. ΓòÉΓòÉΓòÉ <hidden> hwndCnr ΓòÉΓòÉΓòÉ
  2163.  
  2164. hwndCnr (HWND) 
  2165.    Container control handle. 
  2166.  
  2167.  
  2168. ΓòÉΓòÉΓòÉ <hidden> pRecord ΓòÉΓòÉΓòÉ
  2169.  
  2170. pRecord (PRECORDCORE) 
  2171.    Pointer. 
  2172.  
  2173.    Pointer to the RECORDCORE where direct manipulation started. 
  2174.  
  2175.    Note:  If the CCS_MINIRECORDCORE style bit is specified when a container is 
  2176.    created, then MINIRECORDCORE should be used instead of RECORDCORE and 
  2177.    PMINIRECORDCORE should be used instead of PRECORDCORE in all applicable data 
  2178.    structures and messages. 
  2179.    The pRecord field can have one of the following values: 
  2180.  
  2181.    NULL 
  2182.       Direct manipulation started over white space. 
  2183.    Other 
  2184.       Container record over which direct manipulation started. 
  2185.  
  2186.  
  2187. ΓòÉΓòÉΓòÉ <hidden> x ΓòÉΓòÉΓòÉ
  2188.  
  2189. x (LONG) 
  2190.    X-coordinate. 
  2191.  
  2192.    X-coordinate of the pointer of the pointing device in desktop coordinates. 
  2193.  
  2194.  
  2195. ΓòÉΓòÉΓòÉ <hidden> y ΓòÉΓòÉΓòÉ
  2196.  
  2197. y (LONG) 
  2198.    Y-coordinate. 
  2199.  
  2200.    Y-coordinate of the pointer of the pointing device in desktop coordinates. 
  2201.  
  2202.  
  2203. ΓòÉΓòÉΓòÉ <hidden> cx ΓòÉΓòÉΓòÉ
  2204.  
  2205. cx (LONG) 
  2206.    X-offset. 
  2207.  
  2208.    X-offset from the hot spot of the pointer of the pointing device (in pels) 
  2209.    to the record origin. 
  2210.  
  2211.  
  2212. ΓòÉΓòÉΓòÉ <hidden> cy ΓòÉΓòÉΓòÉ
  2213.  
  2214. cy (LONG) 
  2215.    Y-offset. 
  2216.  
  2217.    Y-offset from the hot spot of the pointer of the pointing device (in pels) 
  2218.    to the record origin. 
  2219.  
  2220.  
  2221. ΓòÉΓòÉΓòÉ 4.32. CNRDRAWITEMINFO ΓòÉΓòÉΓòÉ
  2222.  
  2223. CNRDRAWITEMINFO Structure that contains information about the container item 
  2224. being drawn. This structure is used with the WM_DRAWITEM (in Container 
  2225. Controls) message only. 
  2226.  
  2227. typedef struct _CNRDRAWITEMINFO {
  2228. PRECORDCORE    pRecord;     /* Pointer  */
  2229. PFIELDINFO     pFieldInfo;  /* Pointer  */
  2230.  } CNRDRAWITEMINFO;
  2231.  
  2232.  
  2233. ΓòÉΓòÉΓòÉ <hidden> pRecord ΓòÉΓòÉΓòÉ
  2234.  
  2235. pRecord (PRECORDCORE) 
  2236.    Pointer to the RECORDCORE structure for the record that is being drawn. 
  2237.  
  2238.    Note:  If the CCS_MINIRECORDCORE style bit is specified when a container is 
  2239.    created, then MINIRECORDCORE should be used instead of RECORDCORE and 
  2240.    PMINIRECORDCORE should be used instead of PRECORDCORE in all applicable data 
  2241.    structures and messages. 
  2242.  
  2243.  
  2244. ΓòÉΓòÉΓòÉ <hidden> pFieldInfo ΓòÉΓòÉΓòÉ
  2245.  
  2246. pFieldInfo (PFIELDINFO) 
  2247.    Pointer to the FIELDINFO structure for the container column that is being 
  2248.    drawn in the details view. For all other views, this field is NULL. 
  2249.  
  2250.  
  2251. ΓòÉΓòÉΓòÉ 4.33. CNREDITDATA ΓòÉΓòÉΓòÉ
  2252.  
  2253. CNREDITDATA Structure that contains information about the direct editing of 
  2254. container text. The information specified for this structure depends on the 
  2255. container notification code or message with which it is used. The differences 
  2256. are specified in the following field descriptions. The applicable notification 
  2257. codes and message are: 
  2258.  
  2259. o CN_BEGINEDIT 
  2260. o CN_ENDEDIT 
  2261. o CN_REALLOCPSZ 
  2262. o CM_OPENEDIT 
  2263.  
  2264. typedef struct _CNREDITDATA {
  2265. ULONG          cb;          /* Structure size  */
  2266. HWND           hwndCnr;     /* Container window handle  */
  2267. PRECORDCORE    pRecord;     /* Pointer or NULL  */
  2268. PFIELDINFO     pFieldInfo;  /* Pointer or NULL  */
  2269. PSZ           *ppszText;    /* Pointer or NULL  */
  2270. ULONG          cbText;      /* Number of bytes  */
  2271. ULONG          id;          /* Window ID  */
  2272.  } CNREDITDATA;
  2273.  
  2274.  
  2275. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  2276.  
  2277. cb (ULONG) 
  2278.    Structure size. 
  2279.  
  2280.    The size (in bytes) of the CNREDITDATA data structure. 
  2281.  
  2282.  
  2283. ΓòÉΓòÉΓòÉ <hidden> hwndCnr ΓòÉΓòÉΓòÉ
  2284.  
  2285. hwndCnr (HWND) 
  2286.    Container window handle. 
  2287.  
  2288.  
  2289. ΓòÉΓòÉΓòÉ <hidden> pRecord ΓòÉΓòÉΓòÉ
  2290.  
  2291. pRecord (PRECORDCORE) 
  2292.    Pointer to a RECORDCORE data structure. This field is NULL if container 
  2293.    titles are to be edited. 
  2294.  
  2295.    Note:  If the CCS_MINIRECORDCORE style bit is specified when a container is 
  2296.    created, then MINIRECORDCORE should be used instead of RECORDCORE and 
  2297.    PMINIRECORDCORE should be used instead of PRECORDCORE in all applicable data 
  2298.    structures and messages. 
  2299.    For the CN_BEGINEDIT, CN_ENDEDIT, and CN_REALLOCPSZ notification codes, this 
  2300.    field is a pointer to the edited RECORDCORE data structure. 
  2301.    For the CM_OPENEDIT message, this field is a pointer to the RECORDCORE data 
  2302.    structure to be edited. 
  2303.  
  2304.  
  2305. ΓòÉΓòÉΓòÉ <hidden> pFieldInfo ΓòÉΓòÉΓòÉ
  2306.  
  2307. pFieldInfo (PFIELDINFO) 
  2308.    Pointer to a FIELDINFO data structure if the current view is the details 
  2309.    view and the user is not editing the container title. Otherwise, this field 
  2310.    is NULL. 
  2311.    If the current view is the details view: 
  2312.  
  2313.    o For the CN_BEGINEDIT, CN_ENDEDIT, and CN_REALLOCPSZ notification codes, 
  2314.      this field contains a pointer to the FIELDINFO structure being edited. 
  2315.  
  2316.    o For the CM_OPENEDIT message, this field is a pointer to the FIELDINFO data 
  2317.      structure to be edited. 
  2318.  
  2319.  
  2320. ΓòÉΓòÉΓòÉ <hidden> ppszText ΓòÉΓòÉΓòÉ
  2321.  
  2322. ppszText (PPSZ) 
  2323.    Pointer to a PSZ text string. For the CN_BEGINEDIT and CN_REALLOCPSZ 
  2324.    notification codes, this field is a pointer to the current PSZ text string. 
  2325.    For the CN_ENDEDIT notification code, this field is a pointer to the new PSZ 
  2326.    text string. 
  2327.    For the CM_OPENEDIT message, this field is NULL. 
  2328.  
  2329.  
  2330. ΓòÉΓòÉΓòÉ <hidden> cbText ΓòÉΓòÉΓòÉ
  2331.  
  2332. cbText (ULONG) 
  2333.    Number of bytes. 
  2334.  
  2335.    Number of bytes in the text string. For the CN_BEGINEDIT notification code, 
  2336.    this field is 0. 
  2337.    For the CN_ENDEDIT and CN_REALLOCPSZ notification codes, this field is the 
  2338.    number of bytes in the new text string. 
  2339.    For the CM_OPENEDIT message, this field is 0. 
  2340.  
  2341.  
  2342. ΓòÉΓòÉΓòÉ <hidden> id ΓòÉΓòÉΓòÉ
  2343.  
  2344. id (ULONG) 
  2345.    Window ID. 
  2346.  
  2347.    ID of the window to be edited. The ID can be one of the following: 
  2348.  
  2349.    application-defined container identifier 
  2350.       Container window. 
  2351.    CID_CNRTITLEWND 
  2352.       Title window. 
  2353.    CID_LEFTDVWND 
  2354.       Left details view window; default if unsplit window. 
  2355.    CID_RIGHTDVWND 
  2356.       Right details view window. 
  2357.    CID_LEFTCOLTITLEWND 
  2358.       Left details view column headings window; default if unsplit window. 
  2359.    CID_RIGHTCOLTITLEWND 
  2360.       Right details view column headings window. 
  2361.  
  2362.  
  2363. ΓòÉΓòÉΓòÉ 4.34. CNRINFO ΓòÉΓòÉΓòÉ
  2364.  
  2365. CNRINFO Structure that contains information about the container. 
  2366.  
  2367. typedef struct _CNRINFO {
  2368. ULONG         cb;                  /* Structure size  */
  2369. PVOID         pSortRecord;         /* Pointer or NULL  */
  2370. PFIELDINFO    pFieldInfoLast;      /* Pointer or NULL  */
  2371. PFIELDINFO    pFieldInfoObject;    /* Pointer  */
  2372. PSZ           pszCnrTitle;         /* Title text or NULL  */
  2373. ULONG         flWindowAttr;        /* Window attributes  */
  2374. POINTL        ptlOrigin;           /* Workspace origin  */
  2375. ULONG         cDelta;              /* Threshold  */
  2376. ULONG         cRecords;            /* Number of records  */
  2377. SIZEL         slBitmapOrIcon;      /* Icon/bit-map size  */
  2378. SIZEL         slTreeBitmapOrIcon;  /* Icon/bit-map size  */
  2379. HBITMAP       hbmExpanded;         /* Bit-map handle  */
  2380. HBITMAP       hbmCollapsed;        /* Bit-map handle  */
  2381. HPOINTER      hptrExpanded;        /* Icon handle  */
  2382. HPOINTER      hptrCollapsed;       /* Icon handle  */
  2383. LONG          cyLineSpacing;       /* Vertical space  */
  2384. LONG          cxTreeIndent;        /* Horizontal space  */
  2385. LONG          cxTreeLine;          /* Line width  */
  2386. ULONG         cFields;             /* Number of columns  */
  2387. LONG          xVertSplitbar;       /* Split bar position  */
  2388.  } CNRINFO;
  2389.  
  2390.  
  2391. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  2392.  
  2393. cb (ULONG) 
  2394.    Structure size. 
  2395.  
  2396.    The size (in bytes) of the CNRINFO data structure. 
  2397.  
  2398.  
  2399. ΓòÉΓòÉΓòÉ <hidden> pSortRecord ΓòÉΓòÉΓòÉ
  2400.  
  2401. pSortRecord (PVOID) 
  2402.    Pointer or NULL. 
  2403.  
  2404.    Pointer to the comparison function for sorting container records. If NULL, 
  2405.    which is the default condition, no sorting is performed. Sorting only occurs 
  2406.    during record insertion and when changing the value of this field. The third 
  2407.    parameter of the comparison function, pStorage, must be NULL. See 
  2408.    CM_SORTRECORD for a further description of the comparison function. 
  2409.  
  2410.  
  2411. ΓòÉΓòÉΓòÉ <hidden> pFieldInfoLast ΓòÉΓòÉΓòÉ
  2412.  
  2413. pFieldInfoLast (PFIELDINFO) 
  2414.    Pointer or NULL. 
  2415.  
  2416.    Pointer to last column in the left window of the split details view. The 
  2417.    default is NULL, causing all columns to be positioned in the left window. 
  2418.  
  2419.  
  2420. ΓòÉΓòÉΓòÉ <hidden> pFieldInfoObject ΓòÉΓòÉΓòÉ
  2421.  
  2422. pFieldInfoObject (PFIELDINFO) 
  2423.    Pointer. 
  2424.  
  2425.    Pointer to a column that represents an object in the details view. The data 
  2426.    for this FIELDINFO structure must contain icons or bit maps. In-use emphasis 
  2427.    is applied to this column of icons or bit maps only. The default is the 
  2428.    leftmost column in the unsplit details view, or the leftmost column in the 
  2429.    left window of the split details view. 
  2430.  
  2431.  
  2432. ΓòÉΓòÉΓòÉ <hidden> pszCnrTitle ΓòÉΓòÉΓòÉ
  2433.  
  2434. pszCnrTitle (PSZ) 
  2435.    Title text or NULL. 
  2436.  
  2437.    Text for the container title. The default is NULL. 
  2438.  
  2439.  
  2440. ΓòÉΓòÉΓòÉ <hidden> flWindowAttr ΓòÉΓòÉΓòÉ
  2441.  
  2442. flWindowAttr (ULONG) 
  2443.    Window attributes. 
  2444.  
  2445.    Consists of container window attributes. 
  2446.  
  2447.    o Specify one of the following container views, which determine the 
  2448.      presentation format of items in a container: 
  2449.  
  2450.       CV_ICON 
  2451.          In the icon view, the container items are represented as icon/text or 
  2452.          bit-map/text pairs, with text beneath the icons or bit maps. This is 
  2453.          the default view. This view can be combined with the CV_MINI style bit 
  2454.          by using an OR operator (|). 
  2455.       CV_NAME 
  2456.          In the name view, the container items are represented as icon/text or 
  2457.          bit-map/text pairs, with text to the right of the icons or bit maps. 
  2458.          This view can be combined with the CV_MINI and CV_FLOW style bits by 
  2459.          using OR operators (|). 
  2460.       CV_TEXT 
  2461.          In the text view, the container items are displayed as a list of text 
  2462.          strings. This view can be combined with the CV_FLOW style bit by using 
  2463.          an OR operator (|). 
  2464.       CV_TREE 
  2465.          In the tree view, the container items are represented in a 
  2466.          hierarchical manner. The tree view has three forms, which are defined 
  2467.          in the following list. If you specify CV_TREE by itself, the tree icon 
  2468.          view is used. 
  2469.  
  2470.          - Tree icon view 
  2471.            The tree icon view is specified by using a logical OR operator to 
  2472.            combine the tree view with the icon view (CV_TREE | CV_ICON). 
  2473.            Container items in this view are represented as icon/text pairs or 
  2474.            bit-map/text pairs, with text to the right of the icons or bit maps. 
  2475.            Also, a collapsed or expanded icon or bit map is displayed to the 
  2476.            left of parent items. If this icon or bit map is a collapsed icon or 
  2477.            bit map, selecting it will cause the parent item to be expanded so 
  2478.            that its child items are displayed below it. If this icon or bit map 
  2479.            is an expanded icon or bit map, selecting it will cause the parent's 
  2480.            child items to be removed from the display. The default collapsed 
  2481.            and expanded bit maps provided by the container use a plus sign (+) 
  2482.            and a minus sign (-), respectively, to indicate that items can be 
  2483.            added to or subtracted from the display. 
  2484.  
  2485.          - Tree name view 
  2486.            The tree name view is specified by using a logical OR operator to 
  2487.            combine the tree view with the name view (CV_TREE | CV_NAME). 
  2488.            Container items in this view are displayed as either icon/text pairs 
  2489.            or bit-map/text pairs, with text to the right of the icons or bit 
  2490.            maps. However, the indicator that represents whether an item can be 
  2491.            collapsed or expanded, such as a plus or minus sign, is included in 
  2492.            the icon or bit map that represents that item, not in a separate 
  2493.            icon or bit map as in the tree icon and tree text views. The 
  2494.            container control does not provide default collapsed and expanded 
  2495.            bit maps for the tree name view. 
  2496.  
  2497.          - Tree text view 
  2498.            The tree text view is specified by using a logical OR operator to 
  2499.            combine the tree view with the text view (CV_TREE | CV_TEXT). 
  2500.            Container items in this view are displayed as a list of text 
  2501.            strings. As in the tree icon view, a collapsed or expanded icon or 
  2502.            bit map is displayed to the left of parent items. 
  2503.       CV_DETAIL 
  2504.          In the details view, the container items are presented in columns. 
  2505.          Each column can contain icons or bit maps, text, numbers, dates, or 
  2506.          times. 
  2507.  
  2508.    o Specify one or both of the following view styles by using an OR operator 
  2509.      (|) to combine them with the specified view. These view styles are 
  2510.      optional. 
  2511.  
  2512.       CV_MINI 
  2513.          Produces a mini-icon whose size is based on the Presentation Manager 
  2514.          (PM) SV_CYMENU system value to produce a device-dependent mini-icon. 
  2515.          The CV_MINI view style bit is ignored when: 
  2516.  
  2517.          - The text view (CV_TEXT), tree view (CV_TREE), or details view 
  2518.            (CV_DETAIL) are displayed 
  2519.  
  2520.          - The CCS_MINIRECORDCORE style bit is specified. 
  2521.          If this style bit is not specified and the icon view (CV_ICON) or name 
  2522.          view (CV_NAME) is used, the default, regular-sized icon is used. The 
  2523.          size of regular-sized icons is based on the value in the 
  2524.          slBitmapOrIcon field of the CNRINFO data structure. If this field is 
  2525.          equal to 0, the PM SV_CXICON and SV_CYICON system values for width and 
  2526.          height, respectively, are used. Icon sizes are consistent with 
  2527.          PM-defined icon sizes for all devices. 
  2528.       CV_FLOW 
  2529.          Dynamically arranges container items in columns in the name and text 
  2530.          views. These are called flowed name and flowed text views. If this 
  2531.          style bit is set for the name view (CV_NAME) or text view (CV_TEXT), 
  2532.          the container items are placed in a single column until the bottom of 
  2533.          the client area is reached. The next container item is placed in the 
  2534.          adjacent column to the right of the filled column. This process is 
  2535.          repeated until all of the container items are positioned in the 
  2536.          container. The width of each column is determined by the longest text 
  2537.          string in that column. The size of the window determines the depth of 
  2538.          the client area. 
  2539.          If this style bit is not specified, the default condition for the name 
  2540.          and text views is to vertically fill the container in a single column 
  2541.          without flowing the container items. If this style bit is set for the 
  2542.          icon view (CV_ICON) or details view (CV_DETAIL), it is ignored. 
  2543.  
  2544.    o Specify either of the following to indicate whether the container will 
  2545.      display icons or bit maps: 
  2546.  
  2547.       CA_DRAWICON 
  2548.          Icons are used for the icon, name, tree, or details views. This is the 
  2549.          default. This container attribute should be used with the hptrIcon and 
  2550.          hptrMiniIcon fields of the RECORDCORE data structure. 
  2551.       CA_DRAWBITMAP 
  2552.          Bit maps are used for the icon, name, tree, or details views. This 
  2553.          container attribute can be used with the hbmBitmap and hbmMiniBitmap 
  2554.          fields of the RECORDCORE data structure. 
  2555.          Notes 
  2556.  
  2557.           1. If both the CA_DRAWICON and CA_DRAWBITMAP attributes are 
  2558.              specified, the CA_DRAWICON attribute is used. 
  2559.  
  2560.           2. If the CCS_MINIRECORDCORE style bit is specified when a container 
  2561.              is created, the hptrIcon field of the MINIRECORDCORE data 
  2562.              structure is used. 
  2563.  
  2564.    o Specify one of the following attributes to provide target emphasis for the 
  2565.      name, text, and details views. If neither ordered nor mixed target 
  2566.      emphasis is specified, the emphasis is drawn around the record. 
  2567.  
  2568.       CA_ORDEREDTARGETEMPH 
  2569.          Shows where a container record can be dropped during direct 
  2570.          manipulation by drawing a line beneath the record. Ordered target 
  2571.          emphasis does not apply to the icon and tree views. 
  2572.       CA_MIXEDTARGETEMPH 
  2573.          Shows where a container record can be dropped during direct 
  2574.          manipulation either by drawing a line between two items or by drawing 
  2575.          lines around the container record. Mixed target emphasis does not 
  2576.          apply to the icon and tree views. 
  2577.  
  2578.    o Specify the following attribute to draw lines that show the relationship 
  2579.      between items in the tree view. 
  2580.  
  2581.       CA_TREELINE 
  2582.          Shows the relationship between all items in the tree view. 
  2583.  
  2584.    o Specify the following to draw container records, paint the background of 
  2585.      the container, or both: 
  2586.  
  2587.       CA_OWNERDRAW 
  2588.          Ownerdraw for the container, which allows the application to draw 
  2589.          container records. 
  2590.       CA_OWNERPAINTBACKGROUND 
  2591.          Allows the application to subclass the container and paint the 
  2592.          background. If specified, and the container is subclassed, the 
  2593.          application receives the CM_PAINTBACKGROUND message in the subclass 
  2594.          procedure. Otherwise, the container paints the background using the 
  2595.          color specified by SYSCLR_WINDOW, which can be changed by using the 
  2596.          PP_BACKGROUNDCOLOR or PP_BACKGROUNDCOLORINDEX presentation parameter 
  2597.          in the WM_PRESPARAMCHANGED (in Container Controls) message. 
  2598.  
  2599.    o Specify the following if the container is to have a title: 
  2600.  
  2601.       CA_CONTAINERTITLE 
  2602.          Allows you to include a container title. The default is no container 
  2603.          title. 
  2604.  
  2605.    o Specify one or both of the following container title attributes. These are 
  2606.      valid only if the CA_CONTAINERTITLE attribute is specified. 
  2607.  
  2608.       CA_TITLEREADONLY 
  2609.          Prevents the container title from being edited directly. The default 
  2610.          is to allow the container title to be edited. 
  2611.       CA_TITLESEPARATOR 
  2612.          Puts a separator line between the container title and the records 
  2613.          beneath it. The default is no separator line. 
  2614.  
  2615.    o Specify one of the following to position the container title. These are 
  2616.      valid only if the CA_CONTAINERTITLE attribute is specified. 
  2617.  
  2618.       CA_TITLECENTER 
  2619.          Centers the container title. This is the default. 
  2620.       CA_TITLELEFT 
  2621.          Left-justifies the container title. 
  2622.       CA_TITLERIGHT 
  2623.          Right-justifies the container title. 
  2624.  
  2625.    o Specify the following to display column headings in the details view: 
  2626.  
  2627.       CA_DETAILSVIEWTITLES 
  2628.          Allows you to include column headings in the details view. The default 
  2629.          is no column headings. 
  2630.  
  2631.  
  2632. ΓòÉΓòÉΓòÉ <hidden> ptlOrigin ΓòÉΓòÉΓòÉ
  2633.  
  2634. ptlOrigin (POINTL) 
  2635.    Workspace origin. 
  2636.  
  2637.    Lower-left origin of the workspace in virtual coordinates, used in the icon 
  2638.    view. The default origin is (0,0). 
  2639.  
  2640.  
  2641. ΓòÉΓòÉΓòÉ <hidden> cDelta ΓòÉΓòÉΓòÉ
  2642.  
  2643. cDelta (ULONG) 
  2644.    Threshold 
  2645.  
  2646.    An application-defined threshold, or number of records, from either end of 
  2647.    the list of available records. Used when a container needs to handle large 
  2648.    amounts of data. The default is 0. Refer to the OS/2 Programming Guide for 
  2649.    more information about specifying deltas. 
  2650.  
  2651.  
  2652. ΓòÉΓòÉΓòÉ <hidden> cRecords ΓòÉΓòÉΓòÉ
  2653.  
  2654. cRecords (ULONG) 
  2655.    Number of records. 
  2656.  
  2657.    The number of records in the container. Initially this field is 0. 
  2658.  
  2659.  
  2660. ΓòÉΓòÉΓòÉ <hidden> slBitmapOrIcon ΓòÉΓòÉΓòÉ
  2661.  
  2662. slBitmapOrIcon (SIZEL) 
  2663.    Icon/bit-map size. 
  2664.  
  2665.    The size (in pels) of icons or bit maps. The default is the system size. 
  2666.  
  2667.  
  2668. ΓòÉΓòÉΓòÉ <hidden> slTreeBitmapOrIcon ΓòÉΓòÉΓòÉ
  2669.  
  2670. slTreeBitmapOrIcon (SIZEL) 
  2671.    Icon/bit-map size. 
  2672.  
  2673.    The size (in pels) of the expanded and collapsed icons or bit maps used in 
  2674.    the tree icon and tree text views. 
  2675.  
  2676.  
  2677. ΓòÉΓòÉΓòÉ <hidden> hbmExpanded ΓòÉΓòÉΓòÉ
  2678.  
  2679. hbmExpanded (HBITMAP) 
  2680.    Bit-map handle. 
  2681.  
  2682.    The handle of the bit map to be used to represent an expanded parent item in 
  2683.    the tree icon and tree text views. If neither an icon handle (see 
  2684.    hptrExpanded) nor a bit-map handle is specified, a default bit map with a 
  2685.    minus sign (-) is provided. 
  2686.  
  2687.  
  2688. ΓòÉΓòÉΓòÉ <hidden> hbmCollapsed ΓòÉΓòÉΓòÉ
  2689.  
  2690. hbmCollapsed (HBITMAP) 
  2691.    Bit-map handle. 
  2692.  
  2693.    The handle of the bit map to be used to represent a collapsed parent item in 
  2694.    the tree icon and tree text views. If neither an icon handle (see 
  2695.    hptrCollapsed) nor a bit-map handle is specified, a default bit map with a 
  2696.    plus sign (+) is provided. 
  2697.  
  2698.  
  2699. ΓòÉΓòÉΓòÉ <hidden> hptrExpanded ΓòÉΓòÉΓòÉ
  2700.  
  2701. hptrExpanded (HPOINTER) 
  2702.    Icon handle. 
  2703.  
  2704.    The handle of the icon to be used to represent an expanded parent item in 
  2705.    the tree icon and tree text views. If neither an icon handle nor a bit-map 
  2706.    handle (see hbmExpanded) is specified, a default bit map with a minus sign 
  2707.    (-) is provided. 
  2708.  
  2709.  
  2710. ΓòÉΓòÉΓòÉ <hidden> hptrCollapsed ΓòÉΓòÉΓòÉ
  2711.  
  2712. hptrCollapsed (HPOINTER) 
  2713.    Icon handle. 
  2714.  
  2715.    The handle of the icon to be used to represent a collapsed parent item in 
  2716.    the tree icon and tree text views. If neither an icon handle nor a bit-map 
  2717.    handle (see hbmCollapsed) is specified, a default bit map with a plus sign 
  2718.    (+) is provided. 
  2719.  
  2720.  
  2721. ΓòÉΓòÉΓòÉ <hidden> cyLineSpacing ΓòÉΓòÉΓòÉ
  2722.  
  2723. cyLineSpacing (LONG) 
  2724.    Vertical space. 
  2725.  
  2726.    The amount of vertical space (in pels) between the records. If you specify a 
  2727.    value that is less than 0, a default value is used. 
  2728.  
  2729.  
  2730. ΓòÉΓòÉΓòÉ <hidden> cxTreeIndent ΓòÉΓòÉΓòÉ
  2731.  
  2732. cxTreeIndent (LONG) 
  2733.    Horizontal space. 
  2734.  
  2735.    The amount of horizontal space (in pels) between levels in the tree view. If 
  2736.    you specify a value that is less than 0, a default value is used. 
  2737.  
  2738.  
  2739. ΓòÉΓòÉΓòÉ <hidden> cxTreeLine ΓòÉΓòÉΓòÉ
  2740.  
  2741. cxTreeLine (LONG) 
  2742.    Line width. 
  2743.  
  2744.    The width of the lines (in pels) that show the relationship between tree 
  2745.    items. If you specify a value that is less than 0, a default value is used. 
  2746.    Also, if the CA_TREELINE container attribute of the flWindowAttr field is 
  2747.    not specified, these lines are not drawn. 
  2748.  
  2749.  
  2750. ΓòÉΓòÉΓòÉ <hidden> cFields ΓòÉΓòÉΓòÉ
  2751.  
  2752. cFields (ULONG) 
  2753.    Number of columns. 
  2754.  
  2755.    The number of FIELDINFO structures in the container. Initially this field is 
  2756.    0. 
  2757.  
  2758.  
  2759. ΓòÉΓòÉΓòÉ <hidden> xVertSplitbar ΓòÉΓòÉΓòÉ
  2760.  
  2761. xVertSplitbar (LONG) 
  2762.    Split bar position. 
  2763.  
  2764.    The initial position of the split bar relative to the container, used in the 
  2765.    details view. If this value is less than 0, the split bar is not used. The 
  2766.    default value is negative one (-1). 
  2767.  
  2768.  
  2769. ΓòÉΓòÉΓòÉ 4.35. COLOR ΓòÉΓòÉΓòÉ
  2770.  
  2771. COLOR Color value. 
  2772.  
  2773. typedef LONG COLOR;
  2774.  
  2775.  
  2776. ΓòÉΓòÉΓòÉ 4.36. CONVCONTEXT ΓòÉΓòÉΓòÉ
  2777.  
  2778. CONVCONTEXT Dynamic-data-exchange conversation context structure. 
  2779.  
  2780. typedef struct _CONVCONTEXT {
  2781. ULONG    cb;           /* Length of structure  */
  2782. ULONG    fsContext;    /* Options  */
  2783. ULONG    idCountry;    /* Country code  */
  2784. ULONG    usCodepage;   /* Code-page identity  */
  2785. ULONG    usLangID;     /* Language  */
  2786. ULONG    usSubLangID;  /* Sub-language  */
  2787.  } CONVCONTEXT;
  2788.  
  2789.  
  2790. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  2791.  
  2792. cb (ULONG) 
  2793.    Length of structure. 
  2794.  
  2795.    This must be set to the length of the CONVCONTEXT structure. 
  2796.  
  2797.  
  2798. ΓòÉΓòÉΓòÉ <hidden> fsContext ΓòÉΓòÉΓòÉ
  2799.  
  2800. fsContext (ULONG) 
  2801.    Options. 
  2802.  
  2803.    DDECTXT_CASESENSITIVE 
  2804.       All strings in this conversation are case sensitive. 
  2805.  
  2806.  
  2807. ΓòÉΓòÉΓòÉ <hidden> idCountry ΓòÉΓòÉΓòÉ
  2808.  
  2809. idCountry (ULONG) 
  2810.    Country code. 
  2811.  
  2812.  
  2813. ΓòÉΓòÉΓòÉ <hidden> usCodepage ΓòÉΓòÉΓòÉ
  2814.  
  2815. usCodepage (ULONG) 
  2816.    Code-page identity. 
  2817.  
  2818.  
  2819. ΓòÉΓòÉΓòÉ <hidden> usLangID ΓòÉΓòÉΓòÉ
  2820.  
  2821. usLangID (ULONG) 
  2822.    Language. 
  2823.  
  2824.    Zero is valid and means no language information. 
  2825.  
  2826.  
  2827. ΓòÉΓòÉΓòÉ <hidden> usSubLangID ΓòÉΓòÉΓòÉ
  2828.  
  2829. usSubLangID (ULONG) 
  2830.    Sub-language. 
  2831.  
  2832.    Zero is valid and means no sub-language information. 
  2833.  
  2834.  
  2835. ΓòÉΓòÉΓòÉ 4.37. CPTEXT ΓòÉΓòÉΓòÉ
  2836.  
  2837. CPTEXT String structure containing the code-page and language of the string. 
  2838.  
  2839. typedef struct _CPTEXT {
  2840. USHORT    idCountry;    /* Country code  */
  2841. USHORT    usCodepage;   /* Code-page identity  */
  2842. USHORT    usLangID;     /* Language  */
  2843. USHORT    usSubLangID;  /* Sub-language  */
  2844. BYTE      abText[1];    /* Zero-terminated text string  */
  2845.  } CPTEXT;
  2846.  
  2847.  
  2848. ΓòÉΓòÉΓòÉ <hidden> idCountry ΓòÉΓòÉΓòÉ
  2849.  
  2850. idCountry (USHORT) 
  2851.    Country code. 
  2852.  
  2853.  
  2854. ΓòÉΓòÉΓòÉ <hidden> usCodepage ΓòÉΓòÉΓòÉ
  2855.  
  2856. usCodepage (USHORT) 
  2857.    Code-page identity. 
  2858.  
  2859.  
  2860. ΓòÉΓòÉΓòÉ <hidden> usLangID ΓòÉΓòÉΓòÉ
  2861.  
  2862. usLangID (USHORT) 
  2863.    Language. 
  2864.  
  2865.    Zero is valid and means no language information. 
  2866.  
  2867.  
  2868. ΓòÉΓòÉΓòÉ <hidden> usSubLangID ΓòÉΓòÉΓòÉ
  2869.  
  2870. usSubLangID (USHORT) 
  2871.    Sub-language. 
  2872.  
  2873.    Zero is valid and means no sub-language information. 
  2874.  
  2875.  
  2876. ΓòÉΓòÉΓòÉ <hidden> abText[1] ΓòÉΓòÉΓòÉ
  2877.  
  2878. abText[1] (BYTE) 
  2879.    Zero-terminated text string. 
  2880.  
  2881.  
  2882. ΓòÉΓòÉΓòÉ 4.38. CREATESTRUCT ΓòÉΓòÉΓòÉ
  2883.  
  2884. CREATESTRUCT Create-window data structure. 
  2885.  
  2886. typedef struct _CREATESTRUCT {
  2887. PVOID    pPresParams;       /* Presentation parameters  */
  2888. PVOID    pCtlData;          /* Control data  */
  2889. ULONG    id;                /* Window identifier  */
  2890. HWND     hwndInsertBehind;  /* Window behind which the window is to be placed  */
  2891. HWND     hwndOwner;         /* Window owner  */
  2892. LONG     cy;                /* Window height  */
  2893. LONG     cx;                /* Window width  */
  2894. LONG     y;                 /* y-coordinate of origin  */
  2895. LONG     x;                 /* x coordinate of origin  */
  2896. ULONG    flStyle;           /* Window style  */
  2897. PSZ      pszText;           /* Window text  */
  2898. PSZ      pszClass;          /* Registered window class name  */
  2899. HWND     hwndParent;        /* Parent window handle  */
  2900.  } CREATESTRUCT;
  2901.  
  2902.  
  2903. ΓòÉΓòÉΓòÉ <hidden> pPresParams ΓòÉΓòÉΓòÉ
  2904.  
  2905. pPresParams (PVOID) 
  2906.    Presentation parameters. 
  2907.  
  2908.  
  2909. ΓòÉΓòÉΓòÉ <hidden> pCtlData ΓòÉΓòÉΓòÉ
  2910.  
  2911. pCtlData (PVOID) 
  2912.    Control data. 
  2913.  
  2914.  
  2915. ΓòÉΓòÉΓòÉ <hidden> id ΓòÉΓòÉΓòÉ
  2916.  
  2917. id (ULONG) 
  2918.    Window identifier. 
  2919.  
  2920.  
  2921. ΓòÉΓòÉΓòÉ <hidden> hwndInsertBehind ΓòÉΓòÉΓòÉ
  2922.  
  2923. hwndInsertBehind (HWND) 
  2924.    Window behind which the window is to be placed. 
  2925.  
  2926.  
  2927. ΓòÉΓòÉΓòÉ <hidden> hwndOwner ΓòÉΓòÉΓòÉ
  2928.  
  2929. hwndOwner (HWND) 
  2930.    Window owner. 
  2931.  
  2932.  
  2933. ΓòÉΓòÉΓòÉ <hidden> cy ΓòÉΓòÉΓòÉ
  2934.  
  2935. cy (LONG) 
  2936.    Window height. 
  2937.  
  2938.  
  2939. ΓòÉΓòÉΓòÉ <hidden> cx ΓòÉΓòÉΓòÉ
  2940.  
  2941. cx (LONG) 
  2942.    Window width. 
  2943.  
  2944.  
  2945. ΓòÉΓòÉΓòÉ <hidden> y ΓòÉΓòÉΓòÉ
  2946.  
  2947. y (LONG) 
  2948.    y-coordinate of origin. 
  2949.  
  2950.  
  2951. ΓòÉΓòÉΓòÉ <hidden> x ΓòÉΓòÉΓòÉ
  2952.  
  2953. x (LONG) 
  2954.    x coordinate of origin. 
  2955.  
  2956.  
  2957. ΓòÉΓòÉΓòÉ <hidden> flStyle ΓòÉΓòÉΓòÉ
  2958.  
  2959. flStyle (ULONG) 
  2960.    Window style. 
  2961.  
  2962.  
  2963. ΓòÉΓòÉΓòÉ <hidden> pszText ΓòÉΓòÉΓòÉ
  2964.  
  2965. pszText (PSZ) 
  2966.    Window text. 
  2967.  
  2968.  
  2969. ΓòÉΓòÉΓòÉ <hidden> pszClass ΓòÉΓòÉΓòÉ
  2970.  
  2971. pszClass (PSZ) 
  2972.    Registered window class name. 
  2973.  
  2974.  
  2975. ΓòÉΓòÉΓòÉ <hidden> hwndParent ΓòÉΓòÉΓòÉ
  2976.  
  2977. hwndParent (HWND) 
  2978.    Parent window handle. 
  2979.  
  2980.  
  2981. ΓòÉΓòÉΓòÉ 4.39. CTIME ΓòÉΓòÉΓòÉ
  2982.  
  2983. CTIME Structure that contains time information for a data element in the 
  2984. details view of a container control. 
  2985.  
  2986. typedef struct _CTIME {
  2987. UCHAR    hours;       /* Current hour  */
  2988. UCHAR    minutes;     /* Current minute  */
  2989. UCHAR    seconds;     /* Current second  */
  2990. UCHAR    ucReserved;  /* Reserved  */
  2991.  } CTIME;
  2992.  
  2993.  
  2994. ΓòÉΓòÉΓòÉ <hidden> hours ΓòÉΓòÉΓòÉ
  2995.  
  2996. hours (UCHAR) 
  2997.    Current hour. 
  2998.  
  2999.  
  3000. ΓòÉΓòÉΓòÉ <hidden> minutes ΓòÉΓòÉΓòÉ
  3001.  
  3002. minutes (UCHAR) 
  3003.    Current minute. 
  3004.  
  3005.  
  3006. ΓòÉΓòÉΓòÉ <hidden> seconds ΓòÉΓòÉΓòÉ
  3007.  
  3008. seconds (UCHAR) 
  3009.    Current second. 
  3010.  
  3011.  
  3012. ΓòÉΓòÉΓòÉ <hidden> ucReserved ΓòÉΓòÉΓòÉ
  3013.  
  3014. ucReserved (UCHAR) 
  3015.    Reserved. 
  3016.  
  3017.  
  3018. ΓòÉΓòÉΓòÉ 4.40. CURSORINFO ΓòÉΓòÉΓòÉ
  3019.  
  3020. CURSORINFO Cursor-information structure. 
  3021.  
  3022. typedef struct _CURSORINFO {
  3023. HWND     hwnd;     /* Window handle  */
  3024. LONG     x;        /* x coordinate  */
  3025. LONG     y;        /* y coordinate  */
  3026. LONG     cx;       /* Cursor width  */
  3027. LONG     cy;       /* Cursor height  */
  3028. ULONG    fs;       /* Options  */
  3029. RECTL    rclClip;  /* Cursor box  */
  3030.  } CURSORINFO;
  3031.  
  3032.  
  3033. ΓòÉΓòÉΓòÉ <hidden> hwnd ΓòÉΓòÉΓòÉ
  3034.  
  3035. hwnd (HWND) 
  3036.    Window handle. 
  3037.  
  3038.  
  3039. ΓòÉΓòÉΓòÉ <hidden> x ΓòÉΓòÉΓòÉ
  3040.  
  3041. x (LONG) 
  3042.    x coordinate. 
  3043.  
  3044.  
  3045. ΓòÉΓòÉΓòÉ <hidden> y ΓòÉΓòÉΓòÉ
  3046.  
  3047. y (LONG) 
  3048.    y coordinate. 
  3049.  
  3050.  
  3051. ΓòÉΓòÉΓòÉ <hidden> cx ΓòÉΓòÉΓòÉ
  3052.  
  3053. cx (LONG) 
  3054.    Cursor width. 
  3055.  
  3056.  
  3057. ΓòÉΓòÉΓòÉ <hidden> cy ΓòÉΓòÉΓòÉ
  3058.  
  3059. cy (LONG) 
  3060.    Cursor height. 
  3061.  
  3062.  
  3063. ΓòÉΓòÉΓòÉ <hidden> fs ΓòÉΓòÉΓòÉ
  3064.  
  3065. fs (ULONG) 
  3066.    Options. 
  3067.  
  3068.  
  3069. ΓòÉΓòÉΓòÉ <hidden> rclClip ΓòÉΓòÉΓòÉ
  3070.  
  3071. rclClip (RECTL) 
  3072.    Cursor box. 
  3073.  
  3074.  
  3075. ΓòÉΓòÉΓòÉ 4.41. DDEINIT ΓòÉΓòÉΓòÉ
  3076.  
  3077. DDEINIT Dynamic-data-exchange initiation structure. 
  3078.  
  3079. typedef struct _DDEINIT {
  3080. ULONG    cb;              /* Length of structure  */
  3081. PSZ      pszAppName;      /* Application name  */
  3082. PSZ      pszTopic;        /* Topic  */
  3083. ULONG    offConvContext;  /* Conversation context  */
  3084.  } DDEINIT;
  3085.  
  3086.  
  3087. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  3088.  
  3089. cb (ULONG) 
  3090.    Length of structure. 
  3091.  
  3092.    This must be set to the length of the DDEINIT structure. 
  3093.  
  3094.  
  3095. ΓòÉΓòÉΓòÉ <hidden> pszAppName ΓòÉΓòÉΓòÉ
  3096.  
  3097. pszAppName (PSZ) 
  3098.    Application name. 
  3099.  
  3100.    Pointer to name of the server application. 
  3101.    Application names must not contain slashes or backslashes. These characters 
  3102.    are reserved for future use in network implementations. 
  3103.  
  3104.  
  3105. ΓòÉΓòÉΓòÉ <hidden> pszTopic ΓòÉΓòÉΓòÉ
  3106.  
  3107. pszTopic (PSZ) 
  3108.    Topic. 
  3109.  
  3110.    Pointer to name of the topic. 
  3111.  
  3112.  
  3113. ΓòÉΓòÉΓòÉ <hidden> offConvContext ΓòÉΓòÉΓòÉ
  3114.  
  3115. offConvContext (ULONG) 
  3116.    Conversation context. 
  3117.  
  3118.    Offset to a CONVCONTEXT structure. 
  3119.  
  3120.  
  3121. ΓòÉΓòÉΓòÉ 4.42. DDESTRUCT ΓòÉΓòÉΓòÉ
  3122.  
  3123. DDESTRUCT Dynamic-data-exchange control structure. 
  3124.  
  3125. typedef struct _DDESTRUCT {
  3126. ULONG     cbData;         /* Length of data  */
  3127. USHORT    fsStatus;       /* Status  */
  3128. USHORT    usFormat;       /* Data format  */
  3129. USHORT    offszItemName;  /* Offset to item name  */
  3130. USHORT    offabData;      /* Offset to beginning of data  */
  3131.  } DDESTRUCT;
  3132.  
  3133.  
  3134. ΓòÉΓòÉΓòÉ <hidden> cbData ΓòÉΓòÉΓòÉ
  3135.  
  3136. cbData (ULONG) 
  3137.    Length of data. 
  3138.  
  3139.    This is the length of data that occurs after the offabData parameter. If no 
  3140.    data exists, this field should contain a zero (0). 
  3141.  
  3142.  
  3143. ΓòÉΓòÉΓòÉ <hidden> fsStatus ΓòÉΓòÉΓòÉ
  3144.  
  3145. fsStatus (USHORT) 
  3146.    Status of the data exchange. 
  3147.  
  3148.    DDE_FACK 
  3149.       Positive acknowledgement 
  3150.    DDE_FBUSY 
  3151.       Application is busy 
  3152.    DDE_FNODATA 
  3153.       No data transfer for advise 
  3154.    DDE_FACKREQ 
  3155.       Acknowledgements are requested 
  3156.    DDE_FRESPONSE 
  3157.       Response to WM_DDE_REQUEST 
  3158.    DDE_NOTPROCESSED 
  3159.       DDE message not understood 
  3160.    DDE_FAPPSTATUS 
  3161.       A 1-byte field of bits that are reserved for application-specific 
  3162.       returns. 
  3163.  
  3164.  
  3165. ΓòÉΓòÉΓòÉ <hidden> usFormat ΓòÉΓòÉΓòÉ
  3166.  
  3167. usFormat (USHORT) 
  3168.    Data format. 
  3169.  
  3170.    One of the DDE data formats. 
  3171.  
  3172.    DDEFMT_TEXT 
  3173.       Text format. 
  3174.    Other 
  3175.       DDE format registered with the atom manager, using the system atom table. 
  3176.       The predefined DDE formats are guaranteed not to conflict with the values 
  3177.       returned by the atom manager. 
  3178.  
  3179.  
  3180. ΓòÉΓòÉΓòÉ <hidden> offszItemName ΓòÉΓòÉΓòÉ
  3181.  
  3182. offszItemName (USHORT) 
  3183.    Offset to item name. 
  3184.  
  3185.    This is the offset to the item name from the start of this structure. Item 
  3186.    name is a null (0x00) terminated string. If no item name exists, there must 
  3187.    be a single null (0x00) character in this position. (That is, ItemName is 
  3188.    ALWAYS a null terminated string.) 
  3189.  
  3190.  
  3191. ΓòÉΓòÉΓòÉ <hidden> offabData ΓòÉΓòÉΓòÉ
  3192.  
  3193. offabData (USHORT) 
  3194.    Offset to beginning of data. 
  3195.  
  3196.    This is the offset to the data, from the start of this structure. This field 
  3197.    should be calculated regardless of the presence of data. If no data exists, 
  3198.    cbData must be zero (0). 
  3199.    For compatibility reasons, this data should not contain embedded pointers. 
  3200.    Offsets should be used instead. 
  3201.  
  3202.  
  3203. ΓòÉΓòÉΓòÉ 4.43. DELETENOTIFY ΓòÉΓòÉΓòÉ
  3204.  
  3205. DELETENOTIFY Structure that contains information about the application page 
  3206. that is being deleted from a notebook. 
  3207.  
  3208. typedef struct _DELETENOTIFY {
  3209. HWND       hwndBook;       /* Notebook window handle  */
  3210. HWND       hwndPage;       /* Application page window handle  */
  3211. ULONG      ulAppPageData;  /* Application-specified page data  */
  3212. HBITMAP    hbmTab;         /* Application-specified tab bit map  */
  3213.  } DELETENOTIFY;
  3214.  
  3215.  
  3216. ΓòÉΓòÉΓòÉ <hidden> hwndBook ΓòÉΓòÉΓòÉ
  3217.  
  3218. hwndBook (HWND) 
  3219.    Notebook window handle. 
  3220.  
  3221.  
  3222. ΓòÉΓòÉΓòÉ <hidden> hwndPage ΓòÉΓòÉΓòÉ
  3223.  
  3224. hwndPage (HWND) 
  3225.    Application page window handle. 
  3226.  
  3227.  
  3228. ΓòÉΓòÉΓòÉ <hidden> ulAppPageData ΓòÉΓòÉΓòÉ
  3229.  
  3230. ulAppPageData (ULONG) 
  3231.    Application-specified page data. 
  3232.  
  3233.  
  3234. ΓòÉΓòÉΓòÉ <hidden> hbmTab ΓòÉΓòÉΓòÉ
  3235.  
  3236. hbmTab (HBITMAP) 
  3237.    Application-specified tab bit map. 
  3238.  
  3239.  
  3240. ΓòÉΓòÉΓòÉ 4.44. DESKTOP ΓòÉΓòÉΓòÉ
  3241.  
  3242. DESKTOP Desktop background state structure. 
  3243.  
  3244. typedef struct _DESKTOP {
  3245. ULONG      cbSize;           /* Length of structure  */
  3246. HBITMAP    hbm;              /* Bit-map handle of desktop background  */
  3247. LONG       x;                /* x desktop coordinate of the origin of the bit map  */
  3248. LONG       y;                /* y desktop coordinate of the origin of the bit map  */
  3249. ULONG      fl;               /* Desktop background state indicators or setting options  */
  3250. LONG       lTileCount;       /* Number of images of the bit map to be tiled  */
  3251. CHAR       szFile[260];      /* Zero-terminated name of the file containing the bit map  */
  3252.  } DESKTOP;
  3253.  
  3254.  
  3255. ΓòÉΓòÉΓòÉ <hidden> cbSize ΓòÉΓòÉΓòÉ
  3256.  
  3257. cbSize (ULONG) 
  3258.    Length of structure. 
  3259.  
  3260.  
  3261. ΓòÉΓòÉΓòÉ <hidden> hbm ΓòÉΓòÉΓòÉ
  3262.  
  3263. hbm (HBITMAP) 
  3264.    Bit-map handle of desktop background. 
  3265.  
  3266.  
  3267. ΓòÉΓòÉΓòÉ <hidden> x ΓòÉΓòÉΓòÉ
  3268.  
  3269. x (LONG) 
  3270.    x desktop coordinate of the origin of the bit map. 
  3271.  
  3272.  
  3273. ΓòÉΓòÉΓòÉ <hidden> y ΓòÉΓòÉΓòÉ
  3274.  
  3275. y (LONG) 
  3276.    y desktop coordinate of the origin of the bit map. 
  3277.  
  3278.  
  3279. ΓòÉΓòÉΓòÉ <hidden> fl ΓòÉΓòÉΓòÉ
  3280.  
  3281. fl (ULONG) 
  3282.    Desktop background state indicators or setting options: 
  3283.  
  3284.    SDT_CENTER 
  3285.       The desktop background bit map is, or is to be, centered on the screen. 
  3286.       If this option is specified, then the values of the x the y parameters 
  3287.       are inapplicable. 
  3288.    SDT_DESTROY 
  3289.       Any existing desktop background bit map is to be destroyed. The setting 
  3290.       of this option is not returned on the WinQueryDesktopBkgnd function. 
  3291.    SDT_NOBKGND 
  3292.       There is no desktop background bit map, that is the desktop background i 
  3293.       a solid color. For the WinQueryDesktopBkgnd function the existing 
  3294.       background is to be left unmodified unless SDT_DESTROY is also specified. 
  3295.    SDT_PATTERN 
  3296.       The bit map represents a fill pattern. 
  3297.    SDT_RETAIN 
  3298.       The szFile[260] is, or is to be, remembered for use when the system is 
  3299.       started. 
  3300.    SDT_SCALE 
  3301.       The bit map is, or is to be, scaled to fill the desktop. If this option 
  3302.       is specified, then the values of the x and y parameters are inapplicable. 
  3303.    SDT_TILE 
  3304.       The bit map is, or is to be, tiled to fill the desktop. 
  3305.    SDT_LOADFILE 
  3306.       For the WinSetDesktopBkgnd function the bit map is to be loaded from the 
  3307.       filename specified. If the SDT_NOBKGND flag is also set then the bit map 
  3308.       is loaded but the background is not set. Tiling and scaling may be 
  3309.       performed at load time or later when setting the bit map. 
  3310.  
  3311.  
  3312. ΓòÉΓòÉΓòÉ <hidden> lTileCount ΓòÉΓòÉΓòÉ
  3313.  
  3314. lTileCount (LONG) 
  3315.    Number of images of the bit map to be tiled. 
  3316.  
  3317.    The tile count is the number of images to be drawn in the vertical and 
  3318.    horizontal direction when tiling the desktop background. 
  3319.  
  3320.  
  3321. ΓòÉΓòÉΓòÉ <hidden> szFile[260] ΓòÉΓòÉΓòÉ
  3322.  
  3323. szFile[260] (CHAR) 
  3324.    Zero-terminated name of the file containing the bit map. 
  3325.  
  3326.  
  3327. ΓòÉΓòÉΓòÉ 4.45. DEVOPENSTRUC ΓòÉΓòÉΓòÉ
  3328.  
  3329. DEVOPENSTRUC Open-device data structure. 
  3330.  
  3331. typedef struct _DEVOPENSTRUC {
  3332. PSZ          pszLogAddress;       /* Logical address  */
  3333. PSZ          pszDriverName;       /* Driver name  */
  3334. PDRIVDATA    pdriv;               /* Driver data  */
  3335. PSZ          pszDataType;         /* Data type  */
  3336. PSZ          pszComment;          /* Comment  */
  3337. PSZ          pszQueueProcName;    /* Queue-processor name  */
  3338. PSZ          pszQueueProcParams;  /* Queue-processor parameters  */
  3339. PSZ          pszSpoolerParams;    /* Spooler parameters  */
  3340. PSZ          pszNetworkParams;    /* Network parameters  */
  3341.  } DEVOPENSTRUC;
  3342.  
  3343.  
  3344. ΓòÉΓòÉΓòÉ <hidden> pszLogAddress ΓòÉΓòÉΓòÉ
  3345.  
  3346. pszLogAddress (PSZ) 
  3347.    Logical address. 
  3348.  
  3349.    This is required for an OD_DIRECT device being opened with DevOpenDC; it is 
  3350.    the logical device address, such as "LPT1" on OS/2. Some drivers may accept 
  3351.    a file name for this parameter, or even a named pipe.  A driver can restrict 
  3352.    the logical address to certain names because special hardware is involved; 
  3353.    for example a printer driver that uses shared memory to access the memory of 
  3354.    a laser printer. 
  3355.    Where output is to be queued (for an OD_QUEUED device), this is the name of 
  3356.    the queue for the output device, and must always be supplied if it is not 
  3357.    available from pszToken. The queue name can be a UNC name. 
  3358.  
  3359.  
  3360. ΓòÉΓòÉΓòÉ <hidden> pszDriverName ΓòÉΓòÉΓòÉ
  3361.  
  3362. pszDriverName (PSZ) 
  3363.    Driver name. 
  3364.  
  3365.    A string containing the name of the Presentation Manager* (PM) device driver 
  3366.    (for example, "IBM4019"). This information must always be supplied if it is 
  3367.    not available from pszToken. 
  3368.  
  3369.  
  3370. ΓòÉΓòÉΓòÉ <hidden> pdriv ΓòÉΓòÉΓòÉ
  3371.  
  3372. pdriv (PDRIVDATA) 
  3373.    Driver data. 
  3374.  
  3375.    Data that is to be passed directly to the PM device driver. Whether any of 
  3376.    this is required depends upon the device driver. 
  3377.  
  3378.  
  3379. ΓòÉΓòÉΓòÉ <hidden> pszDataType ΓòÉΓòÉΓòÉ
  3380.  
  3381. pszDataType (PSZ) 
  3382.    Data type. 
  3383.  
  3384.    For a OD_QUEUED or OD_DIRECT device, this parameter defines the type of data 
  3385.    that is to be (or was) queued as follows: 
  3386.  
  3387.    PM_Q_STD Standard format 
  3388.    PM_Q_RAW Raw format. 
  3389.    Note that a device driver can define other data types. 
  3390.    With DevOpenDC, for both of the above device types the default is supplied 
  3391.    by the device driver if pszDataType is not specified. For any other device 
  3392.    type, pszDataType is ignored. 
  3393.  
  3394.  
  3395. ΓòÉΓòÉΓòÉ <hidden> pszComment ΓòÉΓòÉΓòÉ
  3396.  
  3397. pszComment (PSZ) 
  3398.    Comment. 
  3399.  
  3400.    This is a natural language description of the file for queued output, For 
  3401.    example, this can be displayed by the spooler to the user, and is optional. 
  3402.  
  3403.  
  3404. ΓòÉΓòÉΓòÉ <hidden> pszQueueProcName ΓòÉΓòÉΓòÉ
  3405.  
  3406. pszQueueProcName (PSZ) 
  3407.    Queue-processor name. 
  3408.  
  3409.    This is the name of the queue processor for queued output, and is usually 
  3410.    the default. 
  3411.  
  3412.  
  3413. ΓòÉΓòÉΓòÉ <hidden> pszQueueProcParams ΓòÉΓòÉΓòÉ
  3414.  
  3415. pszQueueProcParams (PSZ) 
  3416.    Queue-processor parameters. 
  3417.  
  3418.    This is a parameter string for the queue processor, for queued output, and 
  3419.    is optional. 
  3420.  
  3421.  
  3422. ΓòÉΓòÉΓòÉ <hidden> pszSpoolerParams ΓòÉΓòÉΓòÉ
  3423.  
  3424. pszSpoolerParams (PSZ) 
  3425.    Spooler parameters. 
  3426.  
  3427.    This is a parameter string for the spooler for queued output, and is 
  3428.    optional. It has the following options, which must be separated by one or 
  3429.    more blanks: 
  3430.  
  3431.    FORM=f Specifies a form name `f'. This must be a valid form name for the 
  3432.          printer. If more than one form is needed for the job, all of the 
  3433.          required form names are supplied, separated by commas, as 
  3434.          FORM=aaaa,bbbb,cccc; the first one is the one that is to be used 
  3435.          first. See HCINFO. 
  3436.          A form name can be enclosed in double quotes to permit form names to 
  3437.          contain the characters ',' ';' or '='. For example, 
  3438.  
  3439.                   FORM="A","A4 with heading","C,D"
  3440.          calls for three forms: 'A', 'A4 with heading' and 'C,D'. If a double 
  3441.          quote is part of a form name, it should be supplied twice. 
  3442.          If this option is not specified, the data is printed on the forms in 
  3443.          use, when this print job is ready to be printed. 
  3444.  
  3445.    PRTY=n Specifies a priority in the range 1 through 99, with 99 being the 
  3446.          highest. If it is not specified, a default priority of 50 is used. 
  3447.  
  3448.  
  3449. ΓòÉΓòÉΓòÉ <hidden> pszNetworkParams ΓòÉΓòÉΓòÉ
  3450.  
  3451. pszNetworkParams (PSZ) 
  3452.    Network parameters. 
  3453.  
  3454.    This is a parameter string for the network program for queued output, and is 
  3455.    optional. The format of the parameter string is keyword=value, and the 
  3456.    following keyword is defined (additional ones can be defined by the network 
  3457.    program): 
  3458.  
  3459.    USER=u Specifies the user identifier `u'. If it is not specified, a null 
  3460.          user identifier is used. 
  3461.  
  3462.  
  3463. ΓòÉΓòÉΓòÉ 4.46. DLGTEMPLATE ΓòÉΓòÉΓòÉ
  3464.  
  3465. DLGTEMPLATE Dialog-template structure. 
  3466.  
  3467. typedef struct _DLGTEMPLATE {
  3468. USHORT      cbTemplate;        /* Length of template  */
  3469. USHORT      type;              /* Template format type  */
  3470. USHORT      codepage;          /* Code page  */
  3471. USHORT      offadlgti;         /* Offset to dialog items  */
  3472. USHORT      fsTemplateStatus;  /* Template status  */
  3473. USHORT      iItemFocus;        /* Index of item to receive focus initially  */
  3474. USHORT      coffPresParams;    /* Count of presentation-parameter offsets  */
  3475. DLGTITEM    adlgti[1];         /* Start of dialog items  */
  3476.  } DLGTEMPLATE;
  3477.  
  3478.  
  3479. ΓòÉΓòÉΓòÉ <hidden> cbTemplate ΓòÉΓòÉΓòÉ
  3480.  
  3481. cbTemplate (USHORT) 
  3482.    Length of template. 
  3483.  
  3484.  
  3485. ΓòÉΓòÉΓòÉ <hidden> type ΓòÉΓòÉΓòÉ
  3486.  
  3487. type (USHORT) 
  3488.    Template format type. 
  3489.  
  3490.  
  3491. ΓòÉΓòÉΓòÉ <hidden> codepage ΓòÉΓòÉΓòÉ
  3492.  
  3493. codepage (USHORT) 
  3494.    Code page. 
  3495.  
  3496.  
  3497. ΓòÉΓòÉΓòÉ <hidden> offadlgti ΓòÉΓòÉΓòÉ
  3498.  
  3499. offadlgti (USHORT) 
  3500.    Offset to dialog items. 
  3501.  
  3502.  
  3503. ΓòÉΓòÉΓòÉ <hidden> fsTemplateStatus ΓòÉΓòÉΓòÉ
  3504.  
  3505. fsTemplateStatus (USHORT) 
  3506.    Template status. 
  3507.  
  3508.  
  3509. ΓòÉΓòÉΓòÉ <hidden> iItemFocus ΓòÉΓòÉΓòÉ
  3510.  
  3511. iItemFocus (USHORT) 
  3512.    Index of item to receive focus initially. 
  3513.  
  3514.  
  3515. ΓòÉΓòÉΓòÉ <hidden> coffPresParams ΓòÉΓòÉΓòÉ
  3516.  
  3517. coffPresParams (USHORT) 
  3518.    Count of presentation-parameter offsets. 
  3519.  
  3520.  
  3521. ΓòÉΓòÉΓòÉ <hidden> adlgti[1] ΓòÉΓòÉΓòÉ
  3522.  
  3523. adlgti[1] (DLGTITEM) 
  3524.    Start of dialog items. 
  3525.  
  3526.  
  3527. ΓòÉΓòÉΓòÉ 4.47. DLGTITEM ΓòÉΓòÉΓòÉ
  3528.  
  3529. DLGTITEM Dialog-item structure. 
  3530.  
  3531. typedef struct _DLGTITEM {
  3532. USHORT    fsItemStatus;   /* Status  */
  3533. USHORT    cChildren;      /* Count of children to this dialog item  */
  3534. USHORT    cchClassName;   /* Length of class name  */
  3535. USHORT    offClassName;   /* Offset to class name  */
  3536. USHORT    cchText;        /* Length of text  */
  3537. USHORT    offText;        /* Offset to text  */
  3538. ULONG     flStyle;        /* Dialog item window style  */
  3539. SHORT     x;              /* X-coordinate of origin of dialog-item window  */
  3540. SHORT     y;              /* Y-coordinate of origin of dialog-item window  */
  3541. SHORT     cx;             /* Dialog-item window width  */
  3542. SHORT     cy;             /* Dialog-item window height  */
  3543. USHORT    id;             /* Identity  */
  3544. USHORT    offPresParams;  /* Reserved  */
  3545. USHORT    offCtlData;     /* Offset to control data  */
  3546.  } DLGTITEM;
  3547.  
  3548.  
  3549. ΓòÉΓòÉΓòÉ <hidden> fsItemStatus ΓòÉΓòÉΓòÉ
  3550.  
  3551. fsItemStatus (USHORT) 
  3552.    Status. 
  3553.  
  3554.  
  3555. ΓòÉΓòÉΓòÉ <hidden> cChildren ΓòÉΓòÉΓòÉ
  3556.  
  3557. cChildren (USHORT) 
  3558.    Count of children to this dialog item. 
  3559.  
  3560.  
  3561. ΓòÉΓòÉΓòÉ <hidden> cchClassName ΓòÉΓòÉΓòÉ
  3562.  
  3563. cchClassName (USHORT) 
  3564.    Length of class name. 
  3565.  
  3566.    If zero, offClassName contains the hexadecimal equivalent of a preregistered 
  3567.    class name. 
  3568.  
  3569.  
  3570. ΓòÉΓòÉΓòÉ <hidden> offClassName ΓòÉΓòÉΓòÉ
  3571.  
  3572. offClassName (USHORT) 
  3573.    Offset to class name. 
  3574.  
  3575.    If cchClassName is nonzero, this is the offset to a NULL-terminated ASCII 
  3576.    string that contains the classname. If cchClassName is zero, this is of the 
  3577.    form 0xhhhh, where hhhh is the hexadecimal equivalent of the preregistered 
  3578.    class name. 
  3579.  
  3580.  
  3581. ΓòÉΓòÉΓòÉ <hidden> cchText ΓòÉΓòÉΓòÉ
  3582.  
  3583. cchText (USHORT) 
  3584.    Length of text. 
  3585.  
  3586.  
  3587. ΓòÉΓòÉΓòÉ <hidden> offText ΓòÉΓòÉΓòÉ
  3588.  
  3589. offText (USHORT) 
  3590.    Offset to text. 
  3591.  
  3592.  
  3593. ΓòÉΓòÉΓòÉ <hidden> flStyle ΓòÉΓòÉΓòÉ
  3594.  
  3595. flStyle (ULONG) 
  3596.    Dialog item window style. 
  3597.  
  3598.    The high-order 16 bits are the standard WS_* style bits. The low-order 16 
  3599.    bits are available for class-specific use. 
  3600.  
  3601.  
  3602. ΓòÉΓòÉΓòÉ <hidden> x ΓòÉΓòÉΓòÉ
  3603.  
  3604. x (SHORT) 
  3605.    X-coordinate of origin of dialog-item window. 
  3606.  
  3607.  
  3608. ΓòÉΓòÉΓòÉ <hidden> y ΓòÉΓòÉΓòÉ
  3609.  
  3610. y (SHORT) 
  3611.    Y-coordinate of origin of dialog-item window. 
  3612.  
  3613.  
  3614. ΓòÉΓòÉΓòÉ <hidden> cx ΓòÉΓòÉΓòÉ
  3615.  
  3616. cx (SHORT) 
  3617.    Dialog-item window width. 
  3618.  
  3619.  
  3620. ΓòÉΓòÉΓòÉ <hidden> cy ΓòÉΓòÉΓòÉ
  3621.  
  3622. cy (SHORT) 
  3623.    Dialog-item window height. 
  3624.  
  3625.  
  3626. ΓòÉΓòÉΓòÉ <hidden> id ΓòÉΓòÉΓòÉ
  3627.  
  3628. id (USHORT) 
  3629.    Identity. 
  3630.  
  3631.  
  3632. ΓòÉΓòÉΓòÉ <hidden> offPresParams ΓòÉΓòÉΓòÉ
  3633.  
  3634. offPresParams (USHORT) 
  3635.    Reserved. 
  3636.  
  3637.  
  3638. ΓòÉΓòÉΓòÉ <hidden> offCtlData ΓòÉΓòÉΓòÉ
  3639.  
  3640. offCtlData (USHORT) 
  3641.    Offset to control data. 
  3642.  
  3643.  
  3644. ΓòÉΓòÉΓòÉ 4.48. DRAGIMAGE ΓòÉΓòÉΓòÉ
  3645.  
  3646. DRAGIMAGE Dragged-object-image structure. 
  3647.  
  3648. typedef struct _DRAGIMAGE {
  3649. USHORT     cb;           /* Structure size  */
  3650. USHORT     cptl;         /* Number of points  */
  3651. LHANDLE    hImage;       /* Image handle  */
  3652. SIZEL      sizlStretch;  /* Dimensions for stretching  */
  3653. ULONG      fl;           /* Flags  */
  3654. SHORT      cxOffset;     /* X-offset  */
  3655. SHORT      cyOffset;     /* Y-offset  */
  3656.  } DRAGIMAGE;
  3657.  
  3658.  
  3659. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  3660.  
  3661. cb (USHORT) 
  3662.    Structure size. 
  3663.  
  3664.    Size, in bytes, of the DRAGIMAGE structure. 
  3665.  
  3666.  
  3667. ΓòÉΓòÉΓòÉ <hidden> cptl ΓòÉΓòÉΓòÉ
  3668.  
  3669. cptl (USHORT) 
  3670.    Number of points. 
  3671.  
  3672.    The number of points in the point array if fl is specified as DRG_POLYGON. 
  3673.  
  3674.  
  3675. ΓòÉΓòÉΓòÉ <hidden> hImage ΓòÉΓòÉΓòÉ
  3676.  
  3677. hImage (LHANDLE) 
  3678.    Image handle. 
  3679.  
  3680.    Handle representing the image to display. The type is determined by fl. 
  3681.  
  3682.  
  3683. ΓòÉΓòÉΓòÉ <hidden> sizlStretch ΓòÉΓòÉΓòÉ
  3684.  
  3685. sizlStretch (SIZEL) 
  3686.    Dimensions for stretching. 
  3687.  
  3688.    Specifies the dimensions for stretching when fl is specified as DRG_STRETCH. 
  3689.  
  3690.  
  3691. ΓòÉΓòÉΓòÉ <hidden> fl ΓòÉΓòÉΓòÉ
  3692.  
  3693. fl (ULONG) 
  3694.    Flags. 
  3695.  
  3696.    DRG_ICON 
  3697.       hImage is an HPOINTER. 
  3698.    DRG_BITMAP 
  3699.       hImage is an HBITMAP. 
  3700.    DRG_POLYGON 
  3701.       hImage is a pointer to an array of points that will be connected with 
  3702.       GpiPolyLine to form a polygon.  The first point of the array should be 
  3703.       (0,0), and the other points should be placed relative to this position. 
  3704.    DRG_STRETCH 
  3705.       If DRG_ICON or DRG_BITMAP is specified, the image is expanded or 
  3706.       compressed to the dimensions specified by sizlStretch. 
  3707.    DRG_TRANSPARENT 
  3708.       If DRG_ICON is specified, an outline of the icon is generated and 
  3709.       displayed instead of the original icon. 
  3710.    DRG_CLOSED 
  3711.       If DRG_POLYGON is specified, a closed polygon is formed by moving the 
  3712.       current position to the last point in the array before calling 
  3713.       GpiPolyLine. 
  3714.  
  3715.  
  3716. ΓòÉΓòÉΓòÉ <hidden> cxOffset ΓòÉΓòÉΓòÉ
  3717.  
  3718. cxOffset (SHORT) 
  3719.    X-offset. 
  3720.  
  3721.    X-offset from the pointer hot spot to the origin of the image. 
  3722.  
  3723.  
  3724. ΓòÉΓòÉΓòÉ <hidden> cyOffset ΓòÉΓòÉΓòÉ
  3725.  
  3726. cyOffset (SHORT) 
  3727.    Y-offset. 
  3728.  
  3729.    Y-offset from the pointer hot spot to the origin of the image. 
  3730.  
  3731.  
  3732. ΓòÉΓòÉΓòÉ 4.49. DRAGINFO ΓòÉΓòÉΓòÉ
  3733.  
  3734. DRAGINFO Drag-information structure. 
  3735.  
  3736. typedef struct _DRAGINFO {
  3737. ULONG     cbDraginfo;   /* Structure size  */
  3738. USHORT    cbDragitem;   /* DRAGITEM structures sizes  */
  3739. USHORT    usOperation;  /* Modified drag operations  */
  3740. HWND      hwndSource;   /* Window handle  */
  3741. SHORT     xDrop;        /* X-coordinate  */
  3742. SHORT     yDrop;        /* Y-coordinate  */
  3743. USHORT    cditem;       /* Count of DRAGITEM structures  */
  3744. USHORT    usReserved;   /* Reserved  */
  3745.  } DRAGINFO;
  3746.  
  3747.  
  3748. ΓòÉΓòÉΓòÉ <hidden> cbDraginfo ΓòÉΓòÉΓòÉ
  3749.  
  3750. cbDraginfo (ULONG) 
  3751.    Structure size. 
  3752.  
  3753.    Size, in bytes, of the structure. The size includes the array of DRAGITEM 
  3754.    structures. 
  3755.  
  3756.  
  3757. ΓòÉΓòÉΓòÉ <hidden> cbDragitem ΓòÉΓòÉΓòÉ
  3758.  
  3759. cbDragitem (USHORT) 
  3760.    DRAGITEM structures sizes. 
  3761.  
  3762.    Size, in bytes, of each DRAGITEM structure. 
  3763.  
  3764.  
  3765. ΓòÉΓòÉΓòÉ <hidden> usOperation ΓòÉΓòÉΓòÉ
  3766.  
  3767. usOperation (USHORT) 
  3768.    Modified drag operations. 
  3769.  
  3770.    An application can define its own modified drag operations for use when 
  3771.    simulating a drop. These operations must have a value greater than 
  3772.    DO_UNKNOWN. 
  3773.  
  3774.    DO_DEFAULT 
  3775.       Execute the default drag operation. No modifier keys are pressed. 
  3776.    DO_COPY 
  3777.       Execute a copy operation. The Ctrl key is pressed. 
  3778.    DO_LINK 
  3779.       Execute a link operation. The Ctrl+Shift keys are pressed. 
  3780.    DO_MOVE 
  3781.       Execute a move operation. The Shift key is pressed. 
  3782.    DO_UNKNOWN 
  3783.       An undefined combination of modifier keys is pressed. 
  3784.  
  3785.  
  3786. ΓòÉΓòÉΓòÉ <hidden> hwndSource ΓòÉΓòÉΓòÉ
  3787.  
  3788. hwndSource (HWND) 
  3789.    Window handle. 
  3790.  
  3791.    Window handle of the source of the drag operation. 
  3792.  
  3793.  
  3794. ΓòÉΓòÉΓòÉ <hidden> xDrop ΓòÉΓòÉΓòÉ
  3795.  
  3796. xDrop (SHORT) 
  3797.    X-coordinate. 
  3798.  
  3799.    X-coordinate of drop point expressed in desktop coordinates. 
  3800.  
  3801.  
  3802. ΓòÉΓòÉΓòÉ <hidden> yDrop ΓòÉΓòÉΓòÉ
  3803.  
  3804. yDrop (SHORT) 
  3805.    Y-coordinate. 
  3806.  
  3807.    Y-coordinate of drop point expressed in desktop coordinates. 
  3808.  
  3809.  
  3810. ΓòÉΓòÉΓòÉ <hidden> cditem ΓòÉΓòÉΓòÉ
  3811.  
  3812. cditem (USHORT) 
  3813.    Count of DRAGITEM structures. 
  3814.  
  3815.  
  3816. ΓòÉΓòÉΓòÉ <hidden> usReserved ΓòÉΓòÉΓòÉ
  3817.  
  3818. usReserved (USHORT) 
  3819.    Reserved. 
  3820.  
  3821.  
  3822. ΓòÉΓòÉΓòÉ 4.50. DRAGITEM ΓòÉΓòÉΓòÉ
  3823.  
  3824. DRAGITEM Drag-object structure. 
  3825.  
  3826. typedef struct _DRAGITEM {
  3827. HWND      hwndItem;           /* Window handle  */
  3828. ULONG     ulItemID;           /* Item information  */
  3829. HSTR      hstrType;           /* String handle  */
  3830. HSTR      hstrRMF;            /* String handle  */
  3831. HSTR      hstrContainerName;  /* String handle  */
  3832. HSTR      hstrSourceName;     /* String handle  */
  3833. HSTR      hstrTargetName;     /* String handle  */
  3834. SHORT     cxOffset;           /* X-offset  */
  3835. SHORT     cyOffset;           /* Y-offset  */
  3836. USHORT    fsControl;          /* Source-object control flags  */
  3837. USHORT    fsSupportedOps;     /* Supported operations  */
  3838.  } DRAGITEM;
  3839.  
  3840.  
  3841. ΓòÉΓòÉΓòÉ <hidden> hwndItem ΓòÉΓòÉΓòÉ
  3842.  
  3843. hwndItem (HWND) 
  3844.    Window handle. 
  3845.  
  3846.    Window handle of the source of the drag operation. 
  3847.  
  3848.  
  3849. ΓòÉΓòÉΓòÉ <hidden> ulItemID ΓòÉΓòÉΓòÉ
  3850.  
  3851. ulItemID (ULONG) 
  3852.    Item information. 
  3853.  
  3854.    Information used by the source to identify the object being dragged. 
  3855.  
  3856.  
  3857. ΓòÉΓòÉΓòÉ <hidden> hstrType ΓòÉΓòÉΓòÉ
  3858.  
  3859. hstrType (HSTR) 
  3860.    String handle. 
  3861.  
  3862.    String handle of the object type. The string handle must be created using 
  3863.    the DrgAddStrHandle function. The string is of the form: type[,type...] . 
  3864.    The first type in the list must be the true type of the object. 
  3865.  
  3866.    The following types are used by the OS/2* shell: 
  3867.  
  3868.    DRT_ASM 
  3869.       Assembler code 
  3870.    DRT_BASIC 
  3871.       BASIC code 
  3872.    DRT_BINDATA 
  3873.       Binary data 
  3874.    DRT_BITMAP 
  3875.       Bit map 
  3876.    DRT_C 
  3877.       C code 
  3878.    DRT_COBOL 
  3879.       COBOL code 
  3880.    DRT_DLL 
  3881.       Dynamic link library 
  3882.    DRT_DOSCMD 
  3883.       DOS command file 
  3884.    DRT_EXE 
  3885.       Executable file 
  3886.    DRT_FONT 
  3887.       Font 
  3888.    DRT_FORTRAN 
  3889.       FORTRAN code 
  3890.    DRT_ICON 
  3891.       Icon 
  3892.    DRT_LIB 
  3893.       Library 
  3894.    DRT_METAFILE 
  3895.       Metafile 
  3896.    DRT_OS2CMD 
  3897.       OS/2 command file 
  3898.    DRT_PASCAL 
  3899.       Pascal code 
  3900.    DRT_RESOURCE 
  3901.       Resource file 
  3902.    DRT_TEXT 
  3903.       Text 
  3904.    DRT_UNKNOWN 
  3905.       Unknown type. 
  3906.  
  3907.  
  3908. ΓòÉΓòÉΓòÉ <hidden> hstrRMF ΓòÉΓòÉΓòÉ
  3909.  
  3910. hstrRMF (HSTR) 
  3911.    String handle. 
  3912.  
  3913.    String handle of the rendering mechanism and format. The string handle must 
  3914.    be created using the DrgAddStrHandle function. The string is of the form: 
  3915.    mechfmt[,mechfmt...] , where mechfmt can be in either of the following 
  3916.    formats: 
  3917.  
  3918.     1. <mechanism(1),format(1)> 
  3919.     2. (mechanism(1)[, mechanism(n)...]) x (format(1)[,format(n)...]) 
  3920.    The first mechanism/format pair must be the native rendering mechanism and 
  3921.    format of the object. 
  3922.  
  3923.    Valid mechanisms are: 
  3924.  
  3925.    "DRM_DDE" 
  3926.       Dynamic data exchange 
  3927.    "DRM_OBJECT" 
  3928.       Item being dragged is a workplace object. 
  3929.    "DRM_OS2FILE" 
  3930.       OS/2 file 
  3931.    "DRM_PRINT" 
  3932.       Object can be printed using direct manipulation. 
  3933.  
  3934.       Valid formats are: 
  3935.    "DRF_BITMAP" 
  3936.       OS/2 bit map 
  3937.    "DRF_DIB" 
  3938.       DIB 
  3939.    "DRF_DIF" 
  3940.       DIF 
  3941.    "DRF_DSPBITMAP" 
  3942.       Stream of bit-map bits 
  3943.    "DRF_METAFILE" 
  3944.       Metafile 
  3945.    "DRF_OEMTEXT" 
  3946.       OEM text 
  3947.    "DRF_OWNERDISPLAY" 
  3948.       Bit stream 
  3949.    "DRF_PTRPICT" 
  3950.       Printer picture 
  3951.    "DRF_RTF" 
  3952.       Rich text 
  3953.    "DRF_SYLK" 
  3954.       SYLK 
  3955.    "DRF_TEXT" 
  3956.       NULL-terminated string 
  3957.    "DRF_TIFF" 
  3958.       TIFF 
  3959.    "DRF_UNKNOWN" 
  3960.       Unknown format. 
  3961.  
  3962.  
  3963. ΓòÉΓòÉΓòÉ <hidden> hstrContainerName ΓòÉΓòÉΓòÉ
  3964.  
  3965. hstrContainerName (HSTR) 
  3966.    String handle. 
  3967.  
  3968.    String handle of the name of the container holding the source object. The 
  3969.    string handle must be created using the DrgAddStrHandle function. 
  3970.  
  3971.  
  3972. ΓòÉΓòÉΓòÉ <hidden> hstrSourceName ΓòÉΓòÉΓòÉ
  3973.  
  3974. hstrSourceName (HSTR) 
  3975.    String handle. 
  3976.  
  3977.    String handle of the name of the source object. The string handle must be 
  3978.    created using the DrgAddStrHandle function. 
  3979.  
  3980.  
  3981. ΓòÉΓòÉΓòÉ <hidden> hstrTargetName ΓòÉΓòÉΓòÉ
  3982.  
  3983. hstrTargetName (HSTR) 
  3984.    String handle. 
  3985.  
  3986.    String handle of the suggested name of the object at the target. It is the 
  3987.    responsibility of the source of the drag operation to create this string 
  3988.    handle before calling DrgDrag. 
  3989.  
  3990.  
  3991. ΓòÉΓòÉΓòÉ <hidden> cxOffset ΓòÉΓòÉΓòÉ
  3992.  
  3993. cxOffset (SHORT) 
  3994.    X-offset. 
  3995.  
  3996.    X-offset from the pointer hot spot to the origin of the image that 
  3997.    represents this object. This value is copied from cxOffset in the DRAGIMAGE 
  3998.    structure by DrgDrag. 
  3999.  
  4000.  
  4001. ΓòÉΓòÉΓòÉ <hidden> cyOffset ΓòÉΓòÉΓòÉ
  4002.  
  4003. cyOffset (SHORT) 
  4004.    Y-offset. 
  4005.  
  4006.    Y-offset from the pointer hot spot to the origin of the image that 
  4007.    represents this object. This value is copied from cyOffset in the DRAGIMAGE 
  4008.    structure by DrgDrag. 
  4009.  
  4010.  
  4011. ΓòÉΓòÉΓòÉ <hidden> fsControl ΓòÉΓòÉΓòÉ
  4012.  
  4013. fsControl (USHORT) 
  4014.    Source-object control flags. 
  4015.  
  4016.    DC_OPEN 
  4017.       Object is open 
  4018.    DC_REF 
  4019.       Reference to another object 
  4020.    DC_GROUP 
  4021.       Group of objects 
  4022.    DC_CONTAINER 
  4023.       Container of other objects 
  4024.    DC_PREPARE 
  4025.       Source requires a DM_RENDERPREPARE message before it establishes a data 
  4026.       transfer conversation 
  4027.    DC_REMOVEABLEMEDIA 
  4028.       Object is on removable media, or object cannot be recovered after a move 
  4029.       operation. 
  4030.  
  4031.  
  4032. ΓòÉΓòÉΓòÉ <hidden> fsSupportedOps ΓòÉΓòÉΓòÉ
  4033.  
  4034. fsSupportedOps (USHORT) 
  4035.    Supported operations. 
  4036.  
  4037.    Direct manipulation operations supported by the source object: 
  4038.  
  4039.    DO_COPYABLE 
  4040.       Source supports DO_COPY 
  4041.    DO_LINKABLE 
  4042.       Source supports DO_LINK 
  4043.    DO_MOVEABLE 
  4044.       Source supports DO_MOVE. 
  4045.  
  4046.  
  4047. ΓòÉΓòÉΓòÉ 4.51. DRAGTRANSFER ΓòÉΓòÉΓòÉ
  4048.  
  4049. DRAGTRANSFER Drag-conversation structure. 
  4050.  
  4051. typedef struct _DRAGTRANSFER {
  4052. ULONG        cb;                /* Structure size  */
  4053. HWND         hwndClient;        /* Window handle  */
  4054. PDRAGITEM    pditem;            /* Pointer  */
  4055. HSTR         hstrSelectedRMF;   /* String handle  */
  4056. HSTR         hstrRenderToName;  /* String handle  */
  4057. ULONG        ulTargetInfo;      /* Reserved  */
  4058. USHORT       usOperation;       /* The operation  */
  4059. USHORT       fsReply;           /* Reply flags  */
  4060.  } DRAGTRANSFER;
  4061.  
  4062.  
  4063. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  4064.  
  4065. cb (ULONG) 
  4066.    Structure size. 
  4067.  
  4068.    Size, in bytes, of the structure. 
  4069.  
  4070.  
  4071. ΓòÉΓòÉΓòÉ <hidden> hwndClient ΓòÉΓòÉΓòÉ
  4072.  
  4073. hwndClient (HWND) 
  4074.    Window handle. 
  4075.  
  4076.    Handle of the client window. This can be the target window or a window that 
  4077.    represents an object in a container that was dropped on. 
  4078.  
  4079.  
  4080. ΓòÉΓòÉΓòÉ <hidden> pditem ΓòÉΓòÉΓòÉ
  4081.  
  4082. pditem (PDRAGITEM) 
  4083.    Pointer. 
  4084.  
  4085.    Pointer to the DRAGITEM structure that is to be rendered. This structure 
  4086.    must exist within the DRAGINFO structure that was passed in the DM_DROP 
  4087.    message. 
  4088.  
  4089.  
  4090. ΓòÉΓòÉΓòÉ <hidden> hstrSelectedRMF ΓòÉΓòÉΓòÉ
  4091.  
  4092. hstrSelectedRMF (HSTR) 
  4093.    String handle. 
  4094.  
  4095.    The string handle for the selected rendering mechanism and format for the 
  4096.    transfer operation. This handle must be created using DrgAddStrHandle. The 
  4097.    target is responsible for deleting this handle when the conversation is 
  4098.    complete. The string is in the format:  <mechanism,format>. 
  4099.  
  4100.  
  4101. ΓòÉΓòÉΓòÉ <hidden> hstrRenderToName ΓòÉΓòÉΓòÉ
  4102.  
  4103. hstrRenderToName (HSTR) 
  4104.    String handle. 
  4105.  
  4106.    A string handle representing the name where the source will place, and the 
  4107.    target will find, the data that is rendered. The target is responsible for 
  4108.    deleting this string handle when the conversation terminates.  The contents 
  4109.    of this field vary according to the rendering mechanism.  See hstrRMF in 
  4110.    DRAGITEM. 
  4111.  
  4112.    OS/2 File 
  4113.       The string handle represents the fully qualified name of the file where 
  4114.       the rendering will be placed. 
  4115.    DDE 
  4116.       This field is not used. 
  4117.    Print 
  4118.       This field is not used. 
  4119.  
  4120.  
  4121. ΓòÉΓòÉΓòÉ <hidden> ulTargetInfo ΓòÉΓòÉΓòÉ
  4122.  
  4123. ulTargetInfo (ULONG) 
  4124.    Reserved. 
  4125.  
  4126.    Reserved for use by the target. The target can use this field for 
  4127.    information about the object and rendering operation. 
  4128.  
  4129.  
  4130. ΓòÉΓòÉΓòÉ <hidden> usOperation ΓòÉΓòÉΓòÉ
  4131.  
  4132. usOperation (USHORT) 
  4133.    The operation. 
  4134.  
  4135.    Values are: 
  4136.  
  4137.    DO_COPY 
  4138.       Execute a copy operation. 
  4139.    DO_LINK 
  4140.       Execute a link operation. 
  4141.    DO_MOVE 
  4142.       Execute a move operation. 
  4143.    OTHER 
  4144.       Execute an application-defined operation. 
  4145.  
  4146.  
  4147. ΓòÉΓòÉΓòÉ <hidden> fsReply ΓòÉΓòÉΓòÉ
  4148.  
  4149. fsReply (USHORT) 
  4150.    Reply flags. 
  4151.  
  4152.    Replay flags for the message. These flags can be set as follows: 
  4153.  
  4154.    DMFL_NATIVERENDER 
  4155.       The source does not support rendering for this object.  A source should 
  4156.       not set this flag unless it provides sufficient information at the time 
  4157.       of the drop for the target to perform the rendering operation. The target 
  4158.       must send DM_ENDCONVERSATION to the source after carrying out the 
  4159.       rendering operation, or when it elects not to do a native rendering. 
  4160.    DMFL_RENDERRETRY 
  4161.       The source supports rendering for the object, but does not support the 
  4162.       selected rendering mechanism and format.  The target can try another 
  4163.       mechanism and format by sending another DM_RENDER message.  If the target 
  4164.       does not retry, it must send a DM_RENDERCOMPLETE message to the source. 
  4165.       This flag is set in conjunction with the DMFL_NATIVERENDER flag. 
  4166.  
  4167.  
  4168. ΓòÉΓòÉΓòÉ 4.52. DRIVDATA ΓòÉΓòÉΓòÉ
  4169.  
  4170. DRIVDATA Driver-data structure. 
  4171.  
  4172. typedef struct _DRIVDATA {
  4173. LONG    cb;                /* Length  */
  4174. LONG    lVersion;          /* Version  */
  4175. CHAR    szDeviceName[32];  /* Device name  */
  4176. CHAR    abGeneralData[1];  /* General data  */
  4177.  } DRIVDATA;
  4178.  
  4179.  
  4180. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  4181.  
  4182. cb (LONG) 
  4183.    Length. 
  4184.  
  4185.    The length of the structure. 
  4186.  
  4187.  
  4188. ΓòÉΓòÉΓòÉ <hidden> lVersion ΓòÉΓòÉΓòÉ
  4189.  
  4190. lVersion (LONG) 
  4191.    Version. 
  4192.  
  4193.    The version number of the data. Version numbers are defined by particular PM 
  4194.    device drivers. 
  4195.  
  4196.  
  4197. ΓòÉΓòÉΓòÉ <hidden> szDeviceName[32] ΓòÉΓòÉΓòÉ
  4198.  
  4199. szDeviceName[32] (CHAR) 
  4200.    Device name. 
  4201.  
  4202.    A string in a 32-byte field, identifying the particular device (model 
  4203.    number, and so on). Again, valid values are defined by PM device drivers. 
  4204.  
  4205.  
  4206. ΓòÉΓòÉΓòÉ <hidden> abGeneralData[1] ΓòÉΓòÉΓòÉ
  4207.  
  4208. abGeneralData[1] (CHAR) 
  4209.    General data. 
  4210.  
  4211.    Data as defined by the Presentation Manager device driver. 
  4212.    The data type of this field is defined by the Presentation Manager device 
  4213.    driver. It does not contain pointers, as these are not necessarily valid 
  4214.    when passed to the device driver. 
  4215.  
  4216.  
  4217. ΓòÉΓòÉΓòÉ 4.53. DRIVPROPS ΓòÉΓòÉΓòÉ
  4218.  
  4219. DRIVPROPS Printer driver property structure. 
  4220.  
  4221. typedef struct _DRIVPROPS {
  4222. PSZ      pszKeyName;  /* key name  */
  4223. ULONG    cbBuf;       /* The length of the key data  */
  4224. PVOID    pBuf;        /* The key data  */
  4225.  } DRIVPROPS;
  4226.  
  4227.  
  4228. ΓòÉΓòÉΓòÉ <hidden> pszKeyName ΓòÉΓòÉΓòÉ
  4229.  
  4230. pszKeyName (PSZ) 
  4231.    key name 
  4232.  
  4233.    This is the key name for an individual property. For example "FORMS". 
  4234.  
  4235.  
  4236. ΓòÉΓòÉΓòÉ <hidden> cbBuf ΓòÉΓòÉΓòÉ
  4237.  
  4238. cbBuf (ULONG) 
  4239.    The length of the key data. 
  4240.  
  4241.  
  4242. ΓòÉΓòÉΓòÉ <hidden> pBuf ΓòÉΓòÉΓòÉ
  4243.  
  4244. pBuf (PVOID) 
  4245.    The key data. 
  4246.  
  4247.    This is the data associated with the key name. For example "LETTER, LEGAL, 
  4248.    LEDGER". 
  4249.  
  4250.  
  4251. ΓòÉΓòÉΓòÉ 4.54. ENTRYFDATA ΓòÉΓòÉΓòÉ
  4252.  
  4253. ENTRYFDATA Entry-field control data structure. 
  4254.  
  4255. typedef struct _ENTRYFDATA {
  4256. USHORT    cb;            /* Length of control data in bytes  */
  4257. USHORT    cchEditLimit;  /* Edit limit  */
  4258. USHORT    ichMinSel;     /* Minimum selection  */
  4259. USHORT    ichMaxSel;     /* Maximum selection  */
  4260.  } ENTRYFDATA;
  4261.  
  4262.  
  4263. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  4264.  
  4265. cb (USHORT) 
  4266.    Length of control data in bytes. 
  4267.  
  4268.    The length of the control data for an entry field control. 
  4269.  
  4270.  
  4271. ΓòÉΓòÉΓòÉ <hidden> cchEditLimit ΓòÉΓòÉΓòÉ
  4272.  
  4273. cchEditLimit (USHORT) 
  4274.    Edit limit. 
  4275.  
  4276.    This is the maximum number of characters that can be entered into the entry 
  4277.    field control. 
  4278.    If the operator tries to enter more text into an entry field control than is 
  4279.    specified by the text limit set by the EM_SETTEXTLIMIT message, the entry 
  4280.    field control indicates the error by sounding the alarm and does not accept 
  4281.    the characters. 
  4282.  
  4283.  
  4284. ΓòÉΓòÉΓòÉ <hidden> ichMinSel ΓòÉΓòÉΓòÉ
  4285.  
  4286. ichMinSel (USHORT) 
  4287.    Minimum selection. 
  4288.  
  4289.  
  4290. ΓòÉΓòÉΓòÉ <hidden> ichMaxSel ΓòÉΓòÉΓòÉ
  4291.  
  4292. ichMaxSel (USHORT) 
  4293.    Maximum selection. 
  4294.  
  4295.    The ichMinSel and ichMaxSel parameters identify the current selection within 
  4296.    the entry field control. Characters within the text with byte offsets less 
  4297.    than the ichMaxSel parameter and greater than or equal to the ichMinSel 
  4298.    parameter are the current selection. The cursor is positioned immediately 
  4299.    before the character identified by the ichMaxSel parameter. 
  4300.    If the ichMinSel parameter is equal to the ichMaxSel parameter, the current 
  4301.    selection becomes the insertion point. 
  4302.    If the ichMinSel parameter is equal to 0 and the ichMaxSel is greater than 
  4303.    or equal to text limit set by the EM_SETTEXTLIMIT message, the entire text 
  4304.    is selected. 
  4305.  
  4306.  
  4307. ΓòÉΓòÉΓòÉ 4.55. ERRINFO ΓòÉΓòÉΓòÉ
  4308.  
  4309. ERRINFO Error-information structure. 
  4310.  
  4311. typedef struct _ERRINFO {
  4312. ULONG      cbFixedErrInfo;  /* Length of fixed data to this structure  */
  4313. ERRORID    idError;         /* Error identity  */
  4314. ULONG      cDetailLevel;    /* Number of levels of detail  */
  4315. ULONG      offaoffszMsg;    /* Offset to the array of message offsets  */
  4316. ULONG      offBinaryData;   /* Offset to the binary data  */
  4317.  } ERRINFO;
  4318.  
  4319.  
  4320. ΓòÉΓòÉΓòÉ <hidden> cbFixedErrInfo ΓòÉΓòÉΓòÉ
  4321.  
  4322. cbFixedErrInfo (ULONG) 
  4323.    Length of fixed data to this structure. 
  4324.  
  4325.  
  4326. ΓòÉΓòÉΓòÉ <hidden> idError ΓòÉΓòÉΓòÉ
  4327.  
  4328. idError (ERRORID) 
  4329.    Error identity. 
  4330.  
  4331.    This is identical to the value returned by the WinGetLastError function. 
  4332.  
  4333.  
  4334. ΓòÉΓòÉΓòÉ <hidden> cDetailLevel ΓòÉΓòÉΓòÉ
  4335.  
  4336. cDetailLevel (ULONG) 
  4337.    Number of levels of detail. 
  4338.  
  4339.    This is the number of entries in the array of words pointed to by the 
  4340.    following field. One level of detail is provided. 
  4341.  
  4342.  
  4343. ΓòÉΓòÉΓòÉ <hidden> offaoffszMsg ΓòÉΓòÉΓòÉ
  4344.  
  4345. offaoffszMsg (ULONG) 
  4346.    Offset to the array of message offsets. 
  4347.  
  4348.  
  4349. ΓòÉΓòÉΓòÉ <hidden> offBinaryData ΓòÉΓòÉΓòÉ
  4350.  
  4351. offBinaryData (ULONG) 
  4352.    Offset to the binary data. 
  4353.  
  4354.    This can contain additional information relating to the error. 
  4355.  
  4356.  
  4357. ΓòÉΓòÉΓòÉ 4.56. ERRORID ΓòÉΓòÉΓòÉ
  4358.  
  4359. ERRORID Error identity. 
  4360.  
  4361. typedef ULONG ERRORID;
  4362.  
  4363.  
  4364. ΓòÉΓòÉΓòÉ 4.57. ESCSETMODE ΓòÉΓòÉΓòÉ
  4365.  
  4366. ESCSETMODE Structure for setting printer mode. See DevEscape (DEVESC_SETMODE). 
  4367.  
  4368. typedef struct _ESCSETMODE {
  4369. ULONG     mode;      /* Mode  */
  4370. USHORT    codepage;  /* Code page  */
  4371.  } ESCSETMODE;
  4372.  
  4373.  
  4374. ΓòÉΓòÉΓòÉ <hidden> mode ΓòÉΓòÉΓòÉ
  4375.  
  4376. mode (ULONG) 
  4377.    Mode 
  4378.  
  4379.    Mode to be set. 
  4380.  
  4381.    0 
  4382.       Set mode to specified code page. Any font can be used. 
  4383.  
  4384.  
  4385. ΓòÉΓòÉΓòÉ <hidden> codepage ΓòÉΓòÉΓòÉ
  4386.  
  4387. codepage (USHORT) 
  4388.    Code page. 
  4389.  
  4390.    If zero is specified for the code page, the printer is set to the hardware 
  4391.    default. 
  4392.  
  4393.  
  4394. ΓòÉΓòÉΓòÉ 4.58. FACENAMEDESC ΓòÉΓòÉΓòÉ
  4395.  
  4396. FACENAMEDESC Face-name description structure. See GpiQueryFaceString. 
  4397.  
  4398. typedef struct _FACENAMEDESC {
  4399. USHORT    usSize;         /* Length of structure  */
  4400. USHORT    usWeightClass;  /* Weight class  */
  4401. USHORT    usWidthClass;   /* Width class  */
  4402. USHORT    usReserved;     /* Reserved  */
  4403. ULONG     flOptions;      /* Other characteristics of the font  */
  4404.  } FACENAMEDESC;
  4405.  
  4406.  
  4407. ΓòÉΓòÉΓòÉ <hidden> usSize ΓòÉΓòÉΓòÉ
  4408.  
  4409. usSize (USHORT) 
  4410.    Length of structure. 
  4411.  
  4412.  
  4413. ΓòÉΓòÉΓòÉ <hidden> usWeightClass ΓòÉΓòÉΓòÉ
  4414.  
  4415. usWeightClass (USHORT) 
  4416.    Weight class. 
  4417.  
  4418.    Indicates the visual weight (thickness of strokes) of the characters in the 
  4419.    font: 
  4420.  
  4421.    FWEIGHT_DONT_CARE 
  4422.       Any font weight satisfies the request. 
  4423.    FWEIGHT_ULTRA_LIGHT 
  4424.       Ultra-light. 
  4425.    FWEIGHT_EXTRA_LIGHT 
  4426.       Extra-light. 
  4427.    FWEIGHT_LIGHT 
  4428.       Light. 
  4429.    FWEIGHT_SEMI_LIGHT 
  4430.       Semi-light. 
  4431.    FWEIGHT_NORMAL 
  4432.       Medium (normal) weight. 
  4433.    FWEIGHT_SEMI_BOLD 
  4434.       Semi-bold. 
  4435.    FWEIGHT_BOLD 
  4436.       Bold. 
  4437.    FWEIGHT_EXTRA_BOLD 
  4438.       Extra-bold. 
  4439.    FWEIGHT_ULTRA_BOLD 
  4440.       Ultra-bold. 
  4441.  
  4442.  
  4443. ΓòÉΓòÉΓòÉ <hidden> usWidthClass ΓòÉΓòÉΓòÉ
  4444.  
  4445. usWidthClass (USHORT) 
  4446.    Width class. 
  4447.  
  4448.    Indicates the relative aspect ratio of the characters of the font in 
  4449.    relation to the normal aspect ratio for this type of font: 
  4450.  
  4451.    FWIDTH_DONT_CARE 
  4452.       Any font width satisfies the request. 
  4453.    FWIDTH_ULTRA_CONDENSED 
  4454.       Ultra-condensed (50% of normal). 
  4455.    FWIDTH_EXTRA_CONDENSED 
  4456.       Extra-condensed (62.5% of normal). 
  4457.    FWIDTH_CONDENSED 
  4458.       Condensed (75% of normal). 
  4459.    FWIDTH_SEMI_CONDENSED 
  4460.       Semi-condensed (87.5% of normal). 
  4461.    FWIDTH_NORMAL 
  4462.       Medium (normal). 
  4463.    FWIDTH_SEMI_EXPANDED 
  4464.       Semi-expanded (112.5% of normal). 
  4465.    FWIDTH_EXPANDED 
  4466.       Expanded (125% of normal). 
  4467.    FWIDTH_EXTRA_EXPANDED 
  4468.       Extra-expanded (150% of normal). 
  4469.    FWIDTH_ULTRA_EXPANDED 
  4470.       Ultra-expanded (200% of normal). 
  4471.  
  4472.  
  4473. ΓòÉΓòÉΓòÉ <hidden> usReserved ΓòÉΓòÉΓòÉ
  4474.  
  4475. usReserved (USHORT) 
  4476.    Reserved. 
  4477.  
  4478.  
  4479. ΓòÉΓòÉΓòÉ <hidden> flOptions ΓòÉΓòÉΓòÉ
  4480.  
  4481. flOptions (ULONG) 
  4482.    Other characteristics of the font. 
  4483.  
  4484.    FTYPE_ITALIC 
  4485.       Italic font required. If not specified, non-italic font required. 
  4486.    FTYPE_ITALIC_DONT_CARE 
  4487.       Italic and non-italic fonts can satisfy the request. If this option is 
  4488.       specified, FTYPE_ITALIC is ignored. 
  4489.    FTYPE_OBLIQUE 
  4490.       Oblique font required. If not specified, non-oblique font required. 
  4491.    FTYPE_OBLIQUE_DONT_CARE 
  4492.       Oblique and non-oblique fonts can satisfy the request. If this option is 
  4493.       specified, FTYPE_OBLIQUE is ignored. 
  4494.    FTYPE_ROUNDED 
  4495.       Rounded font required. If not specified, non-rounded font required. 
  4496.    FTYPE_ROUNDED_DONT_CARE 
  4497.       Rounded and non-rounded fonts can satisfy the request. If this option is 
  4498.       specified, FTYPE_ROUNDED is ignored. 
  4499.  
  4500.  
  4501. ΓòÉΓòÉΓòÉ 4.59. FATTRS ΓòÉΓòÉΓòÉ
  4502.  
  4503. FATTRS Font-attributes structure. 
  4504.  
  4505. typedef struct _FATTRS {
  4506. USHORT    usRecordLength;        /* Length of record  */
  4507. USHORT    fsSelection;           /* Selection indicators  */
  4508. LONG      lMatch;                /* Matched-font identity  */
  4509. CHAR      szFacename[FACESIZE];  /* Typeface name  */
  4510. USHORT    idRegistry;            /* Registry identifier  */
  4511. USHORT    usCodePage;            /* Code page  */
  4512. LONG      lMaxBaselineExt;       /* Maximum baseline extension  */
  4513. LONG      lAveCharWidth;         /* Average character width  */
  4514. USHORT    fsType;                /* Type indicators  */
  4515. USHORT    fsFontUse;             /* Font-use indicators  */
  4516.  } FATTRS;
  4517.  
  4518.  
  4519. ΓòÉΓòÉΓòÉ <hidden> usRecordLength ΓòÉΓòÉΓòÉ
  4520.  
  4521. usRecordLength (USHORT) 
  4522.    Length of record. 
  4523.  
  4524.  
  4525. ΓòÉΓòÉΓòÉ <hidden> fsSelection ΓòÉΓòÉΓòÉ
  4526.  
  4527. fsSelection (USHORT) 
  4528.    Selection indicators. 
  4529.  
  4530.    Flags causing the following features to be simulated by the system. 
  4531.  
  4532.    Note:  If an italic flag is applied to a font that is itself defined as 
  4533.           italic, the font is slanted further by italic simulation. 
  4534.           Underscore or strikeout lines are drawn using the appropriate 
  4535.           attributes (for example, color) from the character bundle (see the 
  4536.           CHARBUNDLE datatype), not the line bundle (see LINEBUNDLE). The width 
  4537.           of the line, and the vertical position of the line in font space, are 
  4538.           determined by the font. Horizontally, the line starts from a point in 
  4539.           font space directly above or below the start point of each character, 
  4540.           and extends to a point directly above or below the escapement point 
  4541.           for that character. For this purpose, the start and escapement points 
  4542.           are those applicable to left-to-right or right-to-left character 
  4543.           directions (see GpiSetCharDirection), even if the string is currently 
  4544.           being drawn in a top-to-bottom or bottom-to-top direction. For 
  4545.           left-to-right or right-to-left directions (only), any white space 
  4546.           generated by the character extra and character break extra attributes 
  4547.           (see GpiSetCharExtra and GpiSetCharBreakExtra), as well as increments 
  4548.           provided by the vector of increments on GpiCharStringPos and 
  4549.           GpiCharStringPosAt, is also underlined/overstruck, so that in these 
  4550.           cases the line is continuous for the string. 
  4551.  
  4552.    FATTR_SEL_ITALIC 
  4553.       Generate italic font. 
  4554.    FATTR_SEL_UNDERSCORE 
  4555.       Generate underscored font. 
  4556.    FATTR_SEL_BOLD 
  4557.       Generate bold font. (Note that the resulting characters are wider than 
  4558.       those in the original font.) 
  4559.    FATTR_SEL_STRIKEOUT 
  4560.       Generate font with overstruck characters. 
  4561.    FATTR_SEL_OUTLINE 
  4562.       Use an outline font with hollow characters. 
  4563.  
  4564.       If this flag is not set, outline font characters are filled. Setting this 
  4565.       flag normally gives better performance, and for sufficiently small 
  4566.       characters there may be little visual difference. 
  4567.  
  4568.  
  4569. ΓòÉΓòÉΓòÉ <hidden> lMatch ΓòÉΓòÉΓòÉ
  4570.  
  4571. lMatch (LONG) 
  4572.    Matched-font identity. 
  4573.  
  4574.  
  4575. ΓòÉΓòÉΓòÉ <hidden> szFacename[FACESIZE] ΓòÉΓòÉΓòÉ
  4576.  
  4577. szFacename[FACESIZE] (CHAR) 
  4578.    Typeface name. 
  4579.  
  4580.    The typeface name of the font, for example, Tms Rmn. 
  4581.  
  4582.  
  4583. ΓòÉΓòÉΓòÉ <hidden> idRegistry ΓòÉΓòÉΓòÉ
  4584.  
  4585. idRegistry (USHORT) 
  4586.    Registry identifier. 
  4587.  
  4588.    Font registry identifier (zero if unknown). 
  4589.  
  4590.  
  4591. ΓòÉΓòÉΓòÉ <hidden> usCodePage ΓòÉΓòÉΓòÉ
  4592.  
  4593. usCodePage (USHORT) 
  4594.    Code page. 
  4595.  
  4596.    If zero, the current Gpi code page (see GpiSetCp) is used. A subsequent 
  4597.    GpiSetCp function changes the code page used for this logical font. 
  4598.  
  4599.  
  4600. ΓòÉΓòÉΓòÉ <hidden> lMaxBaselineExt ΓòÉΓòÉΓòÉ
  4601.  
  4602. lMaxBaselineExt (LONG) 
  4603.    Maximum baseline extension. 
  4604.  
  4605.    For raster fonts, this should be the height of the required font, in world 
  4606.    coordinates. 
  4607.    For outline fonts, this should be zero. 
  4608.  
  4609.  
  4610. ΓòÉΓòÉΓòÉ <hidden> lAveCharWidth ΓòÉΓòÉΓòÉ
  4611.  
  4612. lAveCharWidth (LONG) 
  4613.    Average character width. 
  4614.  
  4615.    For raster fonts, this should be the width of the required font, in world 
  4616.    coordinates. 
  4617.    For outline fonts, this should be zero. 
  4618.  
  4619.  
  4620. ΓòÉΓòÉΓòÉ <hidden> fsType ΓòÉΓòÉΓòÉ
  4621.  
  4622. fsType (USHORT) 
  4623.    Type indicators. 
  4624.  
  4625.    FATTR_TYPE_KERNING 
  4626.       Enable kerning (PostScript only). 
  4627.    FATTR_TYPE_MBCS 
  4628.       Font for mixed single/double-byte code pages. 
  4629.    FATTR_TYPE_DBCS 
  4630.       Font for double-byte code pages. 
  4631.    FATTR_TYPE_ANTIALIASED 
  4632.       Antialiased font required. Only valid if supported by the device driver. 
  4633.  
  4634.  
  4635. ΓòÉΓòÉΓòÉ <hidden> fsFontUse ΓòÉΓòÉΓòÉ
  4636.  
  4637. fsFontUse (USHORT) 
  4638.    Font-use indicators. 
  4639.  
  4640.    These flags indicate how the font is to be used. They affect presentation 
  4641.    speed and font quality. 
  4642.  
  4643.    FATTR_FONTUSE_NOMIX 
  4644.       Text is not mixed with graphics and can be written without regard to any 
  4645.       interaction with graphics objects. 
  4646.    FATTR_FONTUSE_OUTLINE 
  4647.       Select an outline (vector) font. The font characters can be used as part 
  4648.       of a path definition. 
  4649.  
  4650.       If this flag is not set, an outline font might or might not be selected. 
  4651.       If an outline font is selected, however, character widths are rounded to 
  4652.       an integral number of pels. 
  4653.    FATTR_FONTUSE_TRANSFORMABLE 
  4654.       Characters can be transformed (for example, scaled, rotated, or sheared). 
  4655.  
  4656.  
  4657. ΓòÉΓòÉΓòÉ 4.60. FDATE ΓòÉΓòÉΓòÉ
  4658.  
  4659. FDATE Date data structure for file-system functions. 
  4660.  
  4661. typedef struct _FDATE {
  4662. USHORT    day:5;          /* Day */
  4663. USHORT    month:4;        /* Month */
  4664. USHORT    year:7;         /* Years since 1980 */
  4665.  } FDATE;
  4666.  
  4667.  
  4668. ΓòÉΓòÉΓòÉ <hidden> day:5 ΓòÉΓòÉΓòÉ
  4669.  
  4670. day:5 (USHORT) 
  4671.  
  4672.    Binary day for directory entry. 
  4673.  
  4674.  
  4675. ΓòÉΓòÉΓòÉ <hidden> month:4 ΓòÉΓòÉΓòÉ
  4676.  
  4677. month:4 (USHORT) 
  4678.  
  4679.    Binary month for directory entry. 
  4680.  
  4681.  
  4682. ΓòÉΓòÉΓòÉ <hidden> year:7 ΓòÉΓòÉΓòÉ
  4683.  
  4684. year:7 (USHORT) 
  4685.  
  4686.    The number of years since 1980 for this directory entry. 
  4687.  
  4688.  
  4689. ΓòÉΓòÉΓòÉ 4.61. FFDESCS ΓòÉΓòÉΓòÉ
  4690.  
  4691. FFDESCS Font-file descriptor. 
  4692.  
  4693. typedef CHAR FFDESCS[2][FACESIZE];
  4694.  
  4695.  
  4696. ΓòÉΓòÉΓòÉ 4.62. FFDESCS2 ΓòÉΓòÉΓòÉ
  4697.  
  4698. FFDESCS2 Font-file descriptor. 
  4699.  
  4700. typedef struct _FFDESCS2 {
  4701. ULONG    cbLength;          /* Structure length  */
  4702. ULONG    cbFacenameOffset;  /* Offset of Facename in the structure  */
  4703. BYTE     abFamilyName[1];   /* Family name  */
  4704.  } FFDESCS2;
  4705.  
  4706.  
  4707. ΓòÉΓòÉΓòÉ <hidden> cbLength ΓòÉΓòÉΓòÉ
  4708.  
  4709. cbLength (ULONG) 
  4710.    Structure length. 
  4711.  
  4712.    cbLength is the overall length of the FFDESCS2 structure. It is always 
  4713.    rounded up to a multiple of four. 
  4714.  
  4715.  
  4716. ΓòÉΓòÉΓòÉ <hidden> cbFacenameOffset ΓòÉΓòÉΓòÉ
  4717.  
  4718. cbFacenameOffset (ULONG) 
  4719.    Offset of Facename in the structure. 
  4720.  
  4721.    The facename is a null terminated string. It starts at cbFacenameOffset 
  4722.    bytes offset into FFDESCS2. 
  4723.  
  4724.  
  4725. ΓòÉΓòÉΓòÉ <hidden> abFamilyName[1] ΓòÉΓòÉΓòÉ
  4726.  
  4727. abFamilyName[1] (BYTE) 
  4728.    Family name. 
  4729.  
  4730.    abFamilyName[1] is a null terminated string. 
  4731.  
  4732.  
  4733. ΓòÉΓòÉΓòÉ 4.63. FIELDINFO ΓòÉΓòÉΓòÉ
  4734.  
  4735. FIELDINFO Structure that contains information about column data in the details 
  4736. view of the container control. The details view displays each FIELDINFO 
  4737. structure as a column of data that contains specific information about each 
  4738. container record. For example, one FIELDINFO structure, or column, might 
  4739. contain icons or bit maps that represent each container record. Another 
  4740. FIELDINFO structure might contain the date or time that each container record 
  4741. was created. 
  4742.  
  4743. typedef struct _FIELDINFO {
  4744. ULONG              cb;              /* Structure size  */
  4745. ULONG              flData;          /* Data attributes  */
  4746. ULONG              flTitle;         /* Attributes of column headings  */
  4747. PVOID              pTitleData;      /* Column heading data  */
  4748. ULONG              offStruct;       /* Structure offset  */
  4749. PVOID              pUserData;       /* Pointer  */
  4750. struct _FIELDINFO *pNextFieldInfo;  /* Pointer  */
  4751. ULONG              cxWidth;         /* Column width  */
  4752.  } FIELDINFO;
  4753.  
  4754.  
  4755. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  4756.  
  4757. cb (ULONG) 
  4758.    Structure size. 
  4759.  
  4760.    The size (in bytes) of the FIELDINFO structure. 
  4761.  
  4762.  
  4763. ΓòÉΓòÉΓòÉ <hidden> flData ΓòÉΓòÉΓòÉ
  4764.  
  4765. flData (ULONG) 
  4766.    Data attributes. 
  4767.  
  4768.    Attributes of the data in a field. 
  4769.  
  4770.    o Specify one of the following for each column to choose the type of data 
  4771.      that is displayed in each column: 
  4772.  
  4773.       CFA_BITMAPORICON 
  4774.          The column contains bit-map or icon data. 
  4775.       CFA_STRING 
  4776.          Character or text data is displayed in this column. 
  4777.       CFA_ULONG 
  4778.          Unsigned number data is displayed in this column. National Language 
  4779.          Support (NLS) is enabled for number format. 
  4780.       CFA_DATE 
  4781.          The data in the column is displayed in date format. National Language 
  4782.          Support (NLS) is enabled for date format. Use the data structure 
  4783.          described in CDATE. 
  4784.       CFA_TIME 
  4785.          The data in the column is displayed in time format. National Language 
  4786.          Support (NLS) is enabled for time format. Use the data structure 
  4787.          described in CTIME. 
  4788.  
  4789.    o Specify any or all of the following column attributes: 
  4790.  
  4791.       CFA_HORZSEPARATOR 
  4792.          A horizontal separator is provided beneath column headings. 
  4793.       CFA_SEPARATOR 
  4794.          A vertical separator is drawn after this column. 
  4795.       CFA_OWNER 
  4796.          Ownerdraw is enabled for this container column. 
  4797.       CFA_INVISIBLE 
  4798.          Invisible container column. The default is visible. 
  4799.       CFA_FIREADONLY 
  4800.          Prevents text in a FIELDINFO data structure (text in a column) from 
  4801.          being edited directly. This attribute applies only to columns for 
  4802.          which the CFA_STRING attribute has been specified. 
  4803.  
  4804.    o Specify one of the following for each column to vertically position data 
  4805.      in that column: 
  4806.  
  4807.       CFA_TOP 
  4808.          Top-justifies field data. 
  4809.       CFA_BOTTOM 
  4810.          Bottom-justifies field data. 
  4811.       CFA_VCENTER 
  4812.          Vertically centers field data. This is the default. 
  4813.  
  4814.    o Specify one of the following for each column to horizontally position data 
  4815.      in that column. These attributes can be combined with the attributes used 
  4816.      for vertical positioning of column data by using an OR operator (|). 
  4817.  
  4818.       CFA_CENTER 
  4819.          Horizontally centers field data. 
  4820.       CFA_LEFT 
  4821.          Left-justifies field data. This is the default. 
  4822.       CFA_RIGHT 
  4823.          Right-justifies field data. 
  4824.  
  4825.  
  4826. ΓòÉΓòÉΓòÉ <hidden> flTitle ΓòÉΓòÉΓòÉ
  4827.  
  4828. flTitle (ULONG) 
  4829.    Attributes of column headings. 
  4830.  
  4831.    o Specify the following if icon or bit-map data is to be displayed in the 
  4832.      column heading: 
  4833.  
  4834.       CFA_BITMAPORICON 
  4835.          The column heading contains icon or bit-map data. If CFA_BITMAPORICON 
  4836.          is not specified, any data that is assigned to a column heading is 
  4837.          assumed to be character or text data. 
  4838.  
  4839.    o Specify the following to prevent direct editing of a column heading: 
  4840.  
  4841.       CFA_FITITLEREADONLY 
  4842.          Prevents a column heading from being edited directly. 
  4843.  
  4844.    o Specify one of the following for each column heading to vertically 
  4845.      position data in that column heading: 
  4846.  
  4847.       CFA_TOP 
  4848.          Top-justifies column headings. 
  4849.       CFA_BOTTOM 
  4850.          Bottom-justifies column headings. 
  4851.       CFA_VCENTER 
  4852.          Vertically centers column headings. This is the default. 
  4853.  
  4854.    o Specify one of the following for each column heading to horizontally 
  4855.      position data in that column heading. These attributes can be combined 
  4856.      with the attributes used for vertical positioning of column heading data 
  4857.      by using an OR operator (|). 
  4858.  
  4859.       CFA_CENTER 
  4860.          Horizontally centers column headings. 
  4861.       CFA_LEFT 
  4862.          Left-justifies column headings. This is the default. 
  4863.       CFA_RIGHT 
  4864.          Right-justifies column headings. 
  4865.  
  4866.  
  4867. ΓòÉΓòÉΓòÉ <hidden> pTitleData ΓòÉΓòÉΓòÉ
  4868.  
  4869. pTitleData (PVOID) 
  4870.    Column heading data. 
  4871.  
  4872.    Column heading data, which can be a text string, or an icon or bit map. The 
  4873.    default is a text string. If the flTitle field is set to the 
  4874.    CFA_BITMAPORICON attribute, this must be an icon or bit map. 
  4875.  
  4876.  
  4877. ΓòÉΓòÉΓòÉ <hidden> offStruct ΓòÉΓòÉΓòÉ
  4878.  
  4879. offStruct (ULONG) 
  4880.    Structure offset. 
  4881.  
  4882.    Offset from the beginning of a RECORDCORE structure to the data that is 
  4883.    displayed in this column. 
  4884.  
  4885.    Note:  If the CCS_MINIRECORDCORE style bit is specified when a container is 
  4886.    created, then MINIRECORDCORE should be used instead of RECORDCORE and 
  4887.    PMINIRECORDCORE should be used instead of PRECORDCORE in all applicable data 
  4888.    structures and messages. 
  4889.  
  4890.  
  4891. ΓòÉΓòÉΓòÉ <hidden> pUserData ΓòÉΓòÉΓòÉ
  4892.  
  4893. pUserData (PVOID) 
  4894.    Pointer. 
  4895.  
  4896.    Pointer to user data. 
  4897.  
  4898.  
  4899. ΓòÉΓòÉΓòÉ <hidden> pNextFieldInfo ΓòÉΓòÉΓòÉ
  4900.  
  4901. pNextFieldInfo (struct _FIELDINFO *) 
  4902.    Pointer to the next linked FIELDINFO data structure. 
  4903.  
  4904.  
  4905. ΓòÉΓòÉΓòÉ <hidden> cxWidth ΓòÉΓòÉΓòÉ
  4906.  
  4907. cxWidth (ULONG) 
  4908.    Column width. 
  4909.  
  4910.    Used to specify the width of a column. The default is an automatically sized 
  4911.    column that is always the width of its widest element. If this field is set 
  4912.    and the data is too wide, the data is truncated. 
  4913.  
  4914.  
  4915. ΓòÉΓòÉΓòÉ 4.64. FIELDINFOINSERT ΓòÉΓòÉΓòÉ
  4916.  
  4917. FIELDINFOINSERT Structure that contains information about the FIELDINFO 
  4918. structure or structures that are being inserted into a container. This 
  4919. structure is used in the CM_INSERTDETAILFIELDINFO container message only. 
  4920.  
  4921. typedef struct _FIELDINFOINSERT {
  4922. ULONG         cb;                    /* Structure size  */
  4923. PFIELDINFO    pFieldInfoOrder;       /* Column order  */
  4924. ULONG         fInvalidateFieldInfo;  /* Update flag  */
  4925. ULONG         cFieldInfoInsert;      /* Number of columns  */
  4926.  } FIELDINFOINSERT;
  4927.  
  4928.  
  4929. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  4930.  
  4931. cb (ULONG) 
  4932.    Structure size. 
  4933.  
  4934.    The size (in bytes) of the FIELDINFOINSERT structure. 
  4935.  
  4936.  
  4937. ΓòÉΓòÉΓòÉ <hidden> pFieldInfoOrder ΓòÉΓòÉΓòÉ
  4938.  
  4939. pFieldInfoOrder (PFIELDINFO) 
  4940.    Column order. 
  4941.  
  4942.    Orders the FIELDINFO structure or structures relative to other FIELDINFO 
  4943.    structures in the container. The values can be: 
  4944.  
  4945.    CMA_FIRST 
  4946.       Places a FIELDINFO structure, or list of FIELDINFO structures, at the 
  4947.       front of the list of columns. 
  4948.    CMA_END 
  4949.       Places a FIELDINFO structure, or list of FIELDINFO structures, at the end 
  4950.       of the list of columns. 
  4951.    Other 
  4952.       Pointer to a FIELDINFO structure that this structure, or list of 
  4953.       structures, is to be inserted after. 
  4954.  
  4955.  
  4956. ΓòÉΓòÉΓòÉ <hidden> fInvalidateFieldInfo ΓòÉΓòÉΓòÉ
  4957.  
  4958. fInvalidateFieldInfo (ULONG) 
  4959.    Update flag. 
  4960.  
  4961.    Flag that indicates an automatic display update after the FIELDINFO 
  4962.    structures are inserted. 
  4963.  
  4964.    TRUE 
  4965.       The display is automatically updated after FIELDINFO structures are 
  4966.       inserted. 
  4967.    FALSE 
  4968.       The application must send the CM_INVALIDATEDETAILFIELDINFO message after 
  4969.       the FIELDINFO structures are inserted. 
  4970.  
  4971.  
  4972. ΓòÉΓòÉΓòÉ <hidden> cFieldInfoInsert ΓòÉΓòÉΓòÉ
  4973.  
  4974. cFieldInfoInsert (ULONG) 
  4975.    Number of columns. 
  4976.  
  4977.    The number of FIELDINFO structures to be inserted. The cFieldInfoInsert 
  4978.    field value must be greater than 0. 
  4979.  
  4980.  
  4981. ΓòÉΓòÉΓòÉ 4.65. FILEDLG ΓòÉΓòÉΓòÉ
  4982.  
  4983. FILEDLG File-dialog structure. 
  4984.  
  4985. typedef struct _FILEDLG {
  4986. ULONG      cbSize;                            /* Structure size  */
  4987. ULONG      fl;                                /* FDS_* flags  */
  4988. ULONG      ulUser;                            /* Used by the application  */
  4989. LONG       lReturn;                           /* Result code  */
  4990. LONG       lSRC;                              /* System return code  */
  4991. PSZ        pszTitle;                          /* Dialog title string  */
  4992. PSZ        pszOKButton;                       /* OK push button text  */
  4993. PFNWP      pfnDlgProc;                        /* Custom dialog procedure  */
  4994. PSZ        pszIType;                          /* Extended-attribute type filter  */
  4995. PAPSZ      papszITypeList;                    /* Pointer  */
  4996. PSZ        pszIDrive;                         /* The initial drive  */
  4997. PAPSZ      papszIDriveList;                   /* Pointer  */
  4998. HMODULE    hMod;                              /* Module for custom dialog resources  */
  4999. CHAR       szFullFile[CCHMAXPATH];            /* Character array  */
  5000. PAPSZ      papszFQFilename;                   /* Pointer  */
  5001. ULONG      ulFQFCount;                        /* Number of file names  */
  5002. USHORT     usDlgId;                           /* Custom dialog ID  */
  5003. SHORT      x;                                 /* X-axis dialog position  */
  5004. SHORT      y;                                 /* Y-axis dialog position  */
  5005. SHORT      sEAType;                           /* Selected extended-attribute type  */
  5006.  } FILEDLG;
  5007.  
  5008.  
  5009. ΓòÉΓòÉΓòÉ <hidden> cbSize ΓòÉΓòÉΓòÉ
  5010.  
  5011. cbSize (ULONG) 
  5012.    Structure size. 
  5013.  
  5014.    Size of the structure. This field allows future expansion of the structure 
  5015.    and must be initialized with the size of the FILEDLG structure. 
  5016.  
  5017.  
  5018. ΓòÉΓòÉΓòÉ <hidden> fl ΓòÉΓòÉΓòÉ
  5019.  
  5020. fl (ULONG) 
  5021.    FDS_* flags. 
  5022.  
  5023.    Several flags can be specified to alter the behavior of the dialog. 
  5024.  
  5025.    Note:  The dialog must be either an "Open" or a "Save As" dialog. If neither 
  5026.           the FDS_OPEN_DIALOG nor the FDS_SAVEAS_DIALOG flag is set, or if both 
  5027.           are set, the dialog will return an error. 
  5028.  
  5029.    FDS_APPLYBUTTON 
  5030.       An Apply push button is added to the dialog. This is useful in a modeless 
  5031.       dialog. 
  5032.    FDS_CENTER 
  5033.       The dialog is positioned in the center of its parent window, overriding 
  5034.       any specified x, y position. 
  5035.    FDS_CUSTOM 
  5036.       A custom dialog template is used to create the dialog. The hMod and 
  5037.       usDlgId fields must be initialized. 
  5038.    FDS_ENABLEFILELB 
  5039.       When this flag is set, the Files list box on a Save As dialog is enabled. 
  5040.       When this flag is not set, the Files list box is not enabled for a Save 
  5041.       As dialog. This is the default. 
  5042.    FDS_FILTERUNION 
  5043.       When this flag is set, the dialog uses the union of the string filter and 
  5044.       the extended-attribute type filter when filtering files for the Files 
  5045.       list box. When this flag is not set, the list box, by default, uses the 
  5046.       intersection of the two. 
  5047.    FDS_HELPBUTTON 
  5048.       A Help push button of style (BS_HELP|BS_NOPOINTERFOCUS) with an ID of 
  5049.       DID_HELP_PB is added to the dialog. When this push button is pressed, a 
  5050.       WM_HELP message is sent to hwndO. 
  5051.    FDS_INCLUDE_EAS 
  5052.       If this flag is set, the dialog will always query extended attribute 
  5053.       information for files as it fills the Files list box. The default is to 
  5054.       not query the information unless an extended attribute type filter has 
  5055.       been selected. 
  5056.    FDS_MODELESS 
  5057.       When this flag is set, the dialog is modeless; WinFileDlg returns 
  5058.       immediately after creating the dialog window and returns the window 
  5059.       handle to the application. The application should treat the dialog as if 
  5060.       it were created with WinLoadDlg. As in the modal (default) dialog case, 
  5061.       the return value is found in the lReturn field of the FILEDLG structure 
  5062.       passed to WinFileDlg. 
  5063.    FDS_MULTIPLESEL 
  5064.       When this flag is set, the Files list box for the dialog is a multiple 
  5065.       selection list box. When this flag is not set, the default is a 
  5066.       single-selection list box. 
  5067.    FDS_OPEN_DIALOG 
  5068.       The dialog is an "Open" dialog when this flag is set. 
  5069.    FDS_PRELOAD_VOLINFO 
  5070.       If this flag is set, the dialog will preload the volume information for 
  5071.       the drives and will preset the current default directory for each drive. 
  5072.       The default behavior is for the volume label to be blank and the initial 
  5073.       directory will be the root directory for each drive. 
  5074.    FDS_SAVEAS_DIALOG 
  5075.       The dialog is a "Save As" dialog when this flag is set. 
  5076.  
  5077.  
  5078. ΓòÉΓòÉΓòÉ <hidden> ulUser ΓòÉΓòÉΓòÉ
  5079.  
  5080. ulUser (ULONG) 
  5081.    Used by the application. 
  5082.  
  5083.    This field can be used by an application that is subclassing the file dialog 
  5084.    to store its own state information. 
  5085.  
  5086.  
  5087. ΓòÉΓòÉΓòÉ <hidden> lReturn ΓòÉΓòÉΓòÉ
  5088.  
  5089. lReturn (LONG) 
  5090.    Result code. 
  5091.  
  5092.    Result code from dialog dismissal. This field contains the ID of the push 
  5093.    button pressed to dismiss the dialog, DID_OK or DID_CANCEL, unless the 
  5094.    application supplies additional push buttons in its template. If an error 
  5095.    occurs on dialog invocation, this field is set to zero. 
  5096.  
  5097.  
  5098. ΓòÉΓòÉΓòÉ <hidden> lSRC ΓòÉΓòÉΓòÉ
  5099.  
  5100. lSRC (LONG) 
  5101.    System return code. 
  5102.  
  5103.    This field contains an FDS_ERR return code. When a dialog fails, this field 
  5104.    is used to tell the application the reason for the failure. 
  5105.  
  5106.  
  5107. ΓòÉΓòÉΓòÉ <hidden> pszTitle ΓòÉΓòÉΓòÉ
  5108.  
  5109. pszTitle (PSZ) 
  5110.    Dialog title string. 
  5111.  
  5112.    When this field is NULL, the dialog title defaults to the name of the dialog 
  5113.    currently running. 
  5114.  
  5115.  
  5116. ΓòÉΓòÉΓòÉ <hidden> pszOKButton ΓòÉΓòÉΓòÉ
  5117.  
  5118. pszOKButton (PSZ) 
  5119.    OK push button text. 
  5120.  
  5121.    This string is used to set the text of the OK push button. The default text 
  5122.    is OK. 
  5123.  
  5124.  
  5125. ΓòÉΓòÉΓòÉ <hidden> pfnDlgProc ΓòÉΓòÉΓòÉ
  5126.  
  5127. pfnDlgProc (PFNWP) 
  5128.    Custom dialog procedure. 
  5129.  
  5130.    NULL unless the caller is subclassing the file dialog. When non-NULL, it 
  5131.    points to the dialog procedure of the application. 
  5132.  
  5133.  
  5134. ΓòÉΓòÉΓòÉ <hidden> pszIType ΓòÉΓòÉΓòÉ
  5135.  
  5136. pszIType (PSZ) 
  5137.    Extended-attribute type filter. 
  5138.  
  5139.    This field contains a pointer to the initial extended-attribute type filter 
  5140.    that is applied to the initial dialog screen. This filter is not required to 
  5141.    be in papszITypeList. 
  5142.  
  5143.  
  5144. ΓòÉΓòÉΓòÉ <hidden> papszITypeList ΓòÉΓòÉΓòÉ
  5145.  
  5146. papszITypeList (PAPSZ) 
  5147.    Pointer. 
  5148.  
  5149.    Pointer to a table of pointers to extended-attribute types. Each pointer in 
  5150.    the table points to a NULL-terminated string, and each string is an 
  5151.    extended-attribute type. These types are sorted in ascending order in the 
  5152.    Type drop-down box. The end of the table is marked by a null pointer. To 
  5153.    specify an empty table, the application sets this field to NULL, or it 
  5154.    specifies a table containing only a null pointer. 
  5155.  
  5156.  
  5157. ΓòÉΓòÉΓòÉ <hidden> pszIDrive ΓòÉΓòÉΓòÉ
  5158.  
  5159. pszIDrive (PSZ) 
  5160.    The initial drive. 
  5161.  
  5162.    This field contains a pointer to a string that specifies the initial drive 
  5163.    applied to the initial dialog screen. This drive is not required to be in 
  5164.    papszIDriveList. 
  5165.  
  5166.  
  5167. ΓòÉΓòÉΓòÉ <hidden> papszIDriveList ΓòÉΓòÉΓòÉ
  5168.  
  5169. papszIDriveList (PAPSZ) 
  5170.    Pointer. 
  5171.  
  5172.    Pointer to a table of pointers to drives. Each pointer in the table points 
  5173.    to a NULL-terminated string, and each string is a valid drive or network 
  5174.    identifier. These drives and network IDs will be sorted in ascending order 
  5175.    in the Drive drop-down box. The end of the table is marked by a null 
  5176.    pointer. To specify an empty table, the application sets this field to NULL, 
  5177.    or it specifies a table containing only a null pointer. 
  5178.  
  5179.  
  5180. ΓòÉΓòÉΓòÉ <hidden> hMod ΓòÉΓòÉΓòÉ
  5181.  
  5182. hMod (HMODULE) 
  5183.    Module for custom dialog resources. 
  5184.  
  5185.    If FDS_CUSTOM is set, this is the HMODULE from which the custom file dialog 
  5186.    template is loaded. NULLHANDLE causes the dialog resource to be pulled from 
  5187.    the module of the current EXE. 
  5188.  
  5189.  
  5190. ΓòÉΓòÉΓòÉ <hidden> szFullFile[CCHMAXPATH] ΓòÉΓòÉΓòÉ
  5191.  
  5192. szFullFile[CCHMAXPATH] (CHAR) 
  5193.    Character array. 
  5194.  
  5195.    An array of characters where CCHMAXPATH is a system-defined constant. On 
  5196.    initialization, this field contains the initial fully-qualified path and 
  5197.    file name. On completion, this field contains the selected fully-qualified 
  5198.    path and file name. The simple file name can be replaced with a string 
  5199.    filter, such as *.DAT. When the dialog is invoked, all drive and path 
  5200.    information is stripped from the entry and moved to the corresponding fields 
  5201.    in the dialog. 
  5202.    When a file name is specified, the Files list box is scrolled to the 
  5203.    matching file name. When there is no exact match, the closest match is used. 
  5204.    When a string filter is specified, the dialog is initially refreshed using 
  5205.    the results of this filter intersected with the results of pszIType. After 
  5206.    the dialog is initially shown, the string filter remains in the file name 
  5207.    field until a file is selected, or the user overtypes the value. 
  5208.    When a file is selected, szFullFile is returned to the calling application 
  5209.    and is set to the selected fully-qualified file name. 
  5210.    When more than one file is selected in a multiple file selection dialog, 
  5211.    only the topmost selected file name is returned in this field. 
  5212.  
  5213.  
  5214. ΓòÉΓòÉΓòÉ <hidden> papszFQFilename ΓòÉΓòÉΓòÉ
  5215.  
  5216. papszFQFilename (PAPSZ) 
  5217.    Pointer. 
  5218.  
  5219.    Pointer to a table of pointers to fully-qualified file names. Returned to 
  5220.    multiple file selection dialogs when the user selects one or more files from 
  5221.    the list box. If the user types the file name in the file name entry field, 
  5222.    the file name will be in szFullFile and this pointer will be NULL. When one 
  5223.    or more selections are made, the count of items in this array will be 
  5224.    returned in ulFQFCount. 
  5225.    This table of pointers is storage allocated by the file dialog. When the 
  5226.    application completes opening or saving all of the files specified, the 
  5227.    application must call WinFreeFileDlgList to free the storage allocated by 
  5228.    the file dialog. 
  5229.  
  5230.  
  5231. ΓòÉΓòÉΓòÉ <hidden> ulFQFCount ΓòÉΓòÉΓòÉ
  5232.  
  5233. ulFQFCount (ULONG) 
  5234.    Number of file names. 
  5235.  
  5236.    Number of file names selected in the dialog. In a single file selection 
  5237.    dialog, this value is 1. In a multiple file selection dialog, this value 
  5238.    will be the number of files selected by the user. 
  5239.  
  5240.  
  5241. ΓòÉΓòÉΓòÉ <hidden> usDlgId ΓòÉΓòÉΓòÉ
  5242.  
  5243. usDlgId (USHORT) 
  5244.    Custom dialog ID. 
  5245.  
  5246.    The ID of the dialog window. When FDS_CUSTOM is set, this field contains the 
  5247.    ID of the resource containing the custom dialog template. 
  5248.  
  5249.  
  5250. ΓòÉΓòÉΓòÉ <hidden> x ΓòÉΓòÉΓòÉ
  5251.  
  5252. x (SHORT) 
  5253.    X-axis dialog position. 
  5254.  
  5255.    This, along with y and hwndP, is used to position the dialog. It is updated 
  5256.    in the structure if the user moves the dialog to a new position. If the 
  5257.    FILEDLG structure is reused, the dialog appears in the position at which it 
  5258.    was left each time it is invoked. The FDS_CENTER flag overrides this 
  5259.    position and automatically centers the dialog in its parent. 
  5260.  
  5261.  
  5262. ΓòÉΓòÉΓòÉ <hidden> y ΓòÉΓòÉΓòÉ
  5263.  
  5264. y (SHORT) 
  5265.    Y-axis dialog position. 
  5266.  
  5267.    This, along with x and hwndP, is used to position the dialog. It is updated 
  5268.    in the structure if the user moves the dialog to a new position. If the 
  5269.    FILEDLG structure is reused, the dialog appears in the position at which it 
  5270.    was left each time it is invoked. The FDS_CENTER flag overrides this 
  5271.    position and automatically centers the dialog in its parent. 
  5272.  
  5273.  
  5274. ΓòÉΓòÉΓòÉ <hidden> sEAType ΓòÉΓòÉΓòÉ
  5275.  
  5276. sEAType (SHORT) 
  5277.    Selected extended-attribute type. 
  5278.  
  5279.    Returns a selected extended-attribute type to assign to the file name 
  5280.    returned in szFullFile. This field is a zero-based offset into the 
  5281.    papszITypeList and is returned only when the Save As dialog is used. A -1 
  5282.    value is returned when the Open dialog is used. 
  5283.  
  5284.  
  5285. ΓòÉΓòÉΓòÉ 4.66. FIXED ΓòÉΓòÉΓòÉ
  5286.  
  5287. FIXED Signed-integer fraction (16:16). This can be treated as a LONG where the 
  5288. value has been multiplied by 65 536. 
  5289.  
  5290. typedef LONG FIXED;
  5291.  
  5292.  
  5293. ΓòÉΓòÉΓòÉ 4.67. FONTDLG ΓòÉΓòÉΓòÉ
  5294.  
  5295. FONTDLG Font-dialog structure. 
  5296.  
  5297. typedef struct _FONTDLG {
  5298. ULONG      cbSize;             /* Structure size  */
  5299. HPS        hpsScreen;          /* Screen presentation space  */
  5300. HPS        hpsPrinter;         /* Printer presentation space  */
  5301. PSZ        pszTitle;           /* Dialog title string  */
  5302. PSZ        pszPreview;         /* Font-preview window string  */
  5303. PSZ        pszPtSizeList;      /* Application-provided point size list  */
  5304. PFNWP      pfnDlgProc;         /* Custom dialog procedure  */
  5305. PSZ        pszFamilyname;      /* Family name buffer  */
  5306. FIXED      fxPointSize;        /* Point size of the font  */
  5307. ULONG      fl;                 /* FNTS_* flags  */
  5308. ULONG      flFlags;            /* FNTF_* flags  */
  5309. ULONG      flType;             /* The selected type bits  */
  5310. ULONG      flTypeMask;         /* Mask of type bits to use  */
  5311. ULONG      flStyle;            /* Selected style bits  */
  5312. ULONG      flStyleMask;        /* Mask of style bits to use  */
  5313. LONG       clrFore;            /* Font foreground color  */
  5314. LONG       clrBack;            /* Font background color  */
  5315. ULONG      ulUser;             /* Application-defined  */
  5316. LONG       lReturn;            /* Return value  */
  5317. LONG       lSRC;               /* System return code  */
  5318. LONG       lEmHeight;          /* Em height  */
  5319. LONG       lXHeight;           /* X height  */
  5320. LONG       lExternalLeading;   /* External leading  */
  5321. HMODULE    hMod;               /* Module for custom dialog resources  */
  5322. FATTRS     fAttrs;             /* Font-attribute structure  */
  5323. SHORT      sNominalPointSize;  /* Font point size  */
  5324. USHORT     usWeight;           /* Font weight  */
  5325. USHORT     usWidth;            /* Font width  */
  5326. SHORT      x;                  /* The x-axis dialog position  */
  5327. SHORT      y;                  /* The y-axis dialog position  */
  5328. USHORT     usDlgId;            /* Dialog ID  */
  5329. USHORT     usFamilyBufLen;     /* Buffersize  */
  5330. USHORT     usReserved;         /* Reserved  */
  5331.  } FONTDLG;
  5332.  
  5333.  
  5334. ΓòÉΓòÉΓòÉ <hidden> cbSize ΓòÉΓòÉΓòÉ
  5335.  
  5336. cbSize (ULONG) 
  5337.    Structure size. 
  5338.  
  5339.    Size of structure. This field allows for future expansion of the structure, 
  5340.    and must be initialized with the size of the FONTDLG structure. 
  5341.  
  5342.  
  5343. ΓòÉΓòÉΓòÉ <hidden> hpsScreen ΓòÉΓòÉΓòÉ
  5344.  
  5345. hpsScreen (HPS) 
  5346.    Screen presentation space. 
  5347.  
  5348.    If not NULLHANDLE, the screen presentation space from which screen fonts are 
  5349.    queried. 
  5350.  
  5351.  
  5352. ΓòÉΓòÉΓòÉ <hidden> hpsPrinter ΓòÉΓòÉΓòÉ
  5353.  
  5354. hpsPrinter (HPS) 
  5355.    Printer presentation space. 
  5356.  
  5357.    If not NULLHANDLE, the printer presentation space from which printer font 
  5358.    are queried. 
  5359.  
  5360.  
  5361. ΓòÉΓòÉΓòÉ <hidden> pszTitle ΓòÉΓòÉΓòÉ
  5362.  
  5363. pszTitle (PSZ) 
  5364.    Dialog title string. 
  5365.  
  5366.    Application-provided dialog title. If NULL, it defaults to "Font". 
  5367.  
  5368.  
  5369. ΓòÉΓòÉΓòÉ <hidden> pszPreview ΓòÉΓòÉΓòÉ
  5370.  
  5371. pszPreview (PSZ) 
  5372.    Font-preview window string. 
  5373.  
  5374.    String to show in font-preview window. If NULL, it defaults to "abcdABCD". 
  5375.  
  5376.    Note:  Take care when choosing the string to put in this field. Using many 
  5377.           different characters causes excess memory to be used by the font 
  5378.           cache. 
  5379.  
  5380.  
  5381. ΓòÉΓòÉΓòÉ <hidden> pszPtSizeList ΓòÉΓòÉΓòÉ
  5382.  
  5383. pszPtSizeList (PSZ) 
  5384.    Application-provided point size list. 
  5385.  
  5386.    String which contains a list of point sizes to be used as the default list 
  5387.    for outline fonts in the point-size drop-down area. Point sizes are 
  5388.    separated by spaces. If NULL, the point size drop down defaults to 8, 10, 
  5389.    12, 14, 18, and 24. 
  5390.  
  5391.  
  5392. ΓòÉΓòÉΓòÉ <hidden> pfnDlgProc ΓòÉΓòÉΓòÉ
  5393.  
  5394. pfnDlgProc (PFNWP) 
  5395.    Custom dialog procedure. 
  5396.  
  5397.    NULL unless the caller is subclassing the font dialog. When non-NULL, it 
  5398.    points to the dialog procedure of the application. 
  5399.  
  5400.  
  5401. ΓòÉΓòÉΓòÉ <hidden> pszFamilyname ΓòÉΓòÉΓòÉ
  5402.  
  5403. pszFamilyname (PSZ) 
  5404.    Family name buffer. 
  5405.  
  5406.    Buffer provided by the application for passing the family name of the font. 
  5407.    The font family name used by the application to select a font. When the 
  5408.    first character in this string is NULL, no family name was initially 
  5409.    selected, and the dialog defaults to the system font. 
  5410.    A buffer must be passed to the font dialog to allow the dialog to return the 
  5411.    selected font family name. The size of this buffer is placed in the 
  5412.    usFamilyBufLen field. 
  5413.  
  5414.  
  5415. ΓòÉΓòÉΓòÉ <hidden> fxPointSize ΓòÉΓòÉΓòÉ
  5416.  
  5417. fxPointSize (FIXED) 
  5418.    Point size of the font. 
  5419.  
  5420.    If FNTS_OWNERDRAWPREVIEW is set, 0 means the user wants to leave the font 
  5421.    size unchanged and the application must update the preview area. 
  5422.  
  5423.  
  5424. ΓòÉΓòÉΓòÉ <hidden> fl ΓòÉΓòÉΓòÉ
  5425.  
  5426. fl (ULONG) 
  5427.    FNTS_* flags. 
  5428.  
  5429.    FNTS_APPLYBUTTON 
  5430.       An Apply push button is added to the dialog. This is useful in a modeless 
  5431.       dialog. 
  5432.    FNTS_BITMAPONLY 
  5433.       The dialog presents bit-map fonts only. An application that changes fonts 
  5434.       by using the presentation parameters (PP_* values) could use this flag. 
  5435.    FNTS_CENTER 
  5436.       The dialog is positioned in the center of its parent window, overriding 
  5437.       any specified x,y position. 
  5438.    FNTS_CUSTOM 
  5439.       A custom dialog template is used to create the dialog. The hMod and 
  5440.       usDlgId fields must be initialized. 
  5441.    FNTS_FIXEDWIDTHONLY 
  5442.       The dialog presents fixed-width (monospace) fonts only. 
  5443.    FNTS_HELPBUTTON 
  5444.       A Help push button of style (BS_HELP|BS_NOPOINTERFOCUS) with an ID of 
  5445.       DID_HELP_BUTTON is added to the dialog. If the push button is pressed, a 
  5446.       WM_HELP message is sent to the hwndO parameter of the WinFontDlg function 
  5447.       call. 
  5448.    FNTS_INITFROMFATTRS 
  5449.       The dialog initializes itself from the font attribute structure (FATTRS) 
  5450.       that is passed. 
  5451.    FNTS_MODELESS 
  5452.       The dialog is modeless; WinFontDlg returns immediately after creating the 
  5453.       dialog window and returns the window handle to the application. The 
  5454.       application should treat the dialog as if it were created with 
  5455.       WinLoadDlg. As in the modal (default) dialog case, the return value is 
  5456.       found in the lReturn field of the FONTDLG structure passed to WinFontDlg. 
  5457.    FNTS_NOSYNTHESIZEDFONTS 
  5458.       The dialog does not synthesize any fonts. 
  5459.    FNTS_OWNERDRAWPREVIEW 
  5460.       This flag makes the check boxes in the font dialog three-state check 
  5461.       boxes, enabling the user to leave certain style attributes unchanged. 
  5462.       Additionally, a WM_DRAWITEM message will be sent to the owner, providing 
  5463.       the owner an opportunity to draw the preview window itself. 
  5464.    FNTS_PROPORTIONALONLY 
  5465.       The dialog presents proportionally spaced fonts only. 
  5466.    FNTS_RESETBUTTON 
  5467.       A Reset push button is added to the dialog. When this push button is 
  5468.       pressed, the values for the dialog are restored to their initial values. 
  5469.    FNTS_VECTORONLY 
  5470.       The dialog presents vector fonts only. 
  5471.  
  5472.  
  5473. ΓòÉΓòÉΓòÉ <hidden> flFlags ΓòÉΓòÉΓòÉ
  5474.  
  5475. flFlags (ULONG) 
  5476.    FNTF_* flags. 
  5477.  
  5478.    FNTF_NOVIEWPRINTERFONTS 
  5479.       This flag is initialized only when both hpsScreen and hpsPrinter are not 
  5480.       NULLHANDLE. On input, this parameter determines whether the printer fonts 
  5481.       are to be included in the font list box. The user controls this with a 
  5482.       check box. 
  5483.    FNTF_NOVIEWSCREENFONTS 
  5484.       This flag is initialized only when both hpsScreen and hpsPrinter are not 
  5485.       NULLHANDLE. On input, this parameter determines whether the screen fonts 
  5486.       should be included in the font list box. The user controls this with a 
  5487.       check box. 
  5488.    FNTF_PRINTERFONTSELECTED 
  5489.       This determines if a printer-specific font is selected by the user. The 
  5490.       application should make an approximation of this printer font when 
  5491.       outputting to the screen. This is an output-only flag and is ignored on 
  5492.       input. 
  5493.    FNTF_SCREENFONTSELECTED 
  5494.       This determines if a screen-specific font is selected by the user. The 
  5495.       application should make an approximation of this screen font when 
  5496.       outputting to the screen. This is an output-only flag and is ignored on 
  5497.       input. 
  5498.  
  5499.  
  5500. ΓòÉΓòÉΓòÉ <hidden> flType ΓòÉΓòÉΓòÉ
  5501.  
  5502. flType (ULONG) 
  5503.    The selected type bits. 
  5504.  
  5505.    These flags specify what additional attributes the user specified for the 
  5506.    font. This field is used as the flOptions field in the FACENAMEDESC 
  5507.    structure for GpiQueryFaceString. 
  5508.  
  5509.  
  5510. ΓòÉΓòÉΓòÉ <hidden> flTypeMask ΓòÉΓòÉΓòÉ
  5511.  
  5512. flTypeMask (ULONG) 
  5513.    Mask of type bits to use. 
  5514.  
  5515.    This field is used only if FNTS_OWNERDRAWPREVIEW is specified. It tells 
  5516.    which flags of the flTypeMask field the user wants to change, and is 
  5517.    relevant only if the text for which the font is selected has different faces 
  5518.    and styles. 
  5519.  
  5520.  
  5521. ΓòÉΓòÉΓòÉ <hidden> flStyle ΓòÉΓòÉΓòÉ
  5522.  
  5523. flStyle (ULONG) 
  5524.    Selected style bits. 
  5525.  
  5526.    Flags for any additional selections the user specified for the font. This 
  5527.    field is used as the fsSelection field in the FATTRS structure passed to 
  5528.    GpiCreateLogFont. 
  5529.  
  5530.  
  5531. ΓòÉΓòÉΓòÉ <hidden> flStyleMask ΓòÉΓòÉΓòÉ
  5532.  
  5533. flStyleMask (ULONG) 
  5534.    Mask of style bits to use. 
  5535.  
  5536.    This field is used only if FNTS_OWNERDRAWPREVIEW is specified. It tells 
  5537.    which flags of the flStyle field the user wants to change and is relevant 
  5538.    only if the text for which the font is selected has different faces and 
  5539.    styles. 
  5540.  
  5541.  
  5542. ΓòÉΓòÉΓòÉ <hidden> clrFore ΓòÉΓòÉΓòÉ
  5543.  
  5544. clrFore (LONG) 
  5545.    Font foreground color. 
  5546.  
  5547.    Foreground color of the font. This color is a value used for the color mode 
  5548.    that hpsScreen is in. If FNTS_OWNERDRAWPREVIEW is specified, this value can 
  5549.    be CLR_NOINDEX, leaving the foreground color "as is". 
  5550.  
  5551.  
  5552. ΓòÉΓòÉΓòÉ <hidden> clrBack ΓòÉΓòÉΓòÉ
  5553.  
  5554. clrBack (LONG) 
  5555.    Font background color. 
  5556.  
  5557.    Background color of the font. This color is a value used for the color mode 
  5558.    that hpsScreen is in. If FNTS_OWNERDRAWPREVIEW is specified, this value can 
  5559.    be CLR_NOINDEX leaving the background color "as is". 
  5560.  
  5561.  
  5562. ΓòÉΓòÉΓòÉ <hidden> ulUser ΓòÉΓòÉΓòÉ
  5563.  
  5564. ulUser (ULONG) 
  5565.    Application-defined. 
  5566.  
  5567.    A ULONG that an application uses to store its state information when it is 
  5568.    subclassing the font dialog. 
  5569.  
  5570.  
  5571. ΓòÉΓòÉΓòÉ <hidden> lReturn ΓòÉΓòÉΓòÉ
  5572.  
  5573. lReturn (LONG) 
  5574.    Return value. 
  5575.  
  5576.    Return value from WinFontDlg. This value is the ID of the push button 
  5577.    pressed to dismiss the dialog, DID_OK or DID_CANCEL, unless the application 
  5578.    supplied additional push buttons in its template. 
  5579.  
  5580.  
  5581. ΓòÉΓòÉΓòÉ <hidden> lSRC ΓòÉΓòÉΓòÉ
  5582.  
  5583. lSRC (LONG) 
  5584.    System return code. 
  5585.  
  5586.    This field contains an FNTS_ERR return code. When a dialog fails, this field 
  5587.    is used to tell the application the reason for the failure. 
  5588.  
  5589.  
  5590. ΓòÉΓòÉΓòÉ <hidden> lEmHeight ΓòÉΓòÉΓòÉ
  5591.  
  5592. lEmHeight (LONG) 
  5593.    Em height. 
  5594.  
  5595.    The Em height of the current font. This is the same as in the FONTMETRICS 
  5596.    structure. It is an output-only parameter and its value has no effect on the 
  5597.    behavior of the font dialog, but is updated when the user dismisses the 
  5598.    dialog. 
  5599.  
  5600.  
  5601. ΓòÉΓòÉΓòÉ <hidden> lXHeight ΓòÉΓòÉΓòÉ
  5602.  
  5603. lXHeight (LONG) 
  5604.    X height. 
  5605.  
  5606.    The x height of the current font. This is the same as in the FONTMETRICS 
  5607.    structure. It is an output-only parameter and its value has no effect on the 
  5608.    behavior of the font dialog, but is updated when the user dismisses the 
  5609.    dialog. 
  5610.  
  5611.  
  5612. ΓòÉΓòÉΓòÉ <hidden> lExternalLeading ΓòÉΓòÉΓòÉ
  5613.  
  5614. lExternalLeading (LONG) 
  5615.    External leading. 
  5616.  
  5617.    The external leading of the font. This is the same as in the FONTMETRICS 
  5618.    structure. It is an output-only parameter and its value has no effect on the 
  5619.    behavior of the font dialog, but is updated when the user dismisses the 
  5620.    dialog. 
  5621.  
  5622.  
  5623. ΓòÉΓòÉΓòÉ <hidden> hMod ΓòÉΓòÉΓòÉ
  5624.  
  5625. hMod (HMODULE) 
  5626.    Module for custom dialog resources. 
  5627.  
  5628.    If FNTS_CUSTOM is set, this is the HMODULE from which the custom font dialog 
  5629.    template is loaded. NULLHANDLE causes the dialog resource to be pulled from 
  5630.    the module of the current EXE. 
  5631.  
  5632.  
  5633. ΓòÉΓòÉΓòÉ <hidden> fAttrs ΓòÉΓòÉΓòÉ
  5634.  
  5635. fAttrs (FATTRS) 
  5636.    Font-attribute structure. 
  5637.  
  5638.    Font-attribute structure of selected font. The FATTRS for the selected font. 
  5639.    This is output-only for all fields except usCodePage, which is input/output, 
  5640.    and the initial code page value passed is used for font selection. The value 
  5641.    returned is the one for the matching font. 
  5642.  
  5643.  
  5644. ΓòÉΓòÉΓòÉ <hidden> sNominalPointSize ΓòÉΓòÉΓòÉ
  5645.  
  5646. sNominalPointSize (SHORT) 
  5647.    Font point size. 
  5648.  
  5649.    The nominal point size of the font. This is the same as in the FONTMETRICS 
  5650.    structure. It is an output-only parameter and its value has no effect on the 
  5651.    behavior of the font dialog, but is updated when the user dismisses the 
  5652.    dialog. 
  5653.  
  5654.  
  5655. ΓòÉΓòÉΓòÉ <hidden> usWeight ΓòÉΓòÉΓòÉ
  5656.  
  5657. usWeight (USHORT) 
  5658.    Font weight. 
  5659.  
  5660.    The weight of the font. This is the weight-class/boldness the user selects 
  5661.    for the font. This field is used as the usWeightClass field in the 
  5662.    FACENAMEDESC structure for GpiQueryFaceString. When FNTS_OWNERDRAWPREVIEW is 
  5663.    set, 0 causes the application to leave the font weight "as is" and the 
  5664.    application must update the preview area. 
  5665.  
  5666.  
  5667. ΓòÉΓòÉΓòÉ <hidden> usWidth ΓòÉΓòÉΓòÉ
  5668.  
  5669. usWidth (USHORT) 
  5670.    Font width. 
  5671.  
  5672.    The width of the font. This is the width-class the user selects for the 
  5673.    font. This field is used as the usWidthClass field in the FACENAMEDESC 
  5674.    structure for GpiQueryFaceString. When FNTS_OWNERDRAWPREVIEW is set, 0 
  5675.    causes the application to leave the font width "as is" and the application 
  5676.    must update the preview area. 
  5677.  
  5678.  
  5679. ΓòÉΓòÉΓòÉ <hidden> x ΓòÉΓòÉΓòÉ
  5680.  
  5681. x (SHORT) 
  5682.    The x-axis dialog position. 
  5683.  
  5684.    This, along with y and hwndP, is used to position the dialog. It is updated 
  5685.    in the structure if the user moves the dialog to a new position. This way, 
  5686.    the dialog appears in the position at which it was left each time it is 
  5687.    invoked. The FNTS_CENTER flag overrides this position and automatically 
  5688.    centers the dialog in its parent. 
  5689.  
  5690.  
  5691. ΓòÉΓòÉΓòÉ <hidden> y ΓòÉΓòÉΓòÉ
  5692.  
  5693. y (SHORT) 
  5694.    The y-axis dialog position. 
  5695.  
  5696.    This, along with x and hwndP, is used to position the dialog. It is updated 
  5697.    in the structure if the user moves the dialog to a new position. This way, 
  5698.    the dialog appears in the position at which it was left each time it is 
  5699.    invoked. The FNTS_CENTER flag overrides this position and automatically 
  5700.    centers the dialog in its parent. 
  5701.  
  5702.  
  5703. ΓòÉΓòÉΓòÉ <hidden> usDlgId ΓòÉΓòÉΓòÉ
  5704.  
  5705. usDlgId (USHORT) 
  5706.    Dialog ID. 
  5707.  
  5708.    This sets the ID of the dialog window. If FNTS_CUSTOM is set, this is the ID 
  5709.    of the resource that contains the custom dialog template. 
  5710.  
  5711.  
  5712. ΓòÉΓòÉΓòÉ <hidden> usFamilyBufLen ΓòÉΓòÉΓòÉ
  5713.  
  5714. usFamilyBufLen (USHORT) 
  5715.    Buffersize. 
  5716.  
  5717.    Size of the buffer passed in the pszFamilyname resource that contains the 
  5718.    custom dialog template. 
  5719.  
  5720.  
  5721. ΓòÉΓòÉΓòÉ <hidden> usReserved ΓòÉΓòÉΓòÉ
  5722.  
  5723. usReserved (USHORT) 
  5724.    Reserved. 
  5725.  
  5726.    This is a reserved field. 
  5727.  
  5728.  
  5729. ΓòÉΓòÉΓòÉ 4.68. FONTMETRICS ΓòÉΓòÉΓòÉ
  5730.  
  5731. FONTMETRICS Font-metrics structure. 
  5732.  
  5733. This structure is returned to applications on the GpiQueryFonts and 
  5734. GpiQueryFontMetrics calls and conveys information from the font creator to the 
  5735. application. 
  5736.  
  5737. typedef struct _FONTMETRICS {
  5738. CHAR      szFamilyname[FACESIZE];  /* Family name  */
  5739. CHAR      szFacename[FACESIZE];    /* Face name  */
  5740. USHORT    idRegistry;              /* Registry identifier  */
  5741. USHORT    usCodePage;              /* Code page  */
  5742. LONG      lEmHeight;               /* Em height  */
  5743. LONG      lXHeight;                /* x height  */
  5744. LONG      lMaxAscender;            /* Maximum ascender  */
  5745. LONG      lMaxDescender;           /* Maximum descender  */
  5746. LONG      lLowerCaseAscent;        /* Lowercase ascent  */
  5747. LONG      lLowerCaseDescent;       /* Lowercase descent  */
  5748. LONG      lInternalLeading;        /* Internal leading  */
  5749. LONG      lExternalLeading;        /* External leading  */
  5750. LONG      lAveCharWidth;           /* Average character width  */
  5751. LONG      lMaxCharInc;             /* Maximum character increment  */
  5752. LONG      lEmInc;                  /* Em increment  */
  5753. LONG      lMaxBaselineExt;         /* Maximum baseline extent  */
  5754. SHORT     sCharSlope;              /* Character slope  */
  5755. SHORT     sInlineDir;              /* Inline direction  */
  5756. SHORT     sCharRot;                /* Character rotation  */
  5757. USHORT    usWeightClass;           /* Weight class  */
  5758. USHORT    usWidthClass;            /* Width class  */
  5759. SHORT     sXDeviceRes;             /* x-device resolution  */
  5760. SHORT     sYDeviceRes;             /* y-device resolution  */
  5761. SHORT     sFirstChar;              /* First character  */
  5762. SHORT     sLastChar;               /* Last character  */
  5763. SHORT     sDefaultChar;            /* Default character  */
  5764. SHORT     sBreakChar;              /* Break character  */
  5765. SHORT     sNominalPointSize;       /* Nominal point size  */
  5766. SHORT     sMinimumPointSize;       /* Minimum point size  */
  5767. SHORT     sMaximumPointSize;       /* Maximum point size  */
  5768. USHORT    fsType;                  /* Type indicators  */
  5769. USHORT    fsDefn;                  /* Definition indicators  */
  5770. USHORT    fsSelection;             /* Selection indicators  */
  5771. USHORT    fsCapabilities;          /* Capabilities  */
  5772. LONG      lSubscriptXSize;         /* Subscript x-size  */
  5773. LONG      lSubscriptYSize;         /* Subscript y-size  */
  5774. LONG      lSubscriptXOffset;       /* Subscript x-offset  */
  5775. LONG      lSubscriptYOffset;       /* Subscript y-offset  */
  5776. LONG      lSuperscriptXSize;       /* Superscript x-size  */
  5777. LONG      lSuperscriptYSize;       /* Superscript y-size  */
  5778. LONG      lSuperscriptXOffset;     /* Superscript x-offset  */
  5779. LONG      lSuperscriptYOffset;     /* Superscript y-offset  */
  5780. LONG      lUnderscoreSize;         /* Underscore size  */
  5781. LONG      lUnderscorePosition;     /* Underscore position  */
  5782. LONG      lStrikeoutSize;          /* Strikeout size  */
  5783. LONG      lStrikeoutPosition;      /* Strikeout position  */
  5784. SHORT     sKerningPairs;           /* Kerning pairs  */
  5785. SHORT     sFamilyClass;            /* Font family design classification  */
  5786. LONG      lMatch;                  /* Matched font identity  */
  5787. LONG      FamilyNameAtom;          /* Font family name atom  */
  5788. LONG      FaceNameAtom;            /* Font facename atom  */
  5789. PANOSE    panose;                  /* Panose font descriptor  */
  5790.  } FONTMETRICS;
  5791.  
  5792.  
  5793. ΓòÉΓòÉΓòÉ <hidden> szFamilyname[FACESIZE] ΓòÉΓòÉΓòÉ
  5794.  
  5795. szFamilyname[FACESIZE] (CHAR) 
  5796.    Family name. 
  5797.  
  5798.    The family name of the font that describes the basic appearance of the font, 
  5799.    for example, Times New Roman** This string is null terminated, and is thus 
  5800.    limited to 31 characters in length. Longer names may be retrieved by using 
  5801.    the FamilyNameAtom field to retrieve the full name from the System Atom 
  5802.    table. 
  5803.  
  5804.  
  5805. ΓòÉΓòÉΓòÉ <hidden> szFacename[FACESIZE] ΓòÉΓòÉΓòÉ
  5806.  
  5807. szFacename[FACESIZE] (CHAR) 
  5808.    Face name. 
  5809.  
  5810.    The typeface name that defines the particular font, for example, Times New 
  5811.    Roman Bold Italic. This string is null terminated, and is thus limited to 31 
  5812.    characters in length. Longer names may be retrieved by using the 
  5813.    FaceNameAtom field to retrieve the full name from the System Atom table. 
  5814.  
  5815.  
  5816. ΓòÉΓòÉΓòÉ <hidden> idRegistry ΓòÉΓòÉΓòÉ
  5817.  
  5818. idRegistry (USHORT) 
  5819.    Registry identifier. 
  5820.  
  5821.    The IBM registered number (or zero). 
  5822.  
  5823.  
  5824. ΓòÉΓòÉΓòÉ <hidden> usCodePage ΓòÉΓòÉΓòÉ
  5825.  
  5826. usCodePage (USHORT) 
  5827.    Code page. 
  5828.  
  5829.    Defines the registered code page supported by the font. For example, the 
  5830.    original IBM PC code page is 437. A value of 0 implies that the font may be 
  5831.    used with any of the OS/2* supported code pages. 
  5832.    Where a font contains special symbols for which there is no registered code 
  5833.    page, then code page 65400 is used. 
  5834.  
  5835.  
  5836. ΓòÉΓòÉΓòÉ <hidden> lEmHeight ΓòÉΓòÉΓòÉ
  5837.  
  5838. lEmHeight (LONG) 
  5839.    Em height. 
  5840.  
  5841.    The height of the Em square in world coordinate units. This corresponds to 
  5842.    the point size for the font. 
  5843.  
  5844.  
  5845. ΓòÉΓòÉΓòÉ <hidden> lXHeight ΓòÉΓòÉΓòÉ
  5846.  
  5847. lXHeight (LONG) 
  5848.    x height. 
  5849.  
  5850.    The nominal height above the baseline for lowercase characters (ignoring 
  5851.    ascenders) in world coordinate units. 
  5852.  
  5853.  
  5854. ΓòÉΓòÉΓòÉ <hidden> lMaxAscender ΓòÉΓòÉΓòÉ
  5855.  
  5856. lMaxAscender (LONG) 
  5857.    Maximum ascender. 
  5858.  
  5859.    The maximum height above the baseline reached by any part of any symbol in 
  5860.    the font in world coordinate units. This field may exceed lEmHeight. 
  5861.  
  5862.  
  5863. ΓòÉΓòÉΓòÉ <hidden> lMaxDescender ΓòÉΓòÉΓòÉ
  5864.  
  5865. lMaxDescender (LONG) 
  5866.    Maximum descender. 
  5867.  
  5868.    The maximum depth below the baseline reached by any part of any symbol in 
  5869.    the font in world coordinate units. This field may exceed lEmHeight. 
  5870.  
  5871.  
  5872. ΓòÉΓòÉΓòÉ <hidden> lLowerCaseAscent ΓòÉΓòÉΓòÉ
  5873.  
  5874. lLowerCaseAscent (LONG) 
  5875.    Lowercase ascent. 
  5876.  
  5877.    The maximum height above the baseline reached by any part of any lowercase 
  5878.    (Latin unaccented "a" through "z") symbol in the font in world coordinate 
  5879.    units. 
  5880.  
  5881.  
  5882. ΓòÉΓòÉΓòÉ <hidden> lLowerCaseDescent ΓòÉΓòÉΓòÉ
  5883.  
  5884. lLowerCaseDescent (LONG) 
  5885.    Lowercase descent. 
  5886.  
  5887.    The maximum depth below the baseline reached by any part of any lowercase 
  5888.    (Latin unaccented "a" through "z") symbol in the font in world coordinate 
  5889.    units. 
  5890.  
  5891.  
  5892. ΓòÉΓòÉΓòÉ <hidden> lInternalLeading ΓòÉΓòÉΓòÉ
  5893.  
  5894. lInternalLeading (LONG) 
  5895.    Internal leading. 
  5896.  
  5897.  
  5898.    The amount of space which, when subtracted from lMaxAscender, gives a 
  5899.    font-design dependent, but glyph-set independent, measure of the distance 
  5900.    above the baseline that characters extend.  This calculation thus 
  5901.    approximates the visual top to a row of characters without actually looking 
  5902.    at the characters in the row. 
  5903.    The recommended use of this field by applications is to position the first 
  5904.    line of a block of text by subtracting it from lMaxAscender and positioning 
  5905.    the baseline that distance below whatever is above the text. 
  5906.  
  5907.    Note:  This does not guarantee that characters will not overwrite things 
  5908.           above them, but does give a font designer's view of where to place 
  5909.           the text.  Collision should be tested for, and additional space 
  5910.           allocated if necessary. 
  5911.  
  5912.  
  5913. ΓòÉΓòÉΓòÉ <hidden> lExternalLeading ΓòÉΓòÉΓòÉ
  5914.  
  5915. lExternalLeading (LONG) 
  5916.    External leading. 
  5917.  
  5918.  
  5919.    The amount of guaranteed white space advised by the font designer to appear 
  5920.    between adjacent rows of text.  This value may be zero. 
  5921.  
  5922.    Note:  The fonts built in to Presentation Manager have zero in this field. 
  5923.  
  5924.  
  5925. ΓòÉΓòÉΓòÉ <hidden> lAveCharWidth ΓòÉΓòÉΓòÉ
  5926.  
  5927. lAveCharWidth (LONG) 
  5928.    Average character width. 
  5929.  
  5930.  
  5931.    This is determined by multiplying the width of each lowercase character by a 
  5932.    constant, adding the products, and then dividing by 1000. The letters 
  5933.    involved in this, plus their constants, are as follows: 
  5934.  
  5935.    Letter    Constant 
  5936.    a         64 
  5937.    b         14 
  5938.    c         27 
  5939.    d         35 
  5940.    e         100 
  5941.    f         20 
  5942.    g         14 
  5943.    h         42 
  5944.    i         63 
  5945.    j         3 
  5946.    k         6 
  5947.    l         35 
  5948.    m         20 
  5949.    n         56 
  5950.    o         56 
  5951.    p         17 
  5952.    q         4 
  5953.    r         49 
  5954.    s         56 
  5955.    t         71 
  5956.    u         31 
  5957.    v         10 
  5958.    w         18 
  5959.    x         3 
  5960.    y         18 
  5961.    z         2 
  5962.    space     166 
  5963.  
  5964.    Note:  For fixed pitch fonts this value will be the same as the (A width + B 
  5965.           width + C width) escapement of each character. 
  5966.  
  5967.  
  5968. ΓòÉΓòÉΓòÉ <hidden> lMaxCharInc ΓòÉΓòÉΓòÉ
  5969.  
  5970. lMaxCharInc (LONG) 
  5971.    Maximum character increment. 
  5972.  
  5973.    The maximum character increment for the font in world coordinate units. 
  5974.  
  5975.  
  5976. ΓòÉΓòÉΓòÉ <hidden> lEmInc ΓòÉΓòÉΓòÉ
  5977.  
  5978. lEmInc (LONG) 
  5979.    Em increment. 
  5980.  
  5981.    The width of the Em square in world coordinate units. This corresponds to 
  5982.    the point size of the font.  When the horizontal device resolution equals 
  5983.    the vertical device resolution this is equal to the em height. 
  5984.  
  5985.  
  5986. ΓòÉΓòÉΓòÉ <hidden> lMaxBaselineExt ΓòÉΓòÉΓòÉ
  5987.  
  5988. lMaxBaselineExt (LONG) 
  5989.    Maximum baseline extent. 
  5990.  
  5991.    The maximum vertical space occupied by the font, in world coordinate units. 
  5992.    This is the sum of lMaxAscender and lMaxDescender if both are positive. It 
  5993.    is also the sum of lInternalLeading and lEmHeight. 
  5994.    One possible line spacing can be computed by adding lMaxBaselineExt to 
  5995.    lExternalLeading. Such a line spacing, however, would be dependent on the 
  5996.    glyph set included in the font. If a new version of the font should be made 
  5997.    available, with new glyphs, then it is possible that this value will change 
  5998.    because one of the new glyphs has gone above the previous lMaxAscender or 
  5999.    below the previous lMaxDescender. More sophisticated applications will base 
  6000.    line spacing on the point size (lEmHeight) of the font, which is an 
  6001.    invariant of the font, multiplied by some factor (say 120%) plus any 
  6002.    external leading. 
  6003.    This field may exceed lEmHeight. 
  6004.  
  6005.  
  6006. ΓòÉΓòÉΓòÉ <hidden> sCharSlope ΓòÉΓòÉΓòÉ
  6007.  
  6008. sCharSlope (SHORT) 
  6009.    Character slope. 
  6010.  
  6011.    Defines the nominal slope for the characters of a font.  The slope is 
  6012.    defined in degrees increasing clockwise from the vertical. An Italic font is 
  6013.    an example of a font with a nonzero slope. 
  6014.  
  6015.    Note:  The units for this metric are degrees and minutes, encoded as shown 
  6016.           in the following example: 
  6017.  
  6018.                     180 degrees 59 minutes would be represented as :
  6019.  
  6020.                     |  < byte 1 >   |  < byte 2 >   |
  6021.  
  6022.                     | | <Minutes> |  <  Degrees  >  |
  6023.  
  6024.                     |0|1 1 1 0 1 1|0 1 0 1 1 0 1 0 0|
  6025.  
  6026.                       |  59 min   |   180 degrees   |
  6027.  
  6028.  
  6029. ΓòÉΓòÉΓòÉ <hidden> sInlineDir ΓòÉΓòÉΓòÉ
  6030.  
  6031. sInlineDir (SHORT) 
  6032.    Inline direction. 
  6033.  
  6034.    The direction in which the characters in the font are designed for viewing, 
  6035.    in degrees increasing clockwise from the horizontal (left-to-right). 
  6036.    Characters are added to a line of text in the inline direction. 
  6037.  
  6038.    Note:  The units for this metric are degrees and minutes, encoded as shown 
  6039.           in sCharSlope. 
  6040.  
  6041.  
  6042. ΓòÉΓòÉΓòÉ <hidden> sCharRot ΓòÉΓòÉΓòÉ
  6043.  
  6044. sCharRot (SHORT) 
  6045.    Character rotation. 
  6046.  
  6047.    The rotation of the character glyphs with respect to the baseline, the angle 
  6048.    increasing counter clockwise.  This is the angle assigned by the font 
  6049.    designer. 
  6050.  
  6051.    Note:  The units for this metric are degrees and minutes, encoded as shown 
  6052.           in sCharSlope. 
  6053.  
  6054.  
  6055. ΓòÉΓòÉΓòÉ <hidden> usWeightClass ΓòÉΓòÉΓòÉ
  6056.  
  6057. usWeightClass (USHORT) 
  6058.    Weight class. 
  6059.  
  6060.    Indicates the visual weight (thickness of strokes) of the characters in the 
  6061.    font: 
  6062.  
  6063.    Value   Description 
  6064.    1       Ultra-light 
  6065.    2       Extra-light 
  6066.    3       Light 
  6067.    4       Semi-light 
  6068.    5       Medium (normal) 
  6069.    6       Semi-bold 
  6070.    7       Bold 
  6071.    8       Extra-bold 
  6072.    9       Ultra-bold 
  6073.  
  6074.  
  6075. ΓòÉΓòÉΓòÉ <hidden> usWidthClass ΓòÉΓòÉΓòÉ
  6076.  
  6077. usWidthClass (USHORT) 
  6078.    Width class. 
  6079.  
  6080.    Indicates the relative aspect ratio of the characters of the font in 
  6081.    relation to the normal aspect ratio for this type of font: 
  6082.  
  6083.  
  6084.        Value   Description        % of normal width
  6085.  
  6086.        1       Ultra-condensed    50
  6087.  
  6088.        2       Extra-condensed    62.5
  6089.  
  6090.        3       Condensed          75
  6091.  
  6092.        4       Semi-condensed     87.5
  6093.  
  6094.        5       Medium (normal)    100
  6095.  
  6096.        6       Semi-expanded      112.5
  6097.  
  6098.        7       Expanded           125
  6099.  
  6100.        8       Extra-expanded     150
  6101.  
  6102.        9       Ultra-expanded     200
  6103.  
  6104.  
  6105. ΓòÉΓòÉΓòÉ <hidden> sXDeviceRes ΓòÉΓòÉΓòÉ
  6106.  
  6107. sXDeviceRes (SHORT) 
  6108.    x-device resolution. 
  6109.  
  6110.  
  6111.    For bit-map fonts this is the resolution in the X direction of the intended 
  6112.    target device, measured in Pels per inch. 
  6113.    For outline fonts this is the number of notional units in the X direction of 
  6114.    the Em square, measured in notional units per Em.  (Notional units are the 
  6115.    units in which the outline is defined. 
  6116.  
  6117.  
  6118. ΓòÉΓòÉΓòÉ <hidden> sYDeviceRes ΓòÉΓòÉΓòÉ
  6119.  
  6120. sYDeviceRes (SHORT) 
  6121.    y-device resolution. 
  6122.  
  6123.  
  6124.    For bit-map fonts this is the resolution in the Y direction of the intended 
  6125.    target device, measured in Pels per inch. 
  6126.    For outline fonts this is the number of notional units in the Y direction of 
  6127.    the Em square, measured in notional units per Em.  (Notional units are the 
  6128.    units in which the outline is defined. 
  6129.  
  6130.  
  6131. ΓòÉΓòÉΓòÉ <hidden> sFirstChar ΓòÉΓòÉΓòÉ
  6132.  
  6133. sFirstChar (SHORT) 
  6134.    First character. 
  6135.  
  6136.    The code point of the first character in the font. 
  6137.  
  6138.  
  6139. ΓòÉΓòÉΓòÉ <hidden> sLastChar ΓòÉΓòÉΓòÉ
  6140.  
  6141. sLastChar (SHORT) 
  6142.    Last character. 
  6143.  
  6144.    The code point of the last character in the font, expressed as an offset 
  6145.    from sFirstChar. 
  6146.    All code points between the first and last character specified must be 
  6147.    supported by the font. 
  6148.  
  6149.  
  6150. ΓòÉΓòÉΓòÉ <hidden> sDefaultChar ΓòÉΓòÉΓòÉ
  6151.  
  6152. sDefaultChar (SHORT) 
  6153.    Default character. 
  6154.  
  6155.    The code point that is used if a code point outside the range supported by 
  6156.    the font is used, expressed as an offset from sFirstChar. 
  6157.  
  6158.  
  6159. ΓòÉΓòÉΓòÉ <hidden> sBreakChar ΓòÉΓòÉΓòÉ
  6160.  
  6161. sBreakChar (SHORT) 
  6162.    Break character. 
  6163.  
  6164.    The code point that represents the "space" or "break" character for this 
  6165.    font, expressed as an offset from sFirstChar. For example, if the first 
  6166.    character is the space in code page 850, sFirstChar = 32, and sBreakChar = 
  6167.    0. 
  6168.  
  6169.  
  6170. ΓòÉΓòÉΓòÉ <hidden> sNominalPointSize ΓòÉΓòÉΓòÉ
  6171.  
  6172. sNominalPointSize (SHORT) 
  6173.    Nominal point size. 
  6174.  
  6175.  
  6176.    For a bit-map font this field contains the height of the font. 
  6177.    For an outline font, this field contains the height the font designer had in 
  6178.    mind for this font.  For example some fonts are designed for text use in 
  6179.    which case a value of 120 (12 point) would probably be placed in this field, 
  6180.    whereas other fonts are designed for "display" use ("display" is 
  6181.    typographer's terminology for larger sizes). This is not the only size the 
  6182.    font can be used at. 
  6183.    Measured in decipoints (a decipoint is 1/720th of an inch). 
  6184.  
  6185.  
  6186. ΓòÉΓòÉΓòÉ <hidden> sMinimumPointSize ΓòÉΓòÉΓòÉ
  6187.  
  6188. sMinimumPointSize (SHORT) 
  6189.    Minimum point size. 
  6190.  
  6191.  
  6192.    For a bit-map font, this field is meaningless. 
  6193.    For an outline font, this field contains the minimum height the font 
  6194.    designer had in mind for this font. Note that this is not a restriction on 
  6195.    the size the font can be used at. 
  6196.    Measured in decipoints (a decipoint is 1/720th of an inch). 
  6197.  
  6198.  
  6199. ΓòÉΓòÉΓòÉ <hidden> sMaximumPointSize ΓòÉΓòÉΓòÉ
  6200.  
  6201. sMaximumPointSize (SHORT) 
  6202.    Maximum point size. 
  6203.  
  6204.  
  6205.    For a bit-map font, this field is meaningless. 
  6206.    For an outline font, this field contains the maximum height the font 
  6207.    designer had in mind for this font. Note that this is not a restriction on 
  6208.    the size the font can be used at. 
  6209.    Measured in decipoints (a decipoint is 1/720th of an inch). 
  6210.  
  6211.  
  6212. ΓòÉΓòÉΓòÉ <hidden> fsType ΓòÉΓòÉΓòÉ
  6213.  
  6214. fsType (USHORT) 
  6215.    Type indicators. 
  6216.  
  6217.    Contains this information: 
  6218.  
  6219.    FM_TYPE_FIXED 
  6220.       Characters in the font have the same fixed width. 
  6221.    FM_TYPE_LICENSED 
  6222.       Licensed (protected) font. 
  6223.    FM_TYPE_KERNING 
  6224.       Font contains kerning information. 
  6225.    FM_TYPE_64K 
  6226.       Font is larger than 64KB (KB equals 1024 bytes) in size. If the following 
  6227.       two bits are false, the font is for single-byte code pages.  One of the 
  6228.       bits may be set. 
  6229.    FM_TYPE_DBCS 
  6230.       Font is for double-byte code pages. 
  6231.    FM_TYPE_MBCS 
  6232.       Font is for mixed single/double-byte code pages. 
  6233.    FM_TYPE_FACETRUNC 
  6234.       Font szFacename[FACESIZE] has been truncated. 
  6235.    FM_TYPE_FAMTRUNC 
  6236.       Font szFamilyname[FACESIZE] has been truncated. 
  6237.    FM_TYPE_ATOMS 
  6238.       The System Atom table atom values in FamilyNameAtom and in FaceNameAtom 
  6239.       are valid. 
  6240.  
  6241.  
  6242. ΓòÉΓòÉΓòÉ <hidden> fsDefn ΓòÉΓòÉΓòÉ
  6243.  
  6244. fsDefn (USHORT) 
  6245.    Definition indicators. 
  6246.  
  6247.    Contains the following font definition data: 
  6248.  
  6249.    FM_DEFN_OUTLINE 
  6250.       Font is a vector (outline) font, otherwise it is a bit-map font. 
  6251.    FM_DEFN_GENERIC 
  6252.       Font is in a format that can be used by the GPI, otherwise it is a device 
  6253.       font. 
  6254.  
  6255.  
  6256. ΓòÉΓòÉΓòÉ <hidden> fsSelection ΓòÉΓòÉΓòÉ
  6257.  
  6258. fsSelection (USHORT) 
  6259.    Selection indicators. 
  6260.  
  6261.    Contains information about the font patterns in the physical font. 
  6262.  
  6263.    Note:  The flags do not reflect simulations applied to the physical font. 
  6264.  
  6265.    FM_SEL_ITALIC 
  6266.       True indicates that this font is designed as an italic font. 
  6267.    FM_SEL_UNDERSCORE 
  6268.       TRUE indicates that this font is designed with underscores included in 
  6269.       each character. 
  6270.    FM_SEL_NEGATIVE 
  6271.       TRUE indicates that this font is designed with the background and 
  6272.       foreground reversed. 
  6273.    FM_SEL_OUTLINE 
  6274.       TRUE indicates that this font is designed with outline (hollow) 
  6275.       characters. 
  6276.    FM_SEL_STRIKEOUT 
  6277.       TRUE indicates that this font is designed with an overstrike through each 
  6278.       character. 
  6279.    FM_SEL_BOLD 
  6280.       TRUE indicates that this font is designed with bold characters. 
  6281.    FM_SEL_ISO9241_TESTED 
  6282.       This flag indicates that the font has been tested for compliance to ISO 
  6283.       9241.  The presence of this flag doesn't indicate whether the font passed 
  6284.       or failed, only that it was tested. 
  6285.  
  6286.       Note:  While the fonts were primarily tested for meeting the ISO 
  6287.              standard, they have also been designed to meet the German standard 
  6288.              DIN 66 234. Where the two standards differ, the fonts have been 
  6289.              designed to meet the stricter requirement. 
  6290.  
  6291.  
  6292. ΓòÉΓòÉΓòÉ <hidden> fsCapabilities ΓòÉΓòÉΓòÉ
  6293.  
  6294. fsCapabilities (USHORT) 
  6295.    Capabilities. 
  6296.  
  6297.    This attribute applies only to device fonts. 
  6298.  
  6299.    FM_CAP_NOMIX 
  6300.       Characters may not be mixed with graphics. 
  6301.    QUALITY 
  6302.       The most significant byte may contain the following numeric value: 
  6303.  
  6304.       0    Undefined 
  6305.       1    DP quality 
  6306.       2    DP draft 
  6307.       3    Near Letter Quality 
  6308.       4    Letter Quality 
  6309.  
  6310.  
  6311. ΓòÉΓòÉΓòÉ <hidden> lSubscriptXSize ΓòÉΓòÉΓòÉ
  6312.  
  6313. lSubscriptXSize (LONG) 
  6314.    Subscript x-size. 
  6315.  
  6316.    The recommended horizontal size for subscripts for this font in world 
  6317.    coordinate units. 
  6318.  
  6319.  
  6320. ΓòÉΓòÉΓòÉ <hidden> lSubscriptYSize ΓòÉΓòÉΓòÉ
  6321.  
  6322. lSubscriptYSize (LONG) 
  6323.    Subscript y-size. 
  6324.  
  6325.    The recommended vertical size for subscripts for this font in world 
  6326.    coordinate units. 
  6327.  
  6328.  
  6329. ΓòÉΓòÉΓòÉ <hidden> lSubscriptXOffset ΓòÉΓòÉΓòÉ
  6330.  
  6331. lSubscriptXOffset (LONG) 
  6332.    Subscript x-offset. 
  6333.  
  6334.    The recommended baseline x-offset for subscripts for this font in world 
  6335.    coordinate units. 
  6336.  
  6337.  
  6338. ΓòÉΓòÉΓòÉ <hidden> lSubscriptYOffset ΓòÉΓòÉΓòÉ
  6339.  
  6340. lSubscriptYOffset (LONG) 
  6341.    Subscript y-offset. 
  6342.  
  6343.    The recommended baseline y-offset for subscripts for this font in world 
  6344.    coordinate units. 
  6345.  
  6346.    Note:  Positive numbers mean below the baseline. 
  6347.  
  6348.  
  6349. ΓòÉΓòÉΓòÉ <hidden> lSuperscriptXSize ΓòÉΓòÉΓòÉ
  6350.  
  6351. lSuperscriptXSize (LONG) 
  6352.    Superscript x-size. 
  6353.  
  6354.    The recommended horizontal size for superscripts for this font in world 
  6355.    coordinate units. 
  6356.  
  6357.  
  6358. ΓòÉΓòÉΓòÉ <hidden> lSuperscriptYSize ΓòÉΓòÉΓòÉ
  6359.  
  6360. lSuperscriptYSize (LONG) 
  6361.    Superscript y-size. 
  6362.  
  6363.    The recommended vertical point size for superscripts for this font in world 
  6364.    coordinate units. 
  6365.  
  6366.  
  6367. ΓòÉΓòÉΓòÉ <hidden> lSuperscriptXOffset ΓòÉΓòÉΓòÉ
  6368.  
  6369. lSuperscriptXOffset (LONG) 
  6370.    Superscript x-offset. 
  6371.  
  6372.    The recommended baseline x-offset for superscripts for this font in world 
  6373.    coordinate units. 
  6374.  
  6375.  
  6376. ΓòÉΓòÉΓòÉ <hidden> lSuperscriptYOffset ΓòÉΓòÉΓòÉ
  6377.  
  6378. lSuperscriptYOffset (LONG) 
  6379.    Superscript y-offset. 
  6380.  
  6381.    The recommended baseline y-offset for superscripts for this font in world 
  6382.    coordinate units. 
  6383.  
  6384.  
  6385. ΓòÉΓòÉΓòÉ <hidden> lUnderscoreSize ΓòÉΓòÉΓòÉ
  6386.  
  6387. lUnderscoreSize (LONG) 
  6388.    Underscore size. 
  6389.  
  6390.    The width (thickness) of the underscore stroke in world coordinate units 
  6391.    This describes the actual underscore in the font if FM_SEL_UNDERSCORE is 
  6392.    also set.  Otherwise it describes what the engine will simulate if 
  6393.    underscore is requested in GpiCreateLogFont. 
  6394.  
  6395.  
  6396. ΓòÉΓòÉΓòÉ <hidden> lUnderscorePosition ΓòÉΓòÉΓòÉ
  6397.  
  6398. lUnderscorePosition (LONG) 
  6399.    Underscore position. 
  6400.  
  6401.    The position of the underscore stroke from the baseline in world coordinate 
  6402.    units. This describes the actual underscore in the font if FM_SEL_UNDERSCORE 
  6403.    is also set.  Otherwise it describes what the engine will simulate if 
  6404.    underscore is requested in GpiCreateLogFont. 
  6405.  
  6406.    Note:  Positive values mean below the baseline. 
  6407.  
  6408.  
  6409. ΓòÉΓòÉΓòÉ <hidden> lStrikeoutSize ΓòÉΓòÉΓòÉ
  6410.  
  6411. lStrikeoutSize (LONG) 
  6412.    Strikeout size. 
  6413.  
  6414.    The width of the strikeout stroke in world coordinate units. This describes 
  6415.    the actual underscore in the font if FM_SEL_STRIKEOUT is also set. 
  6416.    Otherwise it describes what the engine will simulate if overstrike is 
  6417.    requested in GpiCreateLogFont. 
  6418.  
  6419.  
  6420. ΓòÉΓòÉΓòÉ <hidden> lStrikeoutPosition ΓòÉΓòÉΓòÉ
  6421.  
  6422. lStrikeoutPosition (LONG) 
  6423.    Strikeout position. 
  6424.  
  6425.    The position of the strikeout stroke relative to the baseline in world 
  6426.    coordinate units. This describes the actual underscore in the font if 
  6427.    FM_SEL_STRIKEOUT is also set.  Otherwise it describes what the engine will 
  6428.    simulate if overstrike is requested in GpiCreateLogFont. 
  6429.  
  6430.  
  6431. ΓòÉΓòÉΓòÉ <hidden> sKerningPairs ΓòÉΓòÉΓòÉ
  6432.  
  6433. sKerningPairs (SHORT) 
  6434.    Kerning pairs. 
  6435.  
  6436.    The number of kerning pairs in the kerning pair table. 
  6437.  
  6438.  
  6439. ΓòÉΓòÉΓòÉ <hidden> sFamilyClass ΓòÉΓòÉΓòÉ
  6440.  
  6441. sFamilyClass (SHORT) 
  6442.    Font family design classification. 
  6443.  
  6444.    This value contains a font class and its subclass. 
  6445.  
  6446.  
  6447. ΓòÉΓòÉΓòÉ <hidden> lMatch ΓòÉΓòÉΓòÉ
  6448.  
  6449. lMatch (LONG) 
  6450.    Matched font identity. 
  6451.  
  6452.    This uniquely identifies the font for a given device/device driver 
  6453.    combination. A positive match number signifies that the font is a generic 
  6454.    (engine) font while a negative number indicates a device font (a native or 
  6455.    downloadable font). This value should not be used to identify a font across 
  6456.    system boundaries. 
  6457.  
  6458.  
  6459. ΓòÉΓòÉΓòÉ <hidden> FamilyNameAtom ΓòÉΓòÉΓòÉ
  6460.  
  6461. FamilyNameAtom (LONG) 
  6462.    Font family name atom. 
  6463.  
  6464.    This value contains the atom identifier for the font family name in the 
  6465.    System Atom Table. 
  6466.  
  6467.  
  6468. ΓòÉΓòÉΓòÉ <hidden> FaceNameAtom ΓòÉΓòÉΓòÉ
  6469.  
  6470. FaceNameAtom (LONG) 
  6471.    Font facename atom. 
  6472.  
  6473.    This value contains the atom identifier for the font face name in the System 
  6474.    Atom Table. 
  6475.  
  6476.  
  6477. ΓòÉΓòÉΓòÉ <hidden> panose ΓòÉΓòÉΓòÉ
  6478.  
  6479. panose (PANOSE) 
  6480.    Panose font descriptor. 
  6481.  
  6482.    This is the panose descriptor identifying the visual characteristics of the 
  6483.    font. 
  6484.  
  6485.  
  6486. ΓòÉΓòÉΓòÉ 4.69. FRAMECDATA ΓòÉΓòÉΓòÉ
  6487.  
  6488. FRAMECDATA Frame-control data structure. 
  6489.  
  6490. typedef struct _FRAMECDATA {
  6491. USHORT    cb;             /* Length  */
  6492. ULONG     flCreateFlags;  /* Frame-creation flags  */
  6493. USHORT    hmodResources;  /* Identifier of required resource  */
  6494. USHORT    idResources;    /* Resource identifier  */
  6495.  } FRAMECDATA;
  6496.  
  6497.  
  6498. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  6499.  
  6500. cb (USHORT) 
  6501.    Length. 
  6502.  
  6503.  
  6504. ΓòÉΓòÉΓòÉ <hidden> flCreateFlags ΓòÉΓòÉΓòÉ
  6505.  
  6506. flCreateFlags (ULONG) 
  6507.    Frame-creation flags. 
  6508.  
  6509.  
  6510. ΓòÉΓòÉΓòÉ <hidden> hmodResources ΓòÉΓòÉΓòÉ
  6511.  
  6512. hmodResources (USHORT) 
  6513.    Identifier of required resource. 
  6514.  
  6515.    This is supplied in an environment-dependent manner. 
  6516.  
  6517.  
  6518. ΓòÉΓòÉΓòÉ <hidden> idResources ΓòÉΓòÉΓòÉ
  6519.  
  6520. idResources (USHORT) 
  6521.    Resource identifier. 
  6522.  
  6523.  
  6524. ΓòÉΓòÉΓòÉ 4.70. FTIME ΓòÉΓòÉΓòÉ
  6525.  
  6526. FTIME Time data structure for file-system functions. 
  6527.  
  6528. typedef struct _FTIME {
  6529. USHORT    twosecs:5;        /* Binary number of two-second increments  */
  6530. USHORT    minutes:6;        /* Binary number of minutes  */
  6531. USHORT    hours:5;          /* Binary number of hours  */
  6532.  } FTIME;
  6533.  
  6534.  
  6535. ΓòÉΓòÉΓòÉ <hidden> twosecs:5 ΓòÉΓòÉΓòÉ
  6536.  
  6537. twosecs:5 (USHORT) 
  6538.    Binary number of two-second increments 
  6539.  
  6540.  
  6541. ΓòÉΓòÉΓòÉ <hidden> minutes:6 ΓòÉΓòÉΓòÉ
  6542.  
  6543. minutes:6 (USHORT) 
  6544.    Binary number of minutes 
  6545.  
  6546.  
  6547. ΓòÉΓòÉΓòÉ <hidden> hours:5 ΓòÉΓòÉΓòÉ
  6548.  
  6549. hours:5 (USHORT) 
  6550.    Binary number of hours 
  6551.  
  6552.  
  6553. ΓòÉΓòÉΓòÉ 4.71. GRADIENTL ΓòÉΓòÉΓòÉ
  6554.  
  6555. GRADIENTL Direction-vector structure. 
  6556.  
  6557. typedef struct _GRADIENTL {
  6558. LONG    x;  /* x-component of direction  */
  6559. LONG    y;  /* y-component of direction  */
  6560.  } GRADIENTL;
  6561.  
  6562.  
  6563. ΓòÉΓòÉΓòÉ <hidden> x ΓòÉΓòÉΓòÉ
  6564.  
  6565. x (LONG) 
  6566.    x-component of direction. 
  6567.  
  6568.  
  6569. ΓòÉΓòÉΓòÉ <hidden> y ΓòÉΓòÉΓòÉ
  6570.  
  6571. y (LONG) 
  6572.    y-component of direction. 
  6573.  
  6574.  
  6575. ΓòÉΓòÉΓòÉ 4.72. HAB ΓòÉΓòÉΓòÉ
  6576.  
  6577. HAB Anchor-block handle. 
  6578.  
  6579. typedef LHANDLE HAB;
  6580.  
  6581.  
  6582. ΓòÉΓòÉΓòÉ 4.73. HACCEL ΓòÉΓòÉΓòÉ
  6583.  
  6584. HACCEL Accelerator-table handle. 
  6585.  
  6586. typedef LHANDLE HACCEL;
  6587.  
  6588.  
  6589. ΓòÉΓòÉΓòÉ 4.74. HAPP ΓòÉΓòÉΓòÉ
  6590.  
  6591. HAPP Handle of an application. 
  6592.  
  6593. typedef LHANDLE HAPP;
  6594.  
  6595.  
  6596. ΓòÉΓòÉΓòÉ 4.75. HATOMTBL ΓòÉΓòÉΓòÉ
  6597.  
  6598. HATOMTBL Atom-table handle. 
  6599.  
  6600. typedef LHANDLE HATOMTBL;
  6601.  
  6602.  
  6603. ΓòÉΓòÉΓòÉ 4.76. HBITMAP ΓòÉΓòÉΓòÉ
  6604.  
  6605. HBITMAP Bit-map handle. 
  6606.  
  6607. typedef LHANDLE HBITMAP;
  6608.  
  6609.  
  6610. ΓòÉΓòÉΓòÉ 4.77. HCINFO ΓòÉΓòÉΓòÉ
  6611.  
  6612. HCINFO Hardcopy-capabilities structure. 
  6613.  
  6614. typedef struct _HCINFO {
  6615. CHAR    szFormname[32];  /* Form name  */
  6616. LONG    cx;              /* Width (left-to-right) in millimeters  */
  6617. LONG    cy;              /* Height (top-to-bottom) in millimeters  */
  6618. LONG    xLeftClip;       /* Left clip limit in millimeters  */
  6619. LONG    yBottomClip;     /* Bottom clip limit in millimeters  */
  6620. LONG    xRightClip;      /* Right clip limit in millimeters  */
  6621. LONG    yTopClip;        /* Top clip limit in millimeters  */
  6622. LONG    xPels;           /* Number of pels between left and right clip limits  */
  6623. LONG    yPels;           /* Number of pels between bottom and top clip limits  */
  6624. LONG    flAttributes;    /* Attributes of the form identifier  */
  6625.  } HCINFO;
  6626.  
  6627.  
  6628. ΓòÉΓòÉΓòÉ <hidden> szFormname[32] ΓòÉΓòÉΓòÉ
  6629.  
  6630. szFormname[32] (CHAR) 
  6631.    Form name. 
  6632.  
  6633.  
  6634. ΓòÉΓòÉΓòÉ <hidden> cx ΓòÉΓòÉΓòÉ
  6635.  
  6636. cx (LONG) 
  6637.    Width (left-to-right) in millimeters. 
  6638.  
  6639.  
  6640. ΓòÉΓòÉΓòÉ <hidden> cy ΓòÉΓòÉΓòÉ
  6641.  
  6642. cy (LONG) 
  6643.    Height (top-to-bottom) in millimeters. 
  6644.  
  6645.  
  6646. ΓòÉΓòÉΓòÉ <hidden> xLeftClip ΓòÉΓòÉΓòÉ
  6647.  
  6648. xLeftClip (LONG) 
  6649.    Left clip limit in millimeters. 
  6650.  
  6651.  
  6652. ΓòÉΓòÉΓòÉ <hidden> yBottomClip ΓòÉΓòÉΓòÉ
  6653.  
  6654. yBottomClip (LONG) 
  6655.    Bottom clip limit in millimeters. 
  6656.  
  6657.  
  6658. ΓòÉΓòÉΓòÉ <hidden> xRightClip ΓòÉΓòÉΓòÉ
  6659.  
  6660. xRightClip (LONG) 
  6661.    Right clip limit in millimeters. 
  6662.  
  6663.  
  6664. ΓòÉΓòÉΓòÉ <hidden> yTopClip ΓòÉΓòÉΓòÉ
  6665.  
  6666. yTopClip (LONG) 
  6667.    Top clip limit in millimeters. 
  6668.  
  6669.  
  6670. ΓòÉΓòÉΓòÉ <hidden> xPels ΓòÉΓòÉΓòÉ
  6671.  
  6672. xPels (LONG) 
  6673.    Number of pels between left and right clip limits. 
  6674.  
  6675.  
  6676. ΓòÉΓòÉΓòÉ <hidden> yPels ΓòÉΓòÉΓòÉ
  6677.  
  6678. yPels (LONG) 
  6679.    Number of pels between bottom and top clip limits. 
  6680.  
  6681.  
  6682. ΓòÉΓòÉΓòÉ <hidden> flAttributes ΓòÉΓòÉΓòÉ
  6683.  
  6684. flAttributes (LONG) 
  6685.    Attributes of the form identifier. 
  6686.  
  6687.    HCAPS_SELECTABLE 
  6688.       The form is installed on the printer as given by the printer properties 
  6689.       dialog. It is available from an alternate form source without operator 
  6690.       intervention. If the form does not have this bit set, and is used (if the 
  6691.       user selects it), a "forms mismatch" error is generated by the printer 
  6692.       object. 
  6693.    HCAPS_CURRENT 
  6694.       The form is the one currently selected by the DevOpenDC DEVOPENSTRUC 
  6695.       pdriv field (the job properties). 
  6696.  
  6697.  
  6698. ΓòÉΓòÉΓòÉ 4.78. HDC ΓòÉΓòÉΓòÉ
  6699.  
  6700. HDC Device-context handle. 
  6701.  
  6702. typedef LHANDLE HDC;
  6703.  
  6704.  
  6705. ΓòÉΓòÉΓòÉ 4.79. HDDF ΓòÉΓòÉΓòÉ
  6706.  
  6707. HDDF Dynamic data formatting handle. 
  6708.  
  6709. typedef VOID *HDDF;
  6710.  
  6711.  
  6712. ΓòÉΓòÉΓòÉ 4.80. HELPINIT ΓòÉΓòÉΓòÉ
  6713.  
  6714. HELPINIT Help Manager initialization structure. 
  6715.  
  6716. typedef struct _HELPINIT {
  6717. ULONG        cb;                        /* Count of bytes of the initialization structure  */
  6718. ULONG        ulReturnCode;              /* Value returned by the Help Manager from initialization  */
  6719. PSZ          pszTutorialName;           /* indicates to the Help Manager that the application has a tutorial program  */
  6720. HELPTABLE    htHelpTable;               /* Help table  */
  6721. HMODULE      hmodHelpTableModule;       /* Resource file identity  */
  6722. HMODULE      hmodAccelActionBarModule;  /* Handle of the containing DLL  */
  6723. ULONG        idAccelTable;              /* Identity of the accelerator table  */
  6724. ULONG        idActionBar;               /* Identity of the action bar template used by the  e Help Manager  */
  6725. PSZ          pszHelpWindowTitle;        /* Window title for the main help window of this help instance  */
  6726. ULONG        fShowPanelId;              /* Show panel identity indicator  */
  6727. PSZ          pszHelpLibraryName;        /* Help panel library names  */
  6728.  } HELPINIT;
  6729.  
  6730.  
  6731. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  6732.  
  6733. cb (ULONG) 
  6734.    Count of bytes of the initialization structure. 
  6735.  
  6736.  
  6737. ΓòÉΓòÉΓòÉ <hidden> ulReturnCode ΓòÉΓòÉΓòÉ
  6738.  
  6739. ulReturnCode (ULONG) 
  6740.    Value returned by the Help Manager from initialization. 
  6741.  
  6742.    0 
  6743.       Initialization was successful. 
  6744.  
  6745.  
  6746. ΓòÉΓòÉΓòÉ <hidden> pszTutorialName ΓòÉΓòÉΓòÉ
  6747.  
  6748. pszTutorialName (PSZ) 
  6749.    indicates to the Help Manager that the application has a tutorial program. 
  6750.  
  6751.    NULL 
  6752.       The application either does not have a tutorial program, or the tutorial 
  6753.       name is specified in each help panel definition. 
  6754.    Other 
  6755.       Default tutorial name. 
  6756.  
  6757.  
  6758. ΓòÉΓòÉΓòÉ <hidden> htHelpTable ΓòÉΓòÉΓòÉ
  6759.  
  6760. htHelpTable (HELPTABLE) 
  6761.    Help table. 
  6762.  
  6763.    The help table or the identity of the help table. If this is the identity of 
  6764.    the help table in a resource file, the low-order word contains the identity 
  6765.    of the table and the high-order word must be X'FFFF'. 
  6766.    The help table associates each application window with its help subtable and 
  6767.    the identity of its extended help panel. 
  6768.  
  6769.  
  6770. ΓòÉΓòÉΓòÉ <hidden> hmodHelpTableModule ΓòÉΓòÉΓòÉ
  6771.  
  6772. hmodHelpTableModule (HMODULE) 
  6773.    Resource file identity. 
  6774.  
  6775.    If the htHelpTable contains the identity of the help table, this field 
  6776.    identifies the module handle returned by the DosLoadModule call by which the 
  6777.    application loaded the resource file. 
  6778.  
  6779.    NULL 
  6780.       The resource file containing the help table was appended to the 
  6781.       application's .EXE file. 
  6782.    Other 
  6783.       Resource file identity. 
  6784.  
  6785.  
  6786. ΓòÉΓòÉΓòÉ <hidden> hmodAccelActionBarModule ΓòÉΓòÉΓòÉ
  6787.  
  6788. hmodAccelActionBarModule (HMODULE) 
  6789.    Handle of the containing DLL. 
  6790.  
  6791.    The handle of the DLL which contains the accelerator table and action bar 
  6792.    template to be used by the Help Manager. 
  6793.  
  6794.    NULL 
  6795.       Use the default action bar and accelerator table defined by the Help 
  6796.       Manager. 
  6797.    Other 
  6798.       Handle of the DLL. 
  6799.  
  6800.  
  6801. ΓòÉΓòÉΓòÉ <hidden> idAccelTable ΓòÉΓòÉΓòÉ
  6802.  
  6803. idAccelTable (ULONG) 
  6804.    Identity of the accelerator table. 
  6805.  
  6806.    The accelerator table resides in the DLL provided in the 
  6807.    hmodAccelActionBarModule field. 
  6808.  
  6809.    NULL 
  6810.       Use the default accelerator table. 
  6811.    Other 
  6812.       Identity of the accelerator table. 
  6813.  
  6814.  
  6815. ΓòÉΓòÉΓòÉ <hidden> idActionBar ΓòÉΓòÉΓòÉ
  6816.  
  6817. idActionBar (ULONG) 
  6818.    Identity of the action bar template used by the  e Help Manager. 
  6819.  
  6820.    The action bar template resides in the DLL provided in the 
  6821.    hmodAccelActionBarModule field. 
  6822.  
  6823.    NULL 
  6824.       Use the default action bar. 
  6825.    Other 
  6826.       Identity of the action bar. 
  6827.  
  6828.  
  6829. ΓòÉΓòÉΓòÉ <hidden> pszHelpWindowTitle ΓòÉΓòÉΓòÉ
  6830.  
  6831. pszHelpWindowTitle (PSZ) 
  6832.    Window title for the main help window of this help instance. 
  6833.  
  6834.  
  6835. ΓòÉΓòÉΓòÉ <hidden> fShowPanelId ΓòÉΓòÉΓòÉ
  6836.  
  6837. fShowPanelId (ULONG) 
  6838.    Show panel identity indicator. 
  6839.  
  6840.    The constants corresponding to the panel identity flags are in the PMHELP.H 
  6841.    include file. 
  6842.  
  6843.    CMIC_SHOW_PANEL_ID 
  6844.       Show the panel identity on a help panel. 
  6845.    CMIC_HIDE_PANEL_ID 
  6846.       Do not show the panel identity on a help panel. 
  6847.  
  6848.  
  6849. ΓòÉΓòÉΓòÉ <hidden> pszHelpLibraryName ΓòÉΓòÉΓòÉ
  6850.  
  6851. pszHelpLibraryName (PSZ) 
  6852.    Help panel library names. 
  6853.  
  6854.    The names of the help panel libraries that the Help Manager searches on each 
  6855.    help request. The names must be separated by a blank. 
  6856.    The Help Manager looks for the libraries in the path set by the HELP 
  6857.    environment variable. If the library is not found, the Help Manager will 
  6858.    look for the libraries in the current directory. 
  6859.  
  6860.  
  6861. ΓòÉΓòÉΓòÉ 4.81. HELPTABLE ΓòÉΓòÉΓòÉ
  6862.  
  6863. HELPTABLE Help table. 
  6864.  
  6865. This is a collection of help table entries, each of which has the structure 
  6866. defined below, the last entry of the collection being a NULL structure. 
  6867.  
  6868. typedef struct _HELPTABLE {
  6869. USHORT           idAppWindow;       /* Application window identity  */
  6870. PHELPSUBTABLE    phstHelpSubTable;  /* Help subtable for this application window  */
  6871. USHORT           idExtPanel;        /* Identity of the extended help panel for the application window  */
  6872.  } HELPTABLE;
  6873.  
  6874.  
  6875. ΓòÉΓòÉΓòÉ <hidden> idAppWindow ΓòÉΓòÉΓòÉ
  6876.  
  6877. idAppWindow (USHORT) 
  6878.    Application window identity. 
  6879.  
  6880.  
  6881. ΓòÉΓòÉΓòÉ <hidden> phstHelpSubTable ΓòÉΓòÉΓòÉ
  6882.  
  6883. phstHelpSubTable (PHELPSUBTABLE) 
  6884.    Help subtable for this application window. 
  6885.  
  6886.  
  6887. ΓòÉΓòÉΓòÉ <hidden> idExtPanel ΓòÉΓòÉΓòÉ
  6888.  
  6889. idExtPanel (USHORT) 
  6890.    Identity of the extended help panel for the application window. 
  6891.  
  6892.  
  6893. ΓòÉΓòÉΓòÉ 4.82. HENUM ΓòÉΓòÉΓòÉ
  6894.  
  6895. HENUM Window-enumeration handle. 
  6896.  
  6897. typedef LHANDLE HENUM;
  6898.  
  6899.  
  6900. ΓòÉΓòÉΓòÉ 4.83. HEV ΓòÉΓòÉΓòÉ
  6901.  
  6902. HEV 32-bit value used as an event handle. 
  6903.  
  6904. typedef ULONG HEV;
  6905.  
  6906.  
  6907. ΓòÉΓòÉΓòÉ 4.84. HFILE ΓòÉΓòÉΓòÉ
  6908.  
  6909. HFILE Resource handle. 
  6910.  
  6911. typedef LHANDLE HFILE;
  6912.  
  6913.  
  6914. ΓòÉΓòÉΓòÉ 4.85. HFIND ΓòÉΓòÉΓòÉ
  6915.  
  6916. HFIND Handle associated to a wpclsFindObjectFirst request. 
  6917.  
  6918. typedef LHANDLE HFIND;
  6919.  
  6920.  
  6921. ΓòÉΓòÉΓòÉ 4.86. HINI ΓòÉΓòÉΓòÉ
  6922.  
  6923. HINI Initialization-file handle. 
  6924.  
  6925. typedef LHANDLE HINI;
  6926.  
  6927.  
  6928. ΓòÉΓòÉΓòÉ 4.87. HLIB ΓòÉΓòÉΓòÉ
  6929.  
  6930. HLIB Library handle. 
  6931.  
  6932. typedef HMODULE HLIB;
  6933.  
  6934.  
  6935. ΓòÉΓòÉΓòÉ 4.88. HMF ΓòÉΓòÉΓòÉ
  6936.  
  6937. HMF Metafile handle. 
  6938.  
  6939. typedef LHANDLE HMF;
  6940.  
  6941.  
  6942. ΓòÉΓòÉΓòÉ 4.89. HMODULE ΓòÉΓòÉΓòÉ
  6943.  
  6944. HMODULE Module handle. 
  6945.  
  6946. typedef LHANDLE HMODULE;
  6947.  
  6948.  
  6949. ΓòÉΓòÉΓòÉ 4.90. HMQ ΓòÉΓòÉΓòÉ
  6950.  
  6951. HMQ Message-queue handle. 
  6952.  
  6953. typedef LHANDLE HMQ;
  6954.  
  6955.  
  6956. ΓòÉΓòÉΓòÉ 4.91. HMTX ΓòÉΓòÉΓòÉ
  6957.  
  6958. HMTX 32-bit value used as a mutex-semaphore handle. 
  6959.  
  6960. typedef ULONG HMTX;
  6961.  
  6962.  
  6963. ΓòÉΓòÉΓòÉ 4.92. HMUX ΓòÉΓòÉΓòÉ
  6964.  
  6965. HMUX 32-bit value used as a muxwait semaphore handle. 
  6966.  
  6967. typedef ULONG HMUX;
  6968.  
  6969.  
  6970. ΓòÉΓòÉΓòÉ 4.93. HOBJECT ΓòÉΓòÉΓòÉ
  6971.  
  6972. HOBJECT Workplace object handle. 
  6973.  
  6974. typedef LHANDLE HOBJECT;
  6975.  
  6976.  
  6977. ΓòÉΓòÉΓòÉ 4.94. HPAL ΓòÉΓòÉΓòÉ
  6978.  
  6979. HPAL Palette handle. 
  6980.  
  6981. typedef LHANDLE HPAL;
  6982.  
  6983.  
  6984. ΓòÉΓòÉΓòÉ 4.95. HPOINTER ΓòÉΓòÉΓòÉ
  6985.  
  6986. HPOINTER Pointer handle. 
  6987.  
  6988. typedef LHANDLE HPOINTER;
  6989.  
  6990.  
  6991. ΓòÉΓòÉΓòÉ 4.96. HPROC ΓòÉΓòÉΓòÉ
  6992.  
  6993. HPROC Processor handle. 
  6994.  
  6995. typedef LHANDLE HPROC;
  6996.  
  6997.  
  6998. ΓòÉΓòÉΓòÉ 4.97. HPROGARRAY ΓòÉΓòÉΓòÉ
  6999.  
  7000. HPROGARRAY Array of program handles. 
  7001.  
  7002. typedef struct _HPROGARRAY {
  7003. HPROGRAM    ahprog[1];  /* Program handle array  */
  7004.  } HPROGARRAY;
  7005.  
  7006.  
  7007. ΓòÉΓòÉΓòÉ <hidden> ahprog[1] ΓòÉΓòÉΓòÉ
  7008.  
  7009. ahprog[1] (HPROGRAM) 
  7010.    Program handle array. 
  7011.  
  7012.  
  7013. ΓòÉΓòÉΓòÉ 4.98. HPROGRAM ΓòÉΓòÉΓòÉ
  7014.  
  7015. HPROGRAM Program handle. 
  7016.  
  7017. typedef LHANDLE HPROGRAM;
  7018.  
  7019.  
  7020. ΓòÉΓòÉΓòÉ 4.99. HPS ΓòÉΓòÉΓòÉ
  7021.  
  7022. HPS Presentation-space handle. 
  7023.  
  7024. typedef LHANDLE HPS;
  7025.  
  7026.  
  7027. ΓòÉΓòÉΓòÉ 4.100. HRGN ΓòÉΓòÉΓòÉ
  7028.  
  7029. HRGN Region handle. 
  7030.  
  7031. typedef LHANDLE HRGN;
  7032.  
  7033.  
  7034. ΓòÉΓòÉΓòÉ 4.101. HSAVEWP ΓòÉΓòÉΓòÉ
  7035.  
  7036. HSAVEWP Frame window-repositioning process handle. 
  7037.  
  7038. typedef LHANDLE HSAVEWP;
  7039.  
  7040.  
  7041. ΓòÉΓòÉΓòÉ 4.102. HSEM ΓòÉΓòÉΓòÉ
  7042.  
  7043. HSEM Semaphore handle. 
  7044.  
  7045. typedef VOID *HSEM;
  7046.  
  7047.  
  7048. ΓòÉΓòÉΓòÉ 4.103. HSPL ΓòÉΓòÉΓòÉ
  7049.  
  7050. HSPL Spooler handle. 
  7051.  
  7052. typedef LHANDLE HSPL;
  7053.  
  7054.  
  7055. ΓòÉΓòÉΓòÉ 4.104. HSTR ΓòÉΓòÉΓòÉ
  7056.  
  7057. HSTR String handle. 
  7058.  
  7059. typedef LHANDLE HSTR;
  7060.  
  7061.  
  7062. ΓòÉΓòÉΓòÉ 4.105. HSWITCH ΓòÉΓòÉΓòÉ
  7063.  
  7064. HSWITCH Switch-list entry handle. 
  7065.  
  7066. typedef LHANDLE HSWITCH;
  7067.  
  7068.  
  7069. ΓòÉΓòÉΓòÉ 4.106. HWND ΓòÉΓòÉΓòÉ
  7070.  
  7071. HWND Window handle. 
  7072.  
  7073. typedef LHANDLE HWND;
  7074.  
  7075.  
  7076. ΓòÉΓòÉΓòÉ 4.107. ICONINFO ΓòÉΓòÉΓòÉ
  7077.  
  7078. ICONINFO Icon information data structure. 
  7079.  
  7080. typedef struct _ICONINFO {
  7081. ULONG      cb;            /* Length of ICONINFO structure */
  7082. ULONG      fFormat;       /* Indicates from where the icon resides */
  7083. PSZ        pszFileName;   /* Name of file containing icon data */
  7084. HMODULE    hmod;          /* Module containing the icon resource */
  7085. ULONG      resid;         /* Identity of icon resource */
  7086. ULONG      cbIconData;    /* Length of icon data in bytes */
  7087. PVOID      pIconData;     /* Pointer to buffer containing icon data */
  7088.  } ICONINFO;
  7089.  
  7090.  
  7091. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  7092.  
  7093. cb (ULONG) 
  7094.    Length of ICONINFO structure. 
  7095.  
  7096.  
  7097. ΓòÉΓòÉΓòÉ <hidden> fFormat ΓòÉΓòÉΓòÉ
  7098.  
  7099. fFormat (ULONG) 
  7100.    Indicates from where the icon resides. 
  7101.  
  7102.    Possible values are: 
  7103.  
  7104.    ICON_FILE 
  7105.       Icon file supplied. 
  7106.    ICON_RESOURCE 
  7107.       Icon resource supplied. 
  7108.    ICON_DATA 
  7109.       Icon data supplied. 
  7110.    ICON_CLEAR 
  7111.       Go back to default icon. 
  7112.  
  7113.  
  7114. ΓòÉΓòÉΓòÉ <hidden> pszFileName ΓòÉΓòÉΓòÉ
  7115.  
  7116. pszFileName (PSZ) 
  7117.    Name of file containing icon data. This value is ignored if fFormat is not 
  7118.    equal to to ICON_FILE. 
  7119.  
  7120.  
  7121. ΓòÉΓòÉΓòÉ <hidden> hmod ΓòÉΓòÉΓòÉ
  7122.  
  7123. hmod (HMODULE) 
  7124.    Module containing the icon resource. This value is ignored if fFormat is not 
  7125.    equal to to ICON_RESOURCE. 
  7126.  
  7127.  
  7128. ΓòÉΓòÉΓòÉ <hidden> resid ΓòÉΓòÉΓòÉ
  7129.  
  7130. resid (ULONG) 
  7131.    Identity of icon resource. This value is ignored if fFormat is not equal to 
  7132.    to ICON_RESOURCE. 
  7133.  
  7134.  
  7135. ΓòÉΓòÉΓòÉ <hidden> cbIconData ΓòÉΓòÉΓòÉ
  7136.  
  7137. cbIconData (ULONG) 
  7138.    Length of icon data in bytes. This value is ignored if fFormat is not equal 
  7139.    to to ICON_DATA. 
  7140.  
  7141.  
  7142. ΓòÉΓòÉΓòÉ <hidden> pIconData ΓòÉΓòÉΓòÉ
  7143.  
  7144. pIconData (PVOID) 
  7145.    Pointer to buffer containing icon data. This value is ignored if fFormat is 
  7146.    not equal to to ICON_DATA. 
  7147.  
  7148.  
  7149. ΓòÉΓòÉΓòÉ 4.108. ICONPOS ΓòÉΓòÉΓòÉ
  7150.  
  7151. ICONPOS Icon position structure. 
  7152.  
  7153. typedef struct _ICONPOS {
  7154. POINTL    ptlIcon;          /* Position of icon */
  7155. CHAR      szIdentity[1];    /* Object identity string */
  7156.  } ICONPOS;
  7157.  
  7158.  
  7159. ΓòÉΓòÉΓòÉ <hidden> ptlIcon ΓòÉΓòÉΓòÉ
  7160.  
  7161. ptlIcon (POINTL) 
  7162.    Position of the icon. 
  7163.  
  7164.  
  7165. ΓòÉΓòÉΓòÉ <hidden> szIdentity[1] ΓòÉΓòÉΓòÉ
  7166.  
  7167. szIdentity[1] (CHAR) 
  7168.    Object identity string. 
  7169.  
  7170.  
  7171. ΓòÉΓòÉΓòÉ 4.109. IMAGEBUNDLE ΓòÉΓòÉΓòÉ
  7172.  
  7173. IMAGEBUNDLE Image-attributes bundle structure. 
  7174.  
  7175. typedef struct _IMAGEBUNDLE {
  7176. LONG      lColor;         /* Image foreground color  */
  7177. LONG      lBackColor;     /* Image background color  */
  7178. USHORT    usMixMode;      /* Image foreground-mix mode  */
  7179. USHORT    usBackMixMode;  /* Image background-mix mode  */
  7180.  } IMAGEBUNDLE;
  7181.  
  7182.  
  7183. ΓòÉΓòÉΓòÉ <hidden> lColor ΓòÉΓòÉΓòÉ
  7184.  
  7185. lColor (LONG) 
  7186.    Image foreground color. 
  7187.  
  7188.  
  7189. ΓòÉΓòÉΓòÉ <hidden> lBackColor ΓòÉΓòÉΓòÉ
  7190.  
  7191. lBackColor (LONG) 
  7192.    Image background color. 
  7193.  
  7194.  
  7195. ΓòÉΓòÉΓòÉ <hidden> usMixMode ΓòÉΓòÉΓòÉ
  7196.  
  7197. usMixMode (USHORT) 
  7198.    Image foreground-mix mode. 
  7199.  
  7200.  
  7201. ΓòÉΓòÉΓòÉ <hidden> usBackMixMode ΓòÉΓòÉΓòÉ
  7202.  
  7203. usBackMixMode (USHORT) 
  7204.    Image background-mix mode. 
  7205.  
  7206.  
  7207. ΓòÉΓòÉΓòÉ 4.110. IPT ΓòÉΓòÉΓòÉ
  7208.  
  7209. IPT Insertion point for multi-line entry field. 
  7210.  
  7211. typedef LONG IPT;
  7212.  
  7213.  
  7214. ΓòÉΓòÉΓòÉ 4.111. KERNINGPAIRS ΓòÉΓòÉΓòÉ
  7215.  
  7216. KERNINGPAIRS Kerning-pair records structure. 
  7217.  
  7218. typedef struct _KERNINGPAIRS {
  7219. SHORT    sFirstChar;      /* First character of pair  */
  7220. SHORT    sSecondChar;     /* Second character of pair  */
  7221. LONG     lKerningAmount;  /* Amount of kerning for this pair  */
  7222.  } KERNINGPAIRS;
  7223.  
  7224.  
  7225. ΓòÉΓòÉΓòÉ <hidden> sFirstChar ΓòÉΓòÉΓòÉ
  7226.  
  7227. sFirstChar (SHORT) 
  7228.    First character of pair. 
  7229.  
  7230.  
  7231. ΓòÉΓòÉΓòÉ <hidden> sSecondChar ΓòÉΓòÉΓòÉ
  7232.  
  7233. sSecondChar (SHORT) 
  7234.    Second character of pair. 
  7235.  
  7236.  
  7237. ΓòÉΓòÉΓòÉ <hidden> lKerningAmount ΓòÉΓòÉΓòÉ
  7238.  
  7239. lKerningAmount (LONG) 
  7240.    Amount of kerning for this pair. 
  7241.  
  7242.  
  7243. ΓòÉΓòÉΓòÉ 4.112. LHANDLE ΓòÉΓòÉΓòÉ
  7244.  
  7245. LHANDLE The handle of a resource. 
  7246.  
  7247. typedef unsigned long LHANDLE;
  7248.  
  7249.  
  7250. ΓòÉΓòÉΓòÉ 4.113. LINEBUNDLE ΓòÉΓòÉΓòÉ
  7251.  
  7252. LINEBUNDLE Line-attributes bundle structure. 
  7253.  
  7254. typedef struct _LINEBUNDLE {
  7255. LONG      lColor;         /* Line foreground color  */
  7256. LONG      lBackColor;     /* Line background color  */
  7257. USHORT    usMixMode;      /* Line foreground-mix mode  */
  7258. USHORT    usBackMixMode;  /* Line background-mix mode  */
  7259. FIXED     fxWidth;        /* Line width  */
  7260. LONG      lGeomWidth;     /* Geometric line width  */
  7261. USHORT    usType;         /* Line type  */
  7262. USHORT    usEnd;          /* Line end  */
  7263. USHORT    usJoin;         /* Line join  */
  7264. USHORT    usReserved;     /* Reserved  */
  7265.  } LINEBUNDLE;
  7266.  
  7267.  
  7268. ΓòÉΓòÉΓòÉ <hidden> lColor ΓòÉΓòÉΓòÉ
  7269.  
  7270. lColor (LONG) 
  7271.    Line foreground color. 
  7272.  
  7273.  
  7274. ΓòÉΓòÉΓòÉ <hidden> lBackColor ΓòÉΓòÉΓòÉ
  7275.  
  7276. lBackColor (LONG) 
  7277.    Line background color. 
  7278.  
  7279.  
  7280. ΓòÉΓòÉΓòÉ <hidden> usMixMode ΓòÉΓòÉΓòÉ
  7281.  
  7282. usMixMode (USHORT) 
  7283.    Line foreground-mix mode. 
  7284.  
  7285.  
  7286. ΓòÉΓòÉΓòÉ <hidden> usBackMixMode ΓòÉΓòÉΓòÉ
  7287.  
  7288. usBackMixMode (USHORT) 
  7289.    Line background-mix mode. 
  7290.  
  7291.  
  7292. ΓòÉΓòÉΓòÉ <hidden> fxWidth ΓòÉΓòÉΓòÉ
  7293.  
  7294. fxWidth (FIXED) 
  7295.    Line width. 
  7296.  
  7297.  
  7298. ΓòÉΓòÉΓòÉ <hidden> lGeomWidth ΓòÉΓòÉΓòÉ
  7299.  
  7300. lGeomWidth (LONG) 
  7301.    Geometric line width. 
  7302.  
  7303.  
  7304. ΓòÉΓòÉΓòÉ <hidden> usType ΓòÉΓòÉΓòÉ
  7305.  
  7306. usType (USHORT) 
  7307.    Line type. 
  7308.  
  7309.  
  7310. ΓòÉΓòÉΓòÉ <hidden> usEnd ΓòÉΓòÉΓòÉ
  7311.  
  7312. usEnd (USHORT) 
  7313.    Line end. 
  7314.  
  7315.  
  7316. ΓòÉΓòÉΓòÉ <hidden> usJoin ΓòÉΓòÉΓòÉ
  7317.  
  7318. usJoin (USHORT) 
  7319.    Line join. 
  7320.  
  7321.  
  7322. ΓòÉΓòÉΓòÉ <hidden> usReserved ΓòÉΓòÉΓòÉ
  7323.  
  7324. usReserved (USHORT) 
  7325.    Reserved. 
  7326.  
  7327.  
  7328. ΓòÉΓòÉΓòÉ 4.114. LINKITEM ΓòÉΓòÉΓòÉ
  7329.  
  7330. LINKITEM USAGE_LINK structure. 
  7331.  
  7332. typedef struct _LINKITEM {
  7333. WPObject *LinkObj;  /* The link object  */
  7334.  } LINKITEM;
  7335.  
  7336.  
  7337. ΓòÉΓòÉΓòÉ <hidden> LinkObj ΓòÉΓòÉΓòÉ
  7338.  
  7339. LinkObj (WPObject *) 
  7340.    The link object. 
  7341.  
  7342.  
  7343. ΓòÉΓòÉΓòÉ 4.115. LONG ΓòÉΓòÉΓòÉ
  7344.  
  7345. LONG Signed integer in the range -2 147 483 648 through 2 147 483 647. 
  7346.  
  7347. #define LONG long
  7348.  
  7349. Note:  Where this data type represents a graphic coordinate in world or model 
  7350.        space, its value is restricted to -134 217 728 through 134 217 727. 
  7351.  
  7352. A graphic coordinate in device or screen coordinates is restricted to -32 768 
  7353. through 32 767. 
  7354.  
  7355. The value of a graphic coordinate may be further restricted by any transforms 
  7356. currently in force, including the positioning of the origin of the window on 
  7357. the screen. In particular, coordinates in world or model space must not 
  7358. generate coordinate values after transformation (that is, in device or screen 
  7359. space) outside the range -32 768 through 32 767. 
  7360.  
  7361.  
  7362. ΓòÉΓòÉΓòÉ 4.116. M_WPFileSystem * ΓòÉΓòÉΓòÉ
  7363.  
  7364. M_WPFileSystem *  Pointer to a WPFileSystem class object. 
  7365.  
  7366.  
  7367. ΓòÉΓòÉΓòÉ 4.117. M_WPFolder * ΓòÉΓòÉΓòÉ
  7368.  
  7369. M_WPFolder *  Pointer to a WPFolder class object. 
  7370.  
  7371.  
  7372. ΓòÉΓòÉΓòÉ 4.118. M_WPObject * ΓòÉΓòÉΓòÉ
  7373.  
  7374. M_WPObject *  Pointer to a WPObject class object. 
  7375.  
  7376.  
  7377. ΓòÉΓòÉΓòÉ 4.119. M_WPPalette * ΓòÉΓòÉΓòÉ
  7378.  
  7379. M_WPPalette *  Pointer to a WPPalette class object. 
  7380.  
  7381.  
  7382. ΓòÉΓòÉΓòÉ 4.120. MARKERBUNDLE ΓòÉΓòÉΓòÉ
  7383.  
  7384. MARKERBUNDLE Marker-attributes bundle structure. 
  7385.  
  7386. typedef struct _MARKERBUNDLE {
  7387. LONG      lColor;         /* Marker foreground color  */
  7388. LONG      lBackColor;     /* Marker background color  */
  7389. USHORT    usMixMode;      /* Marker foreground-mix mode  */
  7390. USHORT    usBackMixMode;  /* Marker background-mix mode  */
  7391. USHORT    usSet;          /* Marker set  */
  7392. USHORT    usSymbol;       /* Marker symbol  */
  7393. SIZEF     sizfxCell;      /* Marker cell  */
  7394.  } MARKERBUNDLE;
  7395.  
  7396.  
  7397. ΓòÉΓòÉΓòÉ <hidden> lColor ΓòÉΓòÉΓòÉ
  7398.  
  7399. lColor (LONG) 
  7400.    Marker foreground color. 
  7401.  
  7402.  
  7403. ΓòÉΓòÉΓòÉ <hidden> lBackColor ΓòÉΓòÉΓòÉ
  7404.  
  7405. lBackColor (LONG) 
  7406.    Marker background color. 
  7407.  
  7408.  
  7409. ΓòÉΓòÉΓòÉ <hidden> usMixMode ΓòÉΓòÉΓòÉ
  7410.  
  7411. usMixMode (USHORT) 
  7412.    Marker foreground-mix mode. 
  7413.  
  7414.  
  7415. ΓòÉΓòÉΓòÉ <hidden> usBackMixMode ΓòÉΓòÉΓòÉ
  7416.  
  7417. usBackMixMode (USHORT) 
  7418.    Marker background-mix mode. 
  7419.  
  7420.  
  7421. ΓòÉΓòÉΓòÉ <hidden> usSet ΓòÉΓòÉΓòÉ
  7422.  
  7423. usSet (USHORT) 
  7424.    Marker set. 
  7425.  
  7426.  
  7427. ΓòÉΓòÉΓòÉ <hidden> usSymbol ΓòÉΓòÉΓòÉ
  7428.  
  7429. usSymbol (USHORT) 
  7430.    Marker symbol. 
  7431.  
  7432.  
  7433. ΓòÉΓòÉΓòÉ <hidden> sizfxCell ΓòÉΓòÉΓòÉ
  7434.  
  7435. sizfxCell (SIZEF) 
  7436.    Marker cell. 
  7437.  
  7438.  
  7439. ΓòÉΓòÉΓòÉ 4.121. MATRIXLF ΓòÉΓòÉΓòÉ
  7440.  
  7441. MATRIXLF Matrix-elements structure. 
  7442.  
  7443. typedef struct _MATRIXLF {
  7444. FIXED    fxM11;  /* First element of first row  */
  7445. FIXED    fxM12;  /* Second element of first row  */
  7446. LONG     lM13;   /* Third element of first row  */
  7447. FIXED    fxM21;  /* First element of second row  */
  7448. FIXED    fxM22;  /* Second element of second row  */
  7449. LONG     lM23;   /* Third element of second row  */
  7450. LONG     lM31;   /* First element of third row  */
  7451. LONG     lM32;   /* Second element of third row  */
  7452. LONG     lM33;   /* Third element of third row  */
  7453.  } MATRIXLF;
  7454.  
  7455.  
  7456. ΓòÉΓòÉΓòÉ <hidden> fxM11 ΓòÉΓòÉΓòÉ
  7457.  
  7458. fxM11 (FIXED) 
  7459.    First element of first row. 
  7460.  
  7461.  
  7462. ΓòÉΓòÉΓòÉ <hidden> fxM12 ΓòÉΓòÉΓòÉ
  7463.  
  7464. fxM12 (FIXED) 
  7465.    Second element of first row. 
  7466.  
  7467.  
  7468. ΓòÉΓòÉΓòÉ <hidden> lM13 ΓòÉΓòÉΓòÉ
  7469.  
  7470. lM13 (LONG) 
  7471.    Third element of first row. 
  7472.  
  7473.  
  7474. ΓòÉΓòÉΓòÉ <hidden> fxM21 ΓòÉΓòÉΓòÉ
  7475.  
  7476. fxM21 (FIXED) 
  7477.    First element of second row. 
  7478.  
  7479.  
  7480. ΓòÉΓòÉΓòÉ <hidden> fxM22 ΓòÉΓòÉΓòÉ
  7481.  
  7482. fxM22 (FIXED) 
  7483.    Second element of second row. 
  7484.  
  7485.  
  7486. ΓòÉΓòÉΓòÉ <hidden> lM23 ΓòÉΓòÉΓòÉ
  7487.  
  7488. lM23 (LONG) 
  7489.    Third element of second row. 
  7490.  
  7491.  
  7492. ΓòÉΓòÉΓòÉ <hidden> lM31 ΓòÉΓòÉΓòÉ
  7493.  
  7494. lM31 (LONG) 
  7495.    First element of third row. 
  7496.  
  7497.  
  7498. ΓòÉΓòÉΓòÉ <hidden> lM32 ΓòÉΓòÉΓòÉ
  7499.  
  7500. lM32 (LONG) 
  7501.    Second element of third row. 
  7502.  
  7503.  
  7504. ΓòÉΓòÉΓòÉ <hidden> lM33 ΓòÉΓòÉΓòÉ
  7505.  
  7506. lM33 (LONG) 
  7507.    Third element of third row. 
  7508.  
  7509.  
  7510. ΓòÉΓòÉΓòÉ 4.122. MEMORYITEM ΓòÉΓòÉΓòÉ
  7511.  
  7512. MEMORYITEM USAGE_MEMORY structure. 
  7513.  
  7514. typedef struct _MEMORYITEM {
  7515. ULONG    cbBuffer;  /* Number of bytes in memory block  */
  7516.  } MEMORYITEM;
  7517.  
  7518.  
  7519. ΓòÉΓòÉΓòÉ <hidden> cbBuffer ΓòÉΓòÉΓòÉ
  7520.  
  7521. cbBuffer (ULONG) 
  7522.    Number of bytes in memory block. 
  7523.  
  7524.  
  7525. ΓòÉΓòÉΓòÉ 4.123. MENUITEM ΓòÉΓòÉΓòÉ
  7526.  
  7527. MENUITEM Menu item. 
  7528.  
  7529. typedef struct _MENUITEM {
  7530. SHORT     iPosition;    /* Position  */
  7531. USHORT    afStyle;      /* Style  */
  7532. USHORT    afAttribute;  /* Attribute  */
  7533. USHORT    id;           /* Identity  */
  7534. HWND      hwndSubMenu;  /* Submenu  */
  7535. ULONG     hItem;        /* Item  */
  7536.  } MENUITEM;
  7537.  
  7538.  
  7539. ΓòÉΓòÉΓòÉ <hidden> iPosition ΓòÉΓòÉΓòÉ
  7540.  
  7541. iPosition (SHORT) 
  7542.    Position. 
  7543.  
  7544.  
  7545. ΓòÉΓòÉΓòÉ <hidden> afStyle ΓòÉΓòÉΓòÉ
  7546.  
  7547. afStyle (USHORT) 
  7548.    Style. 
  7549.  
  7550.  
  7551. ΓòÉΓòÉΓòÉ <hidden> afAttribute ΓòÉΓòÉΓòÉ
  7552.  
  7553. afAttribute (USHORT) 
  7554.    Attribute. 
  7555.  
  7556.  
  7557. ΓòÉΓòÉΓòÉ <hidden> id ΓòÉΓòÉΓòÉ
  7558.  
  7559. id (USHORT) 
  7560.    Identity. 
  7561.  
  7562.  
  7563. ΓòÉΓòÉΓòÉ <hidden> hwndSubMenu ΓòÉΓòÉΓòÉ
  7564.  
  7565. hwndSubMenu (HWND) 
  7566.    Submenu. 
  7567.  
  7568.  
  7569. ΓòÉΓòÉΓòÉ <hidden> hItem ΓòÉΓòÉΓòÉ
  7570.  
  7571. hItem (ULONG) 
  7572.    Item. 
  7573.  
  7574.  
  7575. ΓòÉΓòÉΓòÉ 4.124. MFP ΓòÉΓòÉΓòÉ
  7576.  
  7577. MFP Structure to define metafile data being passed on the clipboard. 
  7578.  
  7579. typedef struct _MFP {
  7580. POINTL    sizeBounds;  /* Metafile notational grid size  */
  7581. POINTL    sizeMM;      /* Metafile size high metric units  */
  7582. ULONG     cbLength;    /* Length of metafile data  */
  7583. USHORT    mapMode;     /* A PM metafile map mode  */
  7584. USHORT    reserved;    /* Reserved  */
  7585. BYTE      abData[1];   /* Metafile data  */
  7586.  } MFP;
  7587.  
  7588.  
  7589. ΓòÉΓòÉΓòÉ <hidden> sizeBounds ΓòÉΓòÉΓòÉ
  7590.  
  7591. sizeBounds (POINTL) 
  7592.    Metafile notational grid size. 
  7593.  
  7594.  
  7595. ΓòÉΓòÉΓòÉ <hidden> sizeMM ΓòÉΓòÉΓòÉ
  7596.  
  7597. sizeMM (POINTL) 
  7598.    Metafile size high metric units. 
  7599.  
  7600.  
  7601. ΓòÉΓòÉΓòÉ <hidden> cbLength ΓòÉΓòÉΓòÉ
  7602.  
  7603. cbLength (ULONG) 
  7604.    Length of metafile data. 
  7605.  
  7606.  
  7607. ΓòÉΓòÉΓòÉ <hidden> mapMode ΓòÉΓòÉΓòÉ
  7608.  
  7609. mapMode (USHORT) 
  7610.    A PM metafile map mode. 
  7611.  
  7612.  
  7613. ΓòÉΓòÉΓòÉ <hidden> reserved ΓòÉΓòÉΓòÉ
  7614.  
  7615. reserved (USHORT) 
  7616.    Reserved. 
  7617.  
  7618.  
  7619. ΓòÉΓòÉΓòÉ <hidden> abData[1] ΓòÉΓòÉΓòÉ
  7620.  
  7621. abData[1] (BYTE) 
  7622.    Metafile data. 
  7623.  
  7624.  
  7625. ΓòÉΓòÉΓòÉ 4.125. MINIRECORDCORE ΓòÉΓòÉΓòÉ
  7626.  
  7627. MINIRECORDCORE Structure that contains information for smaller records than 
  7628. those defined by the RECORDCORE data structure. This data structure is used if 
  7629. the CCS_MINIRECORDCORE style bit is specified when a container is created. 
  7630.  
  7631. typedef struct _MINIRECORDCORE {
  7632. ULONG                      cb;               /* Structure size  */
  7633. ULONG                      flRecordAttr;     /* Attributes of container records  */
  7634. POINTL                     ptlIcon;          /* Record position  */
  7635. struct _MINIRECORDCORE    *preccNextRecord;  /* Pointer  */
  7636. PSZ                        pszIcon;          /* Record text  */
  7637. HPOINTER                   hptrIcon;         /* Record icon  */
  7638.  } MINIRECORDCORE;
  7639.  
  7640.  
  7641. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  7642.  
  7643. cb (ULONG) 
  7644.    Structure size. 
  7645.  
  7646.    The size (in bytes) of the MINIRECORDCORE structure. 
  7647.  
  7648.  
  7649. ΓòÉΓòÉΓòÉ <hidden> flRecordAttr ΓòÉΓòÉΓòÉ
  7650.  
  7651. flRecordAttr (ULONG) 
  7652.    Attributes of container records. 
  7653.  
  7654.    Contains any or all of the following: 
  7655.  
  7656.    CRA_COLLAPSED 
  7657.       Specifies that a record is collapsed. 
  7658.    CRA_CURSORED 
  7659.       Specifies that a record will be drawn with a selection cursor. 
  7660.    CRA_DROPONABLE 
  7661.       Specifies that a record can be a target for direct manipulation. 
  7662.    CRA_EXPANDED 
  7663.       Specifies that a record is expanded. 
  7664.    CRA_FILTERED 
  7665.       Specifies that a record is filtered, and therefore hidden from view. 
  7666.    CRA_INUSE 
  7667.       Specifies that a record will be drawn with in-use emphasis. 
  7668.    CRA_RECORDREADONLY 
  7669.       Prevents a record from being edited directly. 
  7670.    CRA_SELECTED 
  7671.       Specifies that a record will be drawn with selected-state emphasis. 
  7672.    CRA_TARGET 
  7673.       Specifies that a record will be drawn with target emphasis. 
  7674.  
  7675.  
  7676. ΓòÉΓòÉΓòÉ <hidden> ptlIcon ΓòÉΓòÉΓòÉ
  7677.  
  7678. ptlIcon (POINTL) 
  7679.    Record position. 
  7680.  
  7681.    Position of a container record in the icon view. 
  7682.  
  7683.  
  7684. ΓòÉΓòÉΓòÉ <hidden> preccNextRecord ΓòÉΓòÉΓòÉ
  7685.  
  7686. preccNextRecord (struct _MINIRECORDCORE *) 
  7687.    Pointer. 
  7688.  
  7689.    Pointer to the next linked record. 
  7690.  
  7691.  
  7692. ΓòÉΓòÉΓòÉ <hidden> pszIcon ΓòÉΓòÉΓòÉ
  7693.  
  7694. pszIcon (PSZ) 
  7695.    Record text. 
  7696.  
  7697.    Text for the container record. 
  7698.  
  7699.  
  7700. ΓòÉΓòÉΓòÉ <hidden> hptrIcon ΓòÉΓòÉΓòÉ
  7701.  
  7702. hptrIcon (HPOINTER) 
  7703.    Record icon. 
  7704.  
  7705.    Icon that is displayed for the container record. 
  7706.  
  7707.  
  7708. ΓòÉΓòÉΓòÉ 4.126. MLECTLDATA ΓòÉΓòÉΓòÉ
  7709.  
  7710. MLECTLDATA Multiline entry-field (MLE) control data structure. 
  7711.  
  7712. typedef struct _MLECTLDATA {
  7713. USHORT    cbCtlData;      /* Length of control data in bytes  */
  7714. USHORT    afIEFormat;     /* Import/export format  */
  7715. ULONG     cchText;        /* Text limit  */
  7716. IPT       iptAnchor;      /* Selection anchor point  */
  7717. IPT       iptCursor;      /* Selection cursor point  */
  7718. LONG      cxFormat;       /* Formatting-rectangle width in pels  */
  7719. LONG      cyFormat;       /* Formatting-rectangle height in pels  */
  7720. ULONG     afFormatFlags;  /* Format flags  */
  7721.  } MLECTLDATA;
  7722.  
  7723.  
  7724. ΓòÉΓòÉΓòÉ <hidden> cbCtlData ΓòÉΓòÉΓòÉ
  7725.  
  7726. cbCtlData (USHORT) 
  7727.    Length of control data in bytes. 
  7728.  
  7729.  
  7730. ΓòÉΓòÉΓòÉ <hidden> afIEFormat ΓòÉΓòÉΓòÉ
  7731.  
  7732. afIEFormat (USHORT) 
  7733.    Import/export format. 
  7734.  
  7735.    This sets the initial import/export format.  Setting this value via control 
  7736.    data is considered identical to setting it through the MLM_FORMAT message. 
  7737.    The same constants apply here. The default is MLE_CFTEXT. 
  7738.  
  7739.  
  7740. ΓòÉΓòÉΓòÉ <hidden> cchText ΓòÉΓòÉΓòÉ
  7741.  
  7742. cchText (ULONG) 
  7743.    Text limit. 
  7744.  
  7745.    The maximum amount of text allowed in the MLE.  This value is interpreted 
  7746.    identically to the parameter of MLM_SETTEXTLIMIT. A negative value indicates 
  7747.    that the length is considered unbounded. 
  7748.  
  7749.  
  7750. ΓòÉΓòÉΓòÉ <hidden> iptAnchor ΓòÉΓòÉΓòÉ
  7751.  
  7752. iptAnchor (IPT) 
  7753.    Selection anchor point. 
  7754.  
  7755.  
  7756. ΓòÉΓòÉΓòÉ <hidden> iptCursor ΓòÉΓòÉΓòÉ
  7757.  
  7758. iptCursor (IPT) 
  7759.    Selection cursor point. 
  7760.  
  7761.    The iptAnchor and iptCursor parameters identify the beginning and ending 
  7762.    points, respectively, of the selection.  These values may range from 0 
  7763.    through the length of the text. The default is 0,0 and can be indicated by 
  7764.    entering 0,0. 
  7765.  
  7766.  
  7767. ΓòÉΓòÉΓòÉ <hidden> cxFormat ΓòÉΓòÉΓòÉ
  7768.  
  7769. cxFormat (LONG) 
  7770.    Formatting-rectangle width in pels. 
  7771.  
  7772.  
  7773. ΓòÉΓòÉΓòÉ <hidden> cyFormat ΓòÉΓòÉΓòÉ
  7774.  
  7775. cyFormat (LONG) 
  7776.    Formatting-rectangle height in pels. 
  7777.  
  7778.    The cxFormat and cyFormat parameters identify the dimensions in pels of the 
  7779.    formatting rectangle, as can be set by the MLM_SETFORMATRECT message. These 
  7780.    values are considered identical to the two fields in the format rectangle 
  7781.    structure referenced in that message, and the interpretation of the values 
  7782.    in these fields is governed by the afFormatFlags field. 
  7783.    The default is the window size in both dimensions, and can be indicated by 0 
  7784.    values. 
  7785.  
  7786.  
  7787. ΓòÉΓòÉΓòÉ <hidden> afFormatFlags ΓòÉΓòÉΓòÉ
  7788.  
  7789. afFormatFlags (ULONG) 
  7790.    Format flags. 
  7791.  
  7792.    These flags govern the interpretation of the cxFormat and cyFormat fields, 
  7793.    just as in the MLM_SETFORMATRECT message. The flag values defined there are 
  7794.    also valid in this field. The default is unlimited in both directions, and 
  7795.    is of varying size to match the window size. 
  7796.  
  7797.  
  7798. ΓòÉΓòÉΓòÉ 4.127. MLEMARGSTRUCT ΓòÉΓòÉΓòÉ
  7799.  
  7800. MLEMARGSTRUCT Multiline entry-field margin information. 
  7801.  
  7802. typedef struct _MLEMARGSTRUCT {
  7803. USHORT    afMargins;  /* Margin in witch event occurred */
  7804. USHORT    usMouMsg;   /* Message identity of original mouse event */
  7805. IPT       iptNear;    /* Insertion point nearest to margin event */
  7806.  } MLEMARGSTRUCT;
  7807.  
  7808.  
  7809. ΓòÉΓòÉΓòÉ <hidden> afMargins ΓòÉΓòÉΓòÉ
  7810.  
  7811. afMargins (USHORT) 
  7812.    This gives the margin in which the event occurred. 
  7813.    The left and right margins are defined as including the corners at the top 
  7814.    and bottom, and the top and bottom margins are contained between them. 
  7815.    Therefore, the corners are included in the sides. 
  7816.  
  7817.    MLFMARGIN_LEFT 
  7818.  
  7819.    MLFMARGIN_RIGHT 
  7820.  
  7821.    MLFMARGIN_TOP 
  7822.  
  7823.    MLFMARGIN_BOTTOM 
  7824.  
  7825.  
  7826. ΓòÉΓòÉΓòÉ <hidden> usMouMsg ΓòÉΓòÉΓòÉ
  7827.  
  7828. usMouMsg (USHORT) 
  7829.    The message identity of the original mouse event. 
  7830.  
  7831.  
  7832. ΓòÉΓòÉΓòÉ <hidden> iptNear ΓòÉΓòÉΓòÉ
  7833.  
  7834. iptNear (IPT) 
  7835.    The insertion point nearest to the margin event. 
  7836.  
  7837.  
  7838. ΓòÉΓòÉΓòÉ 4.128. MLEOVERFLOW ΓòÉΓòÉΓòÉ
  7839.  
  7840. MLEOVERFLOW Overflow error structure for multiline entry field. 
  7841.  
  7842. typedef struct _MLEOVERFLOW {
  7843. ULONG    afErrInd;     /* One or more EFR_* flags  */
  7844. LONG     nBytesOver;   /* Number of bytes over the limit  */
  7845. LONG     pixHorzOver;  /* Number of pels over the horizontal limit  */
  7846. LONG     pixVertOver;  /* Number of pels over the vertical limit  */
  7847.  } MLEOVERFLOW;
  7848.  
  7849.  
  7850. ΓòÉΓòÉΓòÉ <hidden> afErrInd ΓòÉΓòÉΓòÉ
  7851.  
  7852. afErrInd (ULONG) 
  7853.    One or more EFR_* flags. 
  7854.  
  7855.  
  7856. ΓòÉΓòÉΓòÉ <hidden> nBytesOver ΓòÉΓòÉΓòÉ
  7857.  
  7858. nBytesOver (LONG) 
  7859.    Number of bytes over the limit. 
  7860.  
  7861.  
  7862. ΓòÉΓòÉΓòÉ <hidden> pixHorzOver ΓòÉΓòÉΓòÉ
  7863.  
  7864. pixHorzOver (LONG) 
  7865.    Number of pels over the horizontal limit. 
  7866.  
  7867.  
  7868. ΓòÉΓòÉΓòÉ <hidden> pixVertOver ΓòÉΓòÉΓòÉ
  7869.  
  7870. pixVertOver (LONG) 
  7871.    Number of pels over the vertical limit. 
  7872.  
  7873.  
  7874. ΓòÉΓòÉΓòÉ 4.129. MLE_SEARCHDATA ΓòÉΓòÉΓòÉ
  7875.  
  7876. MLE_SEARCHDATA Search structure for multiline entry field. 
  7877.  
  7878. typedef struct _SEARCH {
  7879. USHORT    cb;          /* Size of structure  */
  7880. PCHAR     pchFind;     /* String to search for  */
  7881. PCHAR     pchReplace;  /* String to replace with  */
  7882. SHORT     cchFind;     /* Length of pchFind string  */
  7883. SHORT     cchReplace;  /* Length of pchReplace string  */
  7884. IPT       iptStart;    /* Point at which to start search, or point where string was found  */
  7885. IPT       iptStop;     /* Point at which to stop search  */
  7886. USHORT    cchFound;    /* Length of string found at iptStart  */
  7887.  } MLE_SEARCHDATA;
  7888.  
  7889.  
  7890. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  7891.  
  7892. cb (USHORT) 
  7893.    Size of MLE_SEARCHDATA structure. 
  7894.  
  7895.  
  7896. ΓòÉΓòÉΓòÉ <hidden> pchFind ΓòÉΓòÉΓòÉ
  7897.  
  7898. pchFind (PCHAR) 
  7899.    String to search for. 
  7900.  
  7901.  
  7902. ΓòÉΓòÉΓòÉ <hidden> pchReplace ΓòÉΓòÉΓòÉ
  7903.  
  7904. pchReplace (PCHAR) 
  7905.    String to replace with. 
  7906.  
  7907.  
  7908. ΓòÉΓòÉΓòÉ <hidden> cchFind ΓòÉΓòÉΓòÉ
  7909.  
  7910. cchFind (SHORT) 
  7911.    Length of pchFind string. 
  7912.  
  7913.  
  7914. ΓòÉΓòÉΓòÉ <hidden> cchReplace ΓòÉΓòÉΓòÉ
  7915.  
  7916. cchReplace (SHORT) 
  7917.    Length of pchReplace string. 
  7918.  
  7919.  
  7920. ΓòÉΓòÉΓòÉ <hidden> iptStart ΓòÉΓòÉΓòÉ
  7921.  
  7922. iptStart (IPT) 
  7923.    Point at which to start search, or point where string was found. 
  7924.  
  7925.    non-negative 
  7926.       Point at which to start search. 
  7927.    negative 
  7928.       Start search from current cursor location. 
  7929.  
  7930.  
  7931. ΓòÉΓòÉΓòÉ <hidden> iptStop ΓòÉΓòÉΓòÉ
  7932.  
  7933. iptStop (IPT) 
  7934.    Point at which to stop search. 
  7935.  
  7936.    non-negative 
  7937.       Point at which to stop search. 
  7938.    negative 
  7939.       Stop search at end of text. 
  7940.  
  7941.  
  7942. ΓòÉΓòÉΓòÉ <hidden> cchFound ΓòÉΓòÉΓòÉ
  7943.  
  7944. cchFound (USHORT) 
  7945.    Length of string found at iptStart. 
  7946.  
  7947.  
  7948. ΓòÉΓòÉΓòÉ 4.130. MPARAM ΓòÉΓòÉΓòÉ
  7949.  
  7950. MPARAM 4-byte message-dependent parameter structure. 
  7951.  
  7952. typedef VOID *MPARAM;
  7953.  
  7954. Certain elements of information, placed into the parameters of a message, have 
  7955. data types that do not use all 4 bytes of this data type. The rules governing 
  7956. these cases are: 
  7957.  
  7958. BOOL      The value is contained in the low word and the high word is 0. 
  7959. SHORT     The value is contained in the low word and its sign is extended into 
  7960.           the high word. 
  7961. USHORT    The value is contained in the low word and the high word is 0. 
  7962. NULL      The entire 4 bytes are 0. 
  7963.  
  7964.  
  7965. ΓòÉΓòÉΓòÉ 4.131. MQINFO ΓòÉΓòÉΓòÉ
  7966.  
  7967. MQINFO Message-queue information structure. 
  7968.  
  7969. typedef struct _MQINFO {
  7970. ULONG    cb;         /* Length of structure  */
  7971. PID      pid;        /* Process identity  */
  7972. TID      tid;        /* Thread identity  */
  7973. ULONG    cmsgs;      /* Message count  */
  7974. PVOID    pReserved;  /* Reserved  */
  7975.  } MQINFO;
  7976.  
  7977.  
  7978. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  7979.  
  7980. cb (ULONG) 
  7981.    Length of structure. 
  7982.  
  7983.  
  7984. ΓòÉΓòÉΓòÉ <hidden> pid ΓòÉΓòÉΓòÉ
  7985.  
  7986. pid (PID) 
  7987.    Process identity. 
  7988.  
  7989.  
  7990. ΓòÉΓòÉΓòÉ <hidden> tid ΓòÉΓòÉΓòÉ
  7991.  
  7992. tid (TID) 
  7993.    Thread identity. 
  7994.  
  7995.  
  7996. ΓòÉΓòÉΓòÉ <hidden> cmsgs ΓòÉΓòÉΓòÉ
  7997.  
  7998. cmsgs (ULONG) 
  7999.    Message count. 
  8000.  
  8001.  
  8002. ΓòÉΓòÉΓòÉ <hidden> pReserved ΓòÉΓòÉΓòÉ
  8003.  
  8004. pReserved (PVOID) 
  8005.    Reserved. 
  8006.  
  8007.  
  8008. ΓòÉΓòÉΓòÉ 4.132. MRESULT ΓòÉΓòÉΓòÉ
  8009.  
  8010. MRESULT 4-byte message-dependent reply parameter structure. 
  8011.  
  8012. typedef VOID *MRESULT;
  8013.  
  8014. Certain elements of information, placed into the parameters of a message, have 
  8015. data types that do not use all 4 bytes of this data type. The rules governing 
  8016. these cases are: 
  8017.  
  8018. BOOL      The value is contained in the low word and the high word is 0. 
  8019. SHORT     The value is contained in the low word and its sign is extended into 
  8020.           the high word. 
  8021. USHORT    The value is contained in the low word and the high word is 0. 
  8022. NULL      The entire 4 bytes are 0. 
  8023.  
  8024.  
  8025. ΓòÉΓòÉΓòÉ 4.133. MSEMSG ΓòÉΓòÉΓòÉ
  8026.  
  8027. MSEMSG This data structure and an associated macro (MOUSEMSG) are used to 
  8028. access the WM_MOUSEMOVE message parameters, as well as the message parameters 
  8029. for the WM_BUTTON* messages involving button-up, button-down, and button-click 
  8030. events. 
  8031.  
  8032. The macro associated with this data structure, MOUSEMSG, is defined as follows: 
  8033.  
  8034. #define MOUSEMSG(pmsg)   ((PMSEMSG)((PBYTE)pmsg + sizeof(MPARAM) ))
  8035.  
  8036. The structure and macro are both defined in PMWIN.H. 
  8037.  
  8038. typedef struct _MOUSEMSG {
  8039. SHORT     x;            /* X-coordinate of the pointing device  */
  8040. SHORT     y;            /* Y-coordinate of the pointing device  */
  8041. USHORT    codeHitTest;  /* Hit test result  */
  8042. USHORT    fsInp;        /* Keyboard control flags  */
  8043.  } MSEMSG;
  8044.  
  8045.  
  8046. ΓòÉΓòÉΓòÉ <hidden> x ΓòÉΓòÉΓòÉ
  8047.  
  8048. x (SHORT) 
  8049.    X-coordinate of the pointing device. 
  8050.  
  8051.    This field is from the first message parameter (mp1). 
  8052.  
  8053.  
  8054. ΓòÉΓòÉΓòÉ <hidden> y ΓòÉΓòÉΓòÉ
  8055.  
  8056. y (SHORT) 
  8057.    Y-coordinate of the pointing device. 
  8058.  
  8059.    This field is from the first message parameter (mp1). 
  8060.  
  8061.  
  8062. ΓòÉΓòÉΓòÉ <hidden> codeHitTest ΓòÉΓòÉΓòÉ
  8063.  
  8064. codeHitTest (USHORT) 
  8065.    Hit test result. 
  8066.  
  8067.    This field is from the second message parameter (mp2). 
  8068.  
  8069.  
  8070. ΓòÉΓòÉΓòÉ <hidden> fsInp ΓòÉΓòÉΓòÉ
  8071.  
  8072. fsInp (USHORT) 
  8073.    Keyboard control flags. 
  8074.  
  8075.    This field is from the second message parameter (mp2). 
  8076.  
  8077.  
  8078. ΓòÉΓòÉΓòÉ 4.134. MT ΓòÉΓòÉΓòÉ
  8079.  
  8080. MT Menu template. 
  8081.  
  8082. This data structure is specific to version 2.1, or higher, of the OS/2 
  8083. operating system. 
  8084.  
  8085. typedef struct _MT {
  8086. ULONG     len;       /* Length of template in bytes  */
  8087. USHORT    codepage;  /* Code page  */
  8088. USHORT    reserved;  /* Reserved  */
  8089. USHORT    cMti;      /* Count of template items  */
  8090. MTI       rgMti[1];  /* Menu items  */
  8091.  } MT;
  8092.  
  8093.  
  8094. ΓòÉΓòÉΓòÉ <hidden> len ΓòÉΓòÉΓòÉ
  8095.  
  8096. len (ULONG) 
  8097.    Length of template in bytes. 
  8098.  
  8099.  
  8100. ΓòÉΓòÉΓòÉ <hidden> codepage ΓòÉΓòÉΓòÉ
  8101.  
  8102. codepage (USHORT) 
  8103.    Code page. 
  8104.  
  8105.  
  8106. ΓòÉΓòÉΓòÉ <hidden> reserved ΓòÉΓòÉΓòÉ
  8107.  
  8108. reserved (USHORT) 
  8109.    Reserved. 
  8110.  
  8111.  
  8112. ΓòÉΓòÉΓòÉ <hidden> cMti ΓòÉΓòÉΓòÉ
  8113.  
  8114. cMti (USHORT) 
  8115.    Count of template items. 
  8116.  
  8117.  
  8118. ΓòÉΓòÉΓòÉ <hidden> rgMti[1] ΓòÉΓòÉΓòÉ
  8119.  
  8120. rgMti[1] (MTI) 
  8121.    Menu items. 
  8122.  
  8123.  
  8124. ΓòÉΓòÉΓòÉ 4.135. MTI ΓòÉΓòÉΓòÉ
  8125.  
  8126. MTI Menu template item. 
  8127.  
  8128. typedef struct _MTI {
  8129. USHORT    afStyle;  /* Style flags  */
  8130. USHORT    pad;      /* Pad for template  */
  8131. USHORT    idItem;   /* Item identity  */
  8132. CHAR      c[2];     /* Item data  */
  8133.  } MTI;
  8134.  
  8135.  
  8136. ΓòÉΓòÉΓòÉ <hidden> afStyle ΓòÉΓòÉΓòÉ
  8137.  
  8138. afStyle (USHORT) 
  8139.    Style flags 
  8140.  
  8141.  
  8142. ΓòÉΓòÉΓòÉ <hidden> pad ΓòÉΓòÉΓòÉ
  8143.  
  8144. pad (USHORT) 
  8145.    Pad for template. 
  8146.  
  8147.  
  8148. ΓòÉΓòÉΓòÉ <hidden> idItem ΓòÉΓòÉΓòÉ
  8149.  
  8150. idItem (USHORT) 
  8151.    Item identity. 
  8152.  
  8153.  
  8154. ΓòÉΓòÉΓòÉ <hidden> c[2] ΓòÉΓòÉΓòÉ
  8155.  
  8156. c[2] (CHAR) 
  8157.    Item data. 
  8158.  
  8159.    The format and length of this depend upon the value of afStyle. 
  8160.  
  8161.  
  8162. ΓòÉΓòÉΓòÉ 4.136. NOTIFYDELTA ΓòÉΓòÉΓòÉ
  8163.  
  8164. NOTIFYDELTA Structure that contains information about the placement of delta 
  8165. information for a container. This structure is used in the CN_QUERYDELTA 
  8166. container notification code only. 
  8167.  
  8168. typedef struct _NOTIFYDELTA {
  8169. HWND     hwndCnr;  /* Container control handle  */
  8170. ULONG    fDelta;   /* Placement of delta information  */
  8171.  } NOTIFYDELTA;
  8172.  
  8173.  
  8174. ΓòÉΓòÉΓòÉ <hidden> hwndCnr ΓòÉΓòÉΓòÉ
  8175.  
  8176. hwndCnr (HWND) 
  8177.    Container control handle. 
  8178.  
  8179.  
  8180. ΓòÉΓòÉΓòÉ <hidden> fDelta ΓòÉΓòÉΓòÉ
  8181.  
  8182. fDelta (ULONG) 
  8183.    Placement of delta information. 
  8184.  
  8185.    The values can be: 
  8186.  
  8187.    CMA_DELTATOP 
  8188.       The record that represents the delta value scrolls into view at the top 
  8189.       of the client area. 
  8190.    CMA_DELTABOT 
  8191.       The record that represents the delta value scrolls into view at the 
  8192.       bottom of the client area. 
  8193.    CMA_DELTAHOME 
  8194.       The container scrolls to the beginning of the list of all container 
  8195.       records that are available to be inserted into the container, such as the 
  8196.       first record in a database. 
  8197.    CMA_DELTAEND 
  8198.       The container scrolls to the end of the list of all container records 
  8199.       that are available to be inserted into the container, such as the last 
  8200.       record in a database. 
  8201.  
  8202.  
  8203. ΓòÉΓòÉΓòÉ 4.137. NOTIFYRECORDEMPHASIS ΓòÉΓòÉΓòÉ
  8204.  
  8205. NOTIFYRECORDEMPHASIS Structure that contains information about emphasis that is 
  8206. being applied to a container record. This structure is used in the CN_EMPHASIS 
  8207. container notification code only. 
  8208.  
  8209. typedef struct _NOTIFYRECORDEMPHASIS {
  8210. HWND           hwndCnr;        /* Container control handle  */
  8211. PRECORDCORE    pRecord;        /* Pointer  */
  8212. ULONG          fEmphasisMask;  /* Changed emphasis attributes  */
  8213.  } NOTIFYRECORDEMPHASIS;
  8214.  
  8215.  
  8216. ΓòÉΓòÉΓòÉ <hidden> hwndCnr ΓòÉΓòÉΓòÉ
  8217.  
  8218. hwndCnr (HWND) 
  8219.    Container control handle. 
  8220.  
  8221.  
  8222. ΓòÉΓòÉΓòÉ <hidden> pRecord ΓòÉΓòÉΓòÉ
  8223.  
  8224. pRecord (PRECORDCORE) 
  8225.    Pointer. 
  8226.  
  8227.    Pointer to a RECORDCORE data structure whose emphasis attribute has been 
  8228.    changed. 
  8229.  
  8230.    Note:  If the CCS_MINIRECORDCORE style bit is specified when a container is 
  8231.    created, then MINIRECORDCORE should be used instead of RECORDCORE and 
  8232.    PMINIRECORDCORE should be used instead of PRECORDCORE in all applicable data 
  8233.    structures and messages. 
  8234.  
  8235.  
  8236. ΓòÉΓòÉΓòÉ <hidden> fEmphasisMask ΓòÉΓòÉΓòÉ
  8237.  
  8238. fEmphasisMask (ULONG) 
  8239.    Changed emphasis attributes. 
  8240.  
  8241.    Specifies the emphasis attribute or attributes that changed in the container 
  8242.    record. The following states can be combined with a logical OR operator (|): 
  8243.  
  8244.    o CRA_CURSORED 
  8245.    o CRA_INUSE 
  8246.    o CRA_SELECTED. 
  8247.  
  8248.  
  8249. ΓòÉΓòÉΓòÉ 4.138. NOTIFYRECORDENTER ΓòÉΓòÉΓòÉ
  8250.  
  8251. NOTIFYRECORDENTER Structure that contains information about the input device 
  8252. that is being used with the container control. This structure is used in the 
  8253. CN_ENTER container notification code only. 
  8254.  
  8255. typedef struct _NOTIFYRECORDENTER {
  8256. HWND           hwndCnr;  /* Container control handle  */
  8257. ULONG          fKey;     /* Flag  */
  8258. PRECORDCORE    pRecord;  /* Pointer  */
  8259.  } NOTIFYRECORDENTER;
  8260.  
  8261.  
  8262. ΓòÉΓòÉΓòÉ <hidden> hwndCnr ΓòÉΓòÉΓòÉ
  8263.  
  8264. hwndCnr (HWND) 
  8265.    Container control handle. 
  8266.  
  8267.  
  8268. ΓòÉΓòÉΓòÉ <hidden> fKey ΓòÉΓòÉΓòÉ
  8269.  
  8270. fKey (ULONG) 
  8271.    Flag. 
  8272.  
  8273.    Flag that determines whether the Enter key was pressed or the select button 
  8274.    was double-clicked. 
  8275.  
  8276.    TRUE 
  8277.       The Enter key was pressed. 
  8278.    FALSE 
  8279.       The select button was double-clicked. 
  8280.  
  8281.  
  8282. ΓòÉΓòÉΓòÉ <hidden> pRecord ΓòÉΓòÉΓòÉ
  8283.  
  8284. pRecord (PRECORDCORE) 
  8285.    Pointer. 
  8286.  
  8287.    Pointer to the RECORDCORE data structure over which an action occurred. 
  8288.  
  8289.    Note:  If the CCS_MINIRECORDCORE style bit is specified when a container is 
  8290.    created, then MINIRECORDCORE should be used instead of RECORDCORE and 
  8291.    PMINIRECORDCORE should be used instead of PRECORDCORE in all applicable data 
  8292.    structures and messages. 
  8293.  
  8294.    o If a user presses the Enter key, a pointer to the record with the 
  8295.      selection cursor is returned. 
  8296.  
  8297.    o If a user double-clicks the select button when the pointer of the pointing 
  8298.      device is over a record, a pointer to the record is returned. 
  8299.  
  8300.    o If a user double-clicks the select button when the pointer of the pointing 
  8301.      device is over white space, NULL is returned. 
  8302.  
  8303.  
  8304. ΓòÉΓòÉΓòÉ 4.139. NOTIFYSCROLL ΓòÉΓòÉΓòÉ
  8305.  
  8306. NOTIFYSCROLL Structure that contains information about scrolling a container 
  8307. control window. This structure is used in the CN_SCROLL container notification 
  8308. code only. 
  8309.  
  8310. typedef struct _NOTIFYSCROLL {
  8311. HWND     hwndCnr;     /* Container control handle  */
  8312. LONG     lScrollInc;  /* Scroll amount  */
  8313. ULONG    fScroll;     /* Scroll flags  */
  8314.  } NOTIFYSCROLL;
  8315.  
  8316.  
  8317. ΓòÉΓòÉΓòÉ <hidden> hwndCnr ΓòÉΓòÉΓòÉ
  8318.  
  8319. hwndCnr (HWND) 
  8320.    Container control handle. 
  8321.  
  8322.  
  8323. ΓòÉΓòÉΓòÉ <hidden> lScrollInc ΓòÉΓòÉΓòÉ
  8324.  
  8325. lScrollInc (LONG) 
  8326.    Scroll amount. 
  8327.  
  8328.    Amount (in pixels) by which the window scrolled. 
  8329.  
  8330.  
  8331. ΓòÉΓòÉΓòÉ <hidden> fScroll ΓòÉΓòÉΓòÉ
  8332.  
  8333. fScroll (ULONG) 
  8334.    Scroll flags. 
  8335.  
  8336.    Flags that show the direction in which the window scrolled and the window 
  8337.    that was scrolled. 
  8338.  
  8339.    CMA_HORIZONTAL 
  8340.       A window was scrolled horizontally. If the split details view window is 
  8341.       scrolled, a logical OR operator (|) is used to combine the CMA_HORIZONTAL 
  8342.       attribute with either the CMA_LEFT attribute or the CMA_RIGHT attribute 
  8343.       to indicate which window was scrolled. If the unsplit details view window 
  8344.       is scrolled, the CMA_HORIZONTAL attribute is combined with the CMA_LEFT 
  8345.       attribute. 
  8346.    CMA_VERTICAL 
  8347.       The container window scrolled vertically. If the split details view 
  8348.       window is scrolled, a logical OR operator (|) is used to combine the 
  8349.       CMA_VERTICAL attribute with the CMA_LEFT attribute and the CMA_RIGHT 
  8350.       attribute. If the unsplit details view window is scrolled, the 
  8351.       CMA_VERTICAL attribute is combined with the CMA_LEFT attribute. 
  8352.  
  8353.  
  8354. ΓòÉΓòÉΓòÉ 4.140. OBJCLASS ΓòÉΓòÉΓòÉ
  8355.  
  8356. OBJCLASS Object class structure. 
  8357.  
  8358. typedef struct _OBJCLASS {
  8359. struct _OBJCLASS *pNext;             /* Pointer to the next object class structure. */
  8360. PSZ               pszClassName;      /* Class name  */
  8361. PSZ               pszModName;        /* Module name  */
  8362.  } OBJCLASS;
  8363.  
  8364.  
  8365. ΓòÉΓòÉΓòÉ <hidden> pNext ΓòÉΓòÉΓòÉ
  8366.  
  8367. pNext (struct _OBJCLASS *) 
  8368.    Pointer to the next object class structure. 
  8369.  
  8370.  
  8371. ΓòÉΓòÉΓòÉ <hidden> pszClassName ΓòÉΓòÉΓòÉ
  8372.  
  8373. pszClassName (PSZ) 
  8374.    Class name. 
  8375.  
  8376.  
  8377. ΓòÉΓòÉΓòÉ <hidden> pszModName ΓòÉΓòÉΓòÉ
  8378.  
  8379. pszModName (PSZ) 
  8380.    Module name. 
  8381.  
  8382.  
  8383. ΓòÉΓòÉΓòÉ 4.141. OBJDATA ΓòÉΓòÉΓòÉ
  8384.  
  8385. OBJDATA Object data structure.  Class specific information is contained in this 
  8386. structure. 
  8387.  
  8388. typedef struct _OBJDATA {
  8389. WPSRCLASSBLOCK   *CurrentClass;  /* Pointer to current save or restore class block  */
  8390. WPSRCLASSBLOCK   *First;         /* Pointer to first save or restore class block  */
  8391. PUCHAR            NextData;      /* Pointer to next block of data  */
  8392. USHORT            Length;        /* Length  */
  8393.  } OBJDATA;
  8394.  
  8395.  
  8396. ΓòÉΓòÉΓòÉ <hidden> CurrentClass ΓòÉΓòÉΓòÉ
  8397.  
  8398. *CurrentClass (WPSRCLASSBLOCK *) 
  8399.    Pointer to current save or restore class block. 
  8400.  
  8401.  
  8402. ΓòÉΓòÉΓòÉ <hidden> First ΓòÉΓòÉΓòÉ
  8403.  
  8404. *First (WPSRCLASSBLOCK *) 
  8405.    Pointer to first save or restore    class block. 
  8406.  
  8407.  
  8408. ΓòÉΓòÉΓòÉ <hidden> NextData ΓòÉΓòÉΓòÉ
  8409.  
  8410. NextData (PUCHAR) 
  8411.    Pointer to next block of data. 
  8412.  
  8413.  
  8414. ΓòÉΓòÉΓòÉ <hidden> Length ΓòÉΓòÉΓòÉ
  8415.  
  8416. Length (USHORT) 
  8417.    Length. 
  8418.  
  8419.  
  8420. ΓòÉΓòÉΓòÉ 4.142. OWNERBACKGROUND ΓòÉΓòÉΓòÉ
  8421.  
  8422. OWNERBACKGROUND Structure that contains information about painting the 
  8423. container window's background by the container owner. This structure is used in 
  8424. the CM_PAINTBACKGROUND container message only. 
  8425.  
  8426. typedef struct _OWNERBACKGROUND {
  8427. HWND     hwnd;           /* Window handle  */
  8428. HPS      hps;            /* Presentation-space handle  */
  8429. RECTL    rclBackground;  /* Background rectangle  */
  8430. LONG     idWindow;       /* Window ID  */
  8431.  } OWNERBACKGROUND;
  8432.  
  8433.  
  8434. ΓòÉΓòÉΓòÉ <hidden> hwnd ΓòÉΓòÉΓòÉ
  8435.  
  8436. hwnd (HWND) 
  8437.    Window handle. 
  8438.  
  8439.    Handle of the window to be painted. 
  8440.  
  8441.  
  8442. ΓòÉΓòÉΓòÉ <hidden> hps ΓòÉΓòÉΓòÉ
  8443.  
  8444. hps (HPS) 
  8445.    Presentation-space handle. 
  8446.  
  8447.  
  8448. ΓòÉΓòÉΓòÉ <hidden> rclBackground ΓòÉΓòÉΓòÉ
  8449.  
  8450. rclBackground (RECTL) 
  8451.    Background rectangle. 
  8452.  
  8453.    Background rectangle in window coordinates. 
  8454.  
  8455.  
  8456. ΓòÉΓòÉΓòÉ <hidden> idWindow ΓòÉΓòÉΓòÉ
  8457.  
  8458. idWindow (LONG) 
  8459.    Window ID. 
  8460.  
  8461.    Identity of the window to be painted. 
  8462.  
  8463.  
  8464. ΓòÉΓòÉΓòÉ 4.143. OWNERITEM ΓòÉΓòÉΓòÉ
  8465.  
  8466. OWNERITEM Owner item. 
  8467.  
  8468. typedef struct _OWNERITEM {
  8469. HWND     hwnd;            /* Window handle  */
  8470. HPS      hps;             /* Presentation-space handle  */
  8471. ULONG    fsState;         /* State  */
  8472. ULONG    fsAttribute;     /* Attribute  */
  8473. ULONG    fsStateOld;      /* Old state  */
  8474. ULONG    fsAttributeOld;  /* Old attribute  */
  8475. RECTL    rclItem;         /* Item rectangle  */
  8476. LONG     idItem;          /* Item identity  */
  8477. ULONG    hItem;           /* Item  */
  8478.  } OWNERITEM;
  8479.  
  8480.  
  8481. ΓòÉΓòÉΓòÉ <hidden> hwnd ΓòÉΓòÉΓòÉ
  8482.  
  8483. hwnd (HWND) 
  8484.    Window handle. 
  8485.  
  8486.  
  8487. ΓòÉΓòÉΓòÉ <hidden> hps ΓòÉΓòÉΓòÉ
  8488.  
  8489. hps (HPS) 
  8490.    Presentation-space handle. 
  8491.  
  8492.  
  8493. ΓòÉΓòÉΓòÉ <hidden> fsState ΓòÉΓòÉΓòÉ
  8494.  
  8495. fsState (ULONG) 
  8496.    State. 
  8497.  
  8498.  
  8499. ΓòÉΓòÉΓòÉ <hidden> fsAttribute ΓòÉΓòÉΓòÉ
  8500.  
  8501. fsAttribute (ULONG) 
  8502.    Attribute. 
  8503.  
  8504.  
  8505. ΓòÉΓòÉΓòÉ <hidden> fsStateOld ΓòÉΓòÉΓòÉ
  8506.  
  8507. fsStateOld (ULONG) 
  8508.    Old state. 
  8509.  
  8510.  
  8511. ΓòÉΓòÉΓòÉ <hidden> fsAttributeOld ΓòÉΓòÉΓòÉ
  8512.  
  8513. fsAttributeOld (ULONG) 
  8514.    Old attribute. 
  8515.  
  8516.  
  8517. ΓòÉΓòÉΓòÉ <hidden> rclItem ΓòÉΓòÉΓòÉ
  8518.  
  8519. rclItem (RECTL) 
  8520.    Item rectangle. 
  8521.  
  8522.  
  8523. ΓòÉΓòÉΓòÉ <hidden> idItem ΓòÉΓòÉΓòÉ
  8524.  
  8525. idItem (LONG) 
  8526.    Item identity. 
  8527.  
  8528.  
  8529. ΓòÉΓòÉΓòÉ <hidden> hItem ΓòÉΓòÉΓòÉ
  8530.  
  8531. hItem (ULONG) 
  8532.    Item. 
  8533.  
  8534.  
  8535. ΓòÉΓòÉΓòÉ 4.144. PACCEL ΓòÉΓòÉΓòÉ
  8536.  
  8537. PACCEL Pointer to ACCEL. 
  8538.  
  8539. typedef ACCEL *PACCEL;
  8540.  
  8541.  
  8542. ΓòÉΓòÉΓòÉ 4.145. PACCELTABLE ΓòÉΓòÉΓòÉ
  8543.  
  8544. PACCELTABLE Pointer to ACCELTABLE. 
  8545.  
  8546. typedef ACCELTABLE *PACCELTABLE;
  8547.  
  8548.  
  8549. ΓòÉΓòÉΓòÉ 4.146. PAGEINFO ΓòÉΓòÉΓòÉ
  8550.  
  8551. PAGEINFO Settings page information structure. 
  8552.  
  8553. typedef struct _PAGEINFO {
  8554. ULONG      cb;                  /* Length of PAGEINFO structure  */
  8555. HWND       hwndPage;            /* Handle of page  */
  8556. PFNWP      pfnwp;               /* Window procedure  */
  8557. ULONG      resid;               /* Resource identity  */
  8558. PVOID      pCreateParams;       /* Pointer to creation parameters  */
  8559. USHORT     dlgid;               /* Dialog identity  */
  8560. USHORT     usPageStyleFlags;    /* Notebook control page style flags  */
  8561. USHORT     usPageInsertFlags;   /* Notebook control page insertion flags  */
  8562. USHORT     usSettingsFlags;     /* Settings flag  */
  8563. PSZ        pszName;             /* Pointer to a string containing page name  */
  8564. USHORT     idDefaultHelpPanel;  /* Identity of default help panel  */
  8565. USHORT     usReserved2;         /* Reserved value must be zero  */
  8566. PSZ        pszHelpLibraryName;  /* Pointer to name of help file  */
  8567. PUSHORT    pHelpSubtable;       /* Pointer to help subtable  */
  8568. HMODULE    hmodHelpSubtable;    /* Module handle for help subtable  */
  8569. ULONG      ulPageInsertId;      /* Notebook control page identity  */
  8570.  } PAGEINFO;
  8571.  
  8572.  
  8573. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  8574.  
  8575. cb (ULONG) 
  8576.    Length of PAGEINFO structure. 
  8577.  
  8578.  
  8579. ΓòÉΓòÉΓòÉ <hidden> hwndPage ΓòÉΓòÉΓòÉ
  8580.  
  8581. hwndPage (HWND) 
  8582.    Handle of page. 
  8583.  
  8584.  
  8585. ΓòÉΓòÉΓòÉ <hidden> pfnwp ΓòÉΓòÉΓòÉ
  8586.  
  8587. pfnwp (PFNWP) 
  8588.    Window procedure. 
  8589.  
  8590.  
  8591. ΓòÉΓòÉΓòÉ <hidden> resid ΓòÉΓòÉΓòÉ
  8592.  
  8593. resid (ULONG) 
  8594.    Resource identity. 
  8595.  
  8596.  
  8597. ΓòÉΓòÉΓòÉ <hidden> pCreateParams ΓòÉΓòÉΓòÉ
  8598.  
  8599. pCreateParams (PVOID) 
  8600.    Pointer to creation parameters. 
  8601.  
  8602.  
  8603. ΓòÉΓòÉΓòÉ <hidden> dlgid ΓòÉΓòÉΓòÉ
  8604.  
  8605. dlgid (USHORT) 
  8606.    Dialog identity. 
  8607.  
  8608.  
  8609. ΓòÉΓòÉΓòÉ <hidden> usPageStyleFlags ΓòÉΓòÉΓòÉ
  8610.  
  8611. usPageStyleFlags (USHORT) 
  8612.    Notebook control page style flags. 
  8613.  
  8614.  
  8615. ΓòÉΓòÉΓòÉ <hidden> usPageInsertFlags ΓòÉΓòÉΓòÉ
  8616.  
  8617. usPageInsertFlags (USHORT) 
  8618.    Notebook control page insertion flags. 
  8619.  
  8620.  
  8621. ΓòÉΓòÉΓòÉ <hidden> usSettingsFlags ΓòÉΓòÉΓòÉ
  8622.  
  8623. usSettingsFlags (USHORT) 
  8624.    Settings flag. 
  8625.  
  8626.    This flag must be set. 
  8627.  
  8628.    0         You will not get page numbers. 
  8629.  
  8630.    SETTINGS_PAGE_NUMBERS Page numbers will automatically be put on the status 
  8631.              line for pages that have minor pages under the major tab page. 
  8632.              If you want to use the page numbers, make sure ALL pages have this 
  8633.              setting. 
  8634.  
  8635.  
  8636. ΓòÉΓòÉΓòÉ <hidden> pszName ΓòÉΓòÉΓòÉ
  8637.  
  8638. pszName (PSZ) 
  8639.    Pointer to a string containing page name. 
  8640.  
  8641.  
  8642. ΓòÉΓòÉΓòÉ <hidden> idDefaultHelpPanel ΓòÉΓòÉΓòÉ
  8643.  
  8644. idDefaultHelpPanel (USHORT) 
  8645.    Identity of default help panel. 
  8646.  
  8647.  
  8648. ΓòÉΓòÉΓòÉ <hidden> usReserved2 ΓòÉΓòÉΓòÉ
  8649.  
  8650. usReserved2 (USHORT) 
  8651.    Reserved value must be zero. 
  8652.  
  8653.  
  8654. ΓòÉΓòÉΓòÉ <hidden> pszHelpLibraryName ΓòÉΓòÉΓòÉ
  8655.  
  8656. pszHelpLibraryName (PSZ) 
  8657.    Pointer to name of help file. 
  8658.  
  8659.  
  8660. ΓòÉΓòÉΓòÉ <hidden> pHelpSubtable ΓòÉΓòÉΓòÉ
  8661.  
  8662. pHelpSubtable (PUSHORT) 
  8663.    Pointer to help subtable. 
  8664.  
  8665.  
  8666. ΓòÉΓòÉΓòÉ <hidden> hmodHelpSubtable ΓòÉΓòÉΓòÉ
  8667.  
  8668. hmodHelpSubtable (HMODULE) 
  8669.    Module handle for help subtable. 
  8670.  
  8671.  
  8672. ΓòÉΓòÉΓòÉ <hidden> ulPageInsertId ΓòÉΓòÉΓòÉ
  8673.  
  8674. ulPageInsertId (ULONG) 
  8675.    Notebook control page identity. 
  8676.  
  8677.  
  8678. ΓòÉΓòÉΓòÉ 4.147. PAGESELECTNOTIFY ΓòÉΓòÉΓòÉ
  8679.  
  8680. PAGESELECTNOTIFY Structure that contains information about the application page 
  8681. being selected. 
  8682.  
  8683. typedef struct _PAGESELECTNOTIFY {
  8684. HWND     hwndBook;     /* Notebook window handle  */
  8685. ULONG    ulPageIdCur;  /* Current top page identifier  */
  8686. ULONG    ulPageIdNew;  /* New top page identifier  */
  8687.  } PAGESELECTNOTIFY;
  8688.  
  8689.  
  8690. ΓòÉΓòÉΓòÉ <hidden> hwndBook ΓòÉΓòÉΓòÉ
  8691.  
  8692. hwndBook (HWND) 
  8693.    Notebook window handle. 
  8694.  
  8695.  
  8696. ΓòÉΓòÉΓòÉ <hidden> ulPageIdCur ΓòÉΓòÉΓòÉ
  8697.  
  8698. ulPageIdCur (ULONG) 
  8699.    Current top page identifier. 
  8700.  
  8701.  
  8702. ΓòÉΓòÉΓòÉ <hidden> ulPageIdNew ΓòÉΓòÉΓòÉ
  8703.  
  8704. ulPageIdNew (ULONG) 
  8705.    New top page identifier. 
  8706.  
  8707.  
  8708. ΓòÉΓòÉΓòÉ 4.148. PALINFO ΓòÉΓòÉΓòÉ
  8709.  
  8710. PALINFO Class specific palette information data. 
  8711.  
  8712. typedef struct _PALINFO {
  8713. ULONG    xCellCount;   /* Number of columns of palinfos  */
  8714. ULONG    yCellCount;   /* Number of rows of palinfos  */
  8715. ULONG    xCursor;      /* Cursor location (readonly)  */
  8716. ULONG    yCursor;      /* Cursor location (readonly)  */
  8717. ULONG    xCellWidth;   /* Width of each palinfo  */
  8718. ULONG    yCellHeight;  /* Height of each palinfo  */
  8719. ULONG    xGap;         /* X separation of palinfos  */
  8720. ULONG    yGap;         /* Y separation of palinfos  */
  8721.  } PALINFO;
  8722.  
  8723.  
  8724. ΓòÉΓòÉΓòÉ <hidden> xCellCount ΓòÉΓòÉΓòÉ
  8725.  
  8726. xCellCount (ULONG) 
  8727.    Number of columns of palinfos. 
  8728.  
  8729.  
  8730. ΓòÉΓòÉΓòÉ <hidden> yCellCount ΓòÉΓòÉΓòÉ
  8731.  
  8732. yCellCount (ULONG) 
  8733.    Number of rows of palinfos. 
  8734.  
  8735.  
  8736. ΓòÉΓòÉΓòÉ <hidden> xCursor ΓòÉΓòÉΓòÉ
  8737.  
  8738. xCursor (ULONG) 
  8739.    Cursor location (readonly). 
  8740.  
  8741.  
  8742. ΓòÉΓòÉΓòÉ <hidden> yCursor ΓòÉΓòÉΓòÉ
  8743.  
  8744. yCursor (ULONG) 
  8745.    Cursor location (readonly). 
  8746.  
  8747.  
  8748. ΓòÉΓòÉΓòÉ <hidden> xCellWidth ΓòÉΓòÉΓòÉ
  8749.  
  8750. xCellWidth (ULONG) 
  8751.    Width of each palinfo. 
  8752.  
  8753.  
  8754. ΓòÉΓòÉΓòÉ <hidden> yCellHeight ΓòÉΓòÉΓòÉ
  8755.  
  8756. yCellHeight (ULONG) 
  8757.    Height of each palinfo. 
  8758.  
  8759.  
  8760. ΓòÉΓòÉΓòÉ <hidden> xGap ΓòÉΓòÉΓòÉ
  8761.  
  8762. xGap (ULONG) 
  8763.    X separation of palinfos. 
  8764.  
  8765.  
  8766. ΓòÉΓòÉΓòÉ <hidden> yGap ΓòÉΓòÉΓòÉ
  8767.  
  8768. yGap (ULONG) 
  8769.    Y separation of palinfos. 
  8770.  
  8771.  
  8772. ΓòÉΓòÉΓòÉ 4.149. PANOSE ΓòÉΓòÉΓòÉ
  8773.  
  8774. PANOSE The Panose field in the font metrics will allow for quantitative 
  8775. descriptions of the visual properties of font faces. The PANOSE definition 
  8776. contains ten digits, each of which currently describes up to sixteen 
  8777. variations. 
  8778.  
  8779. typedef struct _PANOSE {
  8780. BYTE    bFamilyType;       /* Family kind  */
  8781. BYTE    bSerifStyle;       /* Serif style  */
  8782. BYTE    bWeight;           /* Weight  */
  8783. BYTE    bProportion;       /* Proportion  */
  8784. BYTE    bContrast;         /* Contrast  */
  8785. BYTE    bStrokeVariation;  /* Stroke Variation  */
  8786. BYTE    bArmStyle;         /* Arm Style  */
  8787. BYTE    bLetterform;       /* Letterform  */
  8788. BYTE    bMidline;          /* Midline  */
  8789. BYTE    bXHeight;          /* X-Height  */
  8790. BYTE    fbPassedISO;       /* Font passed ISO test  */
  8791. BYTE    fbFailedISO;       /* Font failed ISO test  */
  8792.  } PANOSE;
  8793.  
  8794.  
  8795. ΓòÉΓòÉΓòÉ <hidden> bFamilyType ΓòÉΓòÉΓòÉ
  8796.  
  8797. bFamilyType (BYTE) 
  8798.    Family kind. 
  8799.  
  8800.    0 Any 
  8801.  
  8802.    1 No Fit 
  8803.  
  8804.    2 Text and Display 
  8805.  
  8806.    3 Script 
  8807.  
  8808.    4 Decorative 
  8809.  
  8810.    5 Pictorial 
  8811.  
  8812.  
  8813. ΓòÉΓòÉΓòÉ <hidden> bSerifStyle ΓòÉΓòÉΓòÉ
  8814.  
  8815. bSerifStyle (BYTE) 
  8816.    Serif style. 
  8817.  
  8818.    0 Any 
  8819.  
  8820.    1 No Fit 
  8821.  
  8822.    2 Cove 
  8823.  
  8824.    3 Obtuse Cove 
  8825.  
  8826.    4 Square Cove 
  8827.  
  8828.    5 Obtuse Square Cove 
  8829.  
  8830.    6 Square 
  8831.  
  8832.    7 Thin 
  8833.  
  8834.    8 Bone 
  8835.  
  8836.    9 Exaggerated 
  8837.  
  8838.    10 Triangle 
  8839.  
  8840.    11 Normal Sans 
  8841.  
  8842.    12 Obtuse Sans 
  8843.  
  8844.    13 Perp Sans 
  8845.  
  8846.    14 Flared 
  8847.  
  8848.    15 Rounded 
  8849.  
  8850.  
  8851. ΓòÉΓòÉΓòÉ <hidden> bWeight ΓòÉΓòÉΓòÉ
  8852.  
  8853. bWeight (BYTE) 
  8854.    Weight. 
  8855.  
  8856.    0 Any 
  8857.  
  8858.    1 No Fit 
  8859.  
  8860.    2 Very Light 
  8861.  
  8862.    3 Light 
  8863.  
  8864.    4 Thin 
  8865.  
  8866.    5 Book 
  8867.  
  8868.    6 Medium 
  8869.  
  8870.    7 Demi 
  8871.  
  8872.    8 Bold 
  8873.  
  8874.    9 Heavy 
  8875.  
  8876.    10 Black 
  8877.  
  8878.    11 Nord 
  8879.  
  8880.  
  8881. ΓòÉΓòÉΓòÉ <hidden> bProportion ΓòÉΓòÉΓòÉ
  8882.  
  8883. bProportion (BYTE) 
  8884.    Proportion. 
  8885.  
  8886.    0 Any 
  8887.  
  8888.    1 No Fit 
  8889.  
  8890.    2 Old Style 
  8891.  
  8892.    3 Modern 
  8893.  
  8894.    4 Even Width 
  8895.  
  8896.    5 Expanded 
  8897.  
  8898.    6 Condensed 
  8899.  
  8900.    7 Very Expanded 
  8901.  
  8902.    8 Very Condensed 
  8903.  
  8904.    9 Monospaced 
  8905.  
  8906.  
  8907. ΓòÉΓòÉΓòÉ <hidden> bContrast ΓòÉΓòÉΓòÉ
  8908.  
  8909. bContrast (BYTE) 
  8910.    Contrast. 
  8911.  
  8912.    0 Any 
  8913.  
  8914.    1 No Fit 
  8915.  
  8916.    2 None 
  8917.  
  8918.    3 Very Low 
  8919.  
  8920.    4 Low 
  8921.  
  8922.    5 Medium Low 
  8923.  
  8924.    6 Medium 
  8925.  
  8926.    7 Medium High 
  8927.  
  8928.    8 High 
  8929.  
  8930.    9 Very High 
  8931.  
  8932.  
  8933. ΓòÉΓòÉΓòÉ <hidden> bStrokeVariation ΓòÉΓòÉΓòÉ
  8934.  
  8935. bStrokeVariation (BYTE) 
  8936.    Stroke Variation. 
  8937.  
  8938.    0 Any 
  8939.  
  8940.    1 No Fit 
  8941.  
  8942.    2 Gradual/Diagonal 
  8943.  
  8944.    3 Gradual/Transitional 
  8945.  
  8946.    4 Gradual/Vertical 
  8947.  
  8948.    5 Gradual/Horizontal 
  8949.  
  8950.    6 Rapid/Vertical 
  8951.  
  8952.    7 Rapid/Horizontal 
  8953.  
  8954.    8 Instant/Vertical 
  8955.  
  8956.  
  8957. ΓòÉΓòÉΓòÉ <hidden> bArmStyle ΓòÉΓòÉΓòÉ
  8958.  
  8959. bArmStyle (BYTE) 
  8960.    Arm Style. 
  8961.  
  8962.    0 Any 
  8963.  
  8964.    1 No Fit 
  8965.  
  8966.    2 Straight Arms/Horizontal 
  8967.  
  8968.    3 Straight Arms/Wedge 
  8969.  
  8970.    4 Straight Arms/Vertical 
  8971.  
  8972.    5 Straight Arms/Single Serif 
  8973.  
  8974.    6 Straight Arms/Double Serif 
  8975.  
  8976.    7 Non-Straight Arms/Horizontal 
  8977.  
  8978.    8 Non-Straight Arms/Wedge 
  8979.  
  8980.    9 Non-Straight Arms/Vertical 
  8981.  
  8982.    10 Non-Straight Arms/Single Serif 
  8983.  
  8984.    11 Non-Straight Arms/Double Serif 
  8985.  
  8986.  
  8987. ΓòÉΓòÉΓòÉ <hidden> bLetterform ΓòÉΓòÉΓòÉ
  8988.  
  8989. bLetterform (BYTE) 
  8990.    Letterform. 
  8991.  
  8992.    0 Any 
  8993.  
  8994.    1 No Fit 
  8995.  
  8996.    2 Normal/Contact 
  8997.  
  8998.    3 ONormal/Weighted 
  8999.  
  9000.    4 ONormal/Boxed 
  9001.  
  9002.    5 ONormal/Flattened 
  9003.  
  9004.    6 ONormal/Rounded 
  9005.  
  9006.    7 ONormal/Off Center 
  9007.  
  9008.    8 ONormal/Square 
  9009.  
  9010.    9 Oblique/Contact 
  9011.  
  9012.    10 Oblique/Weighted 
  9013.  
  9014.    11 Oblique/Boxed 
  9015.  
  9016.    12 Oblique/Flattened 
  9017.  
  9018.    13 Oblique/Rounded 
  9019.  
  9020.    14 Oblique/Off Center 
  9021.  
  9022.    15 Oblique/Square 
  9023.  
  9024.  
  9025. ΓòÉΓòÉΓòÉ <hidden> bMidline ΓòÉΓòÉΓòÉ
  9026.  
  9027. bMidline (BYTE) 
  9028.    Midline. 
  9029.  
  9030.    0 Any 
  9031.  
  9032.    1 No Fit 
  9033.  
  9034.    2 Standard/Trimmed 
  9035.  
  9036.    3 Standard/Pointed 
  9037.  
  9038.    4 Standard/Serifed 
  9039.  
  9040.    5 High/Trimmed 
  9041.  
  9042.    6 High/Pointed 
  9043.  
  9044.    7 High/Serifed 
  9045.  
  9046.    8 Constant/Trimmed 
  9047.  
  9048.    9 Constant/Pointed 
  9049.  
  9050.    10 Constant/Serifed 
  9051.  
  9052.    11 Low/Trimmed 
  9053.  
  9054.    12 Low/Pointed 
  9055.  
  9056.    13 Low/Serifed 
  9057.  
  9058.  
  9059. ΓòÉΓòÉΓòÉ <hidden> bXHeight ΓòÉΓòÉΓòÉ
  9060.  
  9061. bXHeight (BYTE) 
  9062.    X-Height. 
  9063.  
  9064.    0 Any 
  9065.  
  9066.    1 No Fit 
  9067.  
  9068.    2 Constant/Small 
  9069.  
  9070.    3 Constant/Standard 
  9071.  
  9072.    4 Constant/Large 
  9073.  
  9074.    5 Ducking/Small 
  9075.  
  9076.    6 Ducking/Standard 
  9077.  
  9078.    7 Ducking/Large 
  9079.  
  9080.  
  9081. ΓòÉΓòÉΓòÉ <hidden> fbPassedISO ΓòÉΓòÉΓòÉ
  9082.  
  9083. fbPassedISO (BYTE) 
  9084.    Font passed ISO test 
  9085.  
  9086.    The following flags indicate those displays and resolutions at which the 
  9087.    font complied with ISO 9241. 
  9088.  
  9089.    FM_ISO_9518_640 
  9090.    FM_ISO_9515_640 
  9091.    FM_ISO_9515_1024 
  9092.    FM_ISO_9517_640 
  9093.    FM_ISO_9517_1024 
  9094.  
  9095.  
  9096. ΓòÉΓòÉΓòÉ <hidden> fbFailedISO ΓòÉΓòÉΓòÉ
  9097.  
  9098. fbFailedISO (BYTE) 
  9099.    Font failed ISO test 
  9100.  
  9101.    The following flags indicate those displays and resolutions at which the 
  9102.    font did not comply with ISO 9241. 
  9103.  
  9104.    FM_ISO_9518_640 
  9105.    FM_ISO_9515_640 
  9106.    FM_ISO_9515_1024 
  9107.    FM_ISO_9517_640 
  9108.    FM_ISO_9517_1024 
  9109.  
  9110.  
  9111. ΓòÉΓòÉΓòÉ 4.150. PAPSZ ΓòÉΓòÉΓòÉ
  9112.  
  9113. PAPSZ Pointer to an APSZ array of pointers to NULL-terminated strings. 
  9114.  
  9115. typedef APSZ *PAPSZ;
  9116.  
  9117.  
  9118. ΓòÉΓòÉΓòÉ 4.151. PARAM ΓòÉΓòÉΓòÉ
  9119.  
  9120. PARAM Presentation parameter attribute definition. 
  9121.  
  9122. typedef struct _PARAM {
  9123. ULONG    id;     /* Attribute type identity  */
  9124. ULONG    cb;     /* Byte count of the ab[1] parameter  */
  9125. BYTE     ab[1];  /* Attribute value  */
  9126.  } PARAM;
  9127.  
  9128.  
  9129. ΓòÉΓòÉΓòÉ <hidden> id ΓòÉΓòÉΓòÉ
  9130.  
  9131. id (ULONG) 
  9132.    Attribute type identity. 
  9133.  
  9134.    These identities are in the range of X'00000000' to X'FFFFFFFF'. The window 
  9135.    manager uses values of this parameter in the range X'00000000' to PP_USER, 
  9136.    therefore an application should not define private presentation parameter 
  9137.    attribute identities in this range. An application should use the WinAddAtom 
  9138.    call to guarantee obtaining a unique identity. 
  9139.  
  9140.    PP_FOREGROUNDCOLOR 
  9141.       Foreground color (in RGB) attribute. 
  9142.    PP_BACKGROUNDCOLOR 
  9143.       Background color (in RGB) attribute. 
  9144.    PP_FOREGROUNDCOLORINDEX 
  9145.       Foreground color index attribute. 
  9146.    PP_BACKGROUNDCOLORINDEX 
  9147.       Background color index attribute. 
  9148.    PP_HILITEFOREGROUNDCOLOR 
  9149.       Highlighted foreground color (in RGB) attribute, for example for selected 
  9150.       menu items. 
  9151.    PP_HILITEBACKGROUNDCOLOR 
  9152.       Highlighted background color (in RGB) attribute. 
  9153.    PP_HILITEFOREGROUNDCOLORINDEX 
  9154.       Highlighted foreground color index attribute. 
  9155.    PP_HILITEBACKGROUNDCOLORINDEX 
  9156.       Highlighted background color index attribute. 
  9157.    PP_DISABLEDFOREGROUNDCOLOR 
  9158.       Disabled foreground color (in RGB) attribute. 
  9159.    PP_DISABLEDBACKGROUNDCOLOR 
  9160.       Disabled background color (in RGB) attribute. 
  9161.    PP_DISABLEDFOREGROUNDCOLORINDEX 
  9162.       Disabled foreground color index attribute. 
  9163.    PP_DISABLEDBACKGROUNDCOLORINDEX 
  9164.       Disabled background color index attribute. 
  9165.    PP_BORDERCOLOR 
  9166.       Border color (in RGB) attribute. 
  9167.    PP_BORDERCOLORINDEX 
  9168.       Border color index attribute. 
  9169.    PP_FONTNAMESIZE 
  9170.       Font name and size attribute. 
  9171.    PP_ACTIVECOLOR 
  9172.       Active color value of data type RGB. 
  9173.    PP_ACTIVECOLORINDEX 
  9174.       Active color index value of data type LONG. 
  9175.    PP_INACTIVECOLOR 
  9176.       Inactive color value of data type RGB. 
  9177.    PP_INACTIVECOLORINDEX 
  9178.       Inactive color index value of data type LONG. 
  9179.    PP_ACTIVETEXTFGNDCOLOR 
  9180.       Active text foreground color value of data type RGB. 
  9181.    PP_ACTIVETEXTFGNDCOLORINDEX 
  9182.       Active text foreground color index value of data type LONG. 
  9183.    PP_ACTIVETEXTBGNDCOLOR 
  9184.       Active text background color value of data type RGB. 
  9185.    PP_ACTIVETEXTBGNDCOLORINDEX 
  9186.       Active text background color index value of data type LONG. 
  9187.    PP_INACTIVETEXTFGNDCOLOR 
  9188.       Inactive text foreground color value of data type RGB. 
  9189.    PP_INACTIVETEXTFGNDCOLORINDEX 
  9190.       Inactive text foreground color index value of data type LONG. 
  9191.    PP_INACTIVETEXTBGNDCOLOR 
  9192.       Inactive text background color value of data type RGB. 
  9193.    PP_INACTIVETEXTBGNDCOLORINDEX 
  9194.       Inactive text background color index value of data type LONG. 
  9195.    PP_SHADOW 
  9196.       Changes the color used for drop shadows on certain controls. 
  9197.    PP_USER 
  9198.       This is a user-defined presentation parameter. 
  9199.  
  9200.  
  9201. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  9202.  
  9203. cb (ULONG) 
  9204.    Byte count of the ab[1] parameter. 
  9205.  
  9206.  
  9207. ΓòÉΓòÉΓòÉ <hidden> ab[1] ΓòÉΓòÉΓòÉ
  9208.  
  9209. ab[1] (BYTE) 
  9210.    Attribute value. 
  9211.  
  9212.    The format of a value depends on the attribute type identity as follows: 
  9213.  
  9214.    PP_FOREGROUNDCOLOR 
  9215.       Foreground color value of data type RGB. 
  9216.    PP_BACKGROUNDCOLOR 
  9217.       Background color value of data type RGB. 
  9218.    PP_FOREGROUNDCOLORINDEX 
  9219.       Foreground color index value of data type LONG. 
  9220.    PP_BACKGROUNDCOLORINDEX 
  9221.       Background color index value of data type LONG. 
  9222.    PP_HILITEFOREGROUNDCOLOR 
  9223.       Highlighted foreground color value of data type RGB. 
  9224.    PP_HILITEBACKGROUNDCOLOR 
  9225.       Highlighted background color value of data type RGB. 
  9226.    PP_HILITEFOREGROUNDCOLORINDEX 
  9227.       Highlighted foreground color index value of data type LONG. 
  9228.    PP_HILITEBACKGROUNDCOLORINDEX 
  9229.       Highlighted background color index value of data type LONG. 
  9230.    PP_DISABLEDFOREGROUNDCOLOR 
  9231.       Disabled foreground color value of data type RGB. 
  9232.    PP_DISABLEDBACKGROUNDCOLOR 
  9233.       Disabled background color value of data type RGB. 
  9234.    PP_DISABLEDFOREGROUNDCOLORINDEX 
  9235.       Disabled foreground color index value of data type LONG. 
  9236.    PP_DISABLEDBACKGROUNDCOLORINDEX 
  9237.       Disabled background color index value of data type LONG. 
  9238.    PP_BORDERCOLOR 
  9239.       Border color value of data type RGB. 
  9240.    PP_BORDERCOLORINDEX 
  9241.       Border color index value of data type LONG. 
  9242.    PP_FONTNAMESIZE 
  9243.       Font name and size value of data type PSZ. The string is in two parts, 
  9244.       separated by a period. The first part is the font point size and the 
  9245.       second part is the font facename, for example, "12.Helv". 
  9246.  
  9247.  
  9248. ΓòÉΓòÉΓòÉ 4.152. PARCPARAMS ΓòÉΓòÉΓòÉ
  9249.  
  9250. PARCPARAMS Pointer to ARCPARAMS. 
  9251.  
  9252. typedef ARCPARAMS *PARCPARAMS;
  9253.  
  9254.  
  9255. ΓòÉΓòÉΓòÉ 4.153. PAREABUNDLE ΓòÉΓòÉΓòÉ
  9256.  
  9257. PAREABUNDLE Pointer to AREABUNDLE. 
  9258.  
  9259. typedef AREABUNDLE *PAREABUNDLE;
  9260.  
  9261.  
  9262. ΓòÉΓòÉΓòÉ 4.154. PBANDRECT ΓòÉΓòÉΓòÉ
  9263.  
  9264. PBANDRECT Pointer to BANDRECT. 
  9265.  
  9266. typedef BANDRECT *PBANDRECT;
  9267.  
  9268.  
  9269. ΓòÉΓòÉΓòÉ 4.155. PBITMAPINFO ΓòÉΓòÉΓòÉ
  9270.  
  9271. PBITMAPINFO Pointer to BITMAPINFO. 
  9272.  
  9273. typedef BITMAPINFO *PBITMAPINFO;
  9274.  
  9275.  
  9276. ΓòÉΓòÉΓòÉ 4.156. PBITMAPINFO2 ΓòÉΓòÉΓòÉ
  9277.  
  9278. PBITMAPINFO2 Pointer to BITMAPINFO2. 
  9279.  
  9280. typedef BITMAPINFO2 *PBITMAPINFO2;
  9281.  
  9282.  
  9283. ΓòÉΓòÉΓòÉ 4.157. PBITMAPINFOHEADER ΓòÉΓòÉΓòÉ
  9284.  
  9285. PBITMAPINFOHEADER Pointer to BITMAPINFOHEADER. 
  9286.  
  9287. typedef BITMAPINFOHEADER *PBITMAPINFOHEADER;
  9288.  
  9289.  
  9290. ΓòÉΓòÉΓòÉ 4.158. PBITMAPINFOHEADER2 ΓòÉΓòÉΓòÉ
  9291.  
  9292. PBITMAPINFOHEADER2 Pointer to BITMAPINFOHEADER2. 
  9293.  
  9294. typedef BITMAPINFOHEADER2 *PBITMAPINFOHEADER2;
  9295.  
  9296.  
  9297. ΓòÉΓòÉΓòÉ 4.159. PBOOKTEXT ΓòÉΓòÉΓòÉ
  9298.  
  9299. PBOOKTEXT Pointer to a BOOKTEXT data structure. 
  9300.  
  9301. typedef BOOKTEXT *PBOOKTEXT;
  9302.  
  9303.  
  9304. ΓòÉΓòÉΓòÉ 4.160. PBOOL ΓòÉΓòÉΓòÉ
  9305.  
  9306. PBOOL Pointer to BOOL. 
  9307.  
  9308. typedef BOOL *PBOOL;
  9309.  
  9310.  
  9311. ΓòÉΓòÉΓòÉ 4.161. PBUFFER ΓòÉΓòÉΓòÉ
  9312.  
  9313. PBUFFER Pointer to PBYTE. 
  9314.  
  9315. typedef BUFFER *PBUFFER;
  9316.  
  9317.  
  9318. ΓòÉΓòÉΓòÉ 4.162. PBUNDLE ΓòÉΓòÉΓòÉ
  9319.  
  9320. PBUNDLE Points to a bundle data area. 
  9321.  
  9322. typedef PVOID PBUNDLE;
  9323.  
  9324.  
  9325. ΓòÉΓòÉΓòÉ 4.163. PBYTE ΓòÉΓòÉΓòÉ
  9326.  
  9327. PBYTE Pointer to a data area. 
  9328.  
  9329. typedef BYTE *PBYTE;
  9330.  
  9331.  
  9332. ΓòÉΓòÉΓòÉ 4.164. PCATCHBUF ΓòÉΓòÉΓòÉ
  9333.  
  9334. PCATCHBUF Pointer to CATCHBUF. 
  9335.  
  9336. typedef CATCHBUF *PCATCHBUF;
  9337.  
  9338.  
  9339. ΓòÉΓòÉΓòÉ 4.165. PCDATE ΓòÉΓòÉΓòÉ
  9340.  
  9341. PCDATE Pointer to CDATE. 
  9342.  
  9343. typedef CDATE *PCDATE;
  9344.  
  9345.  
  9346. ΓòÉΓòÉΓòÉ 4.166. PCELL ΓòÉΓòÉΓòÉ
  9347.  
  9348. PCELL Pointer to CELL. 
  9349.  
  9350. typedef CELL *PCELL;
  9351.  
  9352.  
  9353. ΓòÉΓòÉΓòÉ 4.167. PCH ΓòÉΓòÉΓòÉ
  9354.  
  9355. PCH Pointer to a character string. 
  9356.  
  9357. typedef unsigned char *PCH;
  9358.  
  9359.  
  9360. ΓòÉΓòÉΓòÉ 4.168. PCHAR ΓòÉΓòÉΓòÉ
  9361.  
  9362. PCHAR Pointer to CHAR. 
  9363.  
  9364. typedef CHAR *PCHAR;
  9365.  
  9366.  
  9367. ΓòÉΓòÉΓòÉ 4.169. PCHARBUNDLE ΓòÉΓòÉΓòÉ
  9368.  
  9369. PCHARBUNDLE Pointer to CHARBUNDLE. 
  9370.  
  9371. typedef CHARBUNDLE *PCHARBUNDLE;
  9372.  
  9373.  
  9374. ΓòÉΓòÉΓòÉ 4.170. PCHRMSG ΓòÉΓòÉΓòÉ
  9375.  
  9376. PCHRMSG Pointer to a CHRMSG data structure. 
  9377.  
  9378. typedef CHRMSG *PCHRMSG;
  9379.  
  9380.  
  9381. ΓòÉΓòÉΓòÉ 4.171. PCLASS ΓòÉΓòÉΓòÉ
  9382.  
  9383. PCLASS Pointer to a CLASS. 
  9384.  
  9385. typedef CLASS *PCLASS;
  9386.  
  9387.  
  9388. ΓòÉΓòÉΓòÉ 4.172. PCLASSDETAILS ΓòÉΓòÉΓòÉ
  9389.  
  9390. PCLASSDETAILS Pointer to an CLASSDETAILS data structure. 
  9391.  
  9392. typedef CLASSDETAILS *PCLASSDETAILS;
  9393.  
  9394.  
  9395. ΓòÉΓòÉΓòÉ 4.173. PCLASSFIELDINFO ΓòÉΓòÉΓòÉ
  9396.  
  9397. PCLASSFIELDINFO Pointer to an ClassFieldInfo data structure. 
  9398.  
  9399. typedef CLASSFIELDINFO *PCLASSFIELDINFO;
  9400.  
  9401.  
  9402. ΓòÉΓòÉΓòÉ 4.174. PCLASSINFO ΓòÉΓòÉΓòÉ
  9403.  
  9404. PCLASSINFO Pointer to CLASSINFO. 
  9405.  
  9406. typedef CLASSINFO *PCLASSINFO;
  9407.  
  9408.  
  9409. ΓòÉΓòÉΓòÉ 4.175. PCMDMSG ΓòÉΓòÉΓòÉ
  9410.  
  9411. PCMDMSG Pointer to a CMDMSG data structure. 
  9412.  
  9413. typedef CMDMSG *PCMDMSG;
  9414.  
  9415.  
  9416. ΓòÉΓòÉΓòÉ 4.176. PCNRDRAGINFO ΓòÉΓòÉΓòÉ
  9417.  
  9418. PCNRDRAGINFO Pointer to a CNRDRAGINFO data structure. 
  9419.  
  9420. typedef CNRDRAGINFO *PCNRDRAGINFO;
  9421.  
  9422.  
  9423. ΓòÉΓòÉΓòÉ 4.177. PCNRDRAGINIT ΓòÉΓòÉΓòÉ
  9424.  
  9425. PCNRDRAGINIT Pointer to a CNRDRAGINIT data structure. 
  9426.  
  9427. typedef CNRDRAGINIT *PCNRDRAGINIT;
  9428.  
  9429.  
  9430. ΓòÉΓòÉΓòÉ 4.178. PCNRDRAWITEMINFO ΓòÉΓòÉΓòÉ
  9431.  
  9432. PCNRDRAWITEMINFO Pointer to a CNRDRAWITEMINFO data structure. 
  9433.  
  9434. typedef CNRDRAWITEMINFO *PCNRDRAWITEMINFO;
  9435.  
  9436.  
  9437. ΓòÉΓòÉΓòÉ 4.179. PCNREDITDATA ΓòÉΓòÉΓòÉ
  9438.  
  9439. PCNREDITDATA Pointer to a CNREDITDATA data structure. 
  9440.  
  9441. typedef CNREDITDATA *PCNREDITDATA;
  9442.  
  9443.  
  9444. ΓòÉΓòÉΓòÉ 4.180. PCNRINFO ΓòÉΓòÉΓòÉ
  9445.  
  9446. PCNRINFO Pointer to a CNRINFO data structure. 
  9447.  
  9448. typedef CNRINFO *PCNRINFO;
  9449.  
  9450.  
  9451. ΓòÉΓòÉΓòÉ 4.181. PCOLOR ΓòÉΓòÉΓòÉ
  9452.  
  9453. PCOLOR Pointer to COLOR. 
  9454.  
  9455. typedef COLOR *PCOLOR;
  9456.  
  9457.  
  9458. ΓòÉΓòÉΓòÉ 4.182. PCONVCONTEXT ΓòÉΓòÉΓòÉ
  9459.  
  9460. PCONVCONTEXT Pointer to a CONVCONTEXT data structure. 
  9461.  
  9462. typedef CONVCONTEXT *PCONVCONTEXT;
  9463.  
  9464.  
  9465. ΓòÉΓòÉΓòÉ 4.183. PCPTEXT ΓòÉΓòÉΓòÉ
  9466.  
  9467. PCPTEXT Pointer to CPTEXT. 
  9468.  
  9469. typedef CPTEXT *PCPTEXT;
  9470.  
  9471.  
  9472. ΓòÉΓòÉΓòÉ 4.184. PCREATEPARAMS ΓòÉΓòÉΓòÉ
  9473.  
  9474. PCREATEPARAMS Pointer to PVOID. 
  9475.  
  9476. typedef CREATEPARAMS *PCREATEPARAMS;
  9477.  
  9478.  
  9479. ΓòÉΓòÉΓòÉ 4.185. PCREATESTRUCT ΓòÉΓòÉΓòÉ
  9480.  
  9481. PCREATESTRUCT Pointer to a CREATESTRUCT data structure. 
  9482.  
  9483. typedef CREATESTRUCT *PCREATESTRUCT;
  9484.  
  9485.  
  9486. ΓòÉΓòÉΓòÉ 4.186. PCSZ ΓòÉΓòÉΓòÉ
  9487.  
  9488. PCSZ Pointer to a constant NULL-terminated string. 
  9489.  
  9490. typedef const char *PCSZ;
  9491.  
  9492.  
  9493. ΓòÉΓòÉΓòÉ 4.187. PCTIME ΓòÉΓòÉΓòÉ
  9494.  
  9495. PCTIME Pointer to CTIME. 
  9496.  
  9497. typedef CTIME *PCTIME;
  9498.  
  9499.  
  9500. ΓòÉΓòÉΓòÉ 4.188. PCURSORINFO ΓòÉΓòÉΓòÉ
  9501.  
  9502. PCURSORINFO Pointer to CURSORINFO. 
  9503.  
  9504. typedef CURSORINFO *PCURSORINFO;
  9505.  
  9506.  
  9507. ΓòÉΓòÉΓòÉ 4.189. PDDEINIT ΓòÉΓòÉΓòÉ
  9508.  
  9509. PDDEINIT Pointer to a DDEINIT data structure. 
  9510.  
  9511. typedef DDEINIT *PDDEINIT;
  9512.  
  9513.  
  9514. ΓòÉΓòÉΓòÉ 4.190. PDDESTRUCT ΓòÉΓòÉΓòÉ
  9515.  
  9516. PDDESTRUCT Pointer to DDESTRUCT. 
  9517.  
  9518. typedef DDESTRUCT *PDDESTRUCT;
  9519.  
  9520.  
  9521. ΓòÉΓòÉΓòÉ 4.191. PDELETENOTIFY ΓòÉΓòÉΓòÉ
  9522.  
  9523. PDELETENOTIFY Pointer to a DELETENOTIFY data structure. 
  9524.  
  9525. typedef DELETENOTIFY *PDELETENOTIFY;
  9526.  
  9527.  
  9528. ΓòÉΓòÉΓòÉ 4.192. PDESKTOP ΓòÉΓòÉΓòÉ
  9529.  
  9530. PDESKTOP Pointer to a DESKTOP image data structure. 
  9531.  
  9532. typedef DESKTOP *PDESKTOP;
  9533.  
  9534.  
  9535. ΓòÉΓòÉΓòÉ 4.193. PDEVOPENDATA ΓòÉΓòÉΓòÉ
  9536.  
  9537. PDEVOPENDATA Open-device-data array. 
  9538.  
  9539. This data type points to data whose format is described by the DEVOPENSTRUC 
  9540. data type. 
  9541.  
  9542. typedef PSZ *PDEVOPENDATA;
  9543.  
  9544.  
  9545. ΓòÉΓòÉΓòÉ 4.194. PDEVOPENSTRUC ΓòÉΓòÉΓòÉ
  9546.  
  9547. PDEVOPENSTRUC Pointer to DEVOPENSTRUC. 
  9548.  
  9549. typedef DEVOPENSTRUC *PDEVOPENSTRUC;
  9550.  
  9551.  
  9552. ΓòÉΓòÉΓòÉ 4.195. PDLGTEMPLATE ΓòÉΓòÉΓòÉ
  9553.  
  9554. PDLGTEMPLATE Pointer to DLGTEMPLATE. 
  9555.  
  9556. typedef DLGTEMPLATE *PDLGTEMPLATE;
  9557.  
  9558.  
  9559. ΓòÉΓòÉΓòÉ 4.196. PDLGTITEM ΓòÉΓòÉΓòÉ
  9560.  
  9561. PDLGTITEM Pointer to DLGTITEM. 
  9562.  
  9563. typedef DLGTITEM *PDLGTITEM;
  9564.  
  9565.  
  9566. ΓòÉΓòÉΓòÉ 4.197. PDRAGIMAGE ΓòÉΓòÉΓòÉ
  9567.  
  9568. PDRAGIMAGE Pointer to a DRAGIMAGE data structure. 
  9569.  
  9570. typedef DRAGIMAGE *PDRAGIMAGE;
  9571.  
  9572.  
  9573. ΓòÉΓòÉΓòÉ 4.198. PDRAGINFO ΓòÉΓòÉΓòÉ
  9574.  
  9575. PDRAGINFO Pointer to a DRAGINFO data structure. 
  9576.  
  9577. typedef DRAGINFO *PDRAGINFO;
  9578.  
  9579.  
  9580. ΓòÉΓòÉΓòÉ 4.199. PDRAGITEM ΓòÉΓòÉΓòÉ
  9581.  
  9582. PDRAGITEM Pointer to a DRAGITEM data structure. 
  9583.  
  9584. typedef DRAGITEM *PDRAGITEM;
  9585.  
  9586.  
  9587. ΓòÉΓòÉΓòÉ 4.200. PDRAGTRANSFER ΓòÉΓòÉΓòÉ
  9588.  
  9589. PDRAGTRANSFER Pointer to a DRAGTRANSFER data structure. 
  9590.  
  9591. typedef DRAGTRANSFER *PDRAGTRANSFER;
  9592.  
  9593.  
  9594. ΓòÉΓòÉΓòÉ 4.201. PDRIVDATA ΓòÉΓòÉΓòÉ
  9595.  
  9596. PDRIVDATA Driver-data structure. 
  9597.  
  9598. This data type points to data whose format is described by the DRIVDATA data 
  9599. type. 
  9600.  
  9601. typedef DRIVDATA *PDRIVDATA;
  9602.  
  9603.  
  9604. ΓòÉΓòÉΓòÉ 4.202. PDRIVPROPS ΓòÉΓòÉΓòÉ
  9605.  
  9606. PDRIVPROPS Driver property structure. 
  9607.  
  9608. This data type points to data whose format is described by the DRIVPROPS data 
  9609. type. 
  9610.  
  9611. typedef DRIVPROPS *PDRIVPROPS;
  9612.  
  9613.  
  9614. ΓòÉΓòÉΓòÉ 4.203. PENTRYFDATA ΓòÉΓòÉΓòÉ
  9615.  
  9616. PENTRYFDATA Pointer to ENTRYFDATA. 
  9617.  
  9618. typedef ENTRYFDATA *PENTRYFDATA;
  9619.  
  9620.  
  9621. ΓòÉΓòÉΓòÉ 4.204. PERRINFO ΓòÉΓòÉΓòÉ
  9622.  
  9623. PERRINFO Pointer to ERRINFO. 
  9624.  
  9625. typedef ERRINFO *PERRINFO;
  9626.  
  9627.  
  9628. ΓòÉΓòÉΓòÉ 4.205. PERRORID ΓòÉΓòÉΓòÉ
  9629.  
  9630. PERRORID Pointer to ERRORID. 
  9631.  
  9632. typedef ERRORID *PERRORID;
  9633.  
  9634.  
  9635. ΓòÉΓòÉΓòÉ 4.206. PESCMODE ΓòÉΓòÉΓòÉ
  9636.  
  9637. PESCMODE Pointer to ESCSETMODE. 
  9638.  
  9639. typedef ESCMODE *PESCMODE;
  9640.  
  9641.  
  9642. ΓòÉΓòÉΓòÉ 4.207. PFACENAMEDESC ΓòÉΓòÉΓòÉ
  9643.  
  9644. PFACENAMEDESC Pointer to FACENAMEDESC. 
  9645.  
  9646. typedef FACENAMEDESC *PFACENAMEDESC;
  9647.  
  9648.  
  9649. ΓòÉΓòÉΓòÉ 4.208. PFATTRS ΓòÉΓòÉΓòÉ
  9650.  
  9651. PFATTRS Pointer to FATTRS. 
  9652.  
  9653. typedef FATTRS *PFATTRS;
  9654.  
  9655.  
  9656. ΓòÉΓòÉΓòÉ 4.209. PFFDESCS ΓòÉΓòÉΓòÉ
  9657.  
  9658. PFFDESCS Pointer to a font file descriptor. 
  9659.  
  9660. typedef FFDESCS *PFFDESCS;
  9661.  
  9662.  
  9663. ΓòÉΓòÉΓòÉ 4.210. PFIELDINFO ΓòÉΓòÉΓòÉ
  9664.  
  9665. PFIELDINFO Pointer to a FIELDINFO data structure. 
  9666.  
  9667. typedef FIELDINFO *PFIELDINFO;
  9668.  
  9669.  
  9670. ΓòÉΓòÉΓòÉ 4.211. PFIELDINFOINSERT ΓòÉΓòÉΓòÉ
  9671.  
  9672. PFIELDINFOINSERT Pointer to a FIELDINFOINSERT data structure. 
  9673.  
  9674. typedef FIELDINFOINSERT *PFIELDINFOINSERT;
  9675.  
  9676.  
  9677. ΓòÉΓòÉΓòÉ 4.212. PFILEDLG ΓòÉΓòÉΓòÉ
  9678.  
  9679. PFILEDLG Pointer to a FILEDLG data structure. 
  9680.  
  9681. typedef FILEDLG *PFILEDLG;
  9682.  
  9683.  
  9684. ΓòÉΓòÉΓòÉ 4.213. PFIXED ΓòÉΓòÉΓòÉ
  9685.  
  9686. PFIXED Pointer to FIXED. 
  9687.  
  9688. typedef FIXED *PFIXED;
  9689.  
  9690.  
  9691. ΓòÉΓòÉΓòÉ 4.214. PFN ΓòÉΓòÉΓòÉ
  9692.  
  9693. PFN A pointer to a procedure. 
  9694.  
  9695. A two-part definition is shown here to match the header files. 
  9696.  
  9697. typedef  int   (APIENTRY _PFN) ();
  9698. typedef _PFN  *PFN;
  9699.  
  9700.  
  9701. ΓòÉΓòÉΓòÉ 4.215. PFNWP ΓòÉΓòÉΓòÉ
  9702.  
  9703. PFNWP A pointer to a window procedure. 
  9704.  
  9705. A two-part definition is shown here to match the header files. 
  9706.  
  9707. typedef  MRESULT (EXPENTRY FNWP)(HWND, ULONG, MPARAM, MPARAM);
  9708. typedef  FNWP   *PFNWP;
  9709.  
  9710.  
  9711. ΓòÉΓòÉΓòÉ 4.216. PFONTDLG ΓòÉΓòÉΓòÉ
  9712.  
  9713. PFONTDLG Pointer to a FONTDLG data structure. 
  9714.  
  9715. typedef FONTDLG *PFONTDLG;
  9716.  
  9717.  
  9718. ΓòÉΓòÉΓòÉ 4.217. PFONTMETRICS ΓòÉΓòÉΓòÉ
  9719.  
  9720. PFONTMETRICS Pointer to FONTMETRICS. 
  9721.  
  9722. typedef FONTMETRICS *PFONTMETRICS;
  9723.  
  9724.  
  9725. ΓòÉΓòÉΓòÉ 4.218. PGRADIENTL ΓòÉΓòÉΓòÉ
  9726.  
  9727. PGRADIENTL Pointer to GRADIENTL. 
  9728.  
  9729. typedef GRADIENTL *PGRADIENTL;
  9730.  
  9731.  
  9732. ΓòÉΓòÉΓòÉ 4.219. PHAB ΓòÉΓòÉΓòÉ
  9733.  
  9734. PHAB Pointer to HAB. 
  9735.  
  9736. typedef HAB *PHAB;
  9737.  
  9738.  
  9739. ΓòÉΓòÉΓòÉ 4.220. PHBITMAP ΓòÉΓòÉΓòÉ
  9740.  
  9741. PHBITMAP Pointer to HBITMAP. 
  9742.  
  9743. typedef HBITMAP *PHBITMAP;
  9744.  
  9745.  
  9746. ΓòÉΓòÉΓòÉ 4.221. PHCINFO ΓòÉΓòÉΓòÉ
  9747.  
  9748. PHCINFO Pointer to HCINFO. 
  9749.  
  9750. typedef HCINFO *PHCINFO;
  9751.  
  9752.  
  9753. ΓòÉΓòÉΓòÉ 4.222. PHDC ΓòÉΓòÉΓòÉ
  9754.  
  9755. PHDC Pointer to HDC. 
  9756.  
  9757. typedef HDC *PHDC;
  9758.  
  9759.  
  9760. ΓòÉΓòÉΓòÉ 4.223. PHELPINIT ΓòÉΓòÉΓòÉ
  9761.  
  9762. PHELPINIT Pointer to HELPINIT. 
  9763.  
  9764. typedef HELPINIT *PHELPINIT;
  9765.  
  9766.  
  9767. ΓòÉΓòÉΓòÉ 4.224. PHELPSUBTABLE ΓòÉΓòÉΓòÉ
  9768.  
  9769. PHELPSUBTABLE Pointer to SHORT. 
  9770.  
  9771. typedef HELPSUBTABLE *PHELPSUBTABLE;
  9772.  
  9773.  
  9774. ΓòÉΓòÉΓòÉ 4.225. PHELPTABLE ΓòÉΓòÉΓòÉ
  9775.  
  9776. PHELPTABLE Pointer to a HELPTABLE data structure. 
  9777.  
  9778. typedef HELPTABLE *PHELPTABLE;
  9779.  
  9780.  
  9781. ΓòÉΓòÉΓòÉ 4.226. PHFIND ΓòÉΓòÉΓòÉ
  9782.  
  9783. PHFIND Pointer to HFIND. 
  9784.  
  9785. typedef HFIND *PHFIND;
  9786.  
  9787.  
  9788. ΓòÉΓòÉΓòÉ 4.227. PHLIB ΓòÉΓòÉΓòÉ
  9789.  
  9790. PHLIB Pointer to a HLIB data structure. 
  9791.  
  9792. typedef HLIB *PHLIB;
  9793.  
  9794.  
  9795. ΓòÉΓòÉΓòÉ 4.228. PHMF ΓòÉΓòÉΓòÉ
  9796.  
  9797. PHMF Pointer to HMF. 
  9798.  
  9799. typedef HMF *PHMF;
  9800.  
  9801.  
  9802. ΓòÉΓòÉΓòÉ 4.229. PHMODULE ΓòÉΓòÉΓòÉ
  9803.  
  9804. PHMODULE Pointer to HMODULE. 
  9805.  
  9806. typedef HMODULE *PHMODULE;
  9807.  
  9808.  
  9809. ΓòÉΓòÉΓòÉ 4.230. PHPAL ΓòÉΓòÉΓòÉ
  9810.  
  9811. PHPAL Pointer to HPAL. 
  9812.  
  9813. typedef HPAL *PHPAL;
  9814.  
  9815.  
  9816. ΓòÉΓòÉΓòÉ 4.231. PHPROGARRAY ΓòÉΓòÉΓòÉ
  9817.  
  9818. PHPROGARRAY Pointer to HPROGARRAY. 
  9819.  
  9820. typedef HPROGARRAY *PHPROGARRAY;
  9821.  
  9822.  
  9823. ΓòÉΓòÉΓòÉ 4.232. PHPROGRAM ΓòÉΓòÉΓòÉ
  9824.  
  9825. PHPROGRAM Pointer to HPROGRAM. 
  9826.  
  9827. typedef HPROGRAM *PHPROGRAM;
  9828.  
  9829.  
  9830. ΓòÉΓòÉΓòÉ 4.233. PHPS ΓòÉΓòÉΓòÉ
  9831.  
  9832. PHPS Pointer to HPS. 
  9833.  
  9834. typedef HPS *PHPS;
  9835.  
  9836.  
  9837. ΓòÉΓòÉΓòÉ 4.234. PHRGN ΓòÉΓòÉΓòÉ
  9838.  
  9839. PHRGN Pointer to HRGN. 
  9840.  
  9841. typedef HRGN *PHRGN;
  9842.  
  9843.  
  9844. ΓòÉΓòÉΓòÉ 4.235. PHSEM ΓòÉΓòÉΓòÉ
  9845.  
  9846. PHSEM Pointer to HSEM. 
  9847.  
  9848. typedef HSEM *PHSEM;
  9849.  
  9850.  
  9851. ΓòÉΓòÉΓòÉ 4.236. PHSWITCH ΓòÉΓòÉΓòÉ
  9852.  
  9853. PHSWITCH Pointer to HSWITCH. 
  9854.  
  9855. typedef HSWITCH *PHSWITCH;
  9856.  
  9857.  
  9858. ΓòÉΓòÉΓòÉ 4.237. PHWND ΓòÉΓòÉΓòÉ
  9859.  
  9860. PHWND Pointer to HWND. 
  9861.  
  9862. typedef HWND *PHWND;
  9863.  
  9864.  
  9865. ΓòÉΓòÉΓòÉ 4.238. PIBSTRUCT ΓòÉΓòÉΓòÉ
  9866.  
  9867. PIBSTRUCT Program-information-block structure. 
  9868.  
  9869. typedef struct _PIBSTRUCT {
  9870. PROGTYPE     progt;                       /* Program type and visibility  */
  9871. CHAR         szTitle[MAXNAMEL+1];         /* Program title (NULL-terminated)  */
  9872. CHAR         szIconFileName[MAXPATHL+1];  /* Program icon filename (NULL-terminated)  */
  9873. CHAR         szExecutable[MAXPATHL+1];    /* Executable file name (NULL-terminated)  */
  9874. CHAR         szStartupDir[MAXPATHL+1];    /* Start-up directory (NULL-terminated)  */
  9875. XYWINSIZE    xywinInitial;                /* Initial window position and size  */
  9876. USHORT       res1;                        /* Reserved; must be 0  */
  9877. LHANDLE      res2;                        /* Reserved; must be NULLHANDLE  */
  9878. USHORT       cchEnvironmentVars;          /* Environment string length  */
  9879. PCH          pchEnvironmentVars;          /* Environment string  */
  9880. USHORT       cchProgramParameter;         /* Parameter string length  */
  9881. PCH          pchProgramParameter;         /* Parameter string  */
  9882.  } PIBSTRUCT;
  9883.  
  9884.  
  9885. ΓòÉΓòÉΓòÉ <hidden> progt ΓòÉΓòÉΓòÉ
  9886.  
  9887. progt (PROGTYPE) 
  9888.    Program type and visibility. 
  9889.  
  9890.  
  9891. ΓòÉΓòÉΓòÉ <hidden> szTitle[MAXNAMEL+1] ΓòÉΓòÉΓòÉ
  9892.  
  9893. szTitle[MAXNAMEL+1] (CHAR) 
  9894.    Program title (NULL-terminated). 
  9895.  
  9896.  
  9897. ΓòÉΓòÉΓòÉ <hidden> szIconFileName[MAXPATHL+1] ΓòÉΓòÉΓòÉ
  9898.  
  9899. szIconFileName[MAXPATHL+1] (CHAR) 
  9900.    Program icon filename (NULL-terminated). 
  9901.  
  9902.  
  9903. ΓòÉΓòÉΓòÉ <hidden> szExecutable[MAXPATHL+1] ΓòÉΓòÉΓòÉ
  9904.  
  9905. szExecutable[MAXPATHL+1] (CHAR) 
  9906.    Executable file name (NULL-terminated). 
  9907.  
  9908.  
  9909. ΓòÉΓòÉΓòÉ <hidden> szStartupDir[MAXPATHL+1] ΓòÉΓòÉΓòÉ
  9910.  
  9911. szStartupDir[MAXPATHL+1] (CHAR) 
  9912.    Start-up directory (NULL-terminated). 
  9913.  
  9914.  
  9915. ΓòÉΓòÉΓòÉ <hidden> xywinInitial ΓòÉΓòÉΓòÉ
  9916.  
  9917. xywinInitial (XYWINSIZE) 
  9918.    Initial window position and size. 
  9919.  
  9920.  
  9921. ΓòÉΓòÉΓòÉ <hidden> res1 ΓòÉΓòÉΓòÉ
  9922.  
  9923. res1 (USHORT) 
  9924.    Reserved; must be 0. 
  9925.  
  9926.  
  9927. ΓòÉΓòÉΓòÉ <hidden> res2 ΓòÉΓòÉΓòÉ
  9928.  
  9929. res2 (LHANDLE) 
  9930.    Reserved; must be NULLHANDLE. 
  9931.  
  9932.  
  9933. ΓòÉΓòÉΓòÉ <hidden> cchEnvironmentVars ΓòÉΓòÉΓòÉ
  9934.  
  9935. cchEnvironmentVars (USHORT) 
  9936.    Environment string length. 
  9937.  
  9938.  
  9939. ΓòÉΓòÉΓòÉ <hidden> pchEnvironmentVars ΓòÉΓòÉΓòÉ
  9940.  
  9941. pchEnvironmentVars (PCH) 
  9942.    Environment string. 
  9943.  
  9944.  
  9945. ΓòÉΓòÉΓòÉ <hidden> cchProgramParameter ΓòÉΓòÉΓòÉ
  9946.  
  9947. cchProgramParameter (USHORT) 
  9948.    Parameter string length. 
  9949.  
  9950.  
  9951. ΓòÉΓòÉΓòÉ <hidden> pchProgramParameter ΓòÉΓòÉΓòÉ
  9952.  
  9953. pchProgramParameter (PCH) 
  9954.    Parameter string. 
  9955.  
  9956.  
  9957. ΓòÉΓòÉΓòÉ 4.239. PICONINFO ΓòÉΓòÉΓòÉ
  9958.  
  9959. PICONINFO Pointer to ICONINFO structure. 
  9960.  
  9961. typedef ICONINFO FAR *PICONINFO;
  9962.  
  9963.  
  9964. ΓòÉΓòÉΓòÉ 4.240. PICONPOS ΓòÉΓòÉΓòÉ
  9965.  
  9966. PICONPOS Pointer to ICONPOS data structure. 
  9967.  
  9968. typedef ICONPOS *PICONPOS;
  9969.  
  9970.  
  9971. ΓòÉΓòÉΓòÉ 4.241. PID ΓòÉΓòÉΓòÉ
  9972.  
  9973. PID Process identity. 
  9974.  
  9975. typedef LHANDLE PID;
  9976.  
  9977.  
  9978. ΓòÉΓòÉΓòÉ 4.242. PIMAGEBUNDLE ΓòÉΓòÉΓòÉ
  9979.  
  9980. PIMAGEBUNDLE Pointer to IMAGEBUNDLE. 
  9981.  
  9982. typedef IMAGEBUNDLE *PIMAGEBUNDLE;
  9983.  
  9984.  
  9985. ΓòÉΓòÉΓòÉ 4.243. PIPT ΓòÉΓòÉΓòÉ
  9986.  
  9987. PIPT Pointer to IPT. 
  9988.  
  9989. typedef PLONG *PIPT;
  9990.  
  9991.  
  9992. ΓòÉΓòÉΓòÉ 4.244. PIX ΓòÉΓòÉΓòÉ
  9993.  
  9994. PIX pel count for multi-line entry field. 
  9995.  
  9996. typedef LONG PIX;
  9997.  
  9998.  
  9999. ΓòÉΓòÉΓòÉ 4.245. PKERNINGPAIRS ΓòÉΓòÉΓòÉ
  10000.  
  10001. PKERNINGPAIRS Pointer to KERNINGPAIRS. 
  10002.  
  10003. typedef KERNINGPAIRS *PKERNINGPAIRS;
  10004.  
  10005.  
  10006. ΓòÉΓòÉΓòÉ 4.246. PLINEBUNDLE ΓòÉΓòÉΓòÉ
  10007.  
  10008. PLINEBUNDLE Pointer to LINEBUNDLE. 
  10009.  
  10010. typedef LINEBUNDLE *PLINEBUNDLE;
  10011.  
  10012.  
  10013. ΓòÉΓòÉΓòÉ 4.247. PLINKITEM ΓòÉΓòÉΓòÉ
  10014.  
  10015. PLINKITEM Pointer to LINKITEM. 
  10016.  
  10017. typedef LINKITEM *PLINKITEM;
  10018.  
  10019.  
  10020. ΓòÉΓòÉΓòÉ 4.248. PLONG ΓòÉΓòÉΓòÉ
  10021.  
  10022. PLONG Pointer to LONG. 
  10023.  
  10024. typedef LONG *PLONG;
  10025.  
  10026.  
  10027. ΓòÉΓòÉΓòÉ 4.249. PMARGSTRUCT ΓòÉΓòÉΓòÉ
  10028.  
  10029. PMARGSTRUCT Pointer to a MLEMARGSTRUCT data structure. 
  10030.  
  10031. typedef MLEMARGSTRUCT *PMARGSTRUCT;
  10032.  
  10033.  
  10034. ΓòÉΓòÉΓòÉ 4.250. PMARKERBUNDLE ΓòÉΓòÉΓòÉ
  10035.  
  10036. PMARKERBUNDLE Pointer to MARKERBUNDLE. 
  10037.  
  10038. typedef MARKERBUNDLE *PMARKERBUNDLE;
  10039.  
  10040.  
  10041. ΓòÉΓòÉΓòÉ 4.251. PMATRIXLF ΓòÉΓòÉΓòÉ
  10042.  
  10043. PMATRIXLF Pointer to MATRIXLF. 
  10044.  
  10045. typedef MATRIXLF *PMATRIXLF;
  10046.  
  10047.  
  10048. ΓòÉΓòÉΓòÉ 4.252. PMEMORYITEM ΓòÉΓòÉΓòÉ
  10049.  
  10050. PMEMORYITEM Pointer to MEMORYITEM. 
  10051.  
  10052. typedef MEMORYITEM *PMEMORYITEM;
  10053.  
  10054.  
  10055. ΓòÉΓòÉΓòÉ 4.253. PMENUITEM ΓòÉΓòÉΓòÉ
  10056.  
  10057. PMENUITEM Pointer to a MENUITEM data structure. 
  10058.  
  10059. typedef MENUITEM *PMENUITEM;
  10060.  
  10061.  
  10062. ΓòÉΓòÉΓòÉ 4.254. PMFP ΓòÉΓòÉΓòÉ
  10063.  
  10064. PMFP Pointer to MFP. 
  10065.  
  10066. typedef MFP *PMFP;
  10067.  
  10068.  
  10069. ΓòÉΓòÉΓòÉ 4.255. PMINIRECORDCORE ΓòÉΓòÉΓòÉ
  10070.  
  10071. PMINIRECORDCORE Pointer to a MINIRECORDCORE data structure. 
  10072.  
  10073. typedef MINIRECORDCORE *PMINIRECORDCORE;
  10074.  
  10075.  
  10076. ΓòÉΓòÉΓòÉ 4.256. PMLE_SEARCHDATA ΓòÉΓòÉΓòÉ
  10077.  
  10078. PMLE_SEARCHDATA Pointer to a MLE_SEARCHDATA data structure. 
  10079.  
  10080. typedef MLE_SEARCHDATA *PMLE_SEARCHDATA;
  10081.  
  10082.  
  10083. ΓòÉΓòÉΓòÉ 4.257. PMPARAM ΓòÉΓòÉΓòÉ
  10084.  
  10085. PMPARAM Pointer to a 4-byte message-dependent parameter structure. 
  10086.  
  10087. typedef MPARAM *PMPARAM;
  10088.  
  10089.  
  10090. ΓòÉΓòÉΓòÉ 4.258. PMQINFO ΓòÉΓòÉΓòÉ
  10091.  
  10092. PMQINFO Pointer to MQINFO. 
  10093.  
  10094. typedef MQINFO *PMQINFO;
  10095.  
  10096.  
  10097. ΓòÉΓòÉΓòÉ 4.259. PMRESULT ΓòÉΓòÉΓòÉ
  10098.  
  10099. PMRESULT Pointer to a 4-byte message-dependent reply parameter structure. 
  10100.  
  10101. typedef MRESULT *PMRESULT;
  10102.  
  10103.  
  10104. ΓòÉΓòÉΓòÉ 4.260. PMSEMSG ΓòÉΓòÉΓòÉ
  10105.  
  10106. PMSEMSG Pointer to a MSEMSG data structure. 
  10107.  
  10108. typedef MSEMSG *PMSEMSG;
  10109.  
  10110.  
  10111. ΓòÉΓòÉΓòÉ 4.261. PNOTIFYDELTA ΓòÉΓòÉΓòÉ
  10112.  
  10113. PNOTIFYDELTA Pointer to a NOTIFYDELTA data structure. 
  10114.  
  10115. typedef NOTIFYDELTA *PNOTIFYDELTA;
  10116.  
  10117.  
  10118. ΓòÉΓòÉΓòÉ 4.262. PNOTIFYRECORDEMPHASIS ΓòÉΓòÉΓòÉ
  10119.  
  10120. PNOTIFYRECORDEMPHASIS Pointer to a NOTIFYRECORDEMPHASIS data structure. 
  10121.  
  10122. typedef NOTIFYRECORDEMPHASIS *PNOTIFYRECORDEMPHASIS;
  10123.  
  10124.  
  10125. ΓòÉΓòÉΓòÉ 4.263. PNOTIFYRECORDENTER ΓòÉΓòÉΓòÉ
  10126.  
  10127. PNOTIFYRECORDENTER Pointer to a NOTIFYRECORDENTER data structure. 
  10128.  
  10129. typedef NOTIFYRECORDENTER *PNOTIFYRECORDENTER;
  10130.  
  10131.  
  10132. ΓòÉΓòÉΓòÉ 4.264. PNOTIFYSCROLL ΓòÉΓòÉΓòÉ
  10133.  
  10134. PNOTIFYSCROLL Pointer to a NOTIFYSCROLL data structure. 
  10135.  
  10136. typedef NOTIFYSCROLL *PNOTIFYSCROLL;
  10137.  
  10138.  
  10139. ΓòÉΓòÉΓòÉ 4.265. POBJCLASS ΓòÉΓòÉΓòÉ
  10140.  
  10141. POBJCLASS Pointer to an OBJCLASS data structure. 
  10142.  
  10143. typedef OBJCLASS *POBJCLASS;
  10144.  
  10145.  
  10146. ΓòÉΓòÉΓòÉ 4.266. POBJDATA ΓòÉΓòÉΓòÉ
  10147.  
  10148. POBJDATA Pointer to OBJDATA structure. 
  10149.  
  10150. typedef OBJDATA *POBJDATA;
  10151.  
  10152.  
  10153. ΓòÉΓòÉΓòÉ 4.267. POBJECT ΓòÉΓòÉΓòÉ
  10154.  
  10155. POBJECT Pointer to WPObject *. 
  10156.  
  10157. A two-part definition is shown here to match the header files. 
  10158.  
  10159. typedef WPObject *OBJECT;
  10160. typedef OBJECT   *POBJECT;
  10161.  
  10162.  
  10163. ΓòÉΓòÉΓòÉ 4.268. POINTERINFO ΓòÉΓòÉΓòÉ
  10164.  
  10165. POINTERINFO Pointer-information structure. 
  10166.  
  10167. typedef struct _POINTERINFO {
  10168. ULONG      fPointer;        /* Bit-map size indicator  */
  10169. LONG       xHotspot;        /* X-coordinate of action point  */
  10170. LONG       yHotspot;        /* Y-coordinate of action point  */
  10171. HBITMAP    hbmPointer;      /* Bit-map handle of pointer  */
  10172. HBITMAP    hbmColor;        /* Bit-map handle of color bit map  */
  10173. HBITMAP    hbmMiniPointer;  /* Bit-map handle of a pointer to a mini bit map  */
  10174. HBITMAP    hbmMiniColor;    /* Bit-map handle of mini color bit map  */
  10175.  } POINTERINFO;
  10176.  
  10177.  
  10178. ΓòÉΓòÉΓòÉ <hidden> fPointer ΓòÉΓòÉΓòÉ
  10179.  
  10180. fPointer (ULONG) 
  10181.    Bit-map size indicator. 
  10182.  
  10183.    TRUE 
  10184.       Pointer-sized bit map 
  10185.    FALSE 
  10186.       Icon-sized bit map. 
  10187.  
  10188.  
  10189. ΓòÉΓòÉΓòÉ <hidden> xHotspot ΓòÉΓòÉΓòÉ
  10190.  
  10191. xHotspot (LONG) 
  10192.    X-coordinate of action point. 
  10193.  
  10194.  
  10195. ΓòÉΓòÉΓòÉ <hidden> yHotspot ΓòÉΓòÉΓòÉ
  10196.  
  10197. yHotspot (LONG) 
  10198.    Y-coordinate of action point. 
  10199.  
  10200.  
  10201. ΓòÉΓòÉΓòÉ <hidden> hbmPointer ΓòÉΓòÉΓòÉ
  10202.  
  10203. hbmPointer (HBITMAP) 
  10204.    Bit-map handle of pointer. 
  10205.  
  10206.  
  10207. ΓòÉΓòÉΓòÉ <hidden> hbmColor ΓòÉΓòÉΓòÉ
  10208.  
  10209. hbmColor (HBITMAP) 
  10210.    Bit-map handle of color bit map. 
  10211.  
  10212.  
  10213. ΓòÉΓòÉΓòÉ <hidden> hbmMiniPointer ΓòÉΓòÉΓòÉ
  10214.  
  10215. hbmMiniPointer (HBITMAP) 
  10216.    Bit-map handle of a pointer to a mini bit map. 
  10217.  
  10218.  
  10219. ΓòÉΓòÉΓòÉ <hidden> hbmMiniColor ΓòÉΓòÉΓòÉ
  10220.  
  10221. hbmMiniColor (HBITMAP) 
  10222.    Bit-map handle of mini color bit map. 
  10223.  
  10224.  
  10225. ΓòÉΓòÉΓòÉ 4.269. POINTL ΓòÉΓòÉΓòÉ
  10226.  
  10227. POINTL Point structure (long integer). 
  10228.  
  10229. typedef struct _POINTL {
  10230. LONG    x;  /* X-coordinate  */
  10231. LONG    y;  /* Y-coordinate  */
  10232.  } POINTL;
  10233.  
  10234.  
  10235. ΓòÉΓòÉΓòÉ <hidden> x ΓòÉΓòÉΓòÉ
  10236.  
  10237. x (LONG) 
  10238.    X-coordinate. 
  10239.  
  10240.  
  10241. ΓòÉΓòÉΓòÉ <hidden> y ΓòÉΓòÉΓòÉ
  10242.  
  10243. y (LONG) 
  10244.    Y-coordinate. 
  10245.  
  10246.  
  10247. ΓòÉΓòÉΓòÉ 4.270. POINTS ΓòÉΓòÉΓòÉ
  10248.  
  10249. POINTS Point structure (short integer). 
  10250.  
  10251. typedef struct _POINTS {
  10252. SHORT    x;  /* X-coordinate  */
  10253. SHORT    y;  /* Y-coordinate  */
  10254.  } POINTS;
  10255.  
  10256.  
  10257. ΓòÉΓòÉΓòÉ <hidden> x ΓòÉΓòÉΓòÉ
  10258.  
  10259. x (SHORT) 
  10260.    X-coordinate. 
  10261.  
  10262.  
  10263. ΓòÉΓòÉΓòÉ <hidden> y ΓòÉΓòÉΓòÉ
  10264.  
  10265. y (SHORT) 
  10266.    Y-coordinate. 
  10267.  
  10268.  
  10269. ΓòÉΓòÉΓòÉ 4.271. POLYGON ΓòÉΓòÉΓòÉ
  10270.  
  10271. POLYGON Polygon structure. 
  10272.  
  10273. typedef struct _POLYGON {
  10274. ULONG      ulPoints;  /* Number of points in array  */
  10275. PPOINTL    aPointl;   /* Array of points  */
  10276.  } POLYGON;
  10277.  
  10278.  
  10279. ΓòÉΓòÉΓòÉ <hidden> ulPoints ΓòÉΓòÉΓòÉ
  10280.  
  10281. ulPoints (ULONG) 
  10282.    Number of points in array. 
  10283.  
  10284.  
  10285. ΓòÉΓòÉΓòÉ <hidden> aPointl ΓòÉΓòÉΓòÉ
  10286.  
  10287. aPointl (PPOINTL) 
  10288.    Array of points. 
  10289.  
  10290.  
  10291. ΓòÉΓòÉΓòÉ 4.272. POVERFLOW ΓòÉΓòÉΓòÉ
  10292.  
  10293. POVERFLOW Pointer to a MLEOVERFLOW data structure. 
  10294.  
  10295. typedef MLEOVERFLOW *POVERFLOW;
  10296.  
  10297.  
  10298. ΓòÉΓòÉΓòÉ 4.273. POWNERBACKGROUND ΓòÉΓòÉΓòÉ
  10299.  
  10300. POWNERBACKGROUND Pointer to an OWNERBACKGROUND data structure. 
  10301.  
  10302. typedef OWNERBACKGROUND *POWNERBACKGROUND;
  10303.  
  10304.  
  10305. ΓòÉΓòÉΓòÉ 4.274. POWNERITEM ΓòÉΓòÉΓòÉ
  10306.  
  10307. POWNERITEM Pointer to a OWNERITEM data structure. 
  10308.  
  10309. typedef OWNERITEM *POWNERITEM;
  10310.  
  10311.  
  10312. ΓòÉΓòÉΓòÉ 4.275. PPAGEINFO ΓòÉΓòÉΓòÉ
  10313.  
  10314. PPAGEINFO Pointer to PAGEINFO structure. 
  10315.  
  10316. typedef PAGEINFO *PPAGEINFO;
  10317.  
  10318.  
  10319. ΓòÉΓòÉΓòÉ 4.276. PPAGESELECTNOTIFY ΓòÉΓòÉΓòÉ
  10320.  
  10321. PPAGESELECTNOTIFY Pointer to a PAGESELECTNOTIFY data structure. 
  10322.  
  10323. typedef PAGESELECTNOTIFY *PPAGESELECTNOTIFY;
  10324.  
  10325.  
  10326. ΓòÉΓòÉΓòÉ 4.277. PPALINFO ΓòÉΓòÉΓòÉ
  10327.  
  10328. PPALINFO Pointer to PALINFO. 
  10329.  
  10330. typedef PALINFO *PPALINFO;
  10331.  
  10332.  
  10333. ΓòÉΓòÉΓòÉ 4.278. PPIBSTRUCT ΓòÉΓòÉΓòÉ
  10334.  
  10335. PPIBSTRUCT Pointer to PIBSTRUCT. 
  10336.  
  10337. typedef PIBSTRUCT *PPIBSTRUCT;
  10338.  
  10339.  
  10340. ΓòÉΓòÉΓòÉ 4.279. PPID ΓòÉΓòÉΓòÉ
  10341.  
  10342. PPID Pointer to PID. 
  10343.  
  10344. typedef PID *PPID;
  10345.  
  10346.  
  10347. ΓòÉΓòÉΓòÉ 4.280. PPOINTL ΓòÉΓòÉΓòÉ
  10348.  
  10349. PPOINTL Pointer to a POINTL data structure. 
  10350.  
  10351. typedef POINTL *PPOINTL;
  10352.  
  10353.  
  10354. ΓòÉΓòÉΓòÉ 4.281. PPOINTS ΓòÉΓòÉΓòÉ
  10355.  
  10356. PPOINTS Pointer to POINTS. 
  10357.  
  10358. typedef POINTS *PPOINTS;
  10359.  
  10360.  
  10361. ΓòÉΓòÉΓòÉ 4.282. PPOLYGON ΓòÉΓòÉΓòÉ
  10362.  
  10363. PPOLYGON Pointer to POLYGON. 
  10364.  
  10365. typedef POLYGON *PPOLYGON;
  10366.  
  10367.  
  10368. ΓòÉΓòÉΓòÉ 4.283. PPRDINFO3 ΓòÉΓòÉΓòÉ
  10369.  
  10370. PPRDINFO3 Pointer to PRDINFO3. 
  10371.  
  10372. typedef PRDINFO3 *PPRDINFO3;
  10373.  
  10374.  
  10375. ΓòÉΓòÉΓòÉ 4.284. PPRDRIVINFO ΓòÉΓòÉΓòÉ
  10376.  
  10377. PPRDRIVINFO Pointer to PRDRIVINFO. 
  10378.  
  10379. typedef PRDRIVINFO *PPRDRIVINFO;
  10380.  
  10381.  
  10382. ΓòÉΓòÉΓòÉ 4.285. PPRESPARAMS ΓòÉΓòÉΓòÉ
  10383.  
  10384. PPRESPARAMS Pointer to PRESPARAMS. 
  10385.  
  10386. typedef PRESPARAMS *PPRESPARAMS;
  10387.  
  10388.  
  10389. ΓòÉΓòÉΓòÉ 4.286. PPRINTDEST ΓòÉΓòÉΓòÉ
  10390.  
  10391. PPRINTDEST Pointer to PRINTDEST structure. 
  10392.  
  10393. typedef PRINTDEST *PPRINTDEST;
  10394.  
  10395.  
  10396. ΓòÉΓòÉΓòÉ 4.287. PPRINTERINFO ΓòÉΓòÉΓòÉ
  10397.  
  10398. PPRINTERINFO Pointer to PRINTERINFO. 
  10399.  
  10400. typedef PRINTERINFO *PPRINTERINFO;
  10401.  
  10402.  
  10403. ΓòÉΓòÉΓòÉ 4.288. PPRJINFO2 ΓòÉΓòÉΓòÉ
  10404.  
  10405. PPRJINFO2 Pointer to PRJINFO2. 
  10406.  
  10407. typedef PRJINFO2 *PPRJINFO2;
  10408.  
  10409.  
  10410. ΓòÉΓòÉΓòÉ 4.289. PPRJINFO3 ΓòÉΓòÉΓòÉ
  10411.  
  10412. PPRJINFO3 Pointer to PRJINFO3. 
  10413.  
  10414. typedef PRJINFO3 *PPRJINFO3;
  10415.  
  10416.  
  10417. ΓòÉΓòÉΓòÉ 4.290. PPROGCATEGORY ΓòÉΓòÉΓòÉ
  10418.  
  10419. PPROGCATEGORY Pointer to PROGCATEGORY. 
  10420.  
  10421. typedef PROGCATEGORY *PPROGCATEGORY;
  10422.  
  10423.  
  10424. ΓòÉΓòÉΓòÉ 4.291. PPROGDETAILS ΓòÉΓòÉΓòÉ
  10425.  
  10426. PPROGDETAILS Pointer to PROGDETAILS. 
  10427.  
  10428. typedef PROGDETAILS *PPROGDETAILS;
  10429.  
  10430.  
  10431. ΓòÉΓòÉΓòÉ 4.292. PPROGRAMENTRY ΓòÉΓòÉΓòÉ
  10432.  
  10433. PPROGRAMENTRY Pointer to PROGRAMENTRY. 
  10434.  
  10435. typedef PROGRAMENTRY FAR *PPROGRAMENTRY;
  10436.  
  10437.  
  10438. ΓòÉΓòÉΓòÉ 4.293. PPROGTITLE ΓòÉΓòÉΓòÉ
  10439.  
  10440. PPROGTITLE Pointer to PROGTITLE. 
  10441.  
  10442. typedef PROGTITLE *PPROGTITLE;
  10443.  
  10444.  
  10445. ΓòÉΓòÉΓòÉ 4.294. PPROGTYPE ΓòÉΓòÉΓòÉ
  10446.  
  10447. PPROGTYPE Pointer to PROGTYPE. 
  10448.  
  10449. typedef PROGTYPE *PPROGTYPE;
  10450.  
  10451.  
  10452. ΓòÉΓòÉΓòÉ 4.295. PPRPORTINFO ΓòÉΓòÉΓòÉ
  10453.  
  10454. PPRPORTINFO Pointer to PRPORTINFO. 
  10455.  
  10456. typedef PRPORTINFO *PPRPORTINFO;
  10457.  
  10458.  
  10459. ΓòÉΓòÉΓòÉ 4.296. PPRPORTINFO1 ΓòÉΓòÉΓòÉ
  10460.  
  10461. PPRPORTINFO1 Pointer to PRPORTINFO1. 
  10462.  
  10463. typedef PRPORTINFO1 *PPRPORTINFO1;
  10464.  
  10465.  
  10466. ΓòÉΓòÉΓòÉ 4.297. PPRQINFO3 ΓòÉΓòÉΓòÉ
  10467.  
  10468. PPRQINFO3 Pointer to PRQINFO3. 
  10469.  
  10470. typedef PRQINFO3 *PPRQINFO3;
  10471.  
  10472.  
  10473. ΓòÉΓòÉΓòÉ 4.298. PPRQINFO6 ΓòÉΓòÉΓòÉ
  10474.  
  10475. PPRQINFO6 Pointer to PRQINFO6. 
  10476.  
  10477. typedef PRQINFO6 *PPRQINFO6;
  10478.  
  10479.  
  10480. ΓòÉΓòÉΓòÉ 4.299. PPRQPROCINFO ΓòÉΓòÉΓòÉ
  10481.  
  10482. PPRQPROCINFO Pointer to PRQPROCINFO. 
  10483.  
  10484. typedef PRQPROCINFO *PPRQPROCINFO;
  10485.  
  10486.  
  10487. ΓòÉΓòÉΓòÉ 4.300. PPSZ ΓòÉΓòÉΓòÉ
  10488.  
  10489. PPSZ Pointer to a PSZ pointer. 
  10490.  
  10491. typedef PSZ *PPSZ;
  10492.  
  10493.  
  10494. ΓòÉΓòÉΓòÉ 4.301. PPVOID ΓòÉΓòÉΓòÉ
  10495.  
  10496. PPVOID Pointer to PVOID. 
  10497.  
  10498. typedef PVOID *PPVOID;
  10499.  
  10500.  
  10501. ΓòÉΓòÉΓòÉ 4.302. PQMOPENDATA ΓòÉΓòÉΓòÉ
  10502.  
  10503. PQMOPENDATA Open queue-manager data array. 
  10504.  
  10505. This data type points to data whose format is described by the DEVOPENSTRUC 
  10506. data type. 
  10507.  
  10508. typedef PSZ *PQMOPENDATA;
  10509.  
  10510.  
  10511. ΓòÉΓòÉΓòÉ 4.303. PQMSG ΓòÉΓòÉΓòÉ
  10512.  
  10513. PQMSG Pointer to a QMSG data structure. 
  10514.  
  10515. typedef QMSG *PQMSG;
  10516.  
  10517.  
  10518. ΓòÉΓòÉΓòÉ 4.304. PQUERYRECFROMRECT ΓòÉΓòÉΓòÉ
  10519.  
  10520. PQUERYRECFROMRECT Pointer to a QUERYRECFROMRECT data structure. 
  10521.  
  10522. typedef QUERYRECFROMRECT *PQUERYRECFROMRECT;
  10523.  
  10524.  
  10525. ΓòÉΓòÉΓòÉ 4.305. PQUERYRECORDRECT ΓòÉΓòÉΓòÉ
  10526.  
  10527. PQUERYRECORDRECT Pointer to a QUERYRECORDRECT data structure. 
  10528.  
  10529. typedef QUERYRECORDRECT *PQUERYRECORDRECT;
  10530.  
  10531.  
  10532. ΓòÉΓòÉΓòÉ 4.306. PRDINFO3 ΓòÉΓòÉΓòÉ
  10533.  
  10534. PRDINFO3 Print device information structure (level 3). 
  10535.  
  10536. typedef struct _PRDINFO3 {
  10537. PSZ       pszPrinterName;  /* Print device name  */
  10538. PSZ       pszUserName;     /* User who submitted job  */
  10539. PSZ       pszLogAddr;      /* Logical address (for example LPT1)  */
  10540. USHORT    uJobId;          /* Identity of current job  */
  10541. USHORT    fsStatus;        /* Print destination status  */
  10542. PSZ       pszStatus;       /* Print device comment while printing  */
  10543. PSZ       pszComment;      /* Print device description  */
  10544. PSZ       pszDrivers;      /* Drivers supported by print device  */
  10545. USHORT    time;            /* Time job has been printing (minutes)  */
  10546. USHORT    usTimeOut;       /* Device timeout (seconds)  */
  10547.  } PRDINFO3;
  10548.  
  10549.  
  10550. ΓòÉΓòÉΓòÉ <hidden> pszPrinterName ΓòÉΓòÉΓòÉ
  10551.  
  10552. pszPrinterName (PSZ) 
  10553.    Print device name. 
  10554.  
  10555.  
  10556. ΓòÉΓòÉΓòÉ <hidden> pszUserName ΓòÉΓòÉΓòÉ
  10557.  
  10558. pszUserName (PSZ) 
  10559.    User who submitted job. 
  10560.  
  10561.    This parameter is valid only while the job is printing. It is NULL for a job 
  10562.    submitted locally. 
  10563.  
  10564.  
  10565. ΓòÉΓòÉΓòÉ <hidden> pszLogAddr ΓòÉΓòÉΓòÉ
  10566.  
  10567. pszLogAddr (PSZ) 
  10568.    Logical address (for example LPT1). 
  10569.  
  10570.    If NULL or an empty string, the printer is not connected to a logical 
  10571.    address. 
  10572.  
  10573.  
  10574. ΓòÉΓòÉΓòÉ <hidden> uJobId ΓòÉΓòÉΓòÉ
  10575.  
  10576. uJobId (USHORT) 
  10577.    Identity of current job. 
  10578.  
  10579.    If 0, no job is printing. 
  10580.  
  10581.  
  10582. ΓòÉΓòÉΓòÉ <hidden> fsStatus ΓòÉΓòÉΓòÉ
  10583.  
  10584. fsStatus (USHORT) 
  10585.    Print destination status. 
  10586.  
  10587.    Use the mask PRD_STATUS_MASK to determine the print job status: 
  10588.  
  10589.    PRD_ACTIVE 
  10590.       Processing 
  10591.    PRD_PAUSED 
  10592.       Not processing, or paused. 
  10593.  
  10594.       Use the mask PRJ_DEVSTATUS for further information about print job 
  10595.       status: 
  10596.    PRJ_COMPLETE 
  10597.       Job complete 
  10598.    PRJ_INTERV 
  10599.       Intervention required 
  10600.    PRJ_ERROR 
  10601.       Error occurred (in this case, pszStatus may contain a comment about the 
  10602.       error) 
  10603.    PRJ_DESTOFFLINE 
  10604.       Print device offline 
  10605.    PRJ_DESTPAUSED 
  10606.       Print device paused 
  10607.    PRJ_NOTIFY 
  10608.       Raise alert 
  10609.    PRJ_DESTNOPAPER 
  10610.       Print device out of paper. 
  10611.  
  10612.  
  10613. ΓòÉΓòÉΓòÉ <hidden> pszStatus ΓòÉΓòÉΓòÉ
  10614.  
  10615. pszStatus (PSZ) 
  10616.    Print device comment while printing. 
  10617.  
  10618.    A comment posted by the print processor of the print device. This parameter 
  10619.    is valid only during printing. 
  10620.  
  10621.  
  10622. ΓòÉΓòÉΓòÉ <hidden> pszComment ΓòÉΓòÉΓòÉ
  10623.  
  10624. pszComment (PSZ) 
  10625.    Print device description. 
  10626.  
  10627.  
  10628. ΓòÉΓòÉΓòÉ <hidden> pszDrivers ΓòÉΓòÉΓòÉ
  10629.  
  10630. pszDrivers (PSZ) 
  10631.    Drivers supported by print device. 
  10632.  
  10633.    List items are separated by commas. Each printer driver name may have a 
  10634.    device name separated by a dot (for example, PLOTTER.HP7475A). The default 
  10635.    printer is listed first. 
  10636.  
  10637.  
  10638. ΓòÉΓòÉΓòÉ <hidden> time ΓòÉΓòÉΓòÉ
  10639.  
  10640. time (USHORT) 
  10641.    Time job has been printing (minutes). 
  10642.  
  10643.    This parameter applies only during printing. 
  10644.  
  10645.  
  10646. ΓòÉΓòÉΓòÉ <hidden> usTimeOut ΓòÉΓòÉΓòÉ
  10647.  
  10648. usTimeOut (USHORT) 
  10649.    Device timeout (seconds). 
  10650.  
  10651.    The time that elapses before the device driver notifies the spooler that the 
  10652.    print device has not responded. 
  10653.  
  10654.  
  10655. ΓòÉΓòÉΓòÉ 4.307. PRDRIVINFO ΓòÉΓòÉΓòÉ
  10656.  
  10657. PRDRIVINFO Printer driver information structure (level 0). 
  10658.  
  10659. typedef struct _PRDRIVINFO {
  10660. CHAR    szDrivName[DRIV_NAME_SIZE+DRIV_DEVICENAME_SIZE+2];            /* Name of printer driver  */
  10661.  } PRDRIVINFO;
  10662.  
  10663.  
  10664. ΓòÉΓòÉΓòÉ <hidden> szDrivName[DRIV_NAME_SIZE+DRIV_DEVICENAME_SIZE+2] ΓòÉΓòÉΓòÉ
  10665.  
  10666. szDrivName[DRIV_NAME_SIZE+DRIV_DEVICENAME_SIZE+2] (CHAR) 
  10667.    Name of printer driver. 
  10668.  
  10669.    This is the name of the printer driver and device is the format of 
  10670.    DRIVER.DEVICE. For example "IBM4019.IBM Laserprinter E". 
  10671.  
  10672.  
  10673. ΓòÉΓòÉΓòÉ 4.308. PRECORDCORE ΓòÉΓòÉΓòÉ
  10674.  
  10675. PRECORDCORE Pointer to a RECORDCORE data structure. 
  10676.  
  10677. typedef RECORDCORE *PRECORDCORE;
  10678.  
  10679.  
  10680. ΓòÉΓòÉΓòÉ 4.309. PRECORDINSERT ΓòÉΓòÉΓòÉ
  10681.  
  10682. PRECORDINSERT Pointer to a RECORDINSERT data structure. 
  10683.  
  10684. typedef RECORDINSERT *PRECORDINSERT;
  10685.  
  10686.  
  10687. ΓòÉΓòÉΓòÉ 4.310. PRECORDITEM ΓòÉΓòÉΓòÉ
  10688.  
  10689. PRECORDITEM Pointer to RECORDITEM. 
  10690.  
  10691. typedef RECORDITEM *PRECORDITEM;
  10692.  
  10693.  
  10694. ΓòÉΓòÉΓòÉ 4.311. PRECTL ΓòÉΓòÉΓòÉ
  10695.  
  10696. PRECTL Pointer to a RECTL data structure. 
  10697.  
  10698. typedef RECTL *PRECTL;
  10699.  
  10700.  
  10701. ΓòÉΓòÉΓòÉ 4.312. PRENDERFILE ΓòÉΓòÉΓòÉ
  10702.  
  10703. PRENDERFILE Pointer to RENDERFILE. 
  10704.  
  10705. typedef RENDERFILE *PRENDERFILE;
  10706.  
  10707.  
  10708. ΓòÉΓòÉΓòÉ 4.313. PRESPARAMS ΓòÉΓòÉΓòÉ
  10709.  
  10710. PRESPARAMS Presentation parameter data. 
  10711.  
  10712. typedef struct _PRESPARAMS {
  10713. ULONG    cb;         /* Byte count of the aparam[1] parameter  */
  10714. PARAM    aparam[1];  /* Array of attribute parameters  */
  10715.  } PRESPARAMS;
  10716.  
  10717.  
  10718. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  10719.  
  10720. cb (ULONG) 
  10721.    Byte count of the aparam[1] parameter. 
  10722.  
  10723.  
  10724. ΓòÉΓòÉΓòÉ <hidden> aparam[1] ΓòÉΓòÉΓòÉ
  10725.  
  10726. aparam[1] (PARAM) 
  10727.    Array of attribute parameters. 
  10728.  
  10729.  
  10730. ΓòÉΓòÉΓòÉ 4.314. PRFPROFILE ΓòÉΓòÉΓòÉ
  10731.  
  10732. PRFPROFILE Profile structure. 
  10733.  
  10734. typedef struct _PRFPROFILE {
  10735. ULONG    cchUserName;  /* Length of user profile name  */
  10736. PSZ      pszUserName;  /* User profile name  */
  10737. ULONG    cchSysName;   /* Length of system profile name  */
  10738. PSZ      pszSysName;   /* System profile name  */
  10739.  } PRFPROFILE;
  10740.  
  10741.  
  10742. ΓòÉΓòÉΓòÉ <hidden> cchUserName ΓòÉΓòÉΓòÉ
  10743.  
  10744. cchUserName (ULONG) 
  10745.    Length of user profile name. 
  10746.  
  10747.  
  10748. ΓòÉΓòÉΓòÉ <hidden> pszUserName ΓòÉΓòÉΓòÉ
  10749.  
  10750. pszUserName (PSZ) 
  10751.    User profile name. 
  10752.  
  10753.  
  10754. ΓòÉΓòÉΓòÉ <hidden> cchSysName ΓòÉΓòÉΓòÉ
  10755.  
  10756. cchSysName (ULONG) 
  10757.    Length of system profile name. 
  10758.  
  10759.  
  10760. ΓòÉΓòÉΓòÉ <hidden> pszSysName ΓòÉΓòÉΓòÉ
  10761.  
  10762. pszSysName (PSZ) 
  10763.    System profile name. 
  10764.  
  10765.  
  10766. ΓòÉΓòÉΓòÉ 4.315. PRGB2 ΓòÉΓòÉΓòÉ
  10767.  
  10768. PRGB2 Pointer to RGB2. 
  10769.  
  10770. typedef RGB2 *PRGB2;
  10771.  
  10772.  
  10773. ΓòÉΓòÉΓòÉ 4.316. PRGNRECT ΓòÉΓòÉΓòÉ
  10774.  
  10775. PRGNRECT Pointer to RGNRECT. 
  10776.  
  10777. typedef RGNRECT *PRGNRECT;
  10778.  
  10779.  
  10780. ΓòÉΓòÉΓòÉ 4.317. PRINTDEST ΓòÉΓòÉΓòÉ
  10781.  
  10782. PRINTDEST PRINTDEST data structure. 
  10783.  
  10784. Contains all the parameters required to issue a DevPostDeviceModes and 
  10785. DevOpenDC function calls. 
  10786.  
  10787. typedef struct _PRINTDEST {
  10788. ULONG           cb;          /* Length of data structure, in bytes  */
  10789. LONG            lType;       /* Type of device context  */
  10790. PSZ             pszToken;    /* Device-information token  */
  10791. LONG            lCount;      /* Number of items  */
  10792. PDEVOPENDATA    pdopData;    /* Open device context data area  */
  10793. ULONG           fl;          /* Flags  */
  10794. PSZ             pszPrinter;  /* Name of Printer  */
  10795.  } PRINTDEST;
  10796.  
  10797.  
  10798. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  10799.  
  10800. cb (ULONG) 
  10801.    Length of data structure, in bytes. 
  10802.  
  10803.  
  10804. ΓòÉΓòÉΓòÉ <hidden> lType ΓòÉΓòÉΓòÉ
  10805.  
  10806. lType (LONG) 
  10807.    Type of device context. 
  10808.  
  10809.    OD_QUEUED 
  10810.       The device context is queued. 
  10811.    OD_DIRECT 
  10812.       The device context is direct. 
  10813.  
  10814.  
  10815. ΓòÉΓòÉΓòÉ <hidden> pszToken ΓòÉΓòÉΓòÉ
  10816.  
  10817. pszToken (PSZ) 
  10818.    Device-information token. 
  10819.  
  10820.    This is always "*". 
  10821.  
  10822.  
  10823. ΓòÉΓòÉΓòÉ <hidden> lCount ΓòÉΓòÉΓòÉ
  10824.  
  10825. lCount (LONG) 
  10826.    Number of items. 
  10827.  
  10828.    This is the number of items present in the pdopData field. 
  10829.  
  10830.  
  10831. ΓòÉΓòÉΓòÉ <hidden> pdopData ΓòÉΓòÉΓòÉ
  10832.  
  10833. pdopData (PDEVOPENDATA) 
  10834.    Open device context data area. 
  10835.  
  10836.    See DEVOPENSTRUC for information on the format of pdopData. 
  10837.  
  10838.  
  10839. ΓòÉΓòÉΓòÉ <hidden> fl ΓòÉΓòÉΓòÉ
  10840.  
  10841. fl (ULONG) 
  10842.    Flags. 
  10843.  
  10844.    PD_JOB_PROPERTY 
  10845.       This flag indicates that DevPostDeviceModes should be called with 
  10846.       DPDM_POSTJOBPROP before calling DevOpenDC. 
  10847.  
  10848.  
  10849. ΓòÉΓòÉΓòÉ <hidden> pszPrinter ΓòÉΓòÉΓòÉ
  10850.  
  10851. pszPrinter (PSZ) 
  10852.    Name of Printer. 
  10853.  
  10854.    A name that specifies the device, for example "PRINTER1". The name is used 
  10855.    for calling DevPostDeviceModes. 
  10856.  
  10857.  
  10858. ΓòÉΓòÉΓòÉ 4.318. PRINTERINFO ΓòÉΓòÉΓòÉ
  10859.  
  10860. PRINTERINFO Print destination information structure. 
  10861.  
  10862. This structure is used at information level 0. 
  10863.  
  10864. typedef struct _PRINTERINFO {
  10865. ULONG    flType;                   /* Type of printer  */
  10866. PSZ      pszComputerName;          /* Computer name  */
  10867. PSZ      pszPrintDestinationName;  /* Name of Print Destination  */
  10868. PSZ      pszDescription;           /* Description of print destination  */
  10869. PSZ      pszLocalName;             /* Local name of remote print destination  */
  10870.  } PRINTERINFO;
  10871.  
  10872.  
  10873. ΓòÉΓòÉΓòÉ <hidden> flType ΓòÉΓòÉΓòÉ
  10874.  
  10875. flType (ULONG) 
  10876.    Type of printer. 
  10877.  
  10878.    This is a flag used to describe the type of print destination: 
  10879.  
  10880.    SPL_PR_QUEUE 
  10881.       Print destination is a queue 
  10882.    SPL_PR_DIRECT_DEVICE 
  10883.       Print destination is a direct print device 
  10884.    SPL_PR_QUEUED_DEVICE 
  10885.       Print destination is a queued print device 
  10886.  
  10887.  
  10888. ΓòÉΓòÉΓòÉ <hidden> pszComputerName ΓòÉΓòÉΓòÉ
  10889.  
  10890. pszComputerName (PSZ) 
  10891.    Computer name. 
  10892.  
  10893.    A NULL string specifies the local workstation. 
  10894.  
  10895.  
  10896. ΓòÉΓòÉΓòÉ <hidden> pszPrintDestinationName ΓòÉΓòÉΓòÉ
  10897.  
  10898. pszPrintDestinationName (PSZ) 
  10899.    Name of Print Destination. 
  10900.  
  10901.    It is either a queue name or a print device name depending upon the value of 
  10902.    flType. The maximum length of the name in the network case is 256 (including 
  10903.    one byte for the null terminator). 
  10904.  
  10905.  
  10906. ΓòÉΓòÉΓòÉ <hidden> pszDescription ΓòÉΓòÉΓòÉ
  10907.  
  10908. pszDescription (PSZ) 
  10909.    Description of print destination. 
  10910.  
  10911.    The maximum length is 48 characters (including one byte for the null 
  10912.    terminator). 
  10913.  
  10914.  
  10915. ΓòÉΓòÉΓòÉ <hidden> pszLocalName ΓòÉΓòÉΓòÉ
  10916.  
  10917. pszLocalName (PSZ) 
  10918.    Local name of remote print destination. 
  10919.  
  10920.    This is a local port name (for instance "LPT4") that is connected to the 
  10921.    remote print destination. A NULL string specifies that no connection exists. 
  10922.  
  10923.  
  10924. ΓòÉΓòÉΓòÉ 4.319. PRJINFO2 ΓòÉΓòÉΓòÉ
  10925.  
  10926. PRJINFO2 Print-job information structure. 
  10927.  
  10928. This structure provides a subset of the information supplied by PRJINFO3. It 
  10929. minimizes the storage required for job-information retrieval, and is sufficient 
  10930. for most uses. 
  10931.  
  10932. typedef struct _PRJINFO2 {
  10933. USHORT    uJobId;       /* Job identification number  */
  10934. USHORT    uPriority;    /* Job priority  */
  10935. PSZ       pszUserName;  /* User who submitted the job  */
  10936. USHORT    uPosition;    /* Job position in queue  */
  10937. USHORT    fsStatus;     /* Job status  */
  10938. ULONG     ulSubmitted;  /* Time job submitted  */
  10939. ULONG     ulSize;       /* Print-job size (bytes)  */
  10940. PSZ       pszComment;   /* Comment string  */
  10941. PSZ       pszDocument;  /* Document name  */
  10942.  } PRJINFO2;
  10943.  
  10944.  
  10945. ΓòÉΓòÉΓòÉ <hidden> uJobId ΓòÉΓòÉΓòÉ
  10946.  
  10947. uJobId (USHORT) 
  10948.    Job identification number. 
  10949.  
  10950.  
  10951. ΓòÉΓòÉΓòÉ <hidden> uPriority ΓòÉΓòÉΓòÉ
  10952.  
  10953. uPriority (USHORT) 
  10954.    Job priority. 
  10955.  
  10956.    The job-priority range is 1 through 99, with 99 the highest job priority. 
  10957.    (For queue priorities, 1 is the highest priority.) 
  10958.    The job priority determines the order of jobs in the queue. If multiple 
  10959.    queues print to the same printer, the job at the front of each queue is 
  10960.    examined. The job with the highest priority is printed first; if there is 
  10961.    more than one job with the highest priority, the oldest job with this 
  10962.    priority is printed first. 
  10963.  
  10964.    PRJ_MAX_PRIORITY 
  10965.       Highest priority 
  10966.    PRJ_MIN_PRIORITY 
  10967.       Lowest priority 
  10968.    PRJ_NO_PRIORITY 
  10969.       No priority. 
  10970.  
  10971.  
  10972. ΓòÉΓòÉΓòÉ <hidden> pszUserName ΓòÉΓòÉΓòÉ
  10973.  
  10974. pszUserName (PSZ) 
  10975.    User who submitted the job. 
  10976.  
  10977.    This parameter applies only to jobs created by a user and enqueued on a 
  10978.    remote server. A NULL string signifies a local job. 
  10979.  
  10980.  
  10981. ΓòÉΓòÉΓòÉ <hidden> uPosition ΓòÉΓòÉΓòÉ
  10982.  
  10983. uPosition (USHORT) 
  10984.    Job position in queue. 
  10985.  
  10986.    If 1, the job is scheduled to be the next job printed from this queue. 
  10987.  
  10988.  
  10989. ΓòÉΓòÉΓòÉ <hidden> fsStatus ΓòÉΓòÉΓòÉ
  10990.  
  10991. fsStatus (USHORT) 
  10992.    Job status. 
  10993.  
  10994.    To find the job status, use the PRJ_QSTATUS mask: 
  10995.  
  10996.    PRJ_QS_QUEUED 
  10997.       Queued 
  10998.    PRJ_QS_PAUSED 
  10999.       Paused by a SplHoldJob function 
  11000.    PRJ_QS_SPOOLING 
  11001.       Job being created 
  11002.    PRJ_QS_PRINTING 
  11003.       Printing (bits 2 through 11 are valid). 
  11004.  
  11005.       For further information, use the PRJ_DEVSTATUS mask: 
  11006.    PRJ_COMPLETE 
  11007.       Job complete 
  11008.    PRJ_INTERV 
  11009.       Intervention required 
  11010.    PRJ_ERROR 
  11011.       Error occurred. 
  11012.    PRJ_DESTOFFLINE 
  11013.       Print destination offline 
  11014.    PRJ_DESTPAUSED 
  11015.       Print destination paused 
  11016.    PRJ_NOTIFY 
  11017.       Alert should be raised 
  11018.    PRJ_DESTNOPAPER 
  11019.       Print destination out of paper 
  11020.    PRJ_DESTFORMCHG 
  11021.       Printer waiting for form change 
  11022.    PRJ_DESTCRTCHG 
  11023.       Printer waiting for cartridge change 
  11024.    PRJ_DESTPENCHG 
  11025.       Printer waiting for pen change. 
  11026.  
  11027.       This bit indicates that the job is deleted: 
  11028.    PRJ_DELETED 
  11029.       Job deleted. 
  11030.  
  11031.  
  11032. ΓòÉΓòÉΓòÉ <hidden> ulSubmitted ΓòÉΓòÉΓòÉ
  11033.  
  11034. ulSubmitted (ULONG) 
  11035.    Time job submitted. 
  11036.  
  11037.    Time format is the same as that stored in the global information segment. 
  11038.  
  11039.  
  11040. ΓòÉΓòÉΓòÉ <hidden> ulSize ΓòÉΓòÉΓòÉ
  11041.  
  11042. ulSize (ULONG) 
  11043.    Print-job size (bytes). 
  11044.  
  11045.  
  11046. ΓòÉΓòÉΓòÉ <hidden> pszComment ΓòÉΓòÉΓòÉ
  11047.  
  11048. pszComment (PSZ) 
  11049.    Comment string. 
  11050.  
  11051.    Information about the print job. The maximum length of the string is 48 
  11052.    characters( including one byte for the null terminator ). 
  11053.  
  11054.  
  11055. ΓòÉΓòÉΓòÉ <hidden> pszDocument ΓòÉΓòÉΓòÉ
  11056.  
  11057. pszDocument (PSZ) 
  11058.    Document name. 
  11059.  
  11060.    The document name of the print job (set by the application that submitted 
  11061.    the print job). The maximum length of the string is 260 characters. 
  11062.  
  11063.  
  11064. ΓòÉΓòÉΓòÉ 4.320. PRJINFO3 ΓòÉΓòÉΓòÉ
  11065.  
  11066. PRJINFO3 Print-job information structure. 
  11067.  
  11068. This structure is used when complete job details are required. A subset of this 
  11069. information is supplied by PRJINFO2. 
  11070.  
  11071. typedef struct _PRJINFO3 {
  11072. USHORT       uJobId;          /* Job identification number  */
  11073. USHORT       uPriority;       /* Job priority  */
  11074. PSZ          pszUserName;     /* User who submitted the job  */
  11075. USHORT       uPosition;       /* Job position in queue  */
  11076. USHORT       fsStatus;        /* Job status  */
  11077. ULONG        ulSubmitted;     /* Time job submitted  */
  11078. ULONG        ulSize;          /* Print-job size (bytes)  */
  11079. PSZ          pszComment;      /* Comment string  */
  11080. PSZ          pszDocument;     /* Document name  */
  11081. PSZ          pszNotifyName;   /* Messaging alias for print alert  */
  11082. PSZ          pszDataType;     /* Data type of submitted file  */
  11083. PSZ          pszParms;        /* Parameters  */
  11084. PSZ          pszStatus;       /* Status comment  */
  11085. PSZ          pszQueue;        /* Queue name  */
  11086. PSZ          pszQProcName;    /* Queue processor  */
  11087. PSZ          pszQProcParms;   /* Queue processor parameters  */
  11088. PSZ          pszDriverName;   /* Driver name  */
  11089. PDRIVDATA    pDriverData;     /* Job Properties (driver data)  */
  11090. PSZ          pszPrinterName;  /* Printer name  */
  11091.  } PRJINFO3;
  11092.  
  11093.  
  11094. ΓòÉΓòÉΓòÉ <hidden> uJobId ΓòÉΓòÉΓòÉ
  11095.  
  11096. uJobId (USHORT) 
  11097.    Job identification number. 
  11098.  
  11099.  
  11100. ΓòÉΓòÉΓòÉ <hidden> uPriority ΓòÉΓòÉΓòÉ
  11101.  
  11102. uPriority (USHORT) 
  11103.    Job priority. 
  11104.  
  11105.    The job-priority range is 1 through 99, with 99 the highest job priority. 
  11106.    (For queue priorities, 1 is the highest priority.) 
  11107.    The job priority determines the order of jobs in the queue. If multiple 
  11108.    queues print to the same printer, the job on the front of each queue is 
  11109.    examined. The job with the highest priority is printed first; if there is 
  11110.    more than one job with the highest priority, the oldest job with this 
  11111.    priority is printed first. 
  11112.  
  11113.    PRJ_MAX_PRIORITY 
  11114.       Highest priority 
  11115.    PRJ_MIN_PRIORITY 
  11116.       Lowest priority 
  11117.    PRJ_NO_PRIORITY 
  11118.       No priority. 
  11119.  
  11120.  
  11121. ΓòÉΓòÉΓòÉ <hidden> pszUserName ΓòÉΓòÉΓòÉ
  11122.  
  11123. pszUserName (PSZ) 
  11124.    User who submitted the job. 
  11125.  
  11126.    This parameter applies only to jobs created by a user on a remote 
  11127.    workstation and queued on a server. A NULL string signifies a local job. 
  11128.  
  11129.  
  11130. ΓòÉΓòÉΓòÉ <hidden> uPosition ΓòÉΓòÉΓòÉ
  11131.  
  11132. uPosition (USHORT) 
  11133.    Job position in queue. 
  11134.  
  11135.    If 1, the job is scheduled to be the next job printed from this queue. 
  11136.  
  11137.  
  11138. ΓòÉΓòÉΓòÉ <hidden> fsStatus ΓòÉΓòÉΓòÉ
  11139.  
  11140. fsStatus (USHORT) 
  11141.    Job status. 
  11142.  
  11143.    To find the job status, use the PRJ_QSTATUS mask: 
  11144.  
  11145.    PRJ_QS_QUEUED 
  11146.       Queued 
  11147.    PRJ_QS_PAUSED 
  11148.       Paused by a SplHoldJob function 
  11149.    PRJ_QS_SPOOLING 
  11150.       Job being created 
  11151.    PRJ_QS_PRINTING 
  11152.       Printing (bits 2 through 11 are valid). 
  11153.  
  11154.       For further information, use the PRJ_DEVSTATUS mask: 
  11155.    PRJ_COMPLETE 
  11156.       Job complete 
  11157.    PRJ_INTERV 
  11158.       Intervention required 
  11159.    PRJ_ERROR 
  11160.       Error occurred. (In this case, pszStatus may contain a comment about the 
  11161.       error) 
  11162.    PRJ_DESTOFFLINE 
  11163.       Print destination offline 
  11164.    PRJ_DESTPAUSED 
  11165.       Print destination paused 
  11166.    PRJ_NOTIFY 
  11167.       Alert should be raised 
  11168.    PRJ_DESTNOPAPER 
  11169.       Print destination out of paper 
  11170.    PRJ_DESTFORMCHG 
  11171.       Printer waiting for form change 
  11172.    PRJ_DESTCRTCHG 
  11173.       Printer waiting for cartridge change 
  11174.    PRJ_DESTPENCHG 
  11175.       Printer waiting for pen change. 
  11176.  
  11177.       This bit indicates that the job is deleted: 
  11178.    PRJ_DELETED 
  11179.       Job deleted. 
  11180.  
  11181.  
  11182. ΓòÉΓòÉΓòÉ <hidden> ulSubmitted ΓòÉΓòÉΓòÉ
  11183.  
  11184. ulSubmitted (ULONG) 
  11185.    Time job submitted. 
  11186.  
  11187.    Time format is the same as that stored in the global information segment. 
  11188.  
  11189.  
  11190. ΓòÉΓòÉΓòÉ <hidden> ulSize ΓòÉΓòÉΓòÉ
  11191.  
  11192. ulSize (ULONG) 
  11193.    Print-job size (bytes). 
  11194.  
  11195.  
  11196. ΓòÉΓòÉΓòÉ <hidden> pszComment ΓòÉΓòÉΓòÉ
  11197.  
  11198. pszComment (PSZ) 
  11199.    Comment string. 
  11200.  
  11201.    Information about the print job. 
  11202.    The maximum length of the string is 48 characters (including one byte for 
  11203.    the null terminator). 
  11204.  
  11205.  
  11206. ΓòÉΓòÉΓòÉ <hidden> pszDocument ΓòÉΓòÉΓòÉ
  11207.  
  11208. pszDocument (PSZ) 
  11209.    Document name. 
  11210.  
  11211.    The document name of the print job (set by the application that submitted 
  11212.    the print job). The maximum length of the string is 260 characters. 
  11213.  
  11214.  
  11215. ΓòÉΓòÉΓòÉ <hidden> pszNotifyName ΓòÉΓòÉΓòÉ
  11216.  
  11217. pszNotifyName (PSZ) 
  11218.    Messaging alias for print alert. 
  11219.  
  11220.    This parameter is a computer name and applies only to jobs on a remote 
  11221.    server queue. A NULL string is returned for jobs on a local queue. 
  11222.  
  11223.  
  11224. ΓòÉΓòÉΓòÉ <hidden> pszDataType ΓòÉΓòÉΓòÉ
  11225.  
  11226. pszDataType (PSZ) 
  11227.    Data type of submitted file. 
  11228.  
  11229.    This is specified by the pszDataType parameter in the DEVOPENSTRUC structure 
  11230.    passed to the DevOpenDC call when the job is created. The name is truncated 
  11231.    to fit the field if necessary, and contains a trailing NULL. 
  11232.  
  11233.  
  11234. ΓòÉΓòÉΓòÉ <hidden> pszParms ΓòÉΓòÉΓòÉ
  11235.  
  11236. pszParms (PSZ) 
  11237.    Parameters. 
  11238.  
  11239.    The form of this string is: 
  11240.  
  11241.       parm1=val1 parm2=val2 ...
  11242.  
  11243.  
  11244. ΓòÉΓòÉΓòÉ <hidden> pszStatus ΓòÉΓòÉΓòÉ
  11245.  
  11246. pszStatus (PSZ) 
  11247.    Status comment. 
  11248.  
  11249.    A text string, posted by the queue processor, that provides additional 
  11250.    job-status information. The default string type is NULL. 
  11251.  
  11252.  
  11253. ΓòÉΓòÉΓòÉ <hidden> pszQueue ΓòÉΓòÉΓòÉ
  11254.  
  11255. pszQueue (PSZ) 
  11256.    Queue name. 
  11257.  
  11258.    The name of the queue the job is on. 
  11259.  
  11260.  
  11261. ΓòÉΓòÉΓòÉ <hidden> pszQProcName ΓòÉΓòÉΓòÉ
  11262.  
  11263. pszQProcName (PSZ) 
  11264.    Queue processor. 
  11265.  
  11266.    The name of the queue processor. 
  11267.  
  11268.  
  11269. ΓòÉΓòÉΓòÉ <hidden> pszQProcParms ΓòÉΓòÉΓòÉ
  11270.  
  11271. pszQProcParms (PSZ) 
  11272.    Queue processor parameters. 
  11273.  
  11274.    Spaces are used to separate parameters. 
  11275.  
  11276.  
  11277. ΓòÉΓòÉΓòÉ <hidden> pszDriverName ΓòÉΓòÉΓòÉ
  11278.  
  11279. pszDriverName (PSZ) 
  11280.    Driver name. 
  11281.  
  11282.    The name of the device driver (for example, "LASERJET"). The device name is 
  11283.    part of pDriverData. 
  11284.  
  11285.  
  11286. ΓòÉΓòÉΓòÉ <hidden> pDriverData ΓòÉΓòÉΓòÉ
  11287.  
  11288. pDriverData (PDRIVDATA) 
  11289.    Job Properties (driver data). 
  11290.  
  11291.    The contents are specific to the device driver. 
  11292.  
  11293.  
  11294. ΓòÉΓòÉΓòÉ <hidden> pszPrinterName ΓòÉΓòÉΓòÉ
  11295.  
  11296. pszPrinterName (PSZ) 
  11297.    Printer name. 
  11298.  
  11299.    If the job is printing, the printer name, otherwise NULL. 
  11300.  
  11301.  
  11302. ΓòÉΓòÉΓòÉ 4.321. PROGCATEGORY ΓòÉΓòÉΓòÉ
  11303.  
  11304. PROGCATEGORY Program category. 
  11305.  
  11306. typedef ULONG PROGCATEGORY;
  11307.  
  11308.  
  11309. ΓòÉΓòÉΓòÉ 4.322. PROGDETAILS ΓòÉΓòÉΓòÉ
  11310.  
  11311. PROGDETAILS Program-details structure. 
  11312.  
  11313. typedef struct _PROGDETAILS {
  11314. ULONG       Length;          /* Length of structure  */
  11315. PROGTYPE    progt;           /* Program type  */
  11316. PSZ         pszTitle;        /* Title  */
  11317. PSZ         pszExecutable;   /* Executable file name  */
  11318. PSZ         pszParameters;   /* Parameter string  */
  11319. PSZ         pszStartupDir;   /* Start-up directory  */
  11320. PSZ         pszIcon;         /* Icon-file name  */
  11321. PSZ         pszEnvironment;  /* Environment string  */
  11322. SWP         swpInitial;      /* Initial window position and size  */
  11323.  } PROGDETAILS;
  11324.  
  11325.  
  11326. ΓòÉΓòÉΓòÉ <hidden> Length ΓòÉΓòÉΓòÉ
  11327.  
  11328. Length (ULONG) 
  11329.    Length of structure. 
  11330.  
  11331.  
  11332. ΓòÉΓòÉΓòÉ <hidden> progt ΓòÉΓòÉΓòÉ
  11333.  
  11334. progt (PROGTYPE) 
  11335.    Program type. 
  11336.  
  11337.  
  11338. ΓòÉΓòÉΓòÉ <hidden> pszTitle ΓòÉΓòÉΓòÉ
  11339.  
  11340. pszTitle (PSZ) 
  11341.    Title. 
  11342.  
  11343.  
  11344. ΓòÉΓòÉΓòÉ <hidden> pszExecutable ΓòÉΓòÉΓòÉ
  11345.  
  11346. pszExecutable (PSZ) 
  11347.    Executable file name. 
  11348.  
  11349.  
  11350. ΓòÉΓòÉΓòÉ <hidden> pszParameters ΓòÉΓòÉΓòÉ
  11351.  
  11352. pszParameters (PSZ) 
  11353.    Parameter string. 
  11354.  
  11355.  
  11356. ΓòÉΓòÉΓòÉ <hidden> pszStartupDir ΓòÉΓòÉΓòÉ
  11357.  
  11358. pszStartupDir (PSZ) 
  11359.    Start-up directory. 
  11360.  
  11361.  
  11362. ΓòÉΓòÉΓòÉ <hidden> pszIcon ΓòÉΓòÉΓòÉ
  11363.  
  11364. pszIcon (PSZ) 
  11365.    Icon-file name. 
  11366.  
  11367.  
  11368. ΓòÉΓòÉΓòÉ <hidden> pszEnvironment ΓòÉΓòÉΓòÉ
  11369.  
  11370. pszEnvironment (PSZ) 
  11371.    Environment string. 
  11372.  
  11373.    A list of NULL-terminated strings, ending with an extra null. 
  11374.  
  11375.  
  11376. ΓòÉΓòÉΓòÉ <hidden> swpInitial ΓòÉΓòÉΓòÉ
  11377.  
  11378. swpInitial (SWP) 
  11379.    Initial window position and size. 
  11380.  
  11381.  
  11382. ΓòÉΓòÉΓòÉ 4.323. PROGRAMENTRY ΓòÉΓòÉΓòÉ
  11383.  
  11384. PROGRAMENTRY Program-entry structure. 
  11385.  
  11386. typedef struct _PROGRAMENTRY {
  11387. HPROGRAM    hprog;                /* Program handle  */
  11388. PROGTYPE    progt;                /* Program type  */
  11389. CHAR        szTitle[MAXNAMEL+1];  /* Program title (NULL-terminated)  */
  11390.  } PROGRAMENTRY;
  11391.  
  11392.  
  11393. ΓòÉΓòÉΓòÉ <hidden> hprog ΓòÉΓòÉΓòÉ
  11394.  
  11395. hprog (HPROGRAM) 
  11396.    Program handle. 
  11397.  
  11398.  
  11399. ΓòÉΓòÉΓòÉ <hidden> progt ΓòÉΓòÉΓòÉ
  11400.  
  11401. progt (PROGTYPE) 
  11402.    Program type. 
  11403.  
  11404.  
  11405. ΓòÉΓòÉΓòÉ <hidden> szTitle[MAXNAMEL+1] ΓòÉΓòÉΓòÉ
  11406.  
  11407. szTitle[MAXNAMEL+1] (CHAR) 
  11408.    Program title (NULL-terminated). 
  11409.  
  11410.  
  11411. ΓòÉΓòÉΓòÉ 4.324. PROGTITLE ΓòÉΓòÉΓòÉ
  11412.  
  11413. PROGTITLE Program-title structure. 
  11414.  
  11415. typedef struct _PROGTITLE {
  11416. HPROGRAM    hprog;     /* Program handle  */
  11417. PROGTYPE    progt;     /* Program type  */
  11418. PSZ         pszTitle;  /* Program title  */
  11419.  } PROGTITLE;
  11420.  
  11421.  
  11422. ΓòÉΓòÉΓòÉ <hidden> hprog ΓòÉΓòÉΓòÉ
  11423.  
  11424. hprog (HPROGRAM) 
  11425.    Program handle. 
  11426.  
  11427.  
  11428. ΓòÉΓòÉΓòÉ <hidden> progt ΓòÉΓòÉΓòÉ
  11429.  
  11430. progt (PROGTYPE) 
  11431.    Program type. 
  11432.  
  11433.  
  11434. ΓòÉΓòÉΓòÉ <hidden> pszTitle ΓòÉΓòÉΓòÉ
  11435.  
  11436. pszTitle (PSZ) 
  11437.    Program title. 
  11438.  
  11439.  
  11440. ΓòÉΓòÉΓòÉ 4.325. PROGTYPE ΓòÉΓòÉΓòÉ
  11441.  
  11442. PROGTYPE Program-type structure. 
  11443.  
  11444. typedef struct _PROGTYPE {
  11445. PROGCATEGORY    progc;      /* Program category  */
  11446. ULONG           fbVisible;  /* Visibility attribute  */
  11447.  } PROGTYPE;
  11448.  
  11449.  
  11450. ΓòÉΓòÉΓòÉ <hidden> progc ΓòÉΓòÉΓòÉ
  11451.  
  11452. progc (PROGCATEGORY) 
  11453.    Program category: 
  11454.  
  11455.    PROG_DEFAULT 
  11456.       Default application. 
  11457.    PROG_PM 
  11458.       Presentation Manager application. 
  11459.    PROG_WINDOWABLEVIO 
  11460.       Text-windowed application. 
  11461.    PROG_FULLSCREEN 
  11462.       Full-screen application. 
  11463.    PROG_WINDOWEDVDM 
  11464.       PC DOS executable process (windowed). 
  11465.    PROG_VDM 
  11466.       PC DOS executable process (full screen). 
  11467.    PROG_REAL 
  11468.       PC DOS executable process (full screen). Same as PROG_VDM. 
  11469.    PROG_31_STDSEAMLESSVDM 
  11470.       Windows 3.1 program that will execute in its own windowed WINOS2 session. 
  11471.    PROG_31_STDSEAMLESSCOMMON 
  11472.       Windows 3.1 program that will execute in a common windowed WINOS2 
  11473.       session. 
  11474.    PROG_31_ENHSEAMLESSVDM 
  11475.       Windows 3.1 program that will execute in enhanced compatibility mode in 
  11476.       its own windowed WINOS2 session. 
  11477.    PROG_31_ENHSEAMLESSCOMMON 
  11478.       Windows 3.1 program that will execute in enhanced compatibility mode in a 
  11479.       common windowed WINOS2 session. 
  11480.    PROG_31_ENH 
  11481.       Windows 3.1 program that will execute in enhanced compatibility mode in a 
  11482.       full screen WINOS2 session. 
  11483.    PROG_31_STD 
  11484.       Windows 3.1 program that will execute in a full screen WINOS2 session. 
  11485.  
  11486.  
  11487. ΓòÉΓòÉΓòÉ <hidden> fbVisible ΓòÉΓòÉΓòÉ
  11488.  
  11489. fbVisible (ULONG) 
  11490.    Visibility attribute. 
  11491.  
  11492.    When testing this field, allow for the possibility that other bits may be 
  11493.    defined in the future. SHE_INVISIBLE and SHE_PROTECTED can be used to mask 
  11494.    the visibility and protected flags, respectively. 
  11495.  
  11496.    SHE_VISIBLE 
  11497.       Visible 
  11498.    SHE_INVISIBLE 
  11499.       Invisible 
  11500.    SHE_UNPROTECTED 
  11501.       Unprotected 
  11502.    SHE_PROTECTED 
  11503.       Protected. 
  11504.  
  11505.  
  11506. ΓòÉΓòÉΓòÉ 4.326. PRPORTINFO ΓòÉΓòÉΓòÉ
  11507.  
  11508. PRPORTINFO Port information structure (level 0). 
  11509.  
  11510. typedef struct _PRPORTINFO {
  11511. CHAR    szPortName[PDLEN+1];       /* Name of the port  */
  11512.  } PRPORTINFO;
  11513.  
  11514.  
  11515. ΓòÉΓòÉΓòÉ <hidden> szPortName[PDLEN+1] ΓòÉΓòÉΓòÉ
  11516.  
  11517. szPortName[PDLEN+1] (CHAR) 
  11518.    Name of the port. 
  11519.  
  11520.    This is the name of the port. For example "LPT1". 
  11521.  
  11522.  
  11523. ΓòÉΓòÉΓòÉ 4.327. PRPORTINFO1 ΓòÉΓòÉΓòÉ
  11524.  
  11525. PRPORTINFO1 Port information structure (level 1). 
  11526.  
  11527. typedef struct _PRPORTINFO1 {
  11528. PSZ    pszPortName;            /* Name of the port  */
  11529. PSZ    pszPortDriverName;      /* Name of the port driver  */
  11530. PSZ    pszPortDriverPathName;  /* Full path name of the port driver  */
  11531.  } PRPORTINFO1;
  11532.  
  11533.  
  11534. ΓòÉΓòÉΓòÉ <hidden> pszPortName ΓòÉΓòÉΓòÉ
  11535.  
  11536. pszPortName (PSZ) 
  11537.    Name of the port. 
  11538.  
  11539.    This is the name of the port. For example "LPT1". 
  11540.  
  11541.  
  11542. ΓòÉΓòÉΓòÉ <hidden> pszPortDriverName ΓòÉΓòÉΓòÉ
  11543.  
  11544. pszPortDriverName (PSZ) 
  11545.    Name of the port driver. 
  11546.  
  11547.    This is the name of the port driver. For example "PARALLEL". 
  11548.  
  11549.  
  11550. ΓòÉΓòÉΓòÉ <hidden> pszPortDriverPathName ΓòÉΓòÉΓòÉ
  11551.  
  11552. pszPortDriverPathName (PSZ) 
  11553.    Full path name of the port driver. 
  11554.  
  11555.    This is the full path name of the port driver. For example 
  11556.    "C:\OS2\DLL\PARALLEL.PDR". 
  11557.  
  11558.  
  11559. ΓòÉΓòÉΓòÉ 4.328. PRQINFO3 ΓòÉΓòÉΓòÉ
  11560.  
  11561. PRQINFO3 Print-queue information structure. 
  11562.  
  11563. This structure is used at information levels 3 and 4. 
  11564.  
  11565. typedef struct _PRQINFO3 {
  11566. PSZ          pszName;        /* Queue name  */
  11567. USHORT       uPriority;      /* Queue priority  */
  11568. USHORT       uStartTime;     /* Minutes after midnight when queue becomes active  */
  11569. USHORT       uUntilTime;     /* Minutes after midnight when queue ceases to be active  */
  11570. USHORT       fsType;         /* Queue type  */
  11571. PSZ          pszSepFile;     /* Separator-page file  */
  11572. PSZ          pszPrProc;      /* Default queue-processor  */
  11573. PSZ          pszParms;       /* Queue parameters  */
  11574. PSZ          pszComment;     /* Queue description  */
  11575. USHORT       fsStatus;       /* Queue status  */
  11576. USHORT       cJobs;          /* Number of jobs in queue  */
  11577. PSZ          pszPrinters;    /* Print devices connected to queue  */
  11578. PSZ          pszDriverName;  /* Default device driver  */
  11579. PDRIVDATA    pDriverData;    /* Default queue job properties  */
  11580.  } PRQINFO3;
  11581.  
  11582.  
  11583. ΓòÉΓòÉΓòÉ <hidden> pszName ΓòÉΓòÉΓòÉ
  11584.  
  11585. pszName (PSZ) 
  11586.    Queue name. 
  11587.  
  11588.    The maximum length of the name in the network case is 256 (including one 
  11589.    byte for zero termination). 
  11590.  
  11591.  
  11592. ΓòÉΓòÉΓòÉ <hidden> uPriority ΓòÉΓòÉΓòÉ
  11593.  
  11594. uPriority (USHORT) 
  11595.    Queue priority. 
  11596.  
  11597.    The range is 1 through 9, with 1 being the highest queue priority. 
  11598.    The default job priority (DefJobPrio) is determined from: 
  11599.    DefJobPrio=100-(10* uPriority). 
  11600.  
  11601.    If a job is added with PRJ_NO_PRIORITY specified, DefJobPrio is used. If a 
  11602.    default priority higher than the default job priority is specified, the 
  11603.    default job priority is used. If a default priority lower than the default 
  11604.    is specified, the specified job priority is used. 
  11605.  
  11606.    PRQ_DEF_PRIORITY 
  11607.       Default priority 
  11608.    PRQ_MAX_PRIORITY 
  11609.       Highest priority 
  11610.    PRQ_MIN_PRIORITY 
  11611.       Minimum priority 
  11612.    PRQ_NO_PRIORITY 
  11613.       No priority. 
  11614.  
  11615.  
  11616. ΓòÉΓòÉΓòÉ <hidden> uStartTime ΓòÉΓòÉΓòÉ
  11617.  
  11618. uStartTime (USHORT) 
  11619.    Minutes after midnight when queue becomes active. 
  11620.  
  11621.    For example, the value 75 represents 1:15 a.m. 
  11622.    If uStartTime and uUntilTime are both 0, the print queue is always 
  11623.    available. 
  11624.  
  11625.  
  11626. ΓòÉΓòÉΓòÉ <hidden> uUntilTime ΓòÉΓòÉΓòÉ
  11627.  
  11628. uUntilTime (USHORT) 
  11629.    Minutes after midnight when queue ceases to be active. 
  11630.  
  11631.    For example, the value 1200 represents 8 p.m. 
  11632.    If uUntilTime and uStartTime are both 0, the print queue is always 
  11633.    available. 
  11634.  
  11635.  
  11636. ΓòÉΓòÉΓòÉ <hidden> fsType ΓòÉΓòÉΓòÉ
  11637.  
  11638. fsType (USHORT) 
  11639.    Queue type. 
  11640.  
  11641.    PRQ3_TYPE_RAW 
  11642.       Data is always enqueued in the device specific format. 
  11643.    PRQ3_TYPE_BYPASS 
  11644.       Allows the spooler to bypass the queue processor and send data directly 
  11645.       to the Printer Driver. Setting this bit allows the spooler to print jobs 
  11646.       of type PM_Q_RAW while they are still being spooled. 
  11647.    PRQ3_TYPE_APPDEFAULT 
  11648.       This bit is set for the application default queue only. 
  11649.  
  11650.  
  11651. ΓòÉΓòÉΓòÉ <hidden> pszSepFile ΓòÉΓòÉΓòÉ
  11652.  
  11653. pszSepFile (PSZ) 
  11654.    Separator-page file. 
  11655.  
  11656.    The path and file name of a separator-page file on the target computer. 
  11657.    This file contains formatting information for the page or pages to be used 
  11658.    between print jobs. A relative path name is taken as relative to the current 
  11659.    spool directory. A NULL string indicates no separator page. 
  11660.    See IBM Operating System/2 Local Area Network Server Version 1.2: Network 
  11661.    Administrator's Guide for information about the format of separator files. 
  11662.  
  11663.  
  11664. ΓòÉΓòÉΓòÉ <hidden> pszPrProc ΓòÉΓòÉΓòÉ
  11665.  
  11666. pszPrProc (PSZ) 
  11667.    Default queue-processor. 
  11668.  
  11669.  
  11670. ΓòÉΓòÉΓòÉ <hidden> pszParms ΓòÉΓòÉΓòÉ
  11671.  
  11672. pszParms (PSZ) 
  11673.    Queue parameters. 
  11674.  
  11675.    This can be any text string or a NULL string. 
  11676.  
  11677.  
  11678. ΓòÉΓòÉΓòÉ <hidden> pszComment ΓòÉΓòÉΓòÉ
  11679.  
  11680. pszComment (PSZ) 
  11681.    Queue description. 
  11682.  
  11683.    A NULL string results in no comment. The maximum length is 48 characters ( 
  11684.    including one byte for the null terminator ). 
  11685.  
  11686.  
  11687. ΓòÉΓòÉΓòÉ <hidden> fsStatus ΓòÉΓòÉΓòÉ
  11688.  
  11689. fsStatus (USHORT) 
  11690.    Queue status. 
  11691.  
  11692.    PRQ3_PAUSED 
  11693.       Queue is paused (held). 
  11694.    PRQ3_PENDING 
  11695.       Queue is pending deletion. 
  11696.  
  11697.  
  11698. ΓòÉΓòÉΓòÉ <hidden> cJobs ΓòÉΓòÉΓòÉ
  11699.  
  11700. cJobs (USHORT) 
  11701.    Number of jobs in queue. 
  11702.  
  11703.  
  11704. ΓòÉΓòÉΓòÉ <hidden> pszPrinters ΓòÉΓòÉΓòÉ
  11705.  
  11706. pszPrinters (PSZ) 
  11707.    Print devices connected to queue. 
  11708.  
  11709.    This cannot be NULL. 
  11710.  
  11711.  
  11712. ΓòÉΓòÉΓòÉ <hidden> pszDriverName ΓòÉΓòÉΓòÉ
  11713.  
  11714. pszDriverName (PSZ) 
  11715.    Default device driver. 
  11716.  
  11717.  
  11718. ΓòÉΓòÉΓòÉ <hidden> pDriverData ΓòÉΓòÉΓòÉ
  11719.  
  11720. pDriverData (PDRIVDATA) 
  11721.    Default queue job properties. 
  11722.  
  11723.    Note:  An application can use pszDriverName, pDriverData, pszPrProc, and 
  11724.           pszParms to construct a valid DevOpenDC call based only on the queue 
  11725.           name. 
  11726.  
  11727.  
  11728. ΓòÉΓòÉΓòÉ 4.329. PRQINFO6 ΓòÉΓòÉΓòÉ
  11729.  
  11730. PRQINFO6 Print-queue information structure. 
  11731.  
  11732. This structure is used at information level 6. 
  11733.  
  11734. typedef struct _PRQINFO6 {
  11735. PSZ          pszName;                /* Queue name  */
  11736. USHORT       uPriority;              /* Queue priority  */
  11737. USHORT       uStartTime;             /* Minutes after midnight when queue becomes active  */
  11738. USHORT       uUntilTime;             /* Minutes after midnight when queue ceases to be active  */
  11739. USHORT       fsType;                 /* Queue type  */
  11740. PSZ          pszSepFile;             /* Separator-page file  */
  11741. PSZ          pszPrProc;              /* Default queue-processor  */
  11742. PSZ          pszParms;               /* Queue parameters  */
  11743. PSZ          pszComment;             /* Queue description  */
  11744. USHORT       fsStatus;               /* Queue status  */
  11745. USHORT       cJobs;                  /* Number of jobs in queue  */
  11746. PSZ          pszPrinters;            /* Print devices connected to queue  */
  11747. PSZ          pszDriverName;          /* Default device driver  */
  11748. PDRIVDATA    pDriverData;            /* Default queue job properties  */
  11749. PSZ          pszRemoteComputerName;  /* Remote computer name  */
  11750. PSZ          pszRemoteQueueName;     /* Remote queue name  */
  11751.  } PRQINFO6;
  11752.  
  11753.  
  11754. ΓòÉΓòÉΓòÉ <hidden> pszName ΓòÉΓòÉΓòÉ
  11755.  
  11756. pszName (PSZ) 
  11757.    Queue name. 
  11758.  
  11759.    The maximum length of the name in the network case is 256 (including one 
  11760.    byte for zero termination). 
  11761.  
  11762.  
  11763. ΓòÉΓòÉΓòÉ <hidden> uPriority ΓòÉΓòÉΓòÉ
  11764.  
  11765. uPriority (USHORT) 
  11766.    Queue priority. 
  11767.  
  11768.    The range is 1 through 9, with 1 being the highest queue priority. 
  11769.    The default job priority (DefJobPrio) is determined from: 
  11770.    DefJobPrio=100-(10* uPriority). 
  11771.  
  11772.    If a job is added with PRJ_NO_PRIORITY specified, DefJobPrio is used. If a 
  11773.    default priority higher than the default job priority is specified, the 
  11774.    default job priority is used. If a default priority lower than the default 
  11775.    is specified, the specified job priority is used. 
  11776.  
  11777.    PRQ_DEF_PRIORITY 
  11778.       Default priority 
  11779.    PRQ_MAX_PRIORITY 
  11780.       Highest priority 
  11781.    PRQ_MIN_PRIORITY 
  11782.       Minimum priority 
  11783.    PRQ_NO_PRIORITY 
  11784.       No priority. 
  11785.  
  11786.  
  11787. ΓòÉΓòÉΓòÉ <hidden> uStartTime ΓòÉΓòÉΓòÉ
  11788.  
  11789. uStartTime (USHORT) 
  11790.    Minutes after midnight when queue becomes active. 
  11791.  
  11792.    For example, the value 75 represents 1:15 a.m. 
  11793.    If uStartTime and uUntilTime are both 0, the print queue is always 
  11794.    available. 
  11795.  
  11796.  
  11797. ΓòÉΓòÉΓòÉ <hidden> uUntilTime ΓòÉΓòÉΓòÉ
  11798.  
  11799. uUntilTime (USHORT) 
  11800.    Minutes after midnight when queue ceases to be active. 
  11801.  
  11802.    For example, the value 1200 represents 8 p.m. 
  11803.    If uUntilTime and uStartTime are both 0, the print queue is always 
  11804.    available. 
  11805.  
  11806.  
  11807. ΓòÉΓòÉΓòÉ <hidden> fsType ΓòÉΓòÉΓòÉ
  11808.  
  11809. fsType (USHORT) 
  11810.    Queue type. 
  11811.  
  11812.    PRQ3_TYPE_RAW 
  11813.       Data is always enqueued in the device specific format. 
  11814.    PRQ3_TYPE_BYPASS 
  11815.       Allows the spooler to bypass the queue processor and send data directly 
  11816.       to the Printer Driver. Setting this bit allows the spooler to print jobs 
  11817.       of type PM_Q_RAW while they are still being spooled. 
  11818.    PRQ3_TYPE_APPDEFAULT 
  11819.       This bit is set for the application default queue only. 
  11820.  
  11821.  
  11822. ΓòÉΓòÉΓòÉ <hidden> pszSepFile ΓòÉΓòÉΓòÉ
  11823.  
  11824. pszSepFile (PSZ) 
  11825.    Separator-page file. 
  11826.  
  11827.    The path and file name of a separator-page file on the target computer. 
  11828.    This file contains formatting information for the page or pages to be used 
  11829.    between print jobs. A relative path name is taken as relative to the current 
  11830.    spool directory. A NULL string indicates no separator page. 
  11831.    See IBM Operating System/2 Local Area Network Server Version 1.2: Network 
  11832.    Administrator's Guide for information about the format of separator files. 
  11833.  
  11834.  
  11835. ΓòÉΓòÉΓòÉ <hidden> pszPrProc ΓòÉΓòÉΓòÉ
  11836.  
  11837. pszPrProc (PSZ) 
  11838.    Default queue-processor. 
  11839.  
  11840.  
  11841. ΓòÉΓòÉΓòÉ <hidden> pszParms ΓòÉΓòÉΓòÉ
  11842.  
  11843. pszParms (PSZ) 
  11844.    Queue parameters. 
  11845.  
  11846.    This can be any text string or a NULL string. 
  11847.  
  11848.  
  11849. ΓòÉΓòÉΓòÉ <hidden> pszComment ΓòÉΓòÉΓòÉ
  11850.  
  11851. pszComment (PSZ) 
  11852.    Queue description. 
  11853.  
  11854.    A NULL string results in no comment. The maximum length is 48 characters ( 
  11855.    including one byte for the null terminator ). 
  11856.  
  11857.  
  11858. ΓòÉΓòÉΓòÉ <hidden> fsStatus ΓòÉΓòÉΓòÉ
  11859.  
  11860. fsStatus (USHORT) 
  11861.    Queue status. 
  11862.  
  11863.    PRQ3_PAUSED 
  11864.       Queue is paused (held). 
  11865.    PRQ3_PENDING 
  11866.       Queue is pending deletion. 
  11867.  
  11868.  
  11869. ΓòÉΓòÉΓòÉ <hidden> cJobs ΓòÉΓòÉΓòÉ
  11870.  
  11871. cJobs (USHORT) 
  11872.    Number of jobs in queue. 
  11873.  
  11874.  
  11875. ΓòÉΓòÉΓòÉ <hidden> pszPrinters ΓòÉΓòÉΓòÉ
  11876.  
  11877. pszPrinters (PSZ) 
  11878.    Print devices connected to queue. 
  11879.  
  11880.    This cannot be NULL. 
  11881.  
  11882.  
  11883. ΓòÉΓòÉΓòÉ <hidden> pszDriverName ΓòÉΓòÉΓòÉ
  11884.  
  11885. pszDriverName (PSZ) 
  11886.    Default device driver. 
  11887.  
  11888.  
  11889. ΓòÉΓòÉΓòÉ <hidden> pDriverData ΓòÉΓòÉΓòÉ
  11890.  
  11891. pDriverData (PDRIVDATA) 
  11892.    Default queue job properties. 
  11893.  
  11894.    Note:  An application can use pszDriverName, pDriverData, pszPrProc, and 
  11895.           pszParms to construct a valid DevOpenDC call based only on the queue 
  11896.           name. 
  11897.  
  11898.  
  11899. ΓòÉΓòÉΓòÉ <hidden> pszRemoteComputerName ΓòÉΓòÉΓòÉ
  11900.  
  11901. pszRemoteComputerName (PSZ) 
  11902.    Remote computer name. 
  11903.  
  11904.    The computer name part of a remote queue for which this queue is a local 
  11905.    alias. 
  11906.  
  11907.  
  11908. ΓòÉΓòÉΓòÉ <hidden> pszRemoteQueueName ΓòÉΓòÉΓòÉ
  11909.  
  11910. pszRemoteQueueName (PSZ) 
  11911.    Remote queue name. 
  11912.  
  11913.    The queue name part of a remote queue for which this queue is a local alias. 
  11914.  
  11915.  
  11916. ΓòÉΓòÉΓòÉ 4.330. PRQPROCINFO ΓòÉΓòÉΓòÉ
  11917.  
  11918. PRQPROCINFO Queue processor information structure (level 0). 
  11919.  
  11920. typedef struct _PRQPROCINFO {
  11921. CHAR    szQProcName[QNLEN+1];       /* Name of queue processor  */
  11922.  } PRQPROCINFO;
  11923.  
  11924.  
  11925. ΓòÉΓòÉΓòÉ <hidden> szQProcName[QNLEN+1] ΓòÉΓòÉΓòÉ
  11926.  
  11927. szQProcName[QNLEN+1] (CHAR) 
  11928.    Name of queue processor. 
  11929.  
  11930.    This is the name of the queue processor (driver). For example "PMPRINT". 
  11931.  
  11932.  
  11933. ΓòÉΓòÉΓòÉ 4.331. PSBCDATA ΓòÉΓòÉΓòÉ
  11934.  
  11935. PSBCDATA Pointer to SBCDATA. 
  11936.  
  11937. typedef SBCDATA *PSBCDATA;
  11938.  
  11939.  
  11940. ΓòÉΓòÉΓòÉ 4.332. PSEARCHSTRING ΓòÉΓòÉΓòÉ
  11941.  
  11942. PSEARCHSTRING Pointer to a SEARCHSTRING data structure. 
  11943.  
  11944. typedef SEARCHSTRING *PSEARCHSTRING;
  11945.  
  11946.  
  11947. ΓòÉΓòÉΓòÉ 4.333. PSFACTORS ΓòÉΓòÉΓòÉ
  11948.  
  11949. PSFACTORS Pointer to SFACTORS. 
  11950.  
  11951. typedef SFACTORS *PSFACTORS;
  11952.  
  11953.  
  11954. ΓòÉΓòÉΓòÉ 4.334. PSHORT ΓòÉΓòÉΓòÉ
  11955.  
  11956. PSHORT Pointer to SHORT. 
  11957.  
  11958. typedef SHORT *PSHORT;
  11959.  
  11960.  
  11961. ΓòÉΓòÉΓòÉ 4.335. PSIZEF ΓòÉΓòÉΓòÉ
  11962.  
  11963. PSIZEF Pointer to SIZEF. 
  11964.  
  11965. typedef SIZEF *PSIZEF;
  11966.  
  11967.  
  11968. ΓòÉΓòÉΓòÉ 4.336. PSIZEL ΓòÉΓòÉΓòÉ
  11969.  
  11970. PSIZEL Pointer to SIZEL. 
  11971.  
  11972. typedef SIZEL *PSIZEL;
  11973.  
  11974.  
  11975. ΓòÉΓòÉΓòÉ 4.337. PSLDCDATA ΓòÉΓòÉΓòÉ
  11976.  
  11977. PSLDCDATA Pointer to a SLDCDATA data structure. 
  11978.  
  11979. typedef SLDCDATA *PSLDCDATA;
  11980.  
  11981.  
  11982. ΓòÉΓòÉΓòÉ 4.338. PSMHSTRUCT ΓòÉΓòÉΓòÉ
  11983.  
  11984. PSMHSTRUCT Pointer to a SMHSTRUCT data structure. 
  11985.  
  11986. typedef SMHSTRUCT *PSMHSTRUCT;
  11987.  
  11988.  
  11989. ΓòÉΓòÉΓòÉ 4.339. PSTRL ΓòÉΓòÉΓòÉ
  11990.  
  11991. PSTRL Pointer to PSZ. 
  11992.  
  11993. typedef STRL *PSTRL;
  11994.  
  11995.  
  11996. ΓòÉΓòÉΓòÉ 4.340. PSTR8 ΓòÉΓòÉΓòÉ
  11997.  
  11998. PSTR8 Pointer to STR8. 
  11999.  
  12000. typedef STR8 *PSTR8;
  12001.  
  12002.  
  12003. ΓòÉΓòÉΓòÉ 4.341. PSTR16 ΓòÉΓòÉΓòÉ
  12004.  
  12005. PSTR16 Pointer to STR16. 
  12006.  
  12007. typedef STR16 *PSTR16;
  12008.  
  12009.  
  12010. ΓòÉΓòÉΓòÉ 4.342. PSTR32 ΓòÉΓòÉΓòÉ
  12011.  
  12012. PSTR32 Pointer to STR32. 
  12013.  
  12014. typedef STR32 *PSTR32;
  12015.  
  12016.  
  12017. ΓòÉΓòÉΓòÉ 4.343. PSTR64 ΓòÉΓòÉΓòÉ
  12018.  
  12019. PSTR64 Pointer to STR64. 
  12020.  
  12021. typedef STR64 *PSTR64;
  12022.  
  12023.  
  12024. ΓòÉΓòÉΓòÉ 4.344. PSTYLECHANGE ΓòÉΓòÉΓòÉ
  12025.  
  12026. PSTYLECHANGE Pointer to a STYLECHANGE data structure. 
  12027.  
  12028. typedef STYLECHANGE *PSTYLECHANGE;
  12029.  
  12030.  
  12031. ΓòÉΓòÉΓòÉ 4.345. PSWBLOCK ΓòÉΓòÉΓòÉ
  12032.  
  12033. PSWBLOCK Pointer to a switch-list block structure. 
  12034.  
  12035. typedef SWBLOCK *PSWBLOCK;
  12036.  
  12037.  
  12038. ΓòÉΓòÉΓòÉ 4.346. PSWCNTRL ΓòÉΓòÉΓòÉ
  12039.  
  12040. PSWCNTRL Pointer to a switch-list control block structure. 
  12041.  
  12042. typedef SWCNTRL *PSWCNTRL;
  12043.  
  12044.  
  12045. ΓòÉΓòÉΓòÉ 4.347. PSWENTRY ΓòÉΓòÉΓòÉ
  12046.  
  12047. PSWENTRY Pointer to SWENTRY. 
  12048.  
  12049. typedef SWENTRY *PSWENTRY;
  12050.  
  12051.  
  12052. ΓòÉΓòÉΓòÉ 4.348. PSWP ΓòÉΓòÉΓòÉ
  12053.  
  12054. PSWP Pointer to a SWP data structure. 
  12055.  
  12056. typedef SWP *PSWP;
  12057.  
  12058.  
  12059. ΓòÉΓòÉΓòÉ 4.349. PSZ ΓòÉΓòÉΓòÉ
  12060.  
  12061. PSZ Pointer to a NULL-terminated string. If you are using C++, you may need to 
  12062. use PCSZ See C++ Considerations for more information on C++ considerations. 
  12063.  
  12064. typedef unsigned char *PSZ;
  12065.  
  12066.  
  12067. ΓòÉΓòÉΓòÉ 4.350. PTID ΓòÉΓòÉΓòÉ
  12068.  
  12069. PTID Pointer to TID. 
  12070.  
  12071. typedef TID *PTID;
  12072.  
  12073.  
  12074. ΓòÉΓòÉΓòÉ 4.351. PTRACKINFO ΓòÉΓòÉΓòÉ
  12075.  
  12076. PTRACKINFO Pointer to a TRACKINFO data structure. 
  12077.  
  12078. typedef TRACKINFO *PTRACKINFO;
  12079.  
  12080.  
  12081. ΓòÉΓòÉΓòÉ 4.352. PTREEITEMDESC ΓòÉΓòÉΓòÉ
  12082.  
  12083. PTREEITEMDESC Pointer to a TREEITEMDESC data structure. 
  12084.  
  12085. typedef TREEITEMDESC *PTREEITEMDESC;
  12086.  
  12087.  
  12088. ΓòÉΓòÉΓòÉ 4.353. PUCHAR ΓòÉΓòÉΓòÉ
  12089.  
  12090. PUCHAR Pointer to UCHAR. 
  12091.  
  12092. typedef UCHAR *PUCHAR;
  12093.  
  12094.  
  12095. ΓòÉΓòÉΓòÉ 4.354. PULONG ΓòÉΓòÉΓòÉ
  12096.  
  12097. PULONG Pointer to ULONG. 
  12098.  
  12099. typedef ULONG *PULONG;
  12100.  
  12101.  
  12102. ΓòÉΓòÉΓòÉ 4.355. PUSEITEM ΓòÉΓòÉΓòÉ
  12103.  
  12104. PUSEITEM Pointer to USEITEM. 
  12105.  
  12106. typedef USEITEM *PUSEITEM;
  12107.  
  12108.  
  12109. ΓòÉΓòÉΓòÉ 4.356. PUSERBUTTON ΓòÉΓòÉΓòÉ
  12110.  
  12111. PUSERBUTTON Pointer to USERBUTTON. 
  12112.  
  12113. typedef USERBUTTON *PUSERBUTTON;
  12114.  
  12115.  
  12116. ΓòÉΓòÉΓòÉ 4.357. PUSHORT ΓòÉΓòÉΓòÉ
  12117.  
  12118. PUSHORT Pointer to USHORT. 
  12119.  
  12120. typedef USHORT *PUSHORT;
  12121.  
  12122.  
  12123. ΓòÉΓòÉΓòÉ 4.358. PVIEWFILE ΓòÉΓòÉΓòÉ
  12124.  
  12125. PVIEWFILE Pointer to VIEWFILE. 
  12126.  
  12127. typedef VIEWFILE *PVIEWFILE;
  12128.  
  12129.  
  12130. ΓòÉΓòÉΓòÉ 4.359. PVIEWITEM ΓòÉΓòÉΓòÉ
  12131.  
  12132. PVIEWITEM Pointer to VIEWITEM. 
  12133.  
  12134. typedef VIEWITEM *PVIEWITEM;
  12135.  
  12136.  
  12137. ΓòÉΓòÉΓòÉ 4.360. PVIOFONTCELLSIZE ΓòÉΓòÉΓòÉ
  12138.  
  12139. PVIOFONTCELLSIZE Pointer to VIOFONTCELLSIZE. 
  12140.  
  12141. typedef VIOFONTCELLSIZE *PVIOFONTCELLSIZE;
  12142.  
  12143.  
  12144. ΓòÉΓòÉΓòÉ 4.361. PVIOSIZECOUNT ΓòÉΓòÉΓòÉ
  12145.  
  12146. PVIOSIZECOUNT Pointer to VIOSIZECOUNT. 
  12147.  
  12148. typedef VIOSIZECOUNT *PVIOSIZECOUNT;
  12149.  
  12150.  
  12151. ΓòÉΓòÉΓòÉ 4.362. PVOID ΓòÉΓòÉΓòÉ
  12152.  
  12153. PVOID Pointer to a data type of undefined format. 
  12154.  
  12155. typedef VOID *PVOID;
  12156.  
  12157.  
  12158. ΓòÉΓòÉΓòÉ 4.363. PVSCDATA ΓòÉΓòÉΓòÉ
  12159.  
  12160. PVSCDATA Pointer to VSCDATA. 
  12161.  
  12162. typedef VSCDATA *PVSCDATA;
  12163.  
  12164.  
  12165. ΓòÉΓòÉΓòÉ 4.364. PVSDRAGINFO ΓòÉΓòÉΓòÉ
  12166.  
  12167. PVSDRAGINFO Pointer to VSDRAGINFO. 
  12168.  
  12169. typedef VSDRAGINFO *PVSDRAGINFO;
  12170.  
  12171.  
  12172. ΓòÉΓòÉΓòÉ 4.365. PVSDRAGINIT ΓòÉΓòÉΓòÉ
  12173.  
  12174. PVSDRAGINIT Pointer to VSDRAGINIT. 
  12175.  
  12176. typedef VSDRAGINIT *PVSDRAGINIT;
  12177.  
  12178.  
  12179. ΓòÉΓòÉΓòÉ 4.366. PVSTEXT ΓòÉΓòÉΓòÉ
  12180.  
  12181. PVSTEXT Pointer to a VSTEXT data structure. 
  12182.  
  12183. typedef VSTEXT *PVSTEXT;
  12184.  
  12185.  
  12186. ΓòÉΓòÉΓòÉ 4.367. PWNDPARAMS ΓòÉΓòÉΓòÉ
  12187.  
  12188. PWNDPARAMS Pointer to a WNDPARAMS data structure. 
  12189.  
  12190. typedef WNDPARAMS *PWNDPARAMS;
  12191.  
  12192.  
  12193. ΓòÉΓòÉΓòÉ 4.368. PWPOINT ΓòÉΓòÉΓòÉ
  12194.  
  12195. PWPOINT Pointer to a WPOINT data structure. 
  12196.  
  12197. #define PWPOINT PPOINTL
  12198.  
  12199.  
  12200. ΓòÉΓòÉΓòÉ 4.369. QMOPENSTRUC ΓòÉΓòÉΓòÉ
  12201.  
  12202. QMOPENSTRUC Open queue manager data structure. 
  12203.  
  12204. typedef struct _QMOPENSTRUC {
  12205. PSZ         pszQueueName;        /* Queue name  */
  12206. PSZ         pszDriverName;       /* Driver name  */
  12207. DRIVDATA    drivDriverData;      /* Driver data  */
  12208. PSZ         pszDataType;         /* Data type  */
  12209. PSZ         pszComment;          /* Comment  */
  12210. PSZ         pszQueueProcName;    /* Queue processor name  */
  12211. PSZ         pszQueueProcParams;  /* Queue processor parameters  */
  12212. PSZ         pszSpoolerParams;    /* Spooler parameters  */
  12213. PSZ         pszNetworkParams;    /* Network parameters  */
  12214.  } QMOPENSTRUC;
  12215.  
  12216.  
  12217. ΓòÉΓòÉΓòÉ <hidden> pszQueueName ΓòÉΓòÉΓòÉ
  12218.  
  12219. pszQueueName (PSZ) 
  12220.    Queue name. 
  12221.  
  12222.    The name of the queue for the output device. The queue can be a UNC name. 
  12223.  
  12224.  
  12225. ΓòÉΓòÉΓòÉ <hidden> pszDriverName ΓòÉΓòÉΓòÉ
  12226.  
  12227. pszDriverName (PSZ) 
  12228.    Driver name. 
  12229.  
  12230.    A string containing the name of the Presentation Manager Device Driver (for 
  12231.    example, "IBM4019"). 
  12232.  
  12233.  
  12234. ΓòÉΓòÉΓòÉ <hidden> drivDriverData ΓòÉΓòÉΓòÉ
  12235.  
  12236. drivDriverData (DRIVDATA) 
  12237.    Driver data. 
  12238.  
  12239.    Data which is to be passed directly to the Presentation Manager Device 
  12240.    Driver. Whether or not any of this is required depends upon the Device 
  12241.    Driver. 
  12242.  
  12243.  
  12244. ΓòÉΓòÉΓòÉ <hidden> pszDataType ΓòÉΓòÉΓòÉ
  12245.  
  12246. pszDataType (PSZ) 
  12247.    Data type. 
  12248.  
  12249.    This defines the type of data which is to be queued, as follows: 
  12250.  
  12251.    o "PM_Q_STD" - standard format 
  12252.    o "PM_Q_RAW" - raw format 
  12253.    Note that a Presentation Manager device driver may define other datatypes 
  12254.    and may not support all of these queued data types. 
  12255.  
  12256.  
  12257. ΓòÉΓòÉΓòÉ <hidden> pszComment ΓòÉΓòÉΓòÉ
  12258.  
  12259. pszComment (PSZ) 
  12260.    Comment. 
  12261.  
  12262.    A natural language description of the file.  This may, for example, be 
  12263.    displayed by the spooler to the end user. It is optional. 
  12264.  
  12265.  
  12266. ΓòÉΓòÉΓòÉ <hidden> pszQueueProcName ΓòÉΓòÉΓòÉ
  12267.  
  12268. pszQueueProcName (PSZ) 
  12269.    Queue processor name. 
  12270.  
  12271.    The name of the queue processor.  This is normally the default. 
  12272.  
  12273.  
  12274. ΓòÉΓòÉΓòÉ <hidden> pszQueueProcParams ΓòÉΓòÉΓòÉ
  12275.  
  12276. pszQueueProcParams (PSZ) 
  12277.    Queue processor parameters. 
  12278.  
  12279.    A parameter string for the queue processor. It is optional. 
  12280.  
  12281.  
  12282. ΓòÉΓòÉΓòÉ <hidden> pszSpoolerParams ΓòÉΓòÉΓòÉ
  12283.  
  12284. pszSpoolerParams (PSZ) 
  12285.    Spooler parameters. 
  12286.  
  12287.    A parameter string for the spooler, which is optional. This has the 
  12288.    following options, which must be separated by one or more blanks: 
  12289.  
  12290.    o FORM=f 
  12291.      Specifies a forms code `f'. This must be a valid forms code for the 
  12292.      printer. 
  12293.      If not specified, then the data is printed on the forms in use, when this 
  12294.      print job is ready to be printed. 
  12295.  
  12296.    o PRTY=n 
  12297.      Specifies a priority in the range 0-99, with 99 being the highest. If not 
  12298.      specified, then a priority of 50 is used. 
  12299.  
  12300.  
  12301. ΓòÉΓòÉΓòÉ <hidden> pszNetworkParams ΓòÉΓòÉΓòÉ
  12302.  
  12303. pszNetworkParams (PSZ) 
  12304.    Network parameters. 
  12305.  
  12306.    The format of the parameter string is keyword=value, and the following 
  12307.    keywords are defined (additional ones can be defined by the network 
  12308.    program): 
  12309.  
  12310.    o USER=u 
  12311.      specifies the userid `u'.  If not specified, a null userid is used. 
  12312.  
  12313.  
  12314. ΓòÉΓòÉΓòÉ 4.370. QMSG ΓòÉΓòÉΓòÉ
  12315.  
  12316. QMSG Message structure. 
  12317.  
  12318. typedef struct _QMSG {
  12319. HWND      hwnd;      /* Window handle  */
  12320. ULONG     msg;       /* Message identity  */
  12321. MPARAM    mp1;       /* Parameter 1  */
  12322. MPARAM    mp2;       /* Parameter 2  */
  12323. ULONG     time;      /* Message time  */
  12324. POINTL    ptl;       /* Pointer position when message was generated  */
  12325. ULONG     reserved;  /* Reserved  */
  12326.  } QMSG;
  12327.  
  12328.  
  12329. ΓòÉΓòÉΓòÉ <hidden> hwnd ΓòÉΓòÉΓòÉ
  12330.  
  12331. hwnd (HWND) 
  12332.    Window handle. 
  12333.  
  12334.  
  12335. ΓòÉΓòÉΓòÉ <hidden> msg ΓòÉΓòÉΓòÉ
  12336.  
  12337. msg (ULONG) 
  12338.    Message identity. 
  12339.  
  12340.  
  12341. ΓòÉΓòÉΓòÉ <hidden> mp1 ΓòÉΓòÉΓòÉ
  12342.  
  12343. mp1 (MPARAM) 
  12344.    Parameter 1. 
  12345.  
  12346.  
  12347. ΓòÉΓòÉΓòÉ <hidden> mp2 ΓòÉΓòÉΓòÉ
  12348.  
  12349. mp2 (MPARAM) 
  12350.    Parameter 2. 
  12351.  
  12352.  
  12353. ΓòÉΓòÉΓòÉ <hidden> time ΓòÉΓòÉΓòÉ
  12354.  
  12355. time (ULONG) 
  12356.    Message time. 
  12357.  
  12358.  
  12359. ΓòÉΓòÉΓòÉ <hidden> ptl ΓòÉΓòÉΓòÉ
  12360.  
  12361. ptl (POINTL) 
  12362.    Pointer position when message was generated. 
  12363.  
  12364.  
  12365. ΓòÉΓòÉΓòÉ <hidden> reserved ΓòÉΓòÉΓòÉ
  12366.  
  12367. reserved (ULONG) 
  12368.    Reserved. 
  12369.  
  12370.  
  12371. ΓòÉΓòÉΓòÉ 4.371. QUERYRECFROMRECT ΓòÉΓòÉΓòÉ
  12372.  
  12373. QUERYRECFROMRECT Structure that contains information about a container record 
  12374. that is bounded by a specified rectangle. This structure is used in the 
  12375. CM_QUERYRECORDFROMRECT container message only. 
  12376.  
  12377. typedef struct _QUERYRECFROMRECT {
  12378. ULONG    cb;        /* Structure size  */
  12379. RECTL    rect;      /* Rectangle  */
  12380. ULONG    fsSearch;  /* Search control flags  */
  12381.  } QUERYRECFROMRECT;
  12382.  
  12383.  
  12384. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  12385.  
  12386. cb (ULONG) 
  12387.    Structure size. 
  12388.  
  12389.    The size (in bytes) of the QUERYRECFROMRECT data structure. 
  12390.  
  12391.  
  12392. ΓòÉΓòÉΓòÉ <hidden> rect ΓòÉΓòÉΓòÉ
  12393.  
  12394. rect (RECTL) 
  12395.    Rectangle. 
  12396.  
  12397.    The rectangle to query, in virtual coordinates relative to the container 
  12398.    window origin. If the details view (CV_DETAIL) is displayed, the 
  12399.    x-coordinates of the rectangle are ignored. 
  12400.  
  12401.  
  12402. ΓòÉΓòÉΓòÉ <hidden> fsSearch ΓòÉΓòÉΓòÉ
  12403.  
  12404. fsSearch (ULONG) 
  12405.    Search control flags. 
  12406.  
  12407.    One flag from each of the following groups can be specified: 
  12408.  
  12409.    o Search sensitivity: 
  12410.  
  12411.       CMA_COMPLETE 
  12412.          Returns the container records that are completely within the bounding 
  12413.          rectangle. 
  12414.       CMA_PARTIAL 
  12415.          Returns the container records that are completely or partially within 
  12416.          the bounding rectangle. 
  12417.  
  12418.    o Enumeration order: 
  12419.  
  12420.       CMA_ITEMORDER 
  12421.          Container records are enumerated in item order, lowest to highest. 
  12422.       CMA_ZORDER 
  12423.          Container records are enumerated by z-order, from top to bottom. This 
  12424.          flag is valid for the icon view only. 
  12425.  
  12426.  
  12427. ΓòÉΓòÉΓòÉ 4.372. QUERYRECORDRECT ΓòÉΓòÉΓòÉ
  12428.  
  12429. QUERYRECORDRECT Structure that contains information about the rectangle that 
  12430. bounds a specified container record. This structure is used in the 
  12431. CM_QUERYRECORDRECT container message only. 
  12432.  
  12433. typedef struct _QUERYRECORDRECT {
  12434. ULONG          cb;                 /* Structure size  */
  12435. PRECORDCORE    pRecord;            /* Pointer  */
  12436. ULONG          fRightSplitWindow;  /* Window flag  */
  12437. ULONG          fsExtent;           /* Rectangle flags  */
  12438.  } QUERYRECORDRECT;
  12439.  
  12440.  
  12441. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  12442.  
  12443. cb (ULONG) 
  12444.    Structure size. 
  12445.  
  12446.    The size (in bytes) of the QUERYRECORDRECT structure. 
  12447.  
  12448.  
  12449. ΓòÉΓòÉΓòÉ <hidden> pRecord ΓòÉΓòÉΓòÉ
  12450.  
  12451. pRecord (PRECORDCORE) 
  12452.    Pointer. 
  12453.  
  12454.    Pointer to the specified RECORDCORE data structure. 
  12455.  
  12456.    Note:  If the CCS_MINIRECORDCORE style bit is specified when a container is 
  12457.    created, then MINIRECORDCORE should be used instead of RECORDCORE and 
  12458.    PMINIRECORDCORE should be used instead of PRECORDCORE in all applicable data 
  12459.    structures and messages. 
  12460.  
  12461.  
  12462. ΓòÉΓòÉΓòÉ <hidden> fRightSplitWindow ΓòÉΓòÉΓòÉ
  12463.  
  12464. fRightSplitWindow (ULONG) 
  12465.    Window flag. 
  12466.  
  12467.    Flag that specifies the right or left window in the split details view. 
  12468.  
  12469.    This flag is ignored if the view is not the split details view. 
  12470.  
  12471.    TRUE 
  12472.       Right split window is returned. 
  12473.    FALSE 
  12474.       Left split window is returned. 
  12475.  
  12476.  
  12477. ΓòÉΓòÉΓòÉ <hidden> fsExtent ΓòÉΓòÉΓòÉ
  12478.  
  12479. fsExtent (ULONG) 
  12480.    Rectangle flags. 
  12481.  
  12482.    Flags that specify the extent of the desired rectangle. 
  12483.  
  12484.    These flags can be combined by using a logical OR operator (|) to return the 
  12485.    rectangle that bounds the icon, the expanded and collapsed icon or bit map, 
  12486.    and the text. 
  12487.  
  12488.    CMA_ICON 
  12489.       Returns the icon rectangle. 
  12490.    CMA_TEXT 
  12491.       Returns the text rectangle. 
  12492.    CMA_TREEICON 
  12493.       Returns the rectangle of the expanded and collapsed icons or bit maps. 
  12494.       This flag is valid for the tree icon and tree text views only. 
  12495.  
  12496.  
  12497. ΓòÉΓòÉΓòÉ 4.373. RECORDCORE ΓòÉΓòÉΓòÉ
  12498.  
  12499. RECORDCORE Structure that contains information for records in a container 
  12500. control. This data structure is used if the CCS_MINIRECORDCORE style bit is not 
  12501. specified when a container is created. 
  12502.  
  12503. typedef struct _RECORDCORE {
  12504. ULONG                 cb;               /* Structure size  */
  12505. ULONG                 flRecordAttr;     /* Record attributes  */
  12506. POINTL                ptlIcon;          /* Record position  */
  12507. struct _RECORDCORE   *preccNextRecord;  /* Pointer  */
  12508. PSZ                   pszIcon;          /* Text  */
  12509. HPOINTER              hptrIcon;         /* Icon  */
  12510. HPOINTER              hptrMiniIcon;     /* Mini-icon  */
  12511. HBITMAP               hbmBitmap;        /* Bit map  */
  12512. HBITMAP               hbmMiniBitmap;    /* Mini-bit map  */
  12513. PTREEITEMDESC         pTreeItemDesc;    /* Pointer  */
  12514. PSZ                   pszText;          /* Text view text  */
  12515. PSZ                   pszName;          /* Name view text  */
  12516. PSZ                   pszTree;          /* Tree view text  */
  12517.  } RECORDCORE;
  12518.  
  12519.  
  12520. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  12521.  
  12522. cb (ULONG) 
  12523.    Structure size. 
  12524.  
  12525.    The size (in bytes) of the RECORDCORE structure. 
  12526.  
  12527.  
  12528. ΓòÉΓòÉΓòÉ <hidden> flRecordAttr ΓòÉΓòÉΓòÉ
  12529.  
  12530. flRecordAttr (ULONG) 
  12531.    Record attributes. 
  12532.  
  12533.    Attributes of container records. Contains any or all of the following: 
  12534.  
  12535.    CRA_COLLAPSED 
  12536.       Specifies that a record is collapsed. 
  12537.    CRA_CURSORED 
  12538.       Specifies that a record will be drawn with a selection cursor. 
  12539.    CRA_DROPONABLE 
  12540.       Specifies that a record can be a target for direct manipulation. 
  12541.    CRA_EXPANDED 
  12542.       Specifies that a record is expanded. 
  12543.    CRA_FILTERED 
  12544.       Specifies that a record is filtered, and therefore hidden from view. 
  12545.    CRA_INUSE 
  12546.       Specifies that a record will be drawn with in-use emphasis. 
  12547.    CRA_RECORDREADONLY 
  12548.       Prevents a record from being edited directly. 
  12549.    CRA_SELECTED 
  12550.       Specifies that a record will be drawn with selected-state emphasis. 
  12551.    CRA_TARGET 
  12552.       Specifies that a record will be drawn with target emphasis. 
  12553.  
  12554.  
  12555. ΓòÉΓòÉΓòÉ <hidden> ptlIcon ΓòÉΓòÉΓòÉ
  12556.  
  12557. ptlIcon (POINTL) 
  12558.    Record position. 
  12559.  
  12560.    Position of a container record in the icon view. 
  12561.  
  12562.  
  12563. ΓòÉΓòÉΓòÉ <hidden> preccNextRecord ΓòÉΓòÉΓòÉ
  12564.  
  12565. preccNextRecord (struct _RECORDCORE *) 
  12566.    Pointer. 
  12567.  
  12568.    Pointer to the next linked record. 
  12569.  
  12570.  
  12571. ΓòÉΓòÉΓòÉ <hidden> pszIcon ΓòÉΓòÉΓòÉ
  12572.  
  12573. pszIcon (PSZ) 
  12574.    Text. 
  12575.  
  12576.    Text for the icon view (CV_ICON). 
  12577.  
  12578.  
  12579. ΓòÉΓòÉΓòÉ <hidden> hptrIcon ΓòÉΓòÉΓòÉ
  12580.  
  12581. hptrIcon (HPOINTER) 
  12582.    Icon. 
  12583.  
  12584.    Icon that is displayed when the CV_MINI style bit is not specified. This 
  12585.    field is used when the CA_DRAWICON container attribute of the CNRINFO data 
  12586.    structure is set. 
  12587.  
  12588.  
  12589. ΓòÉΓòÉΓòÉ <hidden> hptrMiniIcon ΓòÉΓòÉΓòÉ
  12590.  
  12591. hptrMiniIcon (HPOINTER) 
  12592.    Mini-icon. 
  12593.  
  12594.    Icon that is displayed when the CV_MINI style bit is specified. This field 
  12595.    is used when the CA_DRAWICON container attribute of the CNRINFO data 
  12596.    structure is set. 
  12597.  
  12598.  
  12599. ΓòÉΓòÉΓòÉ <hidden> hbmBitmap ΓòÉΓòÉΓòÉ
  12600.  
  12601. hbmBitmap (HBITMAP) 
  12602.    Bit map. 
  12603.  
  12604.    Bit map that is displayed when the CV_MINI style bit is not specified. This 
  12605.    field is used when the CA_DRAWBITMAP container attribute of the CNRINFO data 
  12606.    structure is set. 
  12607.  
  12608.  
  12609. ΓòÉΓòÉΓòÉ <hidden> hbmMiniBitmap ΓòÉΓòÉΓòÉ
  12610.  
  12611. hbmMiniBitmap (HBITMAP) 
  12612.    Mini-bit map. 
  12613.  
  12614.    Bit map that is displayed when the CV_MINI style bit is specified. This 
  12615.    field is used when the CA_DRAWBITMAP container attribute of the CNRINFO data 
  12616.    structure is set. 
  12617.  
  12618.  
  12619. ΓòÉΓòÉΓòÉ <hidden> pTreeItemDesc ΓòÉΓòÉΓòÉ
  12620.  
  12621. pTreeItemDesc (PTREEITEMDESC) 
  12622.    Pointer. 
  12623.  
  12624.    Pointer to a TREEITEMDESC structure, which contains the icons and bit maps 
  12625.    used to represent the state of an expanded or collapsed parent item in the 
  12626.    tree name view. 
  12627.  
  12628.  
  12629. ΓòÉΓòÉΓòÉ <hidden> pszText ΓòÉΓòÉΓòÉ
  12630.  
  12631. pszText (PSZ) 
  12632.    Text view text. 
  12633.  
  12634.    Text for the text view (CV_TEXT). 
  12635.  
  12636.  
  12637. ΓòÉΓòÉΓòÉ <hidden> pszName ΓòÉΓòÉΓòÉ
  12638.  
  12639. pszName (PSZ) 
  12640.    Name view text. 
  12641.  
  12642.    Text for the name view (CV_NAME). 
  12643.  
  12644.  
  12645. ΓòÉΓòÉΓòÉ <hidden> pszTree ΓòÉΓòÉΓòÉ
  12646.  
  12647. pszTree (PSZ) 
  12648.    Tree view text. 
  12649.  
  12650.    Text for the tree view (CV_TREE). 
  12651.  
  12652.  
  12653. ΓòÉΓòÉΓòÉ 4.374. RECORDINSERT ΓòÉΓòÉΓòÉ
  12654.  
  12655. RECORDINSERT Structure that contains information about the RECORDCORE structure 
  12656. or structures that are being inserted into a container. The RECORDINSERT 
  12657. structure is used in the CM_INSERTRECORD container message only. 
  12658.  
  12659. Note:  If the CCS_MINIRECORDCORE style bit is specified when a container is 
  12660. created, then MINIRECORDCORE should be used instead of RECORDCORE and 
  12661. PMINIRECORDCORE should be used instead of PRECORDCORE in all applicable data 
  12662. structures and messages. 
  12663.  
  12664. typedef struct _RECORDINSERT {
  12665. ULONG          cb;                 /* Structure size  */
  12666. PRECORDCORE    pRecordOrder;       /* Record order  */
  12667. PRECORDCORE    pRecordParent;      /* Pointer  */
  12668. ULONG          fInvalidateRecord;  /* Update flag  */
  12669. ULONG          zOrder;             /* Record z-order  */
  12670. ULONG          cRecordsInsert;     /* Number of root level structures  */
  12671.  } RECORDINSERT;
  12672.  
  12673.  
  12674. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  12675.  
  12676. cb (ULONG) 
  12677.    Structure size. 
  12678.  
  12679.    The size (in bytes) of the RECORDINSERT structure. 
  12680.  
  12681.  
  12682. ΓòÉΓòÉΓòÉ <hidden> pRecordOrder ΓòÉΓòÉΓòÉ
  12683.  
  12684. pRecordOrder (PRECORDCORE) 
  12685.    Record order. 
  12686.  
  12687.    Orders the RECORDCORE structure or structures relative to other RECORDCORE 
  12688.    structures in the container. The values can be: 
  12689.  
  12690.    CMA_FIRST 
  12691.       Places a RECORDCORE structure, or list of RECORDCORE structures, at the 
  12692.       beginning of the list of structures. 
  12693.    CMA_END 
  12694.       Places a RECORDCORE structure, or list of RECORDCORE structures, at the 
  12695.       end of the list of structures. 
  12696.    Other 
  12697.       Pointer to a RECORDCORE structure that this structure, or list of 
  12698.       structures, is to be inserted after. 
  12699.  
  12700.  
  12701. ΓòÉΓòÉΓòÉ <hidden> pRecordParent ΓòÉΓòÉΓòÉ
  12702.  
  12703. pRecordParent (PRECORDCORE) 
  12704.    Pointer. 
  12705.  
  12706.    Pointer to a RECORDCORE structure that is the parent of the record or 
  12707.    records to be inserted. This field is used only with the CMA_FIRST or 
  12708.    CMA_END attributes of the pRecordOrder field. 
  12709.  
  12710.  
  12711. ΓòÉΓòÉΓòÉ <hidden> fInvalidateRecord ΓòÉΓòÉΓòÉ
  12712.  
  12713. fInvalidateRecord (ULONG) 
  12714.    Update flag. 
  12715.  
  12716.    Flag that indicates an automatic display update after RECORDCORE  structures 
  12717.    are inserted. 
  12718.  
  12719.    TRUE 
  12720.       The display is automatically updated after a RECORDCORE structure is 
  12721.       inserted. 
  12722.    FALSE 
  12723.       The application must send the CM_INVALIDATERECORD message after a 
  12724.       RECORDCORE structure is inserted. 
  12725.  
  12726.  
  12727. ΓòÉΓòÉΓòÉ <hidden> zOrder ΓòÉΓòÉΓòÉ
  12728.  
  12729. zOrder (ULONG) 
  12730.    Record z-order. 
  12731.  
  12732.    Positions the RECORDCORE structure in z-order, relative to other records in 
  12733.    the container. The values can be: 
  12734.  
  12735.    CMA_TOP 
  12736.       Places a RECORDCORE structure at the top of the z-order. This is the 
  12737.       default value. 
  12738.    CMA_BOTTOM 
  12739.       Places a RECORDCORE structure at the bottom of the z-order. 
  12740.  
  12741.  
  12742. ΓòÉΓòÉΓòÉ <hidden> cRecordsInsert ΓòÉΓòÉΓòÉ
  12743.  
  12744. cRecordsInsert (ULONG) 
  12745.    Number of root level structures. 
  12746.  
  12747.    The number of root level RECORDCORE structures to be inserted. The 
  12748.    cRecordsInsert field value must be greater than 0. 
  12749.  
  12750.  
  12751. ΓòÉΓòÉΓòÉ 4.375. RECORDITEM ΓòÉΓòÉΓòÉ
  12752.  
  12753. RECORDITEM USAGE_RECORD structure. 
  12754.  
  12755. typedef struct _RECORDITEM {
  12756. HWND               hwndCnr;  /* Container into which object is inserted  */
  12757. PMINIRECORDCORE    pRecord;  /* Record pointer within container  */
  12758. ULONG              ulUser;   /* For application use  */
  12759.  } RECORDITEM;
  12760.  
  12761.  
  12762. ΓòÉΓòÉΓòÉ <hidden> hwndCnr ΓòÉΓòÉΓòÉ
  12763.  
  12764. hwndCnr (HWND) 
  12765.    Container into which object is inserted. 
  12766.  
  12767.  
  12768. ΓòÉΓòÉΓòÉ <hidden> pRecord ΓòÉΓòÉΓòÉ
  12769.  
  12770. pRecord (PMINIRECORDCORE) 
  12771.    Record pointer within container. 
  12772.  
  12773.  
  12774. ΓòÉΓòÉΓòÉ <hidden> ulUser ΓòÉΓòÉΓòÉ
  12775.  
  12776. ulUser (ULONG) 
  12777.    For application use. 
  12778.  
  12779.  
  12780. ΓòÉΓòÉΓòÉ 4.376. RECTL ΓòÉΓòÉΓòÉ
  12781.  
  12782. RECTL Rectangle structure. 
  12783.  
  12784. typedef struct _RECTL {
  12785. LONG    xLeft;    /* X-coordinate of left-hand edge of rectangle  */
  12786. LONG    yBottom;  /* Y-coordinate of bottom edge of rectangle  */
  12787. LONG    xRight;   /* X-coordinate of right-hand edge of rectangle  */
  12788. LONG    yTop;     /* Y-coordinate of top edge of rectangle  */
  12789.  } RECTL;
  12790.  
  12791.  
  12792. ΓòÉΓòÉΓòÉ <hidden> xLeft ΓòÉΓòÉΓòÉ
  12793.  
  12794. xLeft (LONG) 
  12795.    X-coordinate of left-hand edge of rectangle. 
  12796.  
  12797.  
  12798. ΓòÉΓòÉΓòÉ <hidden> yBottom ΓòÉΓòÉΓòÉ
  12799.  
  12800. yBottom (LONG) 
  12801.    Y-coordinate of bottom edge of rectangle. 
  12802.  
  12803.  
  12804. ΓòÉΓòÉΓòÉ <hidden> xRight ΓòÉΓòÉΓòÉ
  12805.  
  12806. xRight (LONG) 
  12807.    X-coordinate of right-hand edge of rectangle. 
  12808.  
  12809.  
  12810. ΓòÉΓòÉΓòÉ <hidden> yTop ΓòÉΓòÉΓòÉ
  12811.  
  12812. yTop (LONG) 
  12813.    Y-coordinate of top edge of rectangle. 
  12814.  
  12815.  
  12816. ΓòÉΓòÉΓòÉ 4.377. RENDERFILE ΓòÉΓòÉΓòÉ
  12817.  
  12818. RENDERFILE File-rendering structure. 
  12819.  
  12820. typedef struct _RENDERFILE {
  12821. HWND      hwndDragFiles;  /* Conversation handle  */
  12822. HSTR      hstrSource;     /* Handle to source file name  */
  12823. HSTR      hstrTarget;     /* Handle to target file name  */
  12824. USHORT    fMove;          /* Operation  */
  12825. USHORT    usRsvd;         /* Reserved  */
  12826.  } RENDERFILE;
  12827.  
  12828.  
  12829. ΓòÉΓòÉΓòÉ <hidden> hwndDragFiles ΓòÉΓòÉΓòÉ
  12830.  
  12831. hwndDragFiles (HWND) 
  12832.    Conversation handle. 
  12833.  
  12834.    Created by DrgDragFiles. 
  12835.  
  12836.  
  12837. ΓòÉΓòÉΓòÉ <hidden> hstrSource ΓòÉΓòÉΓòÉ
  12838.  
  12839. hstrSource (HSTR) 
  12840.    Handle to source file name. 
  12841.  
  12842.  
  12843. ΓòÉΓòÉΓòÉ <hidden> hstrTarget ΓòÉΓòÉΓòÉ
  12844.  
  12845. hstrTarget (HSTR) 
  12846.    Handle to target file name. 
  12847.  
  12848.  
  12849. ΓòÉΓòÉΓòÉ <hidden> fMove ΓòÉΓòÉΓòÉ
  12850.  
  12851. fMove (USHORT) 
  12852.    Operation. 
  12853.  
  12854.    TRUE 
  12855.       Move the file. 
  12856.    FALSE 
  12857.       Copy the file. 
  12858.  
  12859.  
  12860. ΓòÉΓòÉΓòÉ <hidden> usRsvd ΓòÉΓòÉΓòÉ
  12861.  
  12862. usRsvd (USHORT) 
  12863.    Reserved. 
  12864.  
  12865.  
  12866. ΓòÉΓòÉΓòÉ 4.378. RGB ΓòÉΓòÉΓòÉ
  12867.  
  12868. RGB RGB color value. 
  12869.  
  12870. typedef struct _RGB {
  12871. BYTE    bBlue;   /* Blue component of the color definition  */
  12872. BYTE    bGreen;  /* Green component of the color definition  */
  12873. BYTE    bRed;    /* Red component of the color definition  */
  12874.  } RGB;
  12875.  
  12876.  
  12877. ΓòÉΓòÉΓòÉ <hidden> bBlue ΓòÉΓòÉΓòÉ
  12878.  
  12879. bBlue (BYTE) 
  12880.    Blue component of the color definition. 
  12881.  
  12882.  
  12883. ΓòÉΓòÉΓòÉ <hidden> bGreen ΓòÉΓòÉΓòÉ
  12884.  
  12885. bGreen (BYTE) 
  12886.    Green component of the color definition. 
  12887.  
  12888.  
  12889. ΓòÉΓòÉΓòÉ <hidden> bRed ΓòÉΓòÉΓòÉ
  12890.  
  12891. bRed (BYTE) 
  12892.    Red component of the color definition. 
  12893.  
  12894.  
  12895. ΓòÉΓòÉΓòÉ 4.379. RGB2 ΓòÉΓòÉΓòÉ
  12896.  
  12897. RGB2 RGB color value. 
  12898.  
  12899. typedef struct _RGB2 {
  12900. BYTE    bBlue;      /* Blue component of the color definition  */
  12901. BYTE    bGreen;     /* Green component of the color definition  */
  12902. BYTE    bRed;       /* Red component of the color definition  */
  12903. BYTE    fcOptions;  /* Entry options  */
  12904.  } RGB2;
  12905.  
  12906.  
  12907. ΓòÉΓòÉΓòÉ <hidden> bBlue ΓòÉΓòÉΓòÉ
  12908.  
  12909. bBlue (BYTE) 
  12910.    Blue component of the color definition. 
  12911.  
  12912.  
  12913. ΓòÉΓòÉΓòÉ <hidden> bGreen ΓòÉΓòÉΓòÉ
  12914.  
  12915. bGreen (BYTE) 
  12916.    Green component of the color definition. 
  12917.  
  12918.  
  12919. ΓòÉΓòÉΓòÉ <hidden> bRed ΓòÉΓòÉΓòÉ
  12920.  
  12921. bRed (BYTE) 
  12922.    Red component of the color definition. 
  12923.  
  12924.  
  12925. ΓòÉΓòÉΓòÉ <hidden> fcOptions ΓòÉΓòÉΓòÉ
  12926.  
  12927. fcOptions (BYTE) 
  12928.    Entry options. 
  12929.  
  12930.    These can be ORed together if required: 
  12931.  
  12932.    PC_RESERVED 
  12933.       The color entry is reserved for animating color with the palette manager. 
  12934.    PC_EXPLICIT 
  12935.       The low-order word of the color table entry designates a physical palette 
  12936.       slot.  This allows an application to show the actual contents of the 
  12937.       device palette as realized for other logical palettes.  This does not 
  12938.       prevent the color in the slot from being changed for any reason. 
  12939.  
  12940.  
  12941. ΓòÉΓòÉΓòÉ 4.380. RGNRECT ΓòÉΓòÉΓòÉ
  12942.  
  12943. RGNRECT Region-rectangle structure. 
  12944.  
  12945. typedef struct _RGNRECT {
  12946. ULONG    ircStart;     /* Rectangle number from which to start enumerating  */
  12947. ULONG    crc;          /* Number of rectangles that can be returned  */
  12948. ULONG    crcReturned;  /* Number of rectangles returned  */
  12949. ULONG    ulDirection;  /* Direction in which the returned rectangles are to be ordered  */
  12950.  } RGNRECT;
  12951.  
  12952.  
  12953. ΓòÉΓòÉΓòÉ <hidden> ircStart ΓòÉΓòÉΓòÉ
  12954.  
  12955. ircStart (ULONG) 
  12956.    Rectangle number from which to start enumerating. 
  12957.  
  12958.    Numbering starts from 1. 
  12959.  
  12960.  
  12961. ΓòÉΓòÉΓòÉ <hidden> crc ΓòÉΓòÉΓòÉ
  12962.  
  12963. crc (ULONG) 
  12964.    Number of rectangles that can be returned. 
  12965.  
  12966.    This must be 1 or greater. 
  12967.  
  12968.  
  12969. ΓòÉΓòÉΓòÉ <hidden> crcReturned ΓòÉΓòÉΓòÉ
  12970.  
  12971. crcReturned (ULONG) 
  12972.    Number of rectangles returned. 
  12973.  
  12974.    A value of less than crc indicates that there are no more rectangles to 
  12975.    enumerate. 
  12976.  
  12977.  
  12978. ΓòÉΓòÉΓòÉ <hidden> ulDirection ΓòÉΓòÉΓòÉ
  12979.  
  12980. ulDirection (ULONG) 
  12981.    Direction in which the returned rectangles are to be ordered. 
  12982.  
  12983.    This ordering uses the leading edge of a rectangle. 
  12984.  
  12985.    RECTDIR_LFRT_TOPBOT 
  12986.       Left-to-right, top-to-bottom 
  12987.    RECTDIR_RTLF_TOPBOT 
  12988.       Right-to-left, top-to-bottom 
  12989.    RECTDIR_LFRT_BOTTOP 
  12990.       Left-to-right, bottom-to-top 
  12991.    RECTDIR_RTLF_BOTTOP 
  12992.       Right-to-left, bottom-to-top. 
  12993.  
  12994.  
  12995. ΓòÉΓòÉΓòÉ 4.381. SBCDATA ΓòÉΓòÉΓòÉ
  12996.  
  12997. SBCDATA Scroll-bar control data structure. 
  12998.  
  12999. typedef struct _SBCDATA {
  13000. USHORT    cb;        /* Length of control data in bytes  */
  13001. USHORT    sHilite;   /* Highlighting code  */
  13002. SHORT     posFirst;  /* First bound of the scroll-bar range  */
  13003. SHORT     posLast;   /* Last bound of the scroll-bar range  */
  13004. SHORT     posThumb;  /* Slider position  */
  13005. SHORT     cVisible;  /* Number of data items visible  */
  13006. SHORT     cTotal;    /* Number of data items available  */
  13007.  } SBCDATA;
  13008.  
  13009.  
  13010. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  13011.  
  13012. cb (USHORT) 
  13013.    Length of control data in bytes. 
  13014.  
  13015.    The length of the control data for a scroll-bar control. 
  13016.  
  13017.  
  13018. ΓòÉΓòÉΓòÉ <hidden> sHilite ΓòÉΓòÉΓòÉ
  13019.  
  13020. sHilite (USHORT) 
  13021.    Highlighting code. 
  13022.  
  13023.    This indicates which part of the scroll bar is to be highlighted, if any. 
  13024.  
  13025.    ZERO 
  13026.       No highlighting 
  13027.    SB_LINEUP 
  13028.       Line up arrow 
  13029.    SB_LINELEFT 
  13030.       Line left arrow 
  13031.    SB_LINEDOWN 
  13032.       Line down arrow 
  13033.    SB_LINERIGHT 
  13034.       Line right arrow 
  13035.    SB_PAGEUP 
  13036.       Page up arrow 
  13037.    SB_PAGELEFT 
  13038.       Page left arrow 
  13039.    SB_PAGEDOWN 
  13040.       Page down arrow 
  13041.    SB_PAGERIGHT 
  13042.       Page right arrow 
  13043.    SB_SLIDERTRACK 
  13044.       Slider. 
  13045.  
  13046.  
  13047. ΓòÉΓòÉΓòÉ <hidden> posFirst ΓòÉΓòÉΓòÉ
  13048.  
  13049. posFirst (SHORT) 
  13050.    First bound of the scroll-bar range. 
  13051.  
  13052.  
  13053. ΓòÉΓòÉΓòÉ <hidden> posLast ΓòÉΓòÉΓòÉ
  13054.  
  13055. posLast (SHORT) 
  13056.    Last bound of the scroll-bar range. 
  13057.  
  13058.  
  13059. ΓòÉΓòÉΓòÉ <hidden> posThumb ΓòÉΓòÉΓòÉ
  13060.  
  13061. posThumb (SHORT) 
  13062.    Slider position. 
  13063.  
  13064.  
  13065. ΓòÉΓòÉΓòÉ <hidden> cVisible ΓòÉΓòÉΓòÉ
  13066.  
  13067. cVisible (SHORT) 
  13068.    Number of data items visible. 
  13069.  
  13070.  
  13071. ΓòÉΓòÉΓòÉ <hidden> cTotal ΓòÉΓòÉΓòÉ
  13072.  
  13073. cTotal (SHORT) 
  13074.    Number of data items available. 
  13075.  
  13076.  
  13077. ΓòÉΓòÉΓòÉ 4.382. SEARCHSTRING ΓòÉΓòÉΓòÉ
  13078.  
  13079. SEARCHSTRING Structure that contains information about the container text 
  13080. string that is the object of the search. This structure is used in the 
  13081. CM_SEARCHSTRING container message only. 
  13082.  
  13083. typedef struct _SEARCHSTRING {
  13084. ULONG    cb;               /* Structure size  */
  13085. PSZ      pszSearch;        /* Pointer  */
  13086. ULONG    fsPrefix;         /* Search flag  */
  13087. ULONG    fsCaseSensitive;  /* Case sensitivity  */
  13088. ULONG    usView;           /* View to search  */
  13089.  } SEARCHSTRING;
  13090.  
  13091.  
  13092. ΓòÉΓòÉΓòÉ <hidden> cb ΓòÉΓòÉΓòÉ
  13093.  
  13094. cb (ULONG) 
  13095.    Structure size. 
  13096.  
  13097.    The size (in bytes) of the SEARCHSTRING structure. 
  13098.  
  13099.  
  13100. ΓòÉΓòÉΓòÉ <hidden> pszSearch ΓòÉΓòÉΓòÉ
  13101.  
  13102. pszSearch (PSZ) 
  13103.    Pointer. 
  13104.  
  13105.    Pointer to the search string. 
  13106.  
  13107.  
  13108. ΓòÉΓòÉΓòÉ <hidden> fsPrefix ΓòÉΓòÉΓòÉ
  13109.  
  13110. fsPrefix (ULONG) 
  13111.    Search flag. 
  13112.  
  13113.    Search flag that defines the criteria by which the string specified by the 
  13114.    pszSearch field is to be compared with the text of the container records to 
  13115.    determine the pointer to the first matching record. 
  13116.  
  13117.    TRUE 
  13118.       Matching occurs if the leading characters of the container record are the 
  13119.       characters specified by the pszSearch field. 
  13120.    FALSE 
  13121.       Matching occurs if the container record contains a substring of the 
  13122.       characters specified by the pszSearch field. 
  13123.  
  13124.  
  13125. ΓòÉΓòÉΓòÉ <hidden> fsCaseSensitive ΓòÉΓòÉΓòÉ
  13126.  
  13127. fsCaseSensitive (ULONG) 
  13128.    Case sensitivity. 
  13129.  
  13130.    Determines case sensitivity of the search. 
  13131.  
  13132.    TRUE 
  13133.       The search is case sensitive. 
  13134.    FALSE 
  13135.       The search is not case sensitive. 
  13136.  
  13137.  
  13138. ΓòÉΓòÉΓòÉ <hidden> usView ΓòÉΓòÉΓòÉ
  13139.  
  13140. usView (ULONG) 
  13141.    View to search. 
  13142.  
  13143.    Search one of the container views for the string. Valid values are: 
  13144.  
  13145.    o CV_ICON 
  13146.    o CV_NAME 
  13147.    o CV_TEXT 
  13148.    o CV_TREE 
  13149.    o CV_DETAIL. 
  13150.  
  13151.  
  13152. ΓòÉΓòÉΓòÉ 4.383. SFACTORS ΓòÉΓòÉΓòÉ
  13153.  
  13154. SFACTORS Scaling factors, see DevEscape. 
  13155.  
  13156. typedef struct _SFACTORS {
  13157. LONG    x;  /* x-scaling factor, as an exponent of 2  */
  13158. LONG    y;  /* y-scaling factor, as an exponent of 2  */
  13159.  } SFACTORS;
  13160.  
  13161.  
  13162. ΓòÉΓòÉΓòÉ <hidden> x ΓòÉΓòÉΓòÉ
  13163.  
  13164. x (LONG) 
  13165.    x-scaling factor, as an exponent of 2. 
  13166.  
  13167.  
  13168. ΓòÉΓòÉΓòÉ <hidden> y ΓòÉΓòÉΓòÉ
  13169.  
  13170. y (LONG) 
  13171.    y-scaling factor, as an exponent of 2. 
  13172.  
  13173.  
  13174. ΓòÉΓòÉΓòÉ 4.384. SHANDLE ΓòÉΓòÉΓòÉ
  13175.  
  13176. SHANDLE The handle of a resource. 
  13177.  
  13178. typedef unsigned short SHANDLE;
  13179.  
  13180.  
  13181. ΓòÉΓòÉΓòÉ 4.385. SHORT ΓòÉΓòÉΓòÉ
  13182.  
  13183. SHORT Signed integer in the range -32 768 through 32 767. 
  13184.  
  13185. #define SHORT short
  13186.  
  13187.  
  13188. ΓòÉΓòÉΓòÉ 4.386. SIZEF ΓòÉΓòÉΓòÉ
  13189.  
  13190. SIZEF Size structure. 
  13191.  
  13192. typedef struct _SIZEF {
  13193. FIXED    cx;  /* Width  */
  13194. FIXED    cy;  /* Height  */
  13195.  } SIZEF;
  13196.  
  13197.  
  13198. ΓòÉΓòÉΓòÉ <hidden> cx ΓòÉΓòÉΓòÉ
  13199.  
  13200. cx (FIXED) 
  13201.    Width. 
  13202.  
  13203.  
  13204. ΓòÉΓòÉΓòÉ <hidden> cy ΓòÉΓòÉΓòÉ
  13205.  
  13206. cy (FIXED) 
  13207.    Height. 
  13208.  
  13209.  
  13210. ΓòÉΓòÉΓòÉ 4.387. SIZEL ΓòÉΓòÉΓòÉ
  13211.  
  13212. SIZEL Size structure. 
  13213.  
  13214. typedef struct _SIZEL {
  13215. LONG    cx;  /* Width  */
  13216. LONG    cy;  /* Height  */
  13217.  } SIZEL;
  13218.  
  13219.  
  13220. ΓòÉΓòÉΓòÉ <hidden> cx ΓòÉΓòÉΓòÉ
  13221.  
  13222. cx (LONG) 
  13223.    Width. 
  13224.  
  13225.  
  13226. ΓòÉΓòÉΓòÉ <hidden> cy ΓòÉΓòÉΓòÉ
  13227.  
  13228. cy (LONG) 
  13229.    Height. 
  13230.  
  13231.  
  13232. ΓòÉΓòÉΓòÉ 4.388. SLDCDATA ΓòÉΓòÉΓòÉ
  13233.  
  13234. SLDCDATA Slider control data structure. 
  13235.  
  13236. typedef struct _SLDCDATA {
  13237. ULONG     cbSize;              /* Data length  */
  13238. USHORT    usScale1Increments;  /* Scale increments  */
  13239. USHORT    usScale1Spacing;     /* Scale spacing  */
  13240. USHORT    usScale2Increments;  /* Alternate scale increments  */
  13241. USHORT    usScale2Spacing;     /* Alternate scale spacing  */
  13242.  } SLDCDATA;
  13243.  
  13244.  
  13245. ΓòÉΓòÉΓòÉ <hidden> cbSize ΓòÉΓòÉΓòÉ
  13246.  
  13247. cbSize (ULONG) 
  13248.    Data length. 
  13249.  
  13250.    Length of the control data in bytes. 
  13251.  
  13252.  
  13253. ΓòÉΓòÉΓòÉ <hidden> usScale1Increments ΓòÉΓòÉΓòÉ
  13254.  
  13255. usScale1Increments (USHORT) 
  13256.    Scale increments. 
  13257.  
  13258.    The number of increments to set for the slider control. This number 
  13259.    represents the range of values that can be selected within the slider when 
  13260.    the SLS_PRIMARYSCALE1 style bit is specified. 
  13261.  
  13262.  
  13263. ΓòÉΓòÉΓòÉ <hidden> usScale1Spacing ΓòÉΓòÉΓòÉ
  13264.  
  13265. usScale1Spacing (USHORT) 
  13266.    Scale spacing. 
  13267.  
  13268.    The spacing between increments, expressed in pixels. It represents the unit 
  13269.    that is the smallest division of the scale when the SLS_PRIMARYSCALE1 style 
  13270.    bit is specified. If 0 is specified, the slider automatically calculates the 
  13271.    spacing based on the window size and the number of increments specified. 
  13272.  
  13273.  
  13274. ΓòÉΓòÉΓòÉ <hidden> usScale2Increments ΓòÉΓòÉΓòÉ
  13275.  
  13276. usScale2Increments (USHORT) 
  13277.    Alternate scale increments. 
  13278.  
  13279.    An alternate number of increments to set for the slider control. This number 
  13280.    represents the range of values that can be selected within the slider when 
  13281.    the SLS_PRIMARYSCALE2 style bit is specified. 
  13282.  
  13283.  
  13284. ΓòÉΓòÉΓòÉ <hidden> usScale2Spacing ΓòÉΓòÉΓòÉ
  13285.  
  13286. usScale2Spacing (USHORT) 
  13287.    Alternate scale spacing. 
  13288.  
  13289.    An alternate spacing between increments, expressed in pixels. It represents 
  13290.    the unit that is the smallest division of the scale when the 
  13291.    SLS_PRIMARYSCALE2 style bit is specified. If 0 is specified, the slider 
  13292.    automatically calculates the spacing based on the window size and the number 
  13293.    of increments specified. 
  13294.  
  13295.  
  13296. ΓòÉΓòÉΓòÉ 4.389. SMHSTRUCT ΓòÉΓòÉΓòÉ
  13297.  
  13298. SMHSTRUCT Send-message-hook structure. 
  13299.  
  13300. typedef struct _SMHSTRUCT {
  13301. MPARAM    mp2;    /* Parameter 2  */
  13302. MPARAM    mp1;    /* Parameter 1  */
  13303. ULONG     msg;    /* Message identity  */
  13304. HWND      hwnd;   /* Window handle  */
  13305. ULONG     model;  /* Message identity  */
  13306.  } SMHSTRUCT;
  13307.  
  13308.  
  13309. ΓòÉΓòÉΓòÉ <hidden> mp2 ΓòÉΓòÉΓòÉ
  13310.  
  13311. mp2 (MPARAM) 
  13312.    Parameter 2. 
  13313.  
  13314.  
  13315. ΓòÉΓòÉΓòÉ <hidden> mp1 ΓòÉΓòÉΓòÉ
  13316.  
  13317. mp1 (MPARAM) 
  13318.    Parameter 1. 
  13319.  
  13320.  
  13321. ΓòÉΓòÉΓòÉ <hidden> msg ΓòÉΓòÉΓòÉ
  13322.  
  13323. msg (ULONG) 
  13324.    Message identity. 
  13325.  
  13326.  
  13327. ΓòÉΓòÉΓòÉ <hidden> hwnd ΓòÉΓòÉΓòÉ
  13328.  
  13329. hwnd (HWND) 
  13330.    Window handle. 
  13331.  
  13332.  
  13333. ΓòÉΓòÉΓòÉ <hidden> model ΓòÉΓòÉΓòÉ
  13334.  
  13335. model (ULONG) 
  13336.    Message identity. 
  13337.  
  13338.  
  13339. ΓòÉΓòÉΓòÉ 4.390. SPLERR ΓòÉΓòÉΓòÉ
  13340.  
  13341. SPLERR Error value in the range 0 to 65 535. 
  13342.  
  13343. typedef unsigned long SPLERR;
  13344.  
  13345.  
  13346. ΓòÉΓòÉΓòÉ 4.391. STR8 ΓòÉΓòÉΓòÉ
  13347.  
  13348. STR8 String of 8 characters. 
  13349.  
  13350. typedef CHAR STR8[8];
  13351.  
  13352.  
  13353. ΓòÉΓòÉΓòÉ 4.392. STR16 ΓòÉΓòÉΓòÉ
  13354.  
  13355. STR16 String of characters, with an implicit length, in a 16-byte field. 
  13356.  
  13357. typedef CHAR STR16[16];
  13358.  
  13359.  
  13360. ΓòÉΓòÉΓòÉ 4.393. STR32 ΓòÉΓòÉΓòÉ
  13361.  
  13362. STR32 String of characters, with an implicit length, in a 32-byte field. 
  13363.  
  13364. typedef CHAR STR32[32];
  13365.  
  13366.  
  13367. ΓòÉΓòÉΓòÉ 4.394. STR64 ΓòÉΓòÉΓòÉ
  13368.  
  13369. STR64 String of characters, with an implicit length, in a 64-byte field. 
  13370.  
  13371. typedef CHAR STR64[64];
  13372.  
  13373.  
  13374. ΓòÉΓòÉΓòÉ 4.395. STYLECHANGE ΓòÉΓòÉΓòÉ
  13375.  
  13376. STYLECHANGE Style-change structure.  This structure is returned by the 
  13377. FNTM_STYLECHANGED message. 
  13378.  
  13379. All "old" fields describe the style attributes before the user made a change. 
  13380. The other, or "new", parameters describe the style that will be in effect after 
  13381. this is passed to WinDefFontDlgProc.  When the "old" and "new" values are the 
  13382. same, the user made no change. 
  13383.  
  13384. For further details of the parameters, see FONTDLG. 
  13385.  
  13386. typedef struct _STYLECHANGE {
  13387. USHORT    usWeight;        /* New weight of font  */
  13388. USHORT    usWeightOld;     /* Old weight of font  */
  13389. USHORT    usWidth;         /* New width of font  */
  13390. USHORT    usWidthOld;      /* Old width of font  */
  13391. ULONG     flType;          /* New type of font  */
  13392. ULONG     flTypeOld;       /* Old type of font  */
  13393. ULONG     flTypeMask;      /* New type mask  */
  13394. ULONG     flTypeMaskOld;   /* Old type mask  */
  13395. ULONG     flStyle;         /* New selected style bits  */
  13396. ULONG     flStyleOld;      /* Old selected style bits  */
  13397. ULONG     flStyleMask;     /* New mask of style bits to use  */
  13398. ULONG     flStyleMaskOld;  /* Old mask of style bits to use  */
  13399.  } STYLECHANGE;
  13400.  
  13401.  
  13402. ΓòÉΓòÉΓòÉ <hidden> usWeight ΓòÉΓòÉΓòÉ
  13403.  
  13404. usWeight (USHORT) 
  13405.    New weight of font. 
  13406.  
  13407.  
  13408. ΓòÉΓòÉΓòÉ <hidden> usWeightOld ΓòÉΓòÉΓòÉ
  13409.  
  13410. usWeightOld (USHORT) 
  13411.    Old weight of font. 
  13412.  
  13413.  
  13414. ΓòÉΓòÉΓòÉ <hidden> usWidth ΓòÉΓòÉΓòÉ
  13415.  
  13416. usWidth (USHORT) 
  13417.    New width of font. 
  13418.  
  13419.  
  13420. ΓòÉΓòÉΓòÉ <hidden> usWidthOld ΓòÉΓòÉΓòÉ
  13421.  
  13422. usWidthOld (USHORT) 
  13423.    Old width of font. 
  13424.  
  13425.  
  13426. ΓòÉΓòÉΓòÉ <hidden> flType ΓòÉΓòÉΓòÉ
  13427.  
  13428. flType (ULONG) 
  13429.    New type of font. 
  13430.  
  13431.  
  13432. ΓòÉΓòÉΓòÉ <hidden> flTypeOld ΓòÉΓòÉΓòÉ
  13433.  
  13434. flTypeOld (ULONG) 
  13435.    Old type of font. 
  13436.  
  13437.  
  13438. ΓòÉΓòÉΓòÉ <hidden> flTypeMask ΓòÉΓòÉΓòÉ
  13439.  
  13440. flTypeMask (ULONG) 
  13441.    New type mask. 
  13442.  
  13443.  
  13444. ΓòÉΓòÉΓòÉ <hidden> flTypeMaskOld ΓòÉΓòÉΓòÉ
  13445.  
  13446. flTypeMaskOld (ULONG) 
  13447.    Old type mask. 
  13448.  
  13449.  
  13450. ΓòÉΓòÉΓòÉ <hidden> flStyle ΓòÉΓòÉΓòÉ
  13451.  
  13452. flStyle (ULONG) 
  13453.    New selected style bits. 
  13454.  
  13455.  
  13456. ΓòÉΓòÉΓòÉ <hidden> flStyleOld ΓòÉΓòÉΓòÉ
  13457.  
  13458. flStyleOld (ULONG) 
  13459.    Old selected style bits. 
  13460.  
  13461.  
  13462. ΓòÉΓòÉΓòÉ <hidden> flStyleMask ΓòÉΓòÉΓòÉ
  13463.  
  13464. flStyleMask (ULONG) 
  13465.    New mask of style bits to use. 
  13466.  
  13467.  
  13468. ΓòÉΓòÉΓòÉ <hidden> flStyleMaskOld ΓòÉΓòÉΓòÉ
  13469.  
  13470. flStyleMaskOld (ULONG) 
  13471.    Old mask of style bits to use. 
  13472.  
  13473.  
  13474. ΓòÉΓòÉΓòÉ 4.396. SWBLOCK ΓòÉΓòÉΓòÉ
  13475.  
  13476. SWBLOCK Switch-list block structure. 
  13477.  
  13478. typedef struct _SWBLOCK {
  13479. ULONG      cswentry;     /* Count of switch list entries  */
  13480. SWENTRY    aswentry[1];  /* Switch list entries  */
  13481.  } SWBLOCK;
  13482.  
  13483.  
  13484. ΓòÉΓòÉΓòÉ <hidden> cswentry ΓòÉΓòÉΓòÉ
  13485.  
  13486. cswentry (ULONG) 
  13487.    Count of switch list entries. 
  13488.  
  13489.  
  13490. ΓòÉΓòÉΓòÉ <hidden> aswentry[1] ΓòÉΓòÉΓòÉ
  13491.  
  13492. aswentry[1] (SWENTRY) 
  13493.    Switch list entries. 
  13494.  
  13495.  
  13496. ΓòÉΓòÉΓòÉ 4.397. SWCNTRL ΓòÉΓòÉΓòÉ
  13497.  
  13498. SWCNTRL Switch-list control block structure. 
  13499.  
  13500. typedef struct _SWCNTRL {
  13501. HWND        hwnd;                   /* Window handle  */
  13502. HWND        hwndIcon;               /* Window-handle icon  */
  13503. HPROGRAM    hprog;                  /* Program handle  */
  13504. PID         idProcess;              /* Process identity  */
  13505. ULONG       idSession;              /* Session identity  */
  13506. ULONG       uchVisibility;          /* Visibility  */
  13507. ULONG       fbJump;                 /* Jump indicator  */
  13508. CHAR        szSwtitle[MAXNAMEL+4];  /* Switch-list control block title (NULL-terminated)  */
  13509. ULONG       bProgType;              /* Program type  */
  13510.  } SWCNTRL;
  13511.  
  13512.  
  13513. ΓòÉΓòÉΓòÉ <hidden> hwnd ΓòÉΓòÉΓòÉ
  13514.  
  13515. hwnd (HWND) 
  13516.    Window handle. 
  13517.  
  13518.  
  13519. ΓòÉΓòÉΓòÉ <hidden> hwndIcon ΓòÉΓòÉΓòÉ
  13520.  
  13521. hwndIcon (HWND) 
  13522.    Window-handle icon. 
  13523.  
  13524.  
  13525. ΓòÉΓòÉΓòÉ <hidden> hprog ΓòÉΓòÉΓòÉ
  13526.  
  13527. hprog (HPROGRAM) 
  13528.    Program handle. 
  13529.  
  13530.  
  13531. ΓòÉΓòÉΓòÉ <hidden> idProcess ΓòÉΓòÉΓòÉ
  13532.  
  13533. idProcess (PID) 
  13534.    Process identity. 
  13535.  
  13536.  
  13537. ΓòÉΓòÉΓòÉ <hidden> idSession ΓòÉΓòÉΓòÉ
  13538.  
  13539. idSession (ULONG) 
  13540.    Session identity. 
  13541.  
  13542.  
  13543. ΓòÉΓòÉΓòÉ <hidden> uchVisibility ΓòÉΓòÉΓòÉ
  13544.  
  13545. uchVisibility (ULONG) 
  13546.    Visibility: 
  13547.  
  13548.    SWL_VISIBLE 
  13549.       Visible in startup list 
  13550.    SWL_INVISIBLE 
  13551.       Invisible in startup list 
  13552.    SWL_GRAYED 
  13553.       Item cannot be switched to (note that it is not actually grayed in the 
  13554.       list). 
  13555.  
  13556.  
  13557. ΓòÉΓòÉΓòÉ <hidden> fbJump ΓòÉΓòÉΓòÉ
  13558.  
  13559. fbJump (ULONG) 
  13560.    Jump indicator: 
  13561.  
  13562.    SWL_JUMPABLE 
  13563.       Participates in jump sequence 
  13564.    SWL_NOTJUMPABLE 
  13565.       Does not participate in jump sequence. 
  13566.  
  13567.  
  13568. ΓòÉΓòÉΓòÉ <hidden> szSwtitle[MAXNAMEL+4] ΓòÉΓòÉΓòÉ
  13569.  
  13570. szSwtitle[MAXNAMEL+4] (CHAR) 
  13571.    Switch-list control block title (NULL-terminated). 
  13572.  
  13573.  
  13574. ΓòÉΓòÉΓòÉ <hidden> bProgType ΓòÉΓòÉΓòÉ
  13575.  
  13576. bProgType (ULONG) 
  13577.    Program type. 
  13578.  
  13579.    Possible values are: 
  13580.  
  13581.    PROG_DEFAULT                  0 
  13582.    PROG_FULLSCREEN               1 
  13583.    PROG_WINDOWABLEVIO            2 
  13584.    PROG_PM                       3 
  13585.    PROG_VDM                      4 
  13586.    PROG_WINDOWEDVDM              7 
  13587.    Although there are several other program types for WIN-OS/2 programs, these 
  13588.    do not show up in this structure. Instead, the PROG_VDM or PROG_WINDOWEDVDM 
  13589.    program types are used. For instance, for PROG_31_STDSEAMLESSVDM, 
  13590.    PROG_WINDOWEDVDM is used. This is because all the WIN-OS/2 programs run in 
  13591.    DOS sessions. For example, if a program is a windowed WIN-OS/2 program, it 
  13592.    runs in a PROG_WINDOWEDVDM session. Likewise, if it's a full-screen WIN-OS/2 
  13593.    program, it runs in a PROG_VDM session. 
  13594.    These values are contained in PMSHL.H. 
  13595.  
  13596.  
  13597. ΓòÉΓòÉΓòÉ 4.398. SWENTRY ΓòÉΓòÉΓòÉ
  13598.  
  13599. SWENTRY Switch-list entry structure. 
  13600.  
  13601. typedef struct _SWENTRY {
  13602. HSWITCH    hswitch;  /* Switch-list entry handle  */
  13603. SWCNTRL    swctl;    /* Switch-list control block structure  */
  13604.  } SWENTRY;
  13605.  
  13606.  
  13607. ΓòÉΓòÉΓòÉ <hidden> hswitch ΓòÉΓòÉΓòÉ
  13608.  
  13609. hswitch (HSWITCH) 
  13610.    Switch-list entry handle. 
  13611.  
  13612.  
  13613. ΓòÉΓòÉΓòÉ <hidden> swctl ΓòÉΓòÉΓòÉ
  13614.  
  13615. swctl (SWCNTRL) 
  13616.    Switch-list control block structure. 
  13617.  
  13618.  
  13619. ΓòÉΓòÉΓòÉ 4.399. SWP ΓòÉΓòÉΓòÉ
  13620.  
  13621. SWP Set-window-position structure. 
  13622.  
  13623. typedef struct _SWP {
  13624. ULONG    fl;                /* Options  */
  13625. LONG     cy;                /* Window height  */
  13626. LONG     cx;                /* Window width  */
  13627. LONG     y;                 /* Y-coordinate of origin  */
  13628. LONG     x;                 /* X-coordinate of origin  */
  13629. HWND     hwndInsertBehind;  /* Window behind which this window is placed  */
  13630. HWND     hwnd;              /* Window handle  */
  13631. ULONG    ulReserved1;       /* Reserved.  This must be 0  */
  13632. ULONG    ulReserved2;       /* Reserved.  This must be 0  */
  13633.  } SWP;
  13634.  
  13635.  
  13636. ΓòÉΓòÉΓòÉ <hidden> fl ΓòÉΓòÉΓòÉ
  13637.  
  13638. fl (ULONG) 
  13639.    Options. 
  13640.  
  13641.    In alphabetic order: 
  13642.  
  13643.    SWP_ACTIVATE 
  13644.  
  13645.    SWP_DEACTIVATE 
  13646.  
  13647.    SWP_HIDE 
  13648.  
  13649.    SWP_MAXIMIZE 
  13650.  
  13651.    SWP_MINIMIZE 
  13652.  
  13653.    SWP_MOVE 
  13654.  
  13655.    SWP_NOADJUST 
  13656.  
  13657.    SWP_NOERASEWINDOW 
  13658.  
  13659.    SWP_NOREDRAW 
  13660.  
  13661.    SWP_RESTORE 
  13662.  
  13663.    SWP_SHOW 
  13664.  
  13665.    SWP_SIZE 
  13666.  
  13667.    SWP_ZORDER 
  13668.  
  13669.  
  13670. ΓòÉΓòÉΓòÉ <hidden> cy ΓòÉΓòÉΓòÉ
  13671.  
  13672. cy (LONG) 
  13673.    Window height. 
  13674.  
  13675.  
  13676. ΓòÉΓòÉΓòÉ <hidden> cx ΓòÉΓòÉΓòÉ
  13677.  
  13678. cx (LONG) 
  13679.    Window width. 
  13680.  
  13681.  
  13682. ΓòÉΓòÉΓòÉ <hidden> y ΓòÉΓòÉΓòÉ
  13683.  
  13684. y (LONG) 
  13685.    Y-coordinate of origin. 
  13686.  
  13687.  
  13688. ΓòÉΓòÉΓòÉ <hidden> x ΓòÉΓòÉΓòÉ
  13689.  
  13690. x (LONG) 
  13691.    X-coordinate of origin. 
  13692.  
  13693.  
  13694. ΓòÉΓòÉΓòÉ <hidden> hwndInsertBehind ΓòÉΓòÉΓòÉ
  13695.  
  13696. hwndInsertBehind (HWND) 
  13697.    Window behind which this window is placed. 
  13698.  
  13699.  
  13700. ΓòÉΓòÉΓòÉ <hidden> hwnd ΓòÉΓòÉΓòÉ
  13701.  
  13702. hwnd (HWND) 
  13703.    Window handle. 
  13704.  
  13705.  
  13706. ΓòÉΓòÉΓòÉ <hidden> ulReserved1 ΓòÉΓòÉΓòÉ
  13707.  
  13708. ulReserved1 (ULONG) 
  13709.    Reserved.  This must be 0. 
  13710.  
  13711.  
  13712. ΓòÉΓòÉΓòÉ <hidden> ulReserved2 ΓòÉΓòÉΓòÉ
  13713.  
  13714. ulReserved2 (ULONG) 
  13715.    Reserved.  This must be 0. 
  13716.  
  13717.  
  13718. ΓòÉΓòÉΓòÉ 4.400. TID ΓòÉΓòÉΓòÉ
  13719.  
  13720. TID Thread identity. 
  13721.  
  13722. typedef LHANDLE TID;
  13723.  
  13724.  
  13725. ΓòÉΓòÉΓòÉ 4.401. TRACKINFO ΓòÉΓòÉΓòÉ
  13726.  
  13727. TRACKINFO Tracking-information structure. 
  13728.  
  13729. typedef struct _TRACKINFO {
  13730. LONG      cxBorder;         /* Border width  */
  13731. LONG      cyBorder;         /* Border height  */
  13732. LONG      cxGrid;           /* Grid width  */
  13733. LONG      cyGrid;           /* Grid height  */
  13734. LONG      cxKeyboard;       /* Character cell width movement for arrow key  */
  13735. LONG      cyKeyboard;       /* Character cell height movement for arrow key  */
  13736. RECTL     rclTrack;         /* Starting tracking rectangle  */
  13737. RECTL     rclBoundary;      /* Boundary rectangle  */
  13738. POINTL    ptlMinTrackSize;  /* Minimum tracking size  */
  13739. POINTL    ptlMaxTrackSize;  /* Maximum tracking size  */
  13740. ULONG     fs;               /* Tracking options  */
  13741.  } TRACKINFO;
  13742.  
  13743.  
  13744. ΓòÉΓòÉΓòÉ <hidden> cxBorder ΓòÉΓòÉΓòÉ
  13745.  
  13746. cxBorder (LONG) 
  13747.    Border width. 
  13748.  
  13749.    The width of the left and right tracking sides. 
  13750.  
  13751.  
  13752. ΓòÉΓòÉΓòÉ <hidden> cyBorder ΓòÉΓòÉΓòÉ
  13753.  
  13754. cyBorder (LONG) 
  13755.    Border height. 
  13756.  
  13757.    The height of the top and bottom tracking sides. 
  13758.  
  13759.  
  13760. ΓòÉΓòÉΓòÉ <hidden> cxGrid ΓòÉΓòÉΓòÉ
  13761.  
  13762. cxGrid (LONG) 
  13763.    Grid width. 
  13764.  
  13765.    The horizontal bounds of the tracking movements. 
  13766.  
  13767.  
  13768. ΓòÉΓòÉΓòÉ <hidden> cyGrid ΓòÉΓòÉΓòÉ
  13769.  
  13770. cyGrid (LONG) 
  13771.    Grid height. 
  13772.  
  13773.    The vertical bounds of the tracking movements. 
  13774.  
  13775.  
  13776. ΓòÉΓòÉΓòÉ <hidden> cxKeyboard ΓòÉΓòÉΓòÉ
  13777.  
  13778. cxKeyboard (LONG) 
  13779.    Character cell width movement for arrow key. 
  13780.  
  13781.  
  13782. ΓòÉΓòÉΓòÉ <hidden> cyKeyboard ΓòÉΓòÉΓòÉ
  13783.  
  13784. cyKeyboard (LONG) 
  13785.    Character cell height movement for arrow key. 
  13786.  
  13787.  
  13788. ΓòÉΓòÉΓòÉ <hidden> rclTrack ΓòÉΓòÉΓòÉ
  13789.  
  13790. rclTrack (RECTL) 
  13791.    Starting tracking rectangle. 
  13792.  
  13793.    This is modified as the rectangle is tracked and holds the new tracking 
  13794.    position, when tracking is complete. 
  13795.  
  13796.  
  13797. ΓòÉΓòÉΓòÉ <hidden> rclBoundary ΓòÉΓòÉΓòÉ
  13798.  
  13799. rclBoundary (RECTL) 
  13800.    Boundary rectangle. 
  13801.  
  13802.    This is an absolute bounding rectangle that the tracking rectangle cannot 
  13803.    extend; see also TF_ALLINBOUNDARY. 
  13804.  
  13805.  
  13806. ΓòÉΓòÉΓòÉ <hidden> ptlMinTrackSize ΓòÉΓòÉΓòÉ
  13807.  
  13808. ptlMinTrackSize (POINTL) 
  13809.    Minimum tracking size. 
  13810.  
  13811.  
  13812. ΓòÉΓòÉΓòÉ <hidden> ptlMaxTrackSize ΓòÉΓòÉΓòÉ
  13813.  
  13814. ptlMaxTrackSize (POINTL) 
  13815.    Maximum tracking size. 
  13816.  
  13817.  
  13818. ΓòÉΓòÉΓòÉ <hidden> fs ΓòÉΓòÉΓòÉ
  13819.  
  13820. fs (ULONG) 
  13821.    Tracking options. 
  13822.  
  13823.    In alphabetic order: 
  13824.  
  13825.    TF_ALLINBOUNDARY 
  13826.       The default tracking is such that some part of the tracking rectangle is 
  13827.       within the bounding rectangle defined by rclBoundary. This minimum size 
  13828.       is defined by cxBorder and cyBorder. 
  13829.  
  13830.       If TF_ALLINBOUNDARY is specified, the tracking is performed so that no 
  13831.       part of the tracking rectangle ever falls outside of the bounding 
  13832.       rectangle. 
  13833.    TF_BOTTOM 
  13834.       Track the bottom side of the rectangle. 
  13835.    TF_GRID 
  13836.       Tracking is restricted to the grid defined by cxGrid and cyGrid. 
  13837.    TF_LEFT 
  13838.       Track the left side of the rectangle. 
  13839.    TF_MOVE 
  13840.       Track all sides of the rectangle. 
  13841.    TF_RIGHT 
  13842.       Track the right side of the rectangle. 
  13843.    TF_SETPOINTERPOS 
  13844.       The pointer is repositioned according to other flags as follows: 
  13845.  
  13846.       none         Pointer is centered in the tracking rectangle. 
  13847.       TF_MOVE      Pointer is centered in the tracking rectangle. 
  13848.       TF_LEFT      Pointer is vertically centered at the left of the tracking 
  13849.                    rectangle. 
  13850.       TF_TOP       Pointer is horizontally centered at the top of the tracking 
  13851.                    rectangle. 
  13852.       TF_RIGHT     Pointer is vertically centered at the right of the tracking 
  13853.                    rectangle. 
  13854.       TF_BOTTOM    Pointer is horizontally centered at the bottom of the 
  13855.                    tracking rectangle. 
  13856.    TF_STANDARD 
  13857.       cx, cy, cxGrid, and cyGrid are all multiples of cxBorder and cyBorder. 
  13858.    TF_TOP 
  13859.       Track the top side of the rectangle. 
  13860.  
  13861.  
  13862. ΓòÉΓòÉΓòÉ 4.402. TREEITEMDESC ΓòÉΓòÉΓòÉ
  13863.  
  13864. TREEITEMDESC Structure that contains icons and bit maps used to represent the 
  13865. state of an expanded or collapsed parent item in the tree name view of a 
  13866. container control. 
  13867.  
  13868. typedef struct _TREEITEMDESC {
  13869. HBITMAP     hbmExpanded;    /* Expanded bit-map handle  */
  13870. HBITMAP     hbmCollapsed;   /* Collapsed bit-map handle  */
  13871. HPOINTER    hptrExpanded;   /* Expanded icon handle  */
  13872. HPOINTER    hptrCollapsed;  /* Collapsed icon handle  */
  13873.  } TREEITEMDESC;
  13874.  
  13875.  
  13876. ΓòÉΓòÉΓòÉ <hidden> hbmExpanded ΓòÉΓòÉΓòÉ
  13877.  
  13878. hbmExpanded (HBITMAP) 
  13879.    Expanded bit-map handle. 
  13880.  
  13881.    The handle of the bit map to be used to represent an expanded parent item in 
  13882.    the tree name view. 
  13883.  
  13884.  
  13885. ΓòÉΓòÉΓòÉ <hidden> hbmCollapsed ΓòÉΓòÉΓòÉ
  13886.  
  13887. hbmCollapsed (HBITMAP) 
  13888.    Collapsed bit-map handle. 
  13889.  
  13890.    The handle of the bit map to be used to represent a collapsed parent item in 
  13891.    the tree name view. 
  13892.  
  13893.  
  13894. ΓòÉΓòÉΓòÉ <hidden> hptrExpanded ΓòÉΓòÉΓòÉ
  13895.  
  13896. hptrExpanded (HPOINTER) 
  13897.    Expanded icon handle. 
  13898.  
  13899.    The handle of the icon to be used to represent an expanded parent item in 
  13900.    the tree name view. 
  13901.  
  13902.  
  13903. ΓòÉΓòÉΓòÉ <hidden> hptrCollapsed ΓòÉΓòÉΓòÉ
  13904.  
  13905. hptrCollapsed (HPOINTER) 
  13906.    Collapsed icon handle. 
  13907.  
  13908.    The handle of the icon to be used to represent a collapsed parent item in 
  13909.    the tree name view. 
  13910.  
  13911.  
  13912. ΓòÉΓòÉΓòÉ 4.403. UCHAR ΓòÉΓòÉΓòÉ
  13913.  
  13914. UCHAR Unsigned integer in the range 0 through 255. 
  13915.  
  13916. typedef unsigned char UCHAR;
  13917.  
  13918.  
  13919. ΓòÉΓòÉΓòÉ 4.404. ULONG ΓòÉΓòÉΓòÉ
  13920.  
  13921. ULONG Unsigned integer in the range 0 through 4 294 967 295. 
  13922.  
  13923. typedef unsigned long ULONG;
  13924.  
  13925.  
  13926. ΓòÉΓòÉΓòÉ 4.405. USEITEM ΓòÉΓòÉΓòÉ
  13927.  
  13928. USEITEM Use Item data structure. 
  13929.  
  13930. The USEITEM structure is always followed by a type-specific structure. 
  13931.  
  13932. Type                          Structure 
  13933. USAGE_LINK                    LINKITEM 
  13934. USAGE_MEMORY                  MEMORYITEM 
  13935. USAGE_RECORD                  RECORDITEM 
  13936. USAGE_OPENVIEW                VIEWITEM 
  13937. USAGE_OPENFILE                VIEWFILE 
  13938.  
  13939. typedef struct _USEITEM {
  13940. ULONG            type;      /* Type of this item  */
  13941. struct _USEITEM *pNext;     /* Next item in the Use list. */
  13942.  } USEITEM;
  13943.  
  13944.  
  13945. ΓòÉΓòÉΓòÉ <hidden> type ΓòÉΓòÉΓòÉ
  13946.  
  13947. type (ULONG) 
  13948.    Type of this item. 
  13949.  
  13950.  
  13951. ΓòÉΓòÉΓòÉ <hidden> pNext ΓòÉΓòÉΓòÉ
  13952.  
  13953. pNext (struct _USEITEM *) 
  13954.    Next item in the Use list. 
  13955.  
  13956.  
  13957. ΓòÉΓòÉΓòÉ 4.406. USERBUTTON ΓòÉΓòÉΓòÉ
  13958.  
  13959. USERBUTTON User-button data structure. 
  13960.  
  13961. typedef struct _USERBUTTON {
  13962. HWND     hwnd;        /* Window handle  */
  13963. HPS      hps;         /* Presentation-space handle  */
  13964. ULONG    fsState;     /* New state of user button  */
  13965. ULONG    fsStateOld;  /* Old state of user button  */
  13966.  } USERBUTTON;
  13967.  
  13968.  
  13969. ΓòÉΓòÉΓòÉ <hidden> hwnd ΓòÉΓòÉΓòÉ
  13970.  
  13971. hwnd (HWND) 
  13972.    Window handle. 
  13973.  
  13974.  
  13975. ΓòÉΓòÉΓòÉ <hidden> hps ΓòÉΓòÉΓòÉ
  13976.  
  13977. hps (HPS) 
  13978.    Presentation-space handle. 
  13979.  
  13980.  
  13981. ΓòÉΓòÉΓòÉ <hidden> fsState ΓòÉΓòÉΓòÉ
  13982.  
  13983. fsState (ULONG) 
  13984.    New state of user button. 
  13985.  
  13986.  
  13987. ΓòÉΓòÉΓòÉ <hidden> fsStateOld ΓòÉΓòÉΓòÉ
  13988.  
  13989. fsStateOld (ULONG) 
  13990.    Old state of user button. 
  13991.  
  13992.  
  13993. ΓòÉΓòÉΓòÉ 4.407. USHORT ΓòÉΓòÉΓòÉ
  13994.  
  13995. USHORT Unsigned integer in the range 0 through 65 535. 
  13996.  
  13997. typedef unsigned short USHORT;
  13998.  
  13999.  
  14000. ΓòÉΓòÉΓòÉ 4.408. VIEWFILE ΓòÉΓòÉΓòÉ
  14001.  
  14002. VIEWFILE USAGE_OPENFILE structure. 
  14003.  
  14004. typedef struct _VIEWFILE {
  14005. ULONG              ulMenuId;  /* Menu ID, if association or menu page  */
  14006. LHANDLE            handle;    /* Open handle  */
  14007. HWND               hwndCnr;   /* System use only (window animation)  */
  14008. PMINIRECORDCORE    pRecord;   /* System use only (window animation)  */
  14009.  } VIEWFILE;
  14010.  
  14011.  
  14012. ΓòÉΓòÉΓòÉ <hidden> ulMenuId ΓòÉΓòÉΓòÉ
  14013.  
  14014. ulMenuId (ULONG) 
  14015.    Menu ID, if association or menu page. 
  14016.  
  14017.  
  14018. ΓòÉΓòÉΓòÉ <hidden> handle ΓòÉΓòÉΓòÉ
  14019.  
  14020. handle (LHANDLE) 
  14021.    Open handle. 
  14022.  
  14023.    This handle will be either a window handle or handle to an application. 
  14024.  
  14025.  
  14026. ΓòÉΓòÉΓòÉ <hidden> hwndCnr ΓòÉΓòÉΓòÉ
  14027.  
  14028. hwndCnr (HWND) 
  14029.    System use only (window animation). 
  14030.  
  14031.  
  14032. ΓòÉΓòÉΓòÉ <hidden> pRecord ΓòÉΓòÉΓòÉ
  14033.  
  14034. pRecord (PMINIRECORDCORE) 
  14035.    System use only (window animation) . 
  14036.  
  14037.  
  14038. ΓòÉΓòÉΓòÉ 4.409. VIEWITEM ΓòÉΓòÉΓòÉ
  14039.  
  14040. VIEWITEM USAGE_OPENVIEW structure. 
  14041.  
  14042. typedef struct _VIEWITEM {
  14043. ULONG              view;         /* Object view that this represents  */
  14044. LHANDLE            handle;       /* Open handle  */
  14045. ULONG              ulViewState;  /* View state flags  */
  14046. HWND               hwndCnr;      /* System use only (window animation)  */
  14047. PMINIRECORDCORE    pRecord;      /* System use only (window animation)  */
  14048.  } VIEWITEM;
  14049.  
  14050.  
  14051. ΓòÉΓòÉΓòÉ <hidden> view ΓòÉΓòÉΓòÉ
  14052.  
  14053. view (ULONG) 
  14054.    Object view that this represents. 
  14055.  
  14056.  
  14057. ΓòÉΓòÉΓòÉ <hidden> handle ΓòÉΓòÉΓòÉ
  14058.  
  14059. handle (LHANDLE) 
  14060.    Open handle. 
  14061.  
  14062.    This handle will be either a window handle or handle to an application. 
  14063.  
  14064.  
  14065. ΓòÉΓòÉΓòÉ <hidden> ulViewState ΓòÉΓòÉΓòÉ
  14066.  
  14067. ulViewState (ULONG) 
  14068.    View state flags. 
  14069.  
  14070.    Possible values are: 
  14071.  
  14072.    VIEWSTATE_OPENING 
  14073.       The view is being opened. 
  14074.    VIEWSTATE_OBJECTDELETED 
  14075.       The object is being deleted. 
  14076.    VIEWSTATE_USERHIDDEN 
  14077.       The view was hidden by the user. 
  14078.    VIEWSTATE_POPULATING 
  14079.       The view is populating. 
  14080.  
  14081.  
  14082. ΓòÉΓòÉΓòÉ <hidden> hwndCnr ΓòÉΓòÉΓòÉ
  14083.  
  14084. hwndCnr (HWND) 
  14085.    System use only (window animation). 
  14086.  
  14087.  
  14088. ΓòÉΓòÉΓòÉ <hidden> pRecord ΓòÉΓòÉΓòÉ
  14089.  
  14090. pRecord (PMINIRECORDCORE) 
  14091.    System use only (window animation). 
  14092.  
  14093.  
  14094. ΓòÉΓòÉΓòÉ 4.410. VIOFONTCELLSIZE ΓòÉΓòÉΓòÉ
  14095.  
  14096. VIOFONTCELLSIZE VIO cell size, see DevEscape. 
  14097.  
  14098. typedef struct _VIOFONTCELLSIZE {
  14099. LONG    cx;  /* Cell width  */
  14100. LONG    cy;  /* Cell height  */
  14101.  } VIOFONTCELLSIZE;
  14102.  
  14103.  
  14104. ΓòÉΓòÉΓòÉ <hidden> cx ΓòÉΓòÉΓòÉ
  14105.  
  14106. cx (LONG) 
  14107.    Cell width. 
  14108.  
  14109.  
  14110. ΓòÉΓòÉΓòÉ <hidden> cy ΓòÉΓòÉΓòÉ
  14111.  
  14112. cy (LONG) 
  14113.    Cell height. 
  14114.  
  14115.  
  14116. ΓòÉΓòÉΓòÉ 4.411. VIOSIZECOUNT ΓòÉΓòÉΓòÉ
  14117.  
  14118. VIOSIZECOUNT Count of VIO cell sizes, see DevEscape. 
  14119.  
  14120. typedef struct _VIOSIZECOUNT {
  14121. LONG    maxcount;  /* Maximum number of VIO cell sizes supported  */
  14122. LONG    count;     /* Number of VIO cell sizes returned  */
  14123.  } VIOSIZECOUNT;
  14124.  
  14125.  
  14126. ΓòÉΓòÉΓòÉ <hidden> maxcount ΓòÉΓòÉΓòÉ
  14127.  
  14128. maxcount (LONG) 
  14129.    Maximum number of VIO cell sizes supported. 
  14130.  
  14131.  
  14132. ΓòÉΓòÉΓòÉ <hidden> count ΓòÉΓòÉΓòÉ
  14133.  
  14134. count (LONG) 
  14135.    Number of VIO cell sizes returned. 
  14136.  
  14137.  
  14138. ΓòÉΓòÉΓòÉ 4.412. VOID ΓòÉΓòÉΓòÉ
  14139.  
  14140. VOID A data area of undefined format. 
  14141.  
  14142. #define VOID void
  14143.  
  14144.  
  14145. ΓòÉΓòÉΓòÉ 4.413. VSCDATA ΓòÉΓòÉΓòÉ
  14146.  
  14147. VSCDATA Structure that contains information about the value set control. 
  14148.  
  14149. typedef struct _VSCDATA {
  14150. ULONG     cbSize;         /* Data length  */
  14151. USHORT    usRowCount;     /* Number of rows  */
  14152. USHORT    usColumnCount;  /* Number of columns  */
  14153.  } VSCDATA;
  14154.  
  14155.  
  14156. ΓòÉΓòÉΓòÉ <hidden> cbSize ΓòÉΓòÉΓòÉ
  14157.  
  14158. cbSize (ULONG) 
  14159.    Data length. 
  14160.  
  14161.    Length of the control data in bytes. 
  14162.  
  14163.  
  14164. ΓòÉΓòÉΓòÉ <hidden> usRowCount ΓòÉΓòÉΓòÉ
  14165.  
  14166. usRowCount (USHORT) 
  14167.    Number of rows. 
  14168.  
  14169.    The number of rows in the value set control. The minimum number of rows is 1 
  14170.    and the maximum number of rows is 65,535. 
  14171.  
  14172.  
  14173. ΓòÉΓòÉΓòÉ <hidden> usColumnCount ΓòÉΓòÉΓòÉ
  14174.  
  14175. usColumnCount (USHORT) 
  14176.    Number of columns. 
  14177.  
  14178.    The number of columns in the value set control. The minimum number of 
  14179.    columns is 1 and the maximum number of columns is 65,535. 
  14180.  
  14181.  
  14182. ΓòÉΓòÉΓòÉ 4.414. VSDRAGINFO ΓòÉΓòÉΓòÉ
  14183.  
  14184. VSDRAGINFO Structure that contains information about direct manipulation 
  14185. actions that occur over the value set control. 
  14186.  
  14187. typedef struct _VSDRAGINFO {
  14188. PDRAGINFO    pDragInfo;  /* Pointer  */
  14189. USHORT       usRow;      /* Row index  */
  14190. USHORT       usColumn;   /* Column index  */
  14191.  } VSDRAGINFO;
  14192.  
  14193.  
  14194. ΓòÉΓòÉΓòÉ <hidden> pDragInfo ΓòÉΓòÉΓòÉ
  14195.  
  14196. pDragInfo (PDRAGINFO) 
  14197.    Pointer. 
  14198.  
  14199.    Pointer to a DRAGINFO structure. 
  14200.  
  14201.  
  14202. ΓòÉΓòÉΓòÉ <hidden> usRow ΓòÉΓòÉΓòÉ
  14203.  
  14204. usRow (USHORT) 
  14205.    Row index. 
  14206.  
  14207.    The index of the row over which the direct manipulation action occurred. 
  14208.  
  14209.  
  14210. ΓòÉΓòÉΓòÉ <hidden> usColumn ΓòÉΓòÉΓòÉ
  14211.  
  14212. usColumn (USHORT) 
  14213.    Column index. 
  14214.  
  14215.    The index of the column over which the direct manipulation action occurred. 
  14216.  
  14217.  
  14218. ΓòÉΓòÉΓòÉ 4.415. VSDRAGINIT ΓòÉΓòÉΓòÉ
  14219.  
  14220. VSDRAGINIT Structure that contains information that is used to initialize a 
  14221. direct manipulation action over the value set control. 
  14222.  
  14223. typedef struct _VSDRAGINIT {
  14224. HWND      hwnd;      /* Value set window handle  */
  14225. LONG      x;         /* X-coordinate  */
  14226. LONG      y;         /* Y-coordinate  */
  14227. LONG      cx;        /* X-offset  */
  14228. LONG      cy;        /* Y-offset  */
  14229. USHORT    usRow;     /* Row index  */
  14230. USHORT    usColumn;  /* Column index  */
  14231.  } VSDRAGINIT;
  14232.  
  14233.  
  14234. ΓòÉΓòÉΓòÉ <hidden> hwnd ΓòÉΓòÉΓòÉ
  14235.  
  14236. hwnd (HWND) 
  14237.    Value set window handle. 
  14238.  
  14239.    Window handle of the value set control. 
  14240.  
  14241.  
  14242. ΓòÉΓòÉΓòÉ <hidden> x ΓòÉΓòÉΓòÉ
  14243.  
  14244. x (LONG) 
  14245.    X-coordinate. 
  14246.  
  14247.    X-coordinate of the pointing device pointer in desktop coordinates. 
  14248.  
  14249.  
  14250. ΓòÉΓòÉΓòÉ <hidden> y ΓòÉΓòÉΓòÉ
  14251.  
  14252. y (LONG) 
  14253.    Y-coordinate. 
  14254.  
  14255.    Y-coordinate of the pointing device pointer in desktop coordinates. 
  14256.  
  14257.  
  14258. ΓòÉΓòÉΓòÉ <hidden> cx ΓòÉΓòÉΓòÉ
  14259.  
  14260. cx (LONG) 
  14261.    X-offset. 
  14262.  
  14263.    X-offset from the hot spot of the pointing device pointer, in pels, to the 
  14264.    item origin. The item origin is the lower left corner of the item. 
  14265.  
  14266.  
  14267. ΓòÉΓòÉΓòÉ <hidden> cy ΓòÉΓòÉΓòÉ
  14268.  
  14269. cy (LONG) 
  14270.    Y-offset. 
  14271.  
  14272.    Y-offset from the hot spot of the pointing device pointer, in pels, to the 
  14273.    item origin. The item origin is the lower left corner of the item. 
  14274.  
  14275.  
  14276. ΓòÉΓòÉΓòÉ <hidden> usRow ΓòÉΓòÉΓòÉ
  14277.  
  14278. usRow (USHORT) 
  14279.    Row index. 
  14280.  
  14281.    The index of the row over which the direct manipulation action occurred. 
  14282.  
  14283.  
  14284. ΓòÉΓòÉΓòÉ <hidden> usColumn ΓòÉΓòÉΓòÉ
  14285.  
  14286. usColumn (USHORT) 
  14287.    Column index. 
  14288.  
  14289.    The index of the column over which the direct manipulation action occurred. 
  14290.  
  14291.  
  14292. ΓòÉΓòÉΓòÉ 4.416. VSTEXT ΓòÉΓòÉΓòÉ
  14293.  
  14294. VSTEXT Value set text structure. This structure is used with the VM_QUERYITEM 
  14295. message only. 
  14296.  
  14297. typedef struct _VSTEXT {
  14298. PSZ      pszItemText;  /* Pointer  */
  14299. ULONG    ulBufLen;     /* Buffer size  */
  14300.  } VSTEXT;
  14301.  
  14302.  
  14303. ΓòÉΓòÉΓòÉ <hidden> pszItemText ΓòÉΓòÉΓòÉ
  14304.  
  14305. pszItemText (PSZ) 
  14306.    Pointer. 
  14307.  
  14308.    Pointer to a buffer to copy the string into. 
  14309.  
  14310.  
  14311. ΓòÉΓòÉΓòÉ <hidden> ulBufLen ΓòÉΓòÉΓòÉ
  14312.  
  14313. ulBufLen (ULONG) 
  14314.    Buffer size. 
  14315.  
  14316.    Size of the buffer pointed to by the pszItemText field. 
  14317.  
  14318.  
  14319. ΓòÉΓòÉΓòÉ 4.417. WNDPARAMS ΓòÉΓòÉΓòÉ
  14320.  
  14321. WNDPARAMS Window parameters. 
  14322.  
  14323. typedef struct _WNDPARAMS {
  14324. ULONG    fsStatus;      /* Window parameter selection  */
  14325. ULONG    cchText;       /* Length of window text  */
  14326. PSZ      pszText;       /* Window text  */
  14327. ULONG    cbPresParams;  /* Length of presentation parameters  */
  14328. PVOID    pPresParams;   /* Presentation parameters  */
  14329. ULONG    cbCtlData;     /* Length of window class specific data  */
  14330. PVOID    pCtlData;      /* Window class specific data  */
  14331.  } WNDPARAMS;
  14332.  
  14333.  
  14334. ΓòÉΓòÉΓòÉ <hidden> fsStatus ΓòÉΓòÉΓòÉ
  14335.  
  14336. fsStatus (ULONG) 
  14337.    Window parameter selection. 
  14338.  
  14339.    Identifies the window parameters that are to be set or queried: 
  14340.  
  14341.    WPM_CBCTLDATA 
  14342.       Window control data length 
  14343.    WPM_CCHTEXT 
  14344.       Window text length 
  14345.    WPM_CTLDATA 
  14346.       Window control data 
  14347.    WPM_PRESPARAMS 
  14348.       Presentation parameters 
  14349.    WPM_TEXT 
  14350.       Window text. 
  14351.  
  14352.  
  14353. ΓòÉΓòÉΓòÉ <hidden> cchText ΓòÉΓòÉΓòÉ
  14354.  
  14355. cchText (ULONG) 
  14356.    Length of window text. 
  14357.  
  14358.  
  14359. ΓòÉΓòÉΓòÉ <hidden> pszText ΓòÉΓòÉΓòÉ
  14360.  
  14361. pszText (PSZ) 
  14362.    Window text. 
  14363.  
  14364.  
  14365. ΓòÉΓòÉΓòÉ <hidden> cbPresParams ΓòÉΓòÉΓòÉ
  14366.  
  14367. cbPresParams (ULONG) 
  14368.    Length of presentation parameters. 
  14369.  
  14370.  
  14371. ΓòÉΓòÉΓòÉ <hidden> pPresParams ΓòÉΓòÉΓòÉ
  14372.  
  14373. pPresParams (PVOID) 
  14374.    Presentation parameters. 
  14375.  
  14376.  
  14377. ΓòÉΓòÉΓòÉ <hidden> cbCtlData ΓòÉΓòÉΓòÉ
  14378.  
  14379. cbCtlData (ULONG) 
  14380.    Length of window class specific data. 
  14381.  
  14382.  
  14383. ΓòÉΓòÉΓòÉ <hidden> pCtlData ΓòÉΓòÉΓòÉ
  14384.  
  14385. pCtlData (PVOID) 
  14386.    Window class specific data. 
  14387.  
  14388.  
  14389. ΓòÉΓòÉΓòÉ 4.418. WPClock * ΓòÉΓòÉΓòÉ
  14390.  
  14391. WPClock *  Pointer to an object of class WPClock. 
  14392.  
  14393.  
  14394. ΓòÉΓòÉΓòÉ 4.419. WPCountry * ΓòÉΓòÉΓòÉ
  14395.  
  14396. WPCountry *  Pointer to an object of class WPCountry. 
  14397.  
  14398.  
  14399. ΓòÉΓòÉΓòÉ 4.420. WPDataFile * ΓòÉΓòÉΓòÉ
  14400.  
  14401. WPDataFile *  Pointer to an object of class WPDataFile. 
  14402.  
  14403.  
  14404. ΓòÉΓòÉΓòÉ 4.421. WPDesktop * ΓòÉΓòÉΓòÉ
  14405.  
  14406. WPDesktop *  Pointer to an object of class WPDesktop. 
  14407.  
  14408.  
  14409. ΓòÉΓòÉΓòÉ 4.422. WPDisk * ΓòÉΓòÉΓòÉ
  14410.  
  14411. WPDisk *  Pointer to an object of class WPDisk. 
  14412.  
  14413.  
  14414. ΓòÉΓòÉΓòÉ 4.423. WPFileSystem * ΓòÉΓòÉΓòÉ
  14415.  
  14416. WPFileSystem *  Pointer to an object of class WPFileSystem. 
  14417.  
  14418.  
  14419. ΓòÉΓòÉΓòÉ 4.424. WPFolder * ΓòÉΓòÉΓòÉ
  14420.  
  14421. WPFolder *  Pointer to an object of class WPFolder. 
  14422.  
  14423.  
  14424. ΓòÉΓòÉΓòÉ 4.425. WPJob * ΓòÉΓòÉΓòÉ
  14425.  
  14426. WPJob *  Pointer to an object of class WPJob. 
  14427.  
  14428.  
  14429. ΓòÉΓòÉΓòÉ 4.426. WPKeyboard * ΓòÉΓòÉΓòÉ
  14430.  
  14431. WPKeyboard *  Pointer to an object of class WPKeyboard. 
  14432.  
  14433.  
  14434. ΓòÉΓòÉΓòÉ 4.427. WPMouse * ΓòÉΓòÉΓòÉ
  14435.  
  14436. WPMouse *  Pointer to an object of class WPMouse. 
  14437.  
  14438.  
  14439. ΓòÉΓòÉΓòÉ 4.428. WPObject * ΓòÉΓòÉΓòÉ
  14440.  
  14441. WPObject *  Pointer to an object of class WPObject. 
  14442.  
  14443.  
  14444. ΓòÉΓòÉΓòÉ 4.429. WPOINT ΓòÉΓòÉΓòÉ
  14445.  
  14446. WPOINT Window-point structure (integer). 
  14447.  
  14448. #define WPOINT POINTL
  14449.  
  14450.  
  14451. ΓòÉΓòÉΓòÉ <hidden> x ΓòÉΓòÉΓòÉ
  14452.  
  14453. x (LONG) 
  14454.    X-coordinate. 
  14455.  
  14456.  
  14457. ΓòÉΓòÉΓòÉ <hidden> y ΓòÉΓòÉΓòÉ
  14458.  
  14459. y (LONG) 
  14460.    Y-coordinate. 
  14461.  
  14462.  
  14463. ΓòÉΓòÉΓòÉ 4.430. WPPalette * ΓòÉΓòÉΓòÉ
  14464.  
  14465. WPPalette *  Pointer to an object of class WPPalette. 
  14466.  
  14467.  
  14468. ΓòÉΓòÉΓòÉ 4.431. WPPower * ΓòÉΓòÉΓòÉ
  14469.  
  14470. WPPower *  Pointer to an object of class WPPower. 
  14471.  
  14472. This data structure is specific to version 2.1, or higher, of the OS/2 
  14473. operating system. 
  14474.  
  14475.  
  14476. ΓòÉΓòÉΓòÉ 4.432. WPPrinter * ΓòÉΓòÉΓòÉ
  14477.  
  14478. WPPrinter *  Pointer to an object of class WPPrinter. 
  14479.  
  14480.  
  14481. ΓòÉΓòÉΓòÉ 4.433. WPProgram * ΓòÉΓòÉΓòÉ
  14482.  
  14483. WPProgram *  Pointer to an object of class WPProgram. 
  14484.  
  14485.  
  14486. ΓòÉΓòÉΓòÉ 4.434. WPProgramGroup * ΓòÉΓòÉΓòÉ
  14487.  
  14488. WPProgramGroup *  Pointer to an object of class WPProgramGroup. 
  14489.  
  14490.  
  14491. ΓòÉΓòÉΓòÉ 4.435. WPProgramFile * ΓòÉΓòÉΓòÉ
  14492.  
  14493. WPProgramFile *  Pointer to an object of class WPProgramFile. 
  14494.  
  14495.  
  14496. ΓòÉΓòÉΓòÉ 4.436. WPRootFolder * ΓòÉΓòÉΓòÉ
  14497.  
  14498. WPRootFolder *  Pointer to an object of class WPRootFolder. 
  14499.  
  14500.  
  14501. ΓòÉΓòÉΓòÉ 4.437. WPShadow * ΓòÉΓòÉΓòÉ
  14502.  
  14503. WPShadow *  Pointer to an object of class WPShadow. 
  14504.  
  14505.  
  14506. ΓòÉΓòÉΓòÉ 4.438. WPSound * ΓòÉΓòÉΓòÉ
  14507.  
  14508. WPSound *  Pointer to an object of class WPSound. 
  14509.  
  14510.  
  14511. ΓòÉΓòÉΓòÉ 4.439. WPSpool * ΓòÉΓòÉΓòÉ
  14512.  
  14513. WPSpool *  Pointer to an object of class WPSpool. 
  14514.  
  14515.  
  14516. ΓòÉΓòÉΓòÉ 4.440. WPSRCLASSBLOCK ΓòÉΓòÉΓòÉ
  14517.  
  14518. WPSRCLASSBLOCK Save or restore class block structure. 
  14519.  
  14520. typedef struct _WPSRCLASSBLOCK {
  14521. SHORT     ClassNameLength;  /* Length of class name  */
  14522. USHORT    IVarLength;       /* Length of instance variable information  */
  14523.  } WPSRCLASSBLOCK;
  14524.  
  14525.  
  14526. ΓòÉΓòÉΓòÉ <hidden> ClassNameLength ΓòÉΓòÉΓòÉ
  14527.  
  14528. ClassNameLength (SHORT) 
  14529.    Length of class name. 
  14530.  
  14531.    Includes the null terminator. This must be a short and must be at the 
  14532.    beginning of the structure.  The class name immediately follows the control 
  14533.    block. The first instance variable control block immediately follows this. 
  14534.  
  14535.  
  14536. ΓòÉΓòÉΓòÉ <hidden> IVarLength ΓòÉΓòÉΓòÉ
  14537.  
  14538. IVarLength (USHORT) 
  14539.    Length of instance variable information. 
  14540.  
  14541.    Includes the two-byte null terminator. 
  14542.  
  14543.  
  14544. ΓòÉΓòÉΓòÉ 4.441. WPSystem * ΓòÉΓòÉΓòÉ
  14545.  
  14546. WPSystem *  Pointer to an object of class WPSystem. 
  14547.  
  14548.  
  14549. ΓòÉΓòÉΓòÉ 4.442. WRECT ΓòÉΓòÉΓòÉ
  14550.  
  14551. WRECT Window-rectangle structure (integer). 
  14552.  
  14553. #define WRECT RECTL
  14554.  
  14555.  
  14556. ΓòÉΓòÉΓòÉ <hidden> xLeft ΓòÉΓòÉΓòÉ
  14557.  
  14558. xLeft (SHORT) 
  14559.    X-coordinate of left-hand edge of rectangle. 
  14560.  
  14561.  
  14562. ΓòÉΓòÉΓòÉ <hidden> dummy1 ΓòÉΓòÉΓòÉ
  14563.  
  14564. dummy1 (SHORT) 
  14565.    Reserved. 
  14566.  
  14567.  
  14568. ΓòÉΓòÉΓòÉ <hidden> yBottom ΓòÉΓòÉΓòÉ
  14569.  
  14570. yBottom (SHORT) 
  14571.    Y-coordinate of bottom edge of rectangle. 
  14572.  
  14573.  
  14574. ΓòÉΓòÉΓòÉ <hidden> dummy2 ΓòÉΓòÉΓòÉ
  14575.  
  14576. dummy2 (SHORT) 
  14577.    Reserved. 
  14578.  
  14579.  
  14580. ΓòÉΓòÉΓòÉ <hidden> xRight ΓòÉΓòÉΓòÉ
  14581.  
  14582. xRight (SHORT) 
  14583.    X-coordinate of right-hand edge of rectangle. 
  14584.  
  14585.  
  14586. ΓòÉΓòÉΓòÉ <hidden> dummy3 ΓòÉΓòÉΓòÉ
  14587.  
  14588. dummy3 (SHORT) 
  14589.    Reserved. 
  14590.  
  14591.  
  14592. ΓòÉΓòÉΓòÉ <hidden> yTop ΓòÉΓòÉΓòÉ
  14593.  
  14594. yTop (SHORT) 
  14595.    Y-coordinate of top edge of rectangle. 
  14596.  
  14597.  
  14598. ΓòÉΓòÉΓòÉ <hidden> dummy4 ΓòÉΓòÉΓòÉ
  14599.  
  14600. dummy4 (SHORT) 
  14601.    Reserved. 
  14602.  
  14603.  
  14604. ΓòÉΓòÉΓòÉ 4.443. XYWINSIZE ΓòÉΓòÉΓòÉ
  14605.  
  14606. XYWINSIZE Window position and size structure. 
  14607.  
  14608. typedef struct _XYWINSIZE {
  14609. SHORT     x;         /* X-coordinate of window origin  */
  14610. SHORT     y;         /* Y-coordinate of window origin  */
  14611. SHORT     cx;        /* Window width  */
  14612. SHORT     cy;        /* Window height  */
  14613. USHORT    fsWindow;  /* Window options  */
  14614.  } XYWINSIZE;
  14615.  
  14616.  
  14617. ΓòÉΓòÉΓòÉ <hidden> x ΓòÉΓòÉΓòÉ
  14618.  
  14619. x (SHORT) 
  14620.    X-coordinate of window origin. 
  14621.  
  14622.  
  14623. ΓòÉΓòÉΓòÉ <hidden> y ΓòÉΓòÉΓòÉ
  14624.  
  14625. y (SHORT) 
  14626.    Y-coordinate of window origin. 
  14627.  
  14628.  
  14629. ΓòÉΓòÉΓòÉ <hidden> cx ΓòÉΓòÉΓòÉ
  14630.  
  14631. cx (SHORT) 
  14632.    Window width. 
  14633.  
  14634.  
  14635. ΓòÉΓòÉΓòÉ <hidden> cy ΓòÉΓòÉΓòÉ
  14636.  
  14637. cy (SHORT) 
  14638.    Window height. 
  14639.  
  14640.  
  14641. ΓòÉΓòÉΓòÉ <hidden> fsWindow ΓòÉΓòÉΓòÉ
  14642.  
  14643. fsWindow (USHORT) 
  14644.    Window options. 
  14645.  
  14646.    The values may be ORed together. For example, an invisible iconic window can 
  14647.    be created. Note that if both XYF_MINIMIZED and XYF_MAXIMIZED are specified, 
  14648.    the window is created in a maximized state. 
  14649.  
  14650.    XYF_INVISIBLE 
  14651.       Create the window initially invisible. 
  14652.    XYF_MAXIMIZED 
  14653.       Show the window initially maximized. 
  14654.    XYF_MINIMIZED 
  14655.       Show the window initially iconic. 
  14656.    XYF_NOAUTOCLOSE 
  14657.       Do not close the window automatically when the VIO application 
  14658.       terminates. This parameter is ignored unless the program is a 
  14659.       VIO-windowed application. 
  14660.    XYF_NORMAL 
  14661.       Create the window visible, with a size and position as specified. This is 
  14662.       the default. 
  14663.  
  14664.  
  14665. ΓòÉΓòÉΓòÉ 5. Device Functions ΓòÉΓòÉΓòÉ
  14666.  
  14667. This section describes functions that an application would use to query or 
  14668. access devices. 
  14669.  
  14670.  
  14671. ΓòÉΓòÉΓòÉ 5.1. DevCloseDC ΓòÉΓòÉΓòÉ
  14672.  
  14673.  
  14674. ΓòÉΓòÉΓòÉ <hidden> Topics - DevCloseDC ΓòÉΓòÉΓòÉ
  14675.  
  14676. Select an item: 
  14677.  
  14678. Function Syntax 
  14679. Parameters 
  14680. Return Values 
  14681. Errors 
  14682. Notes 
  14683. Example 
  14684. Related Functions 
  14685. Glossary 
  14686.  
  14687.  
  14688. ΓòÉΓòÉΓòÉ <hidden> Parameters - DevCloseDC ΓòÉΓòÉΓòÉ
  14689.  
  14690. hdc (HDC) - input 
  14691.    Device-context handle. 
  14692.  
  14693.  
  14694. ΓòÉΓòÉΓòÉ <hidden> Return Values - DevCloseDC ΓòÉΓòÉΓòÉ
  14695.  
  14696. hmf (HMF) - return 
  14697.    Error indicator metafile handle (for a metafile device context) 
  14698.  
  14699.    DEV_ERROR 
  14700.       Error occurred. 
  14701.  
  14702.    DEV_OK 
  14703.       Device closed, but not a metafile device context. 
  14704.  
  14705.    Other 
  14706.       Device closed, a metafile device context whose metafile handle is 
  14707.       returned. 
  14708.  
  14709.  
  14710. ΓòÉΓòÉΓòÉ <hidden> Errors - DevCloseDC ΓòÉΓòÉΓòÉ
  14711.  
  14712. Possible returns from WinGetLastError 
  14713.  
  14714. PMERR_NOT_CREATED_BY_DEVOPENDC 
  14715.    An attempt has been made to destroy a device context using DevCloseDC that 
  14716.    was not created using DevOpenDC. 
  14717.  
  14718. PMERR_DC_IS_ASSOCIATED 
  14719.    An attempt was made to associate a presentation space with a device context 
  14720.    that was already associated or to destroy a device context that was 
  14721.    associated. 
  14722.  
  14723. PMERR_INV_HDC 
  14724.    An invalid device-context handle or (micro presentation space) 
  14725.    presentation-space handle was specified. 
  14726.  
  14727.  
  14728. ΓòÉΓòÉΓòÉ <hidden> Notes - DevCloseDC ΓòÉΓòÉΓòÉ
  14729.  
  14730. If the device context is currently associated with a presentation space, or if 
  14731. it is created with the WinOpenWindowDC call (that is, it is a screen device 
  14732. context), an error is raised, and the device context is not closed. 
  14733.  
  14734. If the device context being closed is a memory device context that has a bit 
  14735. map currently selected into it (see the GpiSetBitmap function), the bit map is 
  14736. automatically deselected before the device context is closed. 
  14737.  
  14738. Any clip region currently in use for this device context is deleted. 
  14739.  
  14740.  
  14741. ΓòÉΓòÉΓòÉ <hidden> Syntax - DevCloseDC ΓòÉΓòÉΓòÉ
  14742.  
  14743. /*******************************************/
  14744. /* This function closes a device context.  */
  14745. /*******************************************/
  14746.  
  14747. #define INCL_DEV   /* Or use INCL_PM. Also in COMMON section */
  14748. #include <os2.h>
  14749.  
  14750. HDC  hdc;/* Device-context handle */
  14751. HMF  hmf;/* Error indicator metafile handle (for a metafile device context) */
  14752.  
  14753. hmf = DevCloseDC(hdc);
  14754.  
  14755.  
  14756. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DevCloseDC ΓòÉΓòÉΓòÉ
  14757.  
  14758. Prerequisite Functions 
  14759.  
  14760. o DevOpenDC 
  14761.  
  14762. Related Functions 
  14763.  
  14764. o WinOpenWindowDC 
  14765.  
  14766.  
  14767. ΓòÉΓòÉΓòÉ <hidden> Example Code - DevCloseDC ΓòÉΓòÉΓòÉ
  14768.  
  14769.  This example calls DevCloseDC to close a device context based on the handle 
  14770. returned from DevOpenDC. 
  14771.  
  14772.  
  14773. #define INCL_DEV                /* Device Function definitions  */
  14774. #include <os2.h>
  14775.  
  14776. HDC hdc;                /* Device-context handle                */
  14777. HMF hmf;                /* error code (or metafile handle if
  14778.                            metafile device context)             */
  14779.  
  14780. /* close the device context associated with handle hdc */
  14781. hmf = DevCloseDC(hdc);
  14782.  
  14783.  
  14784. ΓòÉΓòÉΓòÉ 5.2. DevEscape ΓòÉΓòÉΓòÉ
  14785.  
  14786.  
  14787. ΓòÉΓòÉΓòÉ <hidden> Topics - DevEscape ΓòÉΓòÉΓòÉ
  14788.  
  14789. Select an item: 
  14790.  
  14791. Function Syntax 
  14792. Parameters 
  14793. Return Values 
  14794. Errors 
  14795. Notes 
  14796. Example 
  14797. Related Functions 
  14798. Graphic Elements and Orders 
  14799. Glossary 
  14800.  
  14801.  
  14802. ΓòÉΓòÉΓòÉ <hidden> Parameters - DevEscape ΓòÉΓòÉΓòÉ
  14803.  
  14804. hdc (HDC) - input 
  14805.    Device-context handle. 
  14806.  
  14807. lCode (LONG) - input 
  14808.    Escape code. If the device context is of type OD_QUEUED with a PM_Q_STD 
  14809.    spool file, some escapes are sent to the presentation driver and others are 
  14810.    recorded in the spool file (depending on the escape code). If the device 
  14811.    context is of type OD_METAFILE, all escapes are metafiled. If the device 
  14812.    context is of any type other than OD_QUEUED (with a PM_Q_STD spool file) or 
  14813.    OD_METAFILE, all escapes are sent to the presentation driver. 
  14814.  
  14815.    The description for each standard escape specifies which of these categories 
  14816.    the escape falls into. 
  14817.  
  14818.    Devices can define additional escape functions using user lCode values, that 
  14819.    have the following ranges: 
  14820.  
  14821.    32 768 through 40 959 
  14822.       Not metafiled and not recorded (sent to presentation driver for PM_Q_STD) 
  14823.    40 960 through 49 151 
  14824.       Metafiled only (sent to presentation driver for PM_Q_STD) 
  14825.    49 152 through 57 343 
  14826.       Metafiled and recorded (not sent to presentation driver) for PM_Q_STD 
  14827.    57 344 through 65 535 
  14828.       Recorded only (not sent to presentation driver for PM_Q_STD). 
  14829.  
  14830.    The following escapes are defined: 
  14831.  
  14832.    DEVESC_QUERYESCSUPPORT 
  14833.  
  14834.    DEVESC_GETSCALINGFACTOR 
  14835.  
  14836.    DEVESC_STARTDOC 
  14837.  
  14838.    DEVESC_ENDDOC 
  14839.  
  14840.    DEVESC_ABORTDOC 
  14841.  
  14842.    DEVESC_NEWFRAME 
  14843.  
  14844.    DEVESC_RAWDATA 
  14845.  
  14846.    DEVESC_QUERYVIOCELLSIZES 
  14847.  
  14848.    DEVESC_SETMODE 
  14849.  
  14850. lInCount (LONG) - input 
  14851.    Input data count. Number of bytes of data in the pbInData buffer. 
  14852.  
  14853. pbInData (PBYTE) - input 
  14854.    The input data required for this escape. 
  14855.  
  14856. plOutCount (PLONG) - input/output 
  14857.    Output data count. plOutCount is the number of bytes of data in the 
  14858.    pbOutData buffer. 
  14859.  
  14860.    If data is returned in pbOutData, plOutCount is updated to the number of 
  14861.    bytes of data returned. 
  14862.  
  14863. pbOutData (PBYTE) - output 
  14864.    Output data. pbOutData is a buffer that receives the output from this 
  14865.    escape.  If plOutCount is null, no data is returned. 
  14866.  
  14867.  
  14868. ΓòÉΓòÉΓòÉ <hidden> Return Values - DevEscape ΓòÉΓòÉΓòÉ
  14869.  
  14870. lResult (LONG) - return 
  14871.    Implementation error indicator: 
  14872.  
  14873.    DEVESC_ERROR                       Error 
  14874.    DEVESC_NOTIMPLEMENTED              Escape not implemented for specified code 
  14875.    DEV_OK                             OK. 
  14876.  
  14877.  
  14878. ΓòÉΓòÉΓòÉ <hidden> Errors - DevEscape ΓòÉΓòÉΓòÉ
  14879.  
  14880. Possible returns from WinGetLastError 
  14881.  
  14882. PMERR_INV_ESCAPE_CODE 
  14883.    An invalid code parameter was specified with DevEscape. 
  14884.  
  14885. PMERR_INV_HDC 
  14886.    An invalid device-context handle or (micro presentation space) 
  14887.    presentation-space handle was specified. 
  14888.  
  14889. PMERR_INV_LENGTH_OR_COUNT 
  14890.    An invalid length or count parameter was specified. 
  14891.  
  14892. PMERR_ESC_CODE_NOT_SUPPORTED 
  14893.    The code specified with DevEscape is not supported by the target device 
  14894.    driver. 
  14895.  
  14896. PMERR_INV_ESCAPE_DATA 
  14897.    An invalid data parameter was specified with DevEscape. 
  14898.  
  14899.  
  14900. ΓòÉΓòÉΓòÉ <hidden> Notes - DevEscape ΓòÉΓòÉΓòÉ
  14901.  
  14902. The data fields for standard escapes are: 
  14903.  
  14904. DEVESC_QUERYESCSUPPORT 
  14905.    Queries whether a particular escape is implemented by the presentation 
  14906.    driver.  The return value gives the result. 
  14907.  
  14908.    This escape is not metafiled or recorded. 
  14909.  
  14910.    lInCount 
  14911.       Number of bytes pointed to by pbInData. 
  14912.  
  14913.    pbInData 
  14914.       The buffer contains an escape code value specifying the escape function 
  14915.       to be checked. 
  14916.  
  14917.    plOutCount 
  14918.       Not used; can be set to 0. 
  14919.  
  14920.    pbOutData 
  14921.       Not used; can be set to null. 
  14922.  
  14923. DEVESC_GETSCALINGFACTOR 
  14924.    Returns the scaling factors for the x and y axes of a printing device.  For 
  14925.    each scaling factor, an exponent of two is put in pbOutData.  Thus, the 
  14926.    value 3 is used if the scaling factor is 8. 
  14927.  
  14928.    Scaling factors are used by devices that cannot support graphics at the same 
  14929.    resolution as the device resolution. 
  14930.  
  14931.    This escape is not metafiled or recorded. 
  14932.  
  14933.    lInCount Not used; can be set to 0. 
  14934.  
  14935.    pbInData Not used; can be set to null. 
  14936.  
  14937.    plOutCount The number of bytes of data pointed to by pbOutData. On return, 
  14938.       this is updated to the number of bytes returned. 
  14939.  
  14940.    pbOutData The address of a SFACTORS structure, which on return contains the 
  14941.       scaling factors for the x and y axes. 
  14942.  
  14943. DEVESC_STARTDOC 
  14944.    Indicates that a new print job is starting. All subsequent output to the 
  14945.    device context is spooled under the same job identifier until a 
  14946.    DEVESC_ENDDOC occurs. 
  14947.  
  14948.    A GpiAssociate function must be issued to associate the presentation space 
  14949.    with the device context before issuing this escape. 
  14950.  
  14951.    This escape is metafiled but not recorded. 
  14952.  
  14953.    lInCount Number of bytes pointed to by pbInData. 
  14954.  
  14955.    pbInData The buffer contains a null-terminated string, specifying the name 
  14956.       of the document. 
  14957.  
  14958.    plOutCount Not used; can be set to 0. 
  14959.  
  14960.    pbOutData Not used; can be set to null. 
  14961.  
  14962. DEVESC_ENDDOC 
  14963.    Ends a print job started by DEVESC_STARTDOC. 
  14964.  
  14965.    This escape is metafiled but not recorded. 
  14966.  
  14967.    lInCount Not used; can be set to 0. 
  14968.  
  14969.    pbInData Not used; can be set to null. 
  14970.  
  14971.    plOutCount Set equal to 2. 
  14972.  
  14973.    pbOutData The buffer contains a USHORT specifying the job identifier if a 
  14974.       spooler print job is created. 
  14975.  
  14976. DEVESC_ABORTDOC 
  14977.    Aborts the current job, erasing everything the application has written to 
  14978.    the device since the last DEVESC_STARTDOC, including the DEVESC_STARTDOC. 
  14979.  
  14980.    This escape is metafiled but not recorded. 
  14981.  
  14982.    lInCount Not used; can be set to 0 
  14983.  
  14984.    pbInData Not used; can be set to null 
  14985.  
  14986.    plOutCount Not used; can be set to 0 
  14987.  
  14988.    pbOutData Not used; can be set to null. 
  14989.  
  14990. DEVESC_NEWFRAME 
  14991.    Signals when an application has finished writing to a page and wants to 
  14992.    start a new page. It is similar to GpiErase processing for a screen device 
  14993.    context, and causes a reset of the attributes. This escape is used with a 
  14994.    printer device to advance to a new page. 
  14995.  
  14996.    This escape is metafiled and recorded. 
  14997.  
  14998.    lInCount Not used; can be set to 0 
  14999.  
  15000.    pbInData Not used; can be set to null 
  15001.  
  15002.    plOutCount Not used; can be set to 0 
  15003.  
  15004.    pbOutData Not used; can be set to null. 
  15005.  
  15006. DEVESC_RAWDATA 
  15007.    Allows an application to send data directly to a presentation driver. For 
  15008.    example, in the case of a printer driver, this could be a printer data 
  15009.    stream. 
  15010.  
  15011.    If DEVESC_RAWDATA is mixed with other data (such as GPI data) being sent to 
  15012.    the same page of a device context, the results are unpredictable and depend 
  15013.    upon the action taken by the presentation driver. For example, a 
  15014.    presentation driver might ignore GPI data if DEVESC_RAWDATA is mixed with it 
  15015.    on the same page. In general, DEVESC_RAWDATA should be sent either to a 
  15016.    separate page (using the DEVESC_NEWFRAME escape to obtain a new page) or to 
  15017.    a separate document (using the DEVESC_STARTDOC and DEVESC_ENDDOC escapes to 
  15018.    create a new document). 
  15019.  
  15020.    This escape is metafiled and recorded. 
  15021.  
  15022.    lInCount Number of bytes pointed to by pbInData 
  15023.  
  15024.    pbInData Pointer to the raw data 
  15025.  
  15026.    plOutCount Not used; can be set to 0 
  15027.  
  15028.    pbOutData Not used; can be set to null. 
  15029.  
  15030. DEVESC_QUERYVIOCELLSIZES 
  15031.    Returns the VIO cell sizes supported by the presentation driver. 
  15032.  
  15033.    This escape is not metafiled or recorded. 
  15034.  
  15035.    lInCount Not used; can be set to 0 
  15036.  
  15037.    pbInData Not used; can be set to null. 
  15038.  
  15039.    plOutCount The number of bytes of data pointed to by pbOutData. It must be 
  15040.       an even multiple of the size in bytes of the LONG data type. On return, 
  15041.       this is updated to the number of bytes returned. 
  15042.  
  15043.    pbOutData The address of a buffer, which on return contains a VIOSIZECOUNT 
  15044.       structure, immediately followed by count copies of a VIOFONTCELLSIZE 
  15045.       structure. 
  15046.  
  15047.       If plOutCount is less than the size of a LONG data type, plOutCount is 
  15048.       updated to zero, and nothing is returned in the buffer pointed to by 
  15049.       pbOutData. 
  15050.  
  15051.       If plOutCount is equal to the size of a LONG data type, pbOutData returns 
  15052.       the number of VIO cell sizes that can be returned by this escape. The 
  15053.       buffer pointed to by pbOutData is updated so that maxcount is the number 
  15054.       of VIO cell sizes that can be returned. 
  15055.  
  15056.       If plOutCount is greater than the size of a LONG data type, pbOutData 
  15057.       returns the VIO cell sizes that are supported. The buffer pointed to by 
  15058.       pbOutData is updated so that: 
  15059.  
  15060.       o maxcount is the number of VIO cell sizes that can be returned 
  15061.  
  15062.       o count is the number of VIO cell sizes returned (may be zero if 
  15063.         plOutCount is equal to twice the size of a LONG data type) 
  15064.  
  15065.       o count copies of a VIOFONTCELLSIZE structure are returned. 
  15066.  
  15067. DEVESC_SETMODE 
  15068.    Sets the printer into a particular mode. It is optional for printer drivers 
  15069.    to support this escape, but those that do support it need to be aware of the 
  15070.    code page of any built-in fonts. For example, if only code page 437 is built 
  15071.    in, it is used if 437 is requested by DEVESC_SETMODE. However, if code page 
  15072.    865 is requested, a suitable code page/font could be downloaded. 
  15073.  
  15074.    This escape is metafiled and recorded. 
  15075.  
  15076.    lInCount Number of bytes pointed to by pbInData 
  15077.    pbInData Buffer contains an ESCSETMODE structure 
  15078.    plOutCount Not used; can be set to 0 
  15079.    pbOutData Not used; can be set to null. 
  15080.  
  15081.  
  15082. ΓòÉΓòÉΓòÉ <hidden> Syntax - DevEscape ΓòÉΓòÉΓòÉ
  15083.  
  15084. /*******************************************/
  15085. /* This function allows applications to    */
  15086. /* access facilities of a device not       */
  15087. /* otherwise available through the API.    */
  15088. /* Escapes are, in general, sent to the    */
  15089. /* presentation driver and must be         */
  15090. /* understood by it.                       */
  15091. /*******************************************/
  15092.  
  15093. #define INCL_DEV   /* Or use INCL_PM */
  15094. #include <os2.h>
  15095.  
  15096. HDC    hdc;         /* Device-context handle */
  15097. LONG   lCode;       /* Escape code */
  15098. LONG   lInCount;    /* Input data count */
  15099. PBYTE  pbInData;    /* The input data required for this escape */
  15100. PLONG  plOutCount;  /* Output data count */
  15101. PBYTE  pbOutData;   /* Output data */
  15102. LONG   lResult;     /* Implementation error indicator */
  15103.  
  15104. lResult = DevEscape(hdc, lCode, lInCount,
  15105.             pbInData, plOutCount, pbOutData);
  15106.  
  15107.  
  15108. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DevEscape ΓòÉΓòÉΓòÉ
  15109.  
  15110. Prerequisite Functions 
  15111.  
  15112. o DevOpenDC 
  15113.  
  15114. Related Functions 
  15115.  
  15116. o GpiAssociate(for DEVESC_STARTDOC) 
  15117. o GpiErase(for DEVESC_NEWFRAME) 
  15118.  
  15119.  
  15120. ΓòÉΓòÉΓòÉ <hidden> Graphic Elements and Orders - DevEscape ΓòÉΓòÉΓòÉ
  15121.  
  15122. DevEscape functions generate orders only when metafiling. 
  15123.  
  15124. Order: Extended Escape 
  15125.  
  15126.  
  15127. ΓòÉΓòÉΓòÉ <hidden> Example Code - DevEscape ΓòÉΓòÉΓòÉ
  15128.  
  15129.  This example uses DevEscape to access facilities of a device that would 
  15130. otherwise be unavailable through the normal Device API set.  Here, a new page 
  15131. in a print job is started. 
  15132.  
  15133.  
  15134. #define INCL_DEV        /* Device Function definitions  */
  15135. #include <os2.h>
  15136.  
  15137. LONG  lResult;          /* Error code or not implemented
  15138.                            warning code                         */
  15139. HDC   hdc;              /* Device-context handle                */
  15140. LONG  plOutCount;       /* length of output buffer(input),
  15141.                            number of bytes returned(output)     */
  15142. PBYTE pbOutData;        /* output buffer                        */
  15143.  
  15144. /* for the NEWFRAME, input and output buffers are not used,
  15145.    so set the buffer lengths to zero(0) and set the buffers to
  15146.    NULL */
  15147. plOutCount = 0;
  15148. pbOutData = NULL;
  15149.  
  15150. lResult = DevEscape(hdc, DEVESC_NEWFRAME, 0L, NULL, &plOutCount,
  15151.                     pbOutData);
  15152.  
  15153.  
  15154. ΓòÉΓòÉΓòÉ 5.3. DevOpenDC ΓòÉΓòÉΓòÉ
  15155.  
  15156.  
  15157. ΓòÉΓòÉΓòÉ <hidden> Topics - DevOpenDC ΓòÉΓòÉΓòÉ
  15158.  
  15159. Select an item: 
  15160.  
  15161. Function Syntax 
  15162. Parameters 
  15163. Return Values 
  15164. Errors 
  15165. Notes 
  15166. Example 
  15167. Related Functions 
  15168. Glossary 
  15169.  
  15170.  
  15171. ΓòÉΓòÉΓòÉ <hidden> Parameters - DevOpenDC ΓòÉΓòÉΓòÉ
  15172.  
  15173. hab (HAB) - input 
  15174.    Anchor-block handle. 
  15175.  
  15176. lType (LONG) - input 
  15177.    Type of device context: 
  15178.  
  15179.    OD_QUEUED 
  15180.       A device, such as a printer or plotter, for which output is to be queued. 
  15181.  
  15182.       Certain restrictions apply for this device type; see Metafile 
  15183.       Restrictions. 
  15184.  
  15185.    OD_DIRECT 
  15186.       A device, such as a printer or plotter, for which output is not to be 
  15187.       queued. 
  15188.  
  15189.    OD_INFO 
  15190.       A device, such as a printer or plotter, but the device context is used 
  15191.       only to retrieve information (for example, font metrics). Drawing can be 
  15192.       performed to a presentation space associated with such a device context, 
  15193.       but no output medium is updated. 
  15194.  
  15195.    OD_METAFILE 
  15196.       The device context is used to write a metafile. The presentation page 
  15197.       defines the area of interest within the picture in the metafile. See 
  15198.       OD_METAFILE_NOQUERY. 
  15199.  
  15200.       Certain restrictions apply for this device type; see Metafile 
  15201.       Restrictions. 
  15202.  
  15203.    OD_METAFILE_NOQUERY 
  15204.       The device context is used to write a metafile. 
  15205.  
  15206.       Functionally, this device type is the same as OD_METAFILE, except that 
  15207.       querying of attributes is not allowed with a presentation space while it 
  15208.       is associated with an OD_METAFILE_NOQUERY device context. If querying of 
  15209.       attributes is not required, OD_METAFILE_NOQUERY should be used in 
  15210.       preference to OD_METAFILE, since it gives improved performance. 
  15211.  
  15212.       Certain restrictions apply for this device type; see Metafile 
  15213.       Restrictions. 
  15214.  
  15215.    OD_MEMORY 
  15216.       A device context that is used to contain a bit map. The hdcComp parameter 
  15217.       identifies a device with which the memory device context is to be 
  15218.       compatible. 
  15219.  
  15220. pszToken (PSZ) - input 
  15221.    Device-information token. This identifies the device information, held in 
  15222.    the initialization file. This information is the same as that which may be 
  15223.    pointed to by pdopData; any information that is obtained from pdopData 
  15224.    overrides the information obtained by using this parameter. 
  15225.  
  15226.    If pszToken is specified as "*", no device information is taken from the 
  15227.    initialization file. 
  15228.  
  15229.    OS/2 behaves as if "*" is specified, but it allows any string. 
  15230.  
  15231. lCount (LONG) - input 
  15232.    Number of items. This is the number of items present in the pdopData 
  15233.    parameter. This can be less than the full list if omitted items are 
  15234.    irrelevant, or are supplied from pszToken or elsewhere. 
  15235.  
  15236. pdopData (PDEVOPENDATA) - input 
  15237.    Open-device-context data area. 
  15238.  
  15239. hdcComp (HDC) - input 
  15240.    Compatible-device-context handle. When lType is OD_MEMORY, this parameter is 
  15241.    a handle to a device context compatible with bit maps that are to be used 
  15242.    with this device context. 
  15243.  
  15244.    If hdcComp is NULLHANDLE, compatibility with the screen is assumed. 
  15245.  
  15246.  
  15247. ΓòÉΓòÉΓòÉ <hidden> Return Values - DevOpenDC ΓòÉΓòÉΓòÉ
  15248.  
  15249. hdc (HDC) - return 
  15250.    Device-context handle: 
  15251.  
  15252.    DEV_ERROR 
  15253.       Error 
  15254.  
  15255.    <>0 
  15256.       Device-context handle. 
  15257.  
  15258.  
  15259. ΓòÉΓòÉΓòÉ <hidden> Errors - DevOpenDC ΓòÉΓòÉΓòÉ
  15260.  
  15261. Possible returns from WinGetLastError 
  15262.  
  15263. PMERR_INV_DC_TYPE 
  15264.    An invalid type parameter was specified with DevOpenDC, or a function was 
  15265.    issued that is invalid for a OD_METAFILE_NOQUERY device context. 
  15266.  
  15267. PMERR_INV_LENGTH_OR_COUNT 
  15268.    An invalid length or count parameter was specified. 
  15269.  
  15270. PMERR_INV_DC_DATA 
  15271.    An invalid data parameter was specified with DevOpenDC. 
  15272.  
  15273. PMERR_INV_HDC 
  15274.    An invalid device-context handle or (micro presentation space) 
  15275.    presentation-space handle was specified. 
  15276.  
  15277. PMERR_INV_DRIVER_NAME 
  15278.    A driver name was specified which has not been installed. 
  15279.  
  15280. PMERR_INV_LOGICAL_ADDRESS 
  15281.    An invalid device logical address was specified. 
  15282.  
  15283.  
  15284. ΓòÉΓòÉΓòÉ <hidden> Notes - DevOpenDC ΓòÉΓòÉΓòÉ
  15285.  
  15286. A device context is a means of writing to a particular device. Before using GPI 
  15287. functions to cause output to be directed to the device context, the 
  15288. GpiAssociate function call must be issued (or the GPIA_ASSOC option specified 
  15289. on GpiCreatePS). 
  15290.  
  15291. DevOpenDC cannot be used to open a device context for a screen window; use 
  15292. WinOpenWindowDC instead. 
  15293.  
  15294. The device context is owned by the process from which DevOpenDC is issued. It 
  15295. cannot be accessed directly from any other process. If it still exists when the 
  15296. process terminates, it is automatically deleted by the system. When using a 
  15297. device context type of OD_METAFILE_NOQUERY the querying of attributes is not 
  15298. allowed. To improve performance of this type of metafile no error checking is 
  15299. performed to ensure that such API calls are not attempted. Query calls are 
  15300. accepted but the results returned are undefined. 
  15301.  
  15302. This function requires the existence of a message queue. 
  15303.  
  15304.  
  15305. ΓòÉΓòÉΓòÉ <hidden> Syntax - DevOpenDC ΓòÉΓòÉΓòÉ
  15306.  
  15307. /*******************************************/
  15308. /* This function creates a device context. */
  15309. /*******************************************/
  15310.  
  15311. #define INCL_DEV   /* Or use INCL_PM. Also in COMMON section */
  15312. #include <os2.h>
  15313.  
  15314. HAB           hab;              /* Anchor-block handle */
  15315. LONG          lType;            /* Type of device context */
  15316. PSZ           pszToken;         /* Device-information token */
  15317. LONG          lCount;           /* Number of items */
  15318. PDEVOPENDATA  pdopData;         /* Open-device-context data area */
  15319. HDC           hdcComp;          /* Compatible-device-context handle */
  15320. HDC           hdc;              /* Device-context handle */
  15321.  
  15322. hdc = DevOpenDC(hab, lType, pszToken,
  15323.         lCount, pdopData, hdcComp);
  15324.  
  15325.  
  15326. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DevOpenDC ΓòÉΓòÉΓòÉ
  15327.  
  15328. Prerequisite Functions 
  15329.  
  15330. o WinInitialize 
  15331.  
  15332. Related Functions 
  15333.  
  15334. o DevCloseDC 
  15335. o GpiAssociate(for the output of GPI data) 
  15336. o PrfQueryProfileString 
  15337. o WinOpenWindowDC 
  15338. o WinQueryWindow 
  15339.  
  15340.  
  15341. ΓòÉΓòÉΓòÉ <hidden> Example Code - DevOpenDC ΓòÉΓòÉΓòÉ
  15342.  
  15343.  This example calls DevOpenDC to create a memory device context with screen 
  15344. compatibility and then associates that context with a newly created 
  15345. presentation space. 
  15346.  
  15347.  
  15348. #define INCL_DEV                /* Device Function definitions  */
  15349. #define INCL_GPICONTROL         /* GPI control Functions        */
  15350. #include <os2.h>
  15351.  
  15352. HDC   hdc;              /* Device-context handle                */
  15353. HAB   hab;              /* Anchor-block handle                  */
  15354.  /* context data structure */
  15355. DEVOPENSTRUC dop = {NULL, "DISPLAY", NULL, NULL, NULL, NULL,
  15356.                     NULL, NULL, NULL};
  15357. HPS    hps;             /* presentation-space handle            */
  15358. SIZEL  sizl={0, 0};     /* use same page size as device        */
  15359.  
  15360. /* create memory device context */
  15361. hdc = DevOpenDC(hab, OD_MEMORY, "*", 5L, (PDEVOPENDATA)&dop, NULLHANDLE);
  15362.  
  15363. /* create a presentation space associated with the context */
  15364. hps = GpiCreatePS(hab, hdc, &sizl, GPIA_ASSOC | PU_PELS);
  15365.  
  15366.  
  15367. ΓòÉΓòÉΓòÉ 5.4. DevPostDeviceModes ΓòÉΓòÉΓòÉ
  15368.  
  15369.  
  15370. ΓòÉΓòÉΓòÉ <hidden> Topics - DevPostDeviceModes ΓòÉΓòÉΓòÉ
  15371.  
  15372. Select an item: 
  15373.  
  15374. Function Syntax 
  15375. Parameters 
  15376. Return Values 
  15377. Errors 
  15378. Notes 
  15379. Example 
  15380. Related Functions 
  15381. Glossary 
  15382.  
  15383.  
  15384. ΓòÉΓòÉΓòÉ <hidden> Parameters - DevPostDeviceModes ΓòÉΓòÉΓòÉ
  15385.  
  15386. hab (HAB) - input 
  15387.    Anchor-block handle. 
  15388.  
  15389. pdrivDriverData (PDRIVDATA) - input/output 
  15390.    Driver data. A data area that, on return, contains device data defined by 
  15391.    the presentation driver. If the pointer to the area is NULL, this function 
  15392.    returns the required size of the data area. 
  15393.  
  15394.    The format of the data is the same as that which occurs within the 
  15395.    DEVOPENSTRUC structure, passed on the pdopData parameter of DevOpenDC. 
  15396.  
  15397. pszDriverName (PSZ) - input 
  15398.    Device-driver name. A string containing the name of the presentation driver; 
  15399.  
  15400. pszDeviceName (PSZ) - input 
  15401.    Device-type name. Null-terminated string in a 32-byte field, identifying the 
  15402.    device type; for example, "HP LaserJet IID" (model number). Valid names are 
  15403.    defined by device drivers. 
  15404.  
  15405.    Note:  This parameter always overrides the data in the szDeviceName[32] 
  15406.           field of the DRIVDATA structure, passed in the pdrivDriverData 
  15407.           parameter. 
  15408.  
  15409. pszName (PSZ) - input 
  15410.    Device name. A name that identifies the device; for example, "PRINTER1". If 
  15411.    DPDM_POSTJOBPROP is specified in the flOptions parameter, the pszName 
  15412.    parameter can be NULL. 
  15413.  
  15414. flOptions (ULONG) - input 
  15415.    Dialog options. Options that control whether a dialog is displayed. 
  15416.  
  15417.    DPDM_POSTJOBPROP 
  15418.              This function allows the user to set properties for the print job 
  15419.              by displaying a dialog and returning the updated job properties. 
  15420.              Examples of job properties are paper size, paper orientation, and 
  15421.              single-sided or duplex. 
  15422.  
  15423.              The printer is configured in the shell using a dialog provided by 
  15424.              the presentation driver. The configuration describes the actual 
  15425.              printer setup such as number of paper bins, available paper sizes, 
  15426.              and any installed hardware fonts. 
  15427.  
  15428.              Before the job properties dialog is displayed the presentation 
  15429.              driver merges any changes in the printer configuration with the 
  15430.              data passed in the pdrivDriverData parameter. This allows, for 
  15431.              example new paper sizes to be added into the job properties 
  15432.              dialog. The parameter pszName can be specified as NULL although 
  15433.              this is not recommended because the presentation driver cannot 
  15434.              easily find the printer configuration to merge. 
  15435.  
  15436.              It is the responsibility of the application to retrieve and store 
  15437.              job properties. An application can choose to store job properties 
  15438.              either on a per document or per application basis. The job 
  15439.              properties can then be passed into DevOpenDC. Initial (default) 
  15440.              job properties can be retrieved using DPDM_QUERYJOBPROP option. 
  15441.  
  15442.              The application cannot tell if the user modified the job 
  15443.              properties or just cancelled the dialog. Hence the job properties 
  15444.              returned in the pdrivDriverData parameter must always be stored. 
  15445.  
  15446.              The shell allows users to specify default job properties for a 
  15447.              printer. The spooler API SplQueryQueue can be used to retrieve 
  15448.              these defaults. The spooler automatically adds the default job 
  15449.              properties for a printer to any jobs that are submitted without 
  15450.              job properties. 
  15451.  
  15452.    DPDM_QUERYJOBPROP 
  15453.              Do not display a dialog.  Return the default job properties. These 
  15454.              defaults are derived from the defaults for the chosen device; for 
  15455.              example, "HP Laserjet IID" and the printer setup specified via the 
  15456.              shell printer driver configuration dialog. 
  15457.  
  15458.  
  15459. ΓòÉΓòÉΓòÉ <hidden> Return Values - DevPostDeviceModes ΓòÉΓòÉΓòÉ
  15460.  
  15461. lDriverCount (LONG) - return 
  15462.    Size/error indicator. Value depends on what was passed as the pointer to 
  15463.    pdrivDriverData: 
  15464.  
  15465.    NULL 
  15466.  
  15467.       DPDM_ERROR  Error 
  15468.       DPDM_NONE   No settable options 
  15469.       >0          Size in bytes required for pdrivDriverData. 
  15470.  
  15471.    Other 
  15472.  
  15473.       DPDM_ERROR  Error 
  15474.       DPDM_NONE   No settable options 
  15475.       DEV_OK      OK. 
  15476.  
  15477.  
  15478. ΓòÉΓòÉΓòÉ <hidden> Errors - DevPostDeviceModes ΓòÉΓòÉΓòÉ
  15479.  
  15480. Possible returns from WinGetLastError 
  15481.  
  15482. PMERR_INV_DRIVER_DATA 
  15483.    Invalid driver data was specified. 
  15484.  
  15485. PMERR_DRIVER_NOT_FOUND 
  15486.    The device driver specified with DevPostDeviceModes was not found. 
  15487.  
  15488. PMERR_INV_DEVICE_NAME 
  15489.    An invalid devicename parameter was specified with DevPostDeviceModes. 
  15490.  
  15491. PMERR_INV_LOGICAL_ADDRESS 
  15492.    An invalid device logical address was specified. 
  15493.  
  15494.  
  15495. ΓòÉΓòÉΓòÉ <hidden> Notes - DevPostDeviceModes ΓòÉΓòÉΓòÉ
  15496.  
  15497. An application can first call this function with a NULL data pointer to find 
  15498. out how much storage is needed for the data area. Having allocated the storage, 
  15499. the application can then make the call a second time for the data to be 
  15500. entered. The returned data can then be passed in DevOpenDC as pdrivDriverData 
  15501. within the pdopData parameter. 
  15502.  
  15503. Calling this function requires the existence of a message queue. 
  15504.  
  15505. Use SplEnumDevice or SplEnumPrinter with flType set to SPL_PR_DIRECT_DEVICE or 
  15506. SPL_PR_QUEUED_DEVICE to get a list of all the devices. 
  15507.  
  15508. To get information about a specific device use SplQueryDevice. 
  15509.  
  15510.  
  15511. ΓòÉΓòÉΓòÉ <hidden> Syntax - DevPostDeviceModes ΓòÉΓòÉΓòÉ
  15512.  
  15513. /*******************************************/
  15514. /* This function returns, and optionally   */
  15515. /* sets job properties.                    */
  15516. /*******************************************/
  15517.  
  15518. #define INCL_DEV   /* Or use INCL_PM */
  15519. #include <os2.h>
  15520.  
  15521. HAB        hab;                  /* Anchor-block handle */
  15522. PDRIVDATA  pdrivDriverData;      /* Driver data */
  15523. PSZ        pszDriverName;        /* Device-driver name. A string containing the name of the presentation driver; for example, "LASERJET" */
  15524. PSZ        pszDeviceName;        /* Device-type name */
  15525. PSZ        pszName;              /* Device name */
  15526. ULONG      flOptions;            /* Dialog options */
  15527. LONG       lDriverCount;         /* Size/error indicator */
  15528.  
  15529. lDriverCount = DevPostDeviceModes(hab,
  15530.                  pdrivDriverData,
  15531.                  pszDriverName,
  15532.                  pszDeviceName, pszName,
  15533.                  flOptions);
  15534.  
  15535.  
  15536. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DevPostDeviceModes ΓòÉΓòÉΓòÉ
  15537.  
  15538. Related Functions 
  15539.  
  15540. o DevOpenDC 
  15541.  
  15542.  
  15543. ΓòÉΓòÉΓòÉ <hidden> Example Code - DevPostDeviceModes ΓòÉΓòÉΓòÉ
  15544.  
  15545. This example shows how to call DevPostDeviceModes and allocate a new buffer, if 
  15546. necessary, for the larger job properties (DRIVDATA structure). 
  15547.  
  15548. #define INCL_DEV
  15549. #define INCL_DOS
  15550. #include <os2.h>
  15551. #include <memory.h>
  15552.  
  15553. {
  15554.     ULONG         devrc=FALSE;
  15555.     HAB           hab;
  15556.     PSZ           pszPrinter;
  15557.     HDC           hdc=NULL;
  15558.     PDRIVDATA     pOldDrivData;
  15559.     PDRIVDATA     pNewDrivData=NULL;
  15560.     PDEVOPENSTRUC dops;
  15561.     LONG          buflen;
  15562.  
  15563. /* check size of buffer required for job properties */
  15564.     buflen = DevPostDeviceModes( hab,
  15565.                                  NULL,
  15566.                                  dops->pszDriverName,
  15567.                                  dops->pdriv->szDeviceName,
  15568.                                  pszPrinter,
  15569.                                  DPDM_POSTJOBPROP
  15570.                                );
  15571.  
  15572. /* return error to caller */
  15573.     if (buflen<=0)
  15574.         return(buflen);
  15575.  
  15576. /* allocate some memory for larger job properties and */
  15577. /* return error to caller */
  15578.  
  15579.     if (buflen != dops->pdriv->cb)
  15580.     {
  15581.         if (DosAllocMem((PPVOID)&pNewDrivData,buflen,fALLOC))
  15582.             return(DPDM_ERROR);
  15583.     }
  15584.  
  15585. /* copy over old data so driver can use old job */
  15586. /* properties as base for job properties dialog */
  15587.     pOldDrivData = dops->pdriv;
  15588.     dops->pdriv = pNewDrivData;
  15589.     memcpy( (PSZ)pNewDrivData, (PSZ)pOldDrivData, pOldDrivData->cb );
  15590.  
  15591. /* display job properties dialog and get updated */
  15592. /* job properties from driver */
  15593.  
  15594.     devrc = DevPostDeviceModes( hab,
  15595.                                 dops->pdriv,
  15596.                                 dops->pszDriverName,
  15597.                                 dops->pdriv->szDeviceName,
  15598.                                 pszPrinter,
  15599.                                 DPDM_POSTJOBPROP
  15600.                               );
  15601.     return(devrc);
  15602. }
  15603.  
  15604.  
  15605. ΓòÉΓòÉΓòÉ 5.5. DevQueryCaps ΓòÉΓòÉΓòÉ
  15606.  
  15607.  
  15608. ΓòÉΓòÉΓòÉ <hidden> Topics - DevQueryCaps ΓòÉΓòÉΓòÉ
  15609.  
  15610. Select an item: 
  15611.  
  15612. Function Syntax 
  15613. Parameters 
  15614. Return Values 
  15615. Errors 
  15616. Notes 
  15617. Example 
  15618. Related Functions 
  15619. Glossary 
  15620.  
  15621.  
  15622. ΓòÉΓòÉΓòÉ <hidden> Parameters - DevQueryCaps ΓòÉΓòÉΓòÉ
  15623.  
  15624. hdc (HDC) - input 
  15625.    Device-context handle. 
  15626.  
  15627. lStart (LONG) - input 
  15628.    First item of information. The number of the first item of information to be 
  15629.    returned in alArray, counting from zero. 
  15630.  
  15631. lCount (LONG) - input 
  15632.    Count of items of information. This is the count to be returned in alArray. 
  15633.    It must be greater than zero. 
  15634.  
  15635. alArray (PLONG) - output 
  15636.    Device capabilities. Array of lCount elements, starting with lStart. The 
  15637.    array elements are numbered consecutively, starting with CAPS_FAMILY. The 
  15638.    element number constants start with 0. 
  15639.  
  15640.    If lStart + lCount -1 exceeds the current highest-defined element number, 
  15641.    elements beyond the highest are returned as 0. 
  15642.  
  15643.    CAPS_FAMILY 
  15644.       Device type (values as for lType in DevOpenDC). 
  15645.  
  15646.    CAPS_IO_CAPS 
  15647.       Device input/output capability: 
  15648.  
  15649.       CAPS_IO_DUMMY Dummy device 
  15650.       CAPS_SUPPORTS_OP Device supports output 
  15651.       CAPS_SUPPORTS_IP Device supports input 
  15652.       CAPS_SUPPORTS_IO Device supports output and input. 
  15653.  
  15654.    CAPS_TECHNOLOGY 
  15655.       Technology: 
  15656.  
  15657.       CAPS_TECH_UNKNOWN Unknown 
  15658.       CAPS_TECH_VECTOR_PLOTTER Vector plotter 
  15659.       CAPS_TECH_RASTER_DISPLAY Raster display 
  15660.       CAPS_TECH_RASTER_PRINTER Raster printer 
  15661.       CAPS_TECH_RASTER_CAMERA Raster camera 
  15662.       CAPS_TECH_POSTSCRIPT PostScript device. 
  15663.  
  15664.    CAPS_DRIVER_VERSION 
  15665.       Version identifier of the presentation driver. 
  15666.  
  15667.       The high order word of the version identifier is 0.  The low order word 
  15668.       identifies the release, for example 0x0120 is release 1.2. 
  15669.  
  15670.    CAPS_WIDTH 
  15671.       Media width (for a full screen, maximized window for displays) in pels. 
  15672.  
  15673.    CAPS_HEIGHT 
  15674.       Media depth (for a full screen, maximized window for displays) in pels. 
  15675.       (For a plotter, a pel is defined as the smallest possible displacement of 
  15676.       the pen and can be smaller than a pen width.) 
  15677.  
  15678.    CAPS_WIDTH_IN_CHARS 
  15679.       Media width (for a full screen, maximized window for displays) in default 
  15680.       character columns. 
  15681.  
  15682.    CAPS_HEIGHT_IN_CHARS 
  15683.       Media depth (for a full screen, maximized window for displays) in default 
  15684.       character rows. 
  15685.  
  15686.    CAPS_HORIZONTAL_RESOLUTION 
  15687.       Horizontal resolution of device in pels per meter. 
  15688.  
  15689.    CAPS_VERTICAL_RESOLUTION 
  15690.       Vertical resolution of device in pels per meter. 
  15691.  
  15692.    CAPS_CHAR_WIDTH 
  15693.       Default character-box width in pels for VIO. 
  15694.  
  15695.    CAPS_CHAR_HEIGHT 
  15696.       Default character-box height in pels for VIO. 
  15697.  
  15698.    CAPS_SMALL_CHAR_WIDTH 
  15699.       Default small-character box width in pels for VIO. This is 0 if there is 
  15700.       only one character-box size. 
  15701.  
  15702.    CAPS_SMALL_CHAR_HEIGHT 
  15703.       Default small-character box height in pels for VIO. This is 0 if there is 
  15704.       only one character-box size. 
  15705.  
  15706.    CAPS_COLORS 
  15707.       Number of distinct colors supported at the same time, including reset 
  15708.       (gray scales count as distinct colors). If loadable color tables are 
  15709.       supported, this is the number of entries in the device color table.  For 
  15710.       plotters, the value returned is the number of pens plus one (for the 
  15711.       background). 
  15712.  
  15713.    CAPS_COLOR_PLANES 
  15714.       Number of color planes. 
  15715.  
  15716.    CAPS_COLOR_BITCOUNT 
  15717.       Number of adjacent color bits for each pel (within one plane). 
  15718.  
  15719.    CAPS_COLOR_TABLE_SUPPORT 
  15720.       Loadable color table support: 
  15721.  
  15722.       CAPS_COLTABL_RGB_8 1 if RGB color table can be loaded, with a minimum 
  15723.                 support of 8 bits each for red, green, and blue. 
  15724.       CAPS_COLTABL_RGB_8_PLUS 1 if color table with other than 8 bits for each 
  15725.                 primary color can be loaded. 
  15726.       CAPS_COLTABL_TRUE_MIX 1 if true mixing occurs when the logical color 
  15727.                 table has been realized, providing that the size of the logical 
  15728.                 color table is not greater than the number of distinct colors 
  15729.                 supported (see element CAPS_COLORS). 
  15730.       CAPS_COLTABL_REALIZE 1 if a loaded color table can be realized. 
  15731.  
  15732.    CAPS_MOUSE_BUTTONS 
  15733.       The number of pointing device buttons that are available. A returned 
  15734.       value of 0 indicates that there are no pointing device buttons available. 
  15735.  
  15736.    CAPS_FOREGROUND_MIX_SUPPORT 
  15737.       Foreground mix support: 
  15738.  
  15739.       CAPS_FM_OR Logical OR. 
  15740.       CAPS_FM_OVERPAINT Overpaint. 
  15741.       CAPS_FM_XOR Logical XOR. 
  15742.       CAPS_FM_LEAVEALONE Leave alone. 
  15743.       CAPS_FM_AND Logical AND. 
  15744.       CAPS_FM_GENERAL_BOOLEAN All other mix modes; see GpiSetMix. 
  15745.  
  15746.       The value returned is the sum of the values appropriate to the mixes 
  15747.       supported. A device capable of supporting OR must, as a minimum, return 
  15748.       CAPS_FM_OR + CAPS_FM_OVERPAINT + CAPS_FM_LEAVEALONE, signifying support 
  15749.       for the mandatory mixes OR, overpaint, and leave-alone. 
  15750.  
  15751.       Note that these numbers correspond to the decimal representation of a bit 
  15752.       string that is six bits long, with each bit set to 1 if the appropriate 
  15753.       mode is supported. 
  15754.  
  15755.       Those mixes returned as supported are guaranteed for all primitive types. 
  15756.       For more information, see GpiSetMix. 
  15757.  
  15758.    CAPS_BACKGROUND_MIX_SUPPORT 
  15759.       Background mix support: 
  15760.  
  15761.       CAPS_BM_OR Logical OR. 
  15762.       CAPS_BM_OVERPAINT Overpaint. 
  15763.       CAPS_BM_XOR Logical XOR. 
  15764.       CAPS_BM_LEAVEALONE Leave alone. 
  15765.       CAPS_BM_AND Logical AND. 
  15766.       CAPS_BM_GENERAL_BOOLEAN All other mix modes; see GpiSetBackMix. 
  15767.       CAPS_BM_SRCTRANSPARENT Provides a transparent overlay function by not 
  15768.                 copying pels from the source bit map to the output bit map if 
  15769.                 they match the presentation space background color. 
  15770.       CAPS_BM_DESTTRANSPARENT Provides a transparent underlay function by 
  15771.                 copying only the pels that match the presentation space 
  15772.                 background color from the source bit map to the output bit map. 
  15773.  
  15774.       The value returned is the sum of the values appropriate to the mixes 
  15775.       supported. A device must, as a minimum, return CAPS_BM_OVERPAINT + 
  15776.       CAPS_BM_LEAVEALONE, signifying support for the mandatory background mixes 
  15777.       overpaint, and leave-alone. 
  15778.  
  15779.       Note that these numbers correspond to the decimal representation of a bit 
  15780.       string that is four bits long, with each bit set to 1 if the appropriate 
  15781.       mode is supported. 
  15782.  
  15783.       Those mixes returned as supported are guaranteed for all primitive types. 
  15784.       For more information, see GpiSetBackMix. 
  15785.  
  15786.    CAPS_VIO_LOADABLE_FONTS 
  15787.       Number of fonts that can be loaded for VIO. 
  15788.  
  15789.    CAPS_WINDOW_BYTE_ALIGNMENT 
  15790.       Whether or not the client area of VIO windows should be byte-aligned: 
  15791.  
  15792.       CAPS_BYTE_ALIGN_REQUIRED Must be byte-aligned. 
  15793.       CAPS_BYTE_ALIGN_RECOMMENDED More efficient if byte-aligned, but not 
  15794.                 required. 
  15795.       CAPS_BYTE_ALIGN_NOT_REQUIRED Does not matter whether byte-aligned. 
  15796.  
  15797.    CAPS_BITMAP_FORMATS 
  15798.       Number of bit-map formats supported by device. 
  15799.  
  15800.    CAPS_RASTER_CAPS 
  15801.       Capability for device raster operations: 
  15802.  
  15803.       CAPS_RASTER_BITBLT 1 if GpiBitBlt and GpiWCBitBlt supported 
  15804.       CAPS_RASTER_BANDING 1 if banding is supported 
  15805.       CAPS_RASTER_BITBLT_SCALING 1 if GpiBitBlt and GpiWCBitBlt with scaling 
  15806.                 supported. 
  15807.       CAPS_RASTER_SET_PEL 1 if GpiSetPel supported. 
  15808.       CAPS_RASTER_FONTS 1 if this device can draw raster fonts. 
  15809.       CAPS_RASTER_FLOOD_FILL 1 if GpiFloodFill is supported. 
  15810.  
  15811.    CAPS_MARKER_HEIGHT 
  15812.       Default marker-box height in pels. 
  15813.  
  15814.    CAPS_MARKER_WIDTH 
  15815.       Default marker-box width in pels. 
  15816.  
  15817.    CAPS_DEVICE_FONTS 
  15818.       Number of device-specific fonts. 
  15819.  
  15820.    CAPS_GRAPHICS_SUBSET 
  15821.       Graphics drawing subset supported. (3 indicates GOCA DR/3) 
  15822.  
  15823.    CAPS_GRAPHICS_VERSION 
  15824.       Graphics architecture version number supported. (1 indicates Version 1) 
  15825.  
  15826.    CAPS_GRAPHICS_VECTOR_SUBSET 
  15827.       Graphics vector drawing subset supported. (2 indicates GOCA VS/2) 
  15828.  
  15829.    CAPS_DEVICE_WINDOWING 
  15830.       Device windowing support: 
  15831.  
  15832.       CAPS_DEV_WINDOWING_SUPPORT 1 if device supports windowing. 
  15833.  
  15834.                 Other bits are reserved 0. 
  15835.  
  15836.    CAPS_ADDITIONAL_GRAPHICS 
  15837.       Additional graphics support: 
  15838.  
  15839.       CAPS_GRAPHICS_KERNING_SUPPORT 1 if device supports kerning. 
  15840.       CAPS_FONT_OUTLINE_DEFAULT 1 if device has a default outline font. 
  15841.       CAPS_FONT_IMAGE_DEFAULT 1 if device has a default image font. 
  15842.       CAPS_SCALED_DEFAULT_MARKERS 1 if default markers are to be scaled by the 
  15843.                 marker-box attribute. 
  15844.       CAPS_COLOR_CURSOR_SUPPORT 1 if device supports colored cursors. 
  15845.       CAPS_PALETTE_MANAGER 1 if device supports palette functions (see 
  15846.                 GpiCreatePalette). 
  15847.       CAPS_COSMETIC_WIDELINE_SUPPORT 1 if device supports cosmetic thick lines 
  15848.                 (see GpiSetLineWidth). 
  15849.       CAPS_ENHANCED_TEXT 1 if device supports full font file description and 
  15850.                 text alignment. 
  15851.  
  15852.                 Other bits are reserved 0. 
  15853.  
  15854.    CAPS_PHYS_COLORS 
  15855.       Maximum number of distinct colors available on the device. 
  15856.  
  15857.    CAPS_COLOR_INDEX 
  15858.       Maximum logical color-table index supported for this device. For the EGA 
  15859.       and VGA drivers, the value is 63. 
  15860.  
  15861.    CAPS_GRAPHICS_CHAR_WIDTH 
  15862.       Default graphics character-box width, in pels. 
  15863.  
  15864.    CAPS_GRAPHICS_CHAR_HEIGHT 
  15865.       Default graphics character-box height, in pels. 
  15866.  
  15867.    CAPS_HORIZONTAL_FONT_RES 
  15868.       Effective horizontal device resolution in pels per inch, for the purpose 
  15869.       of selecting fonts. 
  15870.  
  15871.       For printers, this is the actual device resolution, but for displays it 
  15872.       may differ from the actual resolution for reasons of legibility. 
  15873.  
  15874.    CAPS_VERTICAL_FONT_RES 
  15875.       Effective vertical device resolution in pels per inch, for the purpose of 
  15876.       selecting fonts. 
  15877.  
  15878.    CAPS_DEVICE_FONT_SIM 
  15879.       Identifies which simulations are valid on device fonts. 
  15880.  
  15881.       Valid flags are: 
  15882.  
  15883.       CAPS_DEV_FONT_SIM_BOLD 
  15884.       CAPS_DEV_FONT_SIM_ITALIC 
  15885.       CAPS_DEV_FONT_SIM_UNDERSCORE 
  15886.       CAPS_DEV_FONT_SIM_STRIKEOUT 
  15887.  
  15888.    CAPS_LINEWIDTH_THICK 
  15889.       Cosmetic thickness of lines and arcs on this device, when fxLineWidth is 
  15890.       LINEWIDTH_THICK (see GpiSetLineWidth). The units are pels.  A value of 0 
  15891.       is interpreted as 2 pels. 
  15892.  
  15893.  
  15894. ΓòÉΓòÉΓòÉ <hidden> Return Values - DevQueryCaps ΓòÉΓòÉΓòÉ
  15895.  
  15896. fSuccess (BOOL) - return 
  15897.    Success indicator: 
  15898.  
  15899.    TRUE 
  15900.       Successful completion 
  15901.  
  15902.    FALSE 
  15903.       Error occurred. 
  15904.  
  15905.  
  15906. ΓòÉΓòÉΓòÉ <hidden> Errors - DevQueryCaps ΓòÉΓòÉΓòÉ
  15907.  
  15908. Possible returns from WinGetLastError 
  15909.  
  15910. PMERR_INV_HDC 
  15911.    An invalid device-context handle or (micro presentation space) 
  15912.    presentation-space handle was specified. 
  15913.  
  15914. PMERR_INV_QUERY_ELEMENT_NO 
  15915.    An invalid start parameter was specified with DevQueryCaps. 
  15916.  
  15917. PMERR_INV_LENGTH_OR_COUNT 
  15918.    An invalid length or count parameter was specified. 
  15919.  
  15920.  
  15921. ΓòÉΓòÉΓòÉ <hidden> Notes - DevQueryCaps ΓòÉΓòÉΓòÉ
  15922.  
  15923. GpiQueryDevice can be used to find the handle of the currently associated 
  15924. device context. 
  15925.  
  15926.  
  15927. ΓòÉΓòÉΓòÉ <hidden> Syntax - DevQueryCaps ΓòÉΓòÉΓòÉ
  15928.  
  15929. /*******************************************/
  15930. /* This function queries the device        */
  15931. /* characteristics.                        */
  15932. /*******************************************/
  15933.  
  15934. #define INCL_DEV   /* Or use INCL_PM. Also in COMMON section */
  15935. #include <os2.h>
  15936.  
  15937. HDC    hdc;       /* Device-context handle */
  15938. LONG   lStart;    /* First item of information */
  15939. LONG   lCount;    /* Count of items of information */
  15940. PLONG  alArray;   /* Device capabilities */
  15941. BOOL   fSuccess;  /* Success indicator */
  15942.  
  15943. fSuccess = DevQueryCaps(hdc, lStart, lCount,
  15944.              alArray);
  15945.  
  15946.  
  15947. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DevQueryCaps ΓòÉΓòÉΓòÉ
  15948.  
  15949. Prerequisite Functions 
  15950.  
  15951. o DevOpenDC(for CAPS_FAMILY) 
  15952.  
  15953. Related Functions 
  15954.  
  15955. o DevQueryDeviceNames 
  15956. o DevQueryHardcopyCaps 
  15957. o GpiQueryDevice 
  15958. o GpiSetBackMix (for CAPS_BACKGROUND_MIX_SUPPORT) 
  15959. o GpiSetMix (for CAPS_FOREGROUND_MIX_SUPPORT) 
  15960.  
  15961.  
  15962. ΓòÉΓòÉΓòÉ <hidden> Example Code - DevQueryCaps ΓòÉΓòÉΓòÉ
  15963.  
  15964. In this example the driver is queried to see if it supports input, output, or 
  15965. both. Note that a valid device context handle must be passed. This example 
  15966. assumes a DevOpenDC call has been made to obtain the device context handle. 
  15967.  
  15968. #define INCL_DEV
  15969. #include <OS2.H>
  15970.  
  15971. HDC hdc;
  15972. LONG lStart;
  15973. LONG lCount;
  15974. BOOL flreturn;
  15975. LONG alArray[CAPS_TECHNOLOGY];
  15976. lCount = CAPS_TECHNOLOGY;
  15977. lStart = CAPS_FAMILY;
  15978.  
  15979. flreturn = DevQueryCaps(hdc,        /* device context handle */
  15980.                        lStart,      /* number of first item  */
  15981.                        lCount,      /* count of items        */
  15982.                        alArray);    /* array of longs which  */
  15983.                                     /* will contain the return */
  15984.                                     /* information.            */
  15985.  
  15986. switch(alArray[CAPS_IO_CAPS])       /* we test the CAPS_IO_CAPS */
  15987.                                     /* element of the array to  */
  15988.                                     /* find out which options   */
  15989. {                                   /* are supported.           */
  15990.  case CAPS_IO_SUPPORTS_OP:             /* device supports output.*/
  15991.  
  15992.  break;
  15993.  case CAPS_IO_SUPPORTS_IP:            /* device supports input. */
  15994.  
  15995.  break;
  15996.  case CAPS_IO_SUPPORTS_IO:            /* device supports both  */
  15997.                                     /* input and output.       */
  15998.  break;
  15999.  default:
  16000.  break;
  16001. }
  16002.  
  16003.  
  16004. ΓòÉΓòÉΓòÉ 5.6. DevQueryDeviceNames ΓòÉΓòÉΓòÉ
  16005.  
  16006.  
  16007. ΓòÉΓòÉΓòÉ <hidden> Topics - DevQueryDeviceNames ΓòÉΓòÉΓòÉ
  16008.  
  16009. Select an item: 
  16010.  
  16011. Function Syntax 
  16012. Parameters 
  16013. Return Values 
  16014. Errors 
  16015. Notes 
  16016. Example 
  16017. Related Functions 
  16018. Glossary 
  16019.  
  16020.  
  16021. ΓòÉΓòÉΓòÉ <hidden> Parameters - DevQueryDeviceNames ΓòÉΓòÉΓòÉ
  16022.  
  16023. hab (HAB) - input 
  16024.    Anchor-block handle. 
  16025.  
  16026. pszDriverName (PSZ) - input 
  16027.    Fully-qualified name of the file containing the presentation driver. The 
  16028.    file-name extension is DRV. 
  16029.  
  16030. pldn (PLONG) - input/output 
  16031.    Maximum number of device names and descriptions that can be returned. pldn 
  16032.    can have the following values: 
  16033.  
  16034.    Zero 
  16035.       The number of device names and descriptions supported is returned; 
  16036.       aDeviceName and aDeviceDesc are not updated. 
  16037.  
  16038.    Nonzero 
  16039.       pldn is updated to the number returned in aDeviceName and aDeviceDesc; 
  16040.       aDeviceName and aDeviceDesc are updated. 
  16041.  
  16042. aDeviceName (PSTR32) - output 
  16043.    Device-name array. An array of null-terminated strings, each element of 
  16044.    which identifies a particular device. Valid names are defined by 
  16045.    presentation drivers. 
  16046.  
  16047. aDeviceDesc (PSTR64) - output 
  16048.    Device-description array. An array of null-terminated strings, each element 
  16049.    of which is a description of a particular device. Valid descriptions are 
  16050.    defined by presentation drivers. 
  16051.  
  16052. pldt (PLONG) - input/output 
  16053.    Maximum number of data types that can be returned. pldt can have the 
  16054.    following values: 
  16055.  
  16056.    Zero 
  16057.       The number of data types supported is returned, and aDataType is not 
  16058.       updated. 
  16059.  
  16060.    Nonzero 
  16061.       pldt is updated to the number returned, and aDataType is updated. 
  16062.  
  16063. aDataType (PSTR16) - output 
  16064.    Data type array. An array of null-terminated strings, each element of which 
  16065.    identifies a data type. Valid data types are defined by presentation 
  16066.    drivers. 
  16067.  
  16068.  
  16069. ΓòÉΓòÉΓòÉ <hidden> Return Values - DevQueryDeviceNames ΓòÉΓòÉΓòÉ
  16070.  
  16071. fSuccess (BOOL) - return 
  16072.    Success indicator: 
  16073.  
  16074.    TRUE 
  16075.       Successful completion 
  16076.  
  16077.    FALSE 
  16078.       Error occurred. 
  16079.  
  16080.  
  16081. ΓòÉΓòÉΓòÉ <hidden> Errors - DevQueryDeviceNames ΓòÉΓòÉΓòÉ
  16082.  
  16083. Possible returns from WinGetLastError 
  16084.  
  16085. PMERR_INV_LENGTH_OR_COUNT 
  16086.    An invalid length or count parameter was specified. 
  16087.  
  16088.  
  16089. ΓòÉΓòÉΓòÉ <hidden> Notes - DevQueryDeviceNames ΓòÉΓòÉΓòÉ
  16090.  
  16091. An application can first call this function with pldn and pldt set to 0 to find 
  16092. how much storage is needed for the data areas. Having allocated the storage, 
  16093. the application calls the function a second time for the data to be entered. 
  16094.  
  16095. 'HP Laserjet IID' is an example of a device name, 'Hewlett-Packard Laserjet 
  16096. IID' is an example of a device description, and 'PM_Q_STD' is an example of a 
  16097. data type. 
  16098.  
  16099.  
  16100. ΓòÉΓòÉΓòÉ <hidden> Syntax - DevQueryDeviceNames ΓòÉΓòÉΓòÉ
  16101.  
  16102. /*******************************************/
  16103. /* This function causes a presentation     */
  16104. /* driver to return the names,             */
  16105. /* descriptions, and data types of the     */
  16106. /* devices it supports.                    */
  16107. /*******************************************/
  16108.  
  16109. #define INCL_DEV   /* Or use INCL_PM */
  16110. #include <os2.h>
  16111.  
  16112. HAB     hab;             /* Anchor-block handle */
  16113. PSZ     pszDriverName;   /* Fully-qualified name of the file containing the presentation driver */
  16114. PLONG   pldn;            /* Maximum number of device names and descriptions that can be returned */
  16115. PSTR32  aDeviceName;     /* Device-name array */
  16116. PSTR64  aDeviceDesc;     /* Device-description array */
  16117. PLONG   pldt;            /* Maximum number of data types that can be returned */
  16118. PSTR16  aDataType;       /* Data type array */
  16119. BOOL    fSuccess;        /* Success indicator */
  16120.  
  16121. fSuccess = DevQueryDeviceNames(hab,
  16122.              pszDriverName, pldn,
  16123.              aDeviceName, aDeviceDesc, pldt,
  16124.              aDataType);
  16125.  
  16126.  
  16127. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DevQueryDeviceNames ΓòÉΓòÉΓòÉ
  16128.  
  16129. Related Functions 
  16130.  
  16131. o DevQueryCaps 
  16132. o DevQueryHardcopyCaps 
  16133.  
  16134.  
  16135. ΓòÉΓòÉΓòÉ <hidden> Example Code - DevQueryDeviceNames ΓòÉΓòÉΓòÉ
  16136.  
  16137.  This example uses DevQueryDeviceNames to return the names, descriptions, and 
  16138. data types of supported devices for a presentation driver.  The first call to 
  16139. DevQueryDeviceNames determines the number of names, description, and data types 
  16140. available; after allocating the arrays, the second call actually returns the 
  16141. information in the arrays. 
  16142.  
  16143.  
  16144. #define INCL_DEV                /* Device Function definitions  */
  16145. #define INCL_DOSMEMMGR          /* DOS Memory Manager Functions */
  16146. #include <os2.h>
  16147.  
  16148. BOOL  fSuccess;         /* success indicator                    */
  16149. HAB   hab;              /* Anchor-block handle                  */
  16150. LONG  pldn = 0L;        /* number of device names/descriptions  */
  16151. LONG  pldt = 0L;        /* number of data types                 */
  16152. PSTR32 aDeviceName;     /* array of device names                */
  16153. PSTR64 aDeviceDesc;     /* array of device descriptions         */
  16154. PSTR16 aDataType;       /* array of data types                  */
  16155.  
  16156. /* query number of supported names/descriptions/data types
  16157.    (pldn & pldt both 0) */
  16158. fSuccess = DevQueryDeviceNames(hab, "IBM4201.DRV", &pldn,
  16159.                                aDeviceName, aDeviceDesc, &pldt,
  16160.                                aDataType);
  16161.  
  16162. if (fSuccess)
  16163.    {
  16164.    /* allocate arrays */
  16165.    DosAllocMem((VOID *)aDeviceName, (ULONG)pldn*sizeof(STR32),
  16166.                PAG_COMMIT | PAG_WRITE);
  16167.    DosAllocMem((VOID *)aDeviceDesc, (ULONG)pldn*sizeof(STR64),
  16168.                PAG_COMMIT | PAG_WRITE);
  16169.    DosAllocMem((VOID *)aDataType, (ULONG)pldt*sizeof(STR16),
  16170.                PAG_COMMIT | PAG_WRITE);
  16171.  
  16172.    /* query supported device information */
  16173.    fSuccess = DevQueryDeviceNames(hab, "IBM4201.DRV", &pldn,
  16174.                                   aDeviceName, aDeviceDesc, &pldt,
  16175.                                   aDataType);
  16176.    }
  16177.  
  16178.  
  16179. ΓòÉΓòÉΓòÉ 5.7. DevQueryHardcopyCaps ΓòÉΓòÉΓòÉ
  16180.  
  16181.  
  16182. ΓòÉΓòÉΓòÉ <hidden> Topics - DevQueryHardcopyCaps ΓòÉΓòÉΓòÉ
  16183.  
  16184. Select an item: 
  16185.  
  16186. Function Syntax 
  16187. Parameters 
  16188. Return Values 
  16189. Errors 
  16190. Example 
  16191. Related Functions 
  16192. Glossary 
  16193.  
  16194.  
  16195. ΓòÉΓòÉΓòÉ <hidden> Parameters - DevQueryHardcopyCaps ΓòÉΓòÉΓòÉ
  16196.  
  16197. hdc (HDC) - input 
  16198.    Device-context handle. 
  16199.  
  16200. lStartForm (LONG) - input 
  16201.    Start-forms code. Forms-code number from which the query is to start.  The 
  16202.    first forms code has the value 0. lStartForm is used with lForms. 
  16203.  
  16204. lForms (LONG) - input 
  16205.    Number of forms to query. If 0, the number of forms codes defined is 
  16206.    returned.  If greater than zero, this function returns the number of forms 
  16207.    codes for which information is returned. 
  16208.  
  16209.    For example, if there are five forms codes defined, and lStartForm = 2 and 
  16210.    lForms  = 3, a query is performed for forms codes 2, 3, and 4. The result is 
  16211.    returned in the buffer pointed to by phciHcInfo. 
  16212.  
  16213. phciHcInfo (PHCINFO) - output 
  16214.    Hard-copy capabilities information. A buffer containing the results of the 
  16215.    query.  The result consists of lForms copies of the HCINFO structure. 
  16216.  
  16217.    At least one of the defined forms codes must have the HCAPS_CURRENT bit set. 
  16218.    There might be more than one with either the HCAPS_CURRENT or the 
  16219.    HCAPS_SELECTABLE bits set. 
  16220.  
  16221.    For a job to be selected by the spooler for printing, each one of the forms 
  16222.    specified in the FORM spooler parameter (see pszSpoolerParams in 
  16223.    DEVOPENSTRUC) must be either HCAPS_CURRENT or HCAPS_SELECTABLE. In other 
  16224.    cases, the spooler holds the job with a "forms mismatch" error. 
  16225.  
  16226.  
  16227. ΓòÉΓòÉΓòÉ <hidden> Return Values - DevQueryHardcopyCaps ΓòÉΓòÉΓòÉ
  16228.  
  16229. lFormsReturned (LONG) - return 
  16230.    Details of forms: 
  16231.  
  16232.    DQHC_ERROR 
  16233.                   Error. 
  16234.  
  16235.    >=0 
  16236.                   If lForms equals 0, number of forms available. 
  16237.                   If lForms does not equal 0, number of forms returned. 
  16238.  
  16239.  
  16240. ΓòÉΓòÉΓòÉ <hidden> Errors - DevQueryHardcopyCaps ΓòÉΓòÉΓòÉ
  16241.  
  16242. Possible returns from WinGetLastError 
  16243.  
  16244. PMERR_INV_HDC 
  16245.    An invalid device-context handle or (micro presentation space) 
  16246.    presentation-space handle was specified. 
  16247.  
  16248. PMERR_INV_FORMS_CODE 
  16249.    An invalid forms code parameter was specified with DevQueryHardcopyCaps. 
  16250.  
  16251. PMERR_INV_LENGTH_OR_COUNT 
  16252.    An invalid length or count parameter was specified. 
  16253.  
  16254.  
  16255. ΓòÉΓòÉΓòÉ <hidden> Syntax - DevQueryHardcopyCaps ΓòÉΓòÉΓòÉ
  16256.  
  16257. /*******************************************/
  16258. /* This function queries the hard-copy     */
  16259. /* capabilities of a device.               */
  16260. /*******************************************/
  16261.  
  16262. #define INCL_DEV   /* Or use INCL_PM */
  16263. #include <os2.h>
  16264.  
  16265. HDC      hdc;               /* Device-context handle */
  16266. LONG     lStartForm;        /* Start-forms code */
  16267. LONG     lForms;            /* Number of forms to query */
  16268. PHCINFO  phciHcInfo;        /* Hard-copy capabilities information */
  16269. LONG     lFormsReturned;    /* Details of forms */
  16270.  
  16271. lFormsReturned = DevQueryHardcopyCaps(hdc,
  16272.                    lStartForm, lForms,
  16273.                    phciHcInfo);
  16274.  
  16275.  
  16276. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DevQueryHardcopyCaps ΓòÉΓòÉΓòÉ
  16277.  
  16278. Prerequisite Functions 
  16279.  
  16280. o DevOpenDC 
  16281.  
  16282. Related Functions 
  16283.  
  16284. o DevQueryCaps 
  16285. o DevQueryDeviceNames 
  16286.  
  16287.  
  16288. ΓòÉΓòÉΓòÉ <hidden> Example Code - DevQueryHardcopyCaps ΓòÉΓòÉΓòÉ
  16289.  
  16290. The height and width of the capability of the output device is queried for each 
  16291. form code available. Note that a valid device context handle must be passed. 
  16292. This example assumes a DevOpenDC call has been made to obtain the device 
  16293. context handle of a say a printer. 
  16294.  
  16295. #define INCL_DEV
  16296. #include <OS2.H>
  16297.  
  16298. HDC hdc;
  16299. LONG lStartForm;      /* Form code number from which the query */
  16300.                       /* is to start                           */
  16301. LONG lForms;          /* number of forms to query              */
  16302. /* array of structures containing return information. */
  16303. HCINFO ahciHcInfo[5];
  16304. LONG lreturn;
  16305. int i;
  16306. HCINFO height[5];
  16307. HCINFO width[5];
  16308.  
  16309. lStartForm = 0L;
  16310. lForms = 0L;           /* the actual number of forms codes is */
  16311.                        /* returned. There will be lreturn      */
  16312.                        /* copies of the HINFO structure.       */
  16313.  
  16314. lreturn = DevQueryHardcopyCaps(hdc,
  16315.                                lStartForm,
  16316.                                lForms,
  16317.                                ahciHcInfo);
  16318. if (lreturn > 5)
  16319. {
  16320.  lreturn = 5L;        /* we only want the first five form codes */
  16321. }                     /* if there are more than five            */
  16322.  
  16323. for(i = 0; i < lreturn; i++)
  16324. {
  16325.  width[lreturn].cx = ahciHcInfo[lreturn].cx;
  16326.  height[lreturn].cy = ahciHcInfo[lreturn].cy;
  16327. }
  16328.  
  16329.  
  16330. ΓòÉΓòÉΓòÉ 6. Direct Manipulation Functions ΓòÉΓòÉΓòÉ
  16331.  
  16332. This section describes functions that an application would use to initiate or 
  16333. participate in a direct manipulation operation. 
  16334.  
  16335.  
  16336. ΓòÉΓòÉΓòÉ 6.1. DrgAcceptDroppedFiles ΓòÉΓòÉΓòÉ
  16337.  
  16338.  
  16339. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgAcceptDroppedFiles ΓòÉΓòÉΓòÉ
  16340.  
  16341. Select an item: 
  16342.  
  16343. Function Syntax 
  16344. Parameters 
  16345. Return Values 
  16346. Notes 
  16347. Example 
  16348. Related Functions 
  16349. Glossary 
  16350.  
  16351.  
  16352. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgAcceptDroppedFiles ΓòÉΓòÉΓòÉ
  16353.  
  16354. Hwnd (HWND) - input 
  16355.    Window handle. Handle of calling window. 
  16356.  
  16357. pPath (PSZ) - input 
  16358.    Directory. Directory in which to place the dropped files. If NULL, the files 
  16359.    are placed in the current directory. 
  16360.  
  16361. pTypes (PSZ) - input 
  16362.    List of types. A list of types that are acceptable to the drop. This string 
  16363.    is of the form: type[,type...]. 
  16364.  
  16365.    When this pointer is NULL, any type of file will be accepted. 
  16366.  
  16367. ulDefaultOp (ULONG) - input 
  16368.    Default drag operation. Default drag operation for this window. The 
  16369.    operation is either DO_MOVE or DO_COPY. 
  16370.  
  16371. ulReserved (ULONG) - input 
  16372.    Reserved. 
  16373.  
  16374.  
  16375. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgAcceptDroppedFiles ΓòÉΓòÉΓòÉ
  16376.  
  16377. fSuccess (BOOL) - return 
  16378.    Success indicator. 
  16379.  
  16380.    TRUE 
  16381.       Successful completion. 
  16382.  
  16383.    FALSE 
  16384.       Error occurred. 
  16385.  
  16386.  
  16387. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgAcceptDroppedFiles ΓòÉΓòÉΓòÉ
  16388.  
  16389. This function handles the file direct manipulation protocol for a given window. 
  16390. The window responds (DOR_DROP, usDefaultOp) to DM_DRAGOVER messages for items 
  16391. with a type matching the acceptable type string and with a rendering mechanism 
  16392. and format of <DRM_OS2FILE,DRF_UNKNOWN>. Not all dragged objects must match 
  16393. this criteria for the drop to be acceptable. 
  16394.  
  16395. After the drop occurs, this function handles the conversation required to 
  16396. complete the direct manipulation operation for all acceptable objects. A 
  16397. DM_ENDCONVERSATION (DMFL_TARGETFAIL) message is sent to the source when an 
  16398. object is unacceptable. 
  16399.  
  16400. When an error occurs during a move or copy, the caller is sent a DM_DRAGERROR 
  16401. message.  The caller can take corrective action. 
  16402.  
  16403. As the move or copy operation is successfully completed for each file, a 
  16404. DM_DRAGFILECOMPLETE message is sent to the caller. No message is sent when the 
  16405. operation fails. 
  16406.  
  16407. The function returns TRUE if the operation is successful and FALSE if an error 
  16408. occurs. 
  16409.  
  16410.  
  16411. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgAcceptDroppedFiles ΓòÉΓòÉΓòÉ
  16412.  
  16413. /*******************************************/
  16414. /* This function handles the file direct   */
  16415. /* manipulation protocol for a given       */
  16416. /* window.                                 */
  16417. /*******************************************/
  16418.  
  16419. #define INCL_WINSTDDRAG
  16420. #include <os2.h>
  16421.  
  16422. HWND   Hwnd;         /* Window handle */
  16423. PSZ    pPath;        /* Directory */
  16424. PSZ    pTypes;       /* List of types */
  16425. ULONG  ulDefaultOp;  /* Default drag operation */
  16426. ULONG  ulReserved;   /* Reserved */
  16427. BOOL   fSuccess;     /* Success indicator */
  16428.  
  16429. fSuccess = DrgAcceptDroppedFiles(Hwnd,
  16430.              pPath, pTypes, ulDefaultOp,
  16431.              ulReserved);
  16432.  
  16433.  
  16434. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgAcceptDroppedFiles ΓòÉΓòÉΓòÉ
  16435.  
  16436. Related Functions 
  16437.  
  16438. o DrgDragFiles 
  16439.  
  16440.  
  16441. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgAcceptDroppedFiles ΓòÉΓòÉΓòÉ
  16442.  
  16443. This example uses the DrgAcceptDroppedFiles function to define the direct 
  16444. manipulation protocol of the given window, accept all file types, and use the 
  16445. current directory as the drop directory. 
  16446.  
  16447. #define INCL_WINSTDDRAG /* Direct Manipulation (Drag) Functions */
  16448. #include <os2.h>
  16449.  
  16450. BOOL   fSuccess;        /* Indicate success or failure          */
  16451. HWND   Hwnd;            /* Handle of calling window             */
  16452. PSZ    pszPath;         /* Directory in which to place the      */
  16453.                         /* dropped files                        */
  16454. PSZ    pszTypes;        /* A list of types that are acceptable  */
  16455. ULONG  ulDefaultOp;     /* Default drag operation               */
  16456.  
  16457. pszPath = NULL;         /* Drop file in current directory       */
  16458. pszTypes = NULL;        /* Accept any file type                 */
  16459. ulDefaultOp = DO_MOVE;  /* Default drag operation is move       */
  16460.  
  16461. fSuccess = DrgAcceptDroppedFiles(Hwnd, pszPath, pszTypes,
  16462.                                  ulDefaultOp, 0);
  16463.  
  16464.  
  16465. ΓòÉΓòÉΓòÉ 6.2. DrgAccessDraginfo ΓòÉΓòÉΓòÉ
  16466.  
  16467.  
  16468. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgAccessDraginfo ΓòÉΓòÉΓòÉ
  16469.  
  16470. Select an item: 
  16471.  
  16472. Function Syntax 
  16473. Parameters 
  16474. Return Values 
  16475. Errors 
  16476. Notes 
  16477. Example 
  16478. Related Functions 
  16479. Glossary 
  16480.  
  16481.  
  16482. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgAccessDraginfo ΓòÉΓòÉΓòÉ
  16483.  
  16484. pDraginfo (PDRAGINFO) - input 
  16485.    Pointer. Pointer to the DRAGINFO structure. 
  16486.  
  16487.  
  16488. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgAccessDraginfo ΓòÉΓòÉΓòÉ
  16489.  
  16490. fSuccess (BOOL) - return 
  16491.    Success indicator. 
  16492.  
  16493.    TRUE 
  16494.       Successful completion. 
  16495.  
  16496.    FALSE 
  16497.       Error occurred. 
  16498.  
  16499.  
  16500. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgAccessDraginfo ΓòÉΓòÉΓòÉ
  16501.  
  16502. Possible returns from WinGetLastError 
  16503.  
  16504. PMERR_ACCESS_DENIED 
  16505.    The memory block was not allocated properly. 
  16506.  
  16507.  
  16508. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgAccessDraginfo ΓòÉΓòÉΓòÉ
  16509.  
  16510. This function is used by the target of a drag operation to access a DRAGINFO 
  16511. structure. The address of the structure is passed in a drag message 
  16512. (DM_DRAGOVER, DM_DROP, or DM_DROPHELP). 
  16513.  
  16514. To release the structure, use the DrgFreeDraginfo function. 
  16515.  
  16516.  
  16517. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgAccessDraginfo ΓòÉΓòÉΓòÉ
  16518.  
  16519. /*******************************************/
  16520. /* This function accesses a DRAGINFO       */
  16521. /* structure.                              */
  16522. /*******************************************/
  16523.  
  16524. #define INCL_WINSTDDRAG
  16525. #include <os2.h>
  16526.  
  16527. PDRAGINFO  pDraginfo;      /* Pointer */
  16528. BOOL       fSuccess;       /* Success indicator */
  16529.  
  16530. fSuccess = DrgAccessDraginfo(pDraginfo);
  16531.  
  16532.  
  16533. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgAccessDraginfo ΓòÉΓòÉΓòÉ
  16534.  
  16535. Related Functions 
  16536.  
  16537. o DrgAllocDraginfo 
  16538. o DrgDrag 
  16539. o DrgFreeDraginfo 
  16540. o DrgPushDraginfo 
  16541.  
  16542.  
  16543. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgAccessDraginfo ΓòÉΓòÉΓòÉ
  16544.  
  16545. This example uses the DrgAccessDraginfo function to make an existing drag 
  16546. information structure (created by the DrgAllocDraginfo function) available. 
  16547.  
  16548. #define INCL_WINSTDDRAG  /* Direct Manipulation (Drag) Functions */
  16549. #include <os2.h>
  16550.  
  16551. BOOL      fSuccess;      /* Indicate success or failure          */
  16552. DRAGINFO  Draginfo;      /* Drag-information structure           */
  16553.  
  16554. fSuccess = DrgAccessDraginfo(&Draginfo);
  16555.  
  16556.  
  16557. ΓòÉΓòÉΓòÉ 6.3. DrgAddStrHandle ΓòÉΓòÉΓòÉ
  16558.  
  16559.  
  16560. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgAddStrHandle ΓòÉΓòÉΓòÉ
  16561.  
  16562. Select an item: 
  16563.  
  16564. Function Syntax 
  16565. Parameters 
  16566. Return Values 
  16567. Errors 
  16568. Notes 
  16569. Example 
  16570. Related Functions 
  16571. Glossary 
  16572.  
  16573.  
  16574. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgAddStrHandle ΓòÉΓòÉΓòÉ
  16575.  
  16576. pString (PSZ) - input 
  16577.    String. String for which a handle is to be created. 
  16578.  
  16579.  
  16580. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgAddStrHandle ΓòÉΓòÉΓòÉ
  16581.  
  16582. Hstr (HSTR) - return 
  16583.    String handle. 
  16584.  
  16585.    NULLHANDLE 
  16586.       Error occurred. 
  16587.  
  16588.    Other 
  16589.       String handle created. 
  16590.  
  16591.  
  16592. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgAddStrHandle ΓòÉΓòÉΓòÉ
  16593.  
  16594. Possible returns from WinGetLastError 
  16595.  
  16596. PMERR_INVALID_PARAMETERS 
  16597.    An application parameter value is invalid for its converted PM type. For 
  16598.    example: a 4-byte value outside the range -32,768 to +32,767 cannot be 
  16599.    converted to a SHORT, and a negative number cannot be converted to a ULONG 
  16600.    or USHORT. 
  16601.  
  16602. PMERR_RESOURCE_DEPLETION 
  16603.    An internal resource depletion error has occurred. 
  16604.  
  16605.  
  16606. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgAddStrHandle ΓòÉΓòÉΓòÉ
  16607.  
  16608. The handle can be used by any application to reference the input string. 
  16609.  
  16610. This function must be called by the source of a drag whenever a string is to be 
  16611. passed in a DRAGINFO structure. 
  16612.  
  16613.  
  16614. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgAddStrHandle ΓòÉΓòÉΓòÉ
  16615.  
  16616. /*******************************************/
  16617. /* This function creates a handle to a     */
  16618. /* string.                                 */
  16619. /*******************************************/
  16620.  
  16621. #define INCL_WINSTDDRAG
  16622. #include <os2.h>
  16623.  
  16624. PSZ   pString; /* String */
  16625. HSTR  Hstr;    /* String handle */
  16626.  
  16627. Hstr = DrgAddStrHandle(pString);
  16628.  
  16629.  
  16630. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgAddStrHandle ΓòÉΓòÉΓòÉ
  16631.  
  16632. Related Functions 
  16633.  
  16634. o DrgDeleteStrHandle 
  16635. o DrgQueryStrName 
  16636.  
  16637.  
  16638. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgAddStrHandle ΓòÉΓòÉΓòÉ
  16639.  
  16640. This example calls the DrgAddStrHandle function to create handles for strings 
  16641. that are used in a DRAGITEM structure. 
  16642.  
  16643. #define INCL_WINSTDDRAG /* Direct Manipulation (Drag) Functions  */
  16644. #include <os2.h>
  16645.  
  16646. USHORT   ID_ITEM = 1;   /* Drag item identifier                  */
  16647. HWND     hwnd;          /* Window handle                         */
  16648. DRAGITEM ditem;         /* DRAGITEM structure                    */
  16649.  
  16650.                         /* Initialize the DRAGITEM structure     */
  16651. ditem.hwndItem = hwnd;          /* Conversation partner          */
  16652. ditem.ulItemID = ID_ITEM;       /* Identifies item being dragged */
  16653. ditem.hstrType = DrgAddStrHandle(DRT_TEXT);     /*  Item is text */
  16654. ditem.hstrRMF = DrgAddStrHandle("<DRM_OS2FILE,DRF_TEXT>");
  16655. ditem.hstrContainerName = DrgAddStrHandle("C:\\");
  16656. ditem.hstrSourceName = DrgAddStrHandle("C:\\CONFIG.SYS");
  16657. ditem.hstrTargetName = DrgAddStrHandle("C:\\OS2\\CONFIG.SYS");
  16658. ditem.cxOffset = 0;             /* X-offset of the origin of the */
  16659.                                 /* image from the pointer hotspot*/
  16660. ditem.cyOffset = 0;             /* Y-offset of the origin of the */
  16661.                                 /* image from the pointer hotspot*/
  16662. ditem.fsControl = 0;            /* Source item control flags     */
  16663.                                 /* object is open                */
  16664. ditem.fsSupportedOps = 0;
  16665.  
  16666.  
  16667. ΓòÉΓòÉΓòÉ 6.4. DrgAllocDraginfo ΓòÉΓòÉΓòÉ
  16668.  
  16669.  
  16670. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgAllocDraginfo ΓòÉΓòÉΓòÉ
  16671.  
  16672. Select an item: 
  16673.  
  16674. Function Syntax 
  16675. Parameters 
  16676. Return Values 
  16677. Errors 
  16678. Notes 
  16679. Example 
  16680. Related Functions 
  16681. Glossary 
  16682.  
  16683.  
  16684. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgAllocDraginfo ΓòÉΓòÉΓòÉ
  16685.  
  16686. cDitem (ULONG) - input 
  16687.    Number of objects. Number of objects being dragged. This number must be 
  16688.    greater than 0. 
  16689.  
  16690.  
  16691. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgAllocDraginfo ΓòÉΓòÉΓòÉ
  16692.  
  16693. pDraginfo (PDRAGINFO) - return 
  16694.    Pointer. Pointer to the DRAGINFO structure. 
  16695.  
  16696.    NULL 
  16697.       Error occurred. 
  16698.  
  16699.    Other 
  16700.       The DRAGINFO structure. 
  16701.  
  16702.  
  16703. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgAllocDraginfo ΓòÉΓòÉΓòÉ
  16704.  
  16705. Possible returns from WinGetLastError 
  16706.  
  16707. PMERR_INSUFFICIENT_MEMORY 
  16708.    The operation terminated through insufficient memory. 
  16709.  
  16710. PMERR_INVALID_PARAMETERS 
  16711.    An application parameter value is invalid for its converted PM type. For 
  16712.    example: a 4-byte value outside the range -32,768 to +32,767 cannot be 
  16713.    converted to a SHORT, and a negative number cannot be converted to a ULONG 
  16714.    or USHORT. 
  16715.  
  16716.  
  16717. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgAllocDraginfo ΓòÉΓòÉΓòÉ
  16718.  
  16719. This function must be called before the DrgDrag function is called. 
  16720.  
  16721. The caller can define a default operation for the objects represented by the 
  16722. DRAGINFO structure by modifying the usOperation field. If the usOperation field 
  16723. is modified, the new value will be sent to the target as the operation whenever 
  16724. a DO_DEFAULT operation would normally be sent. The caller should not modify any 
  16725. other part of the DRAGINFO structure. The DRAGITEM structures associated with 
  16726. the DRAGINFO structure should only be altered with DrgSetDragitem or by using a 
  16727. pointer obtained with DrgQueryDragitemPtr. 
  16728.  
  16729.  
  16730. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgAllocDraginfo ΓòÉΓòÉΓòÉ
  16731.  
  16732. /*******************************************/
  16733. /* This function allocates a DRAGINFO      */
  16734. /* structure.                              */
  16735. /*******************************************/
  16736.  
  16737. #define INCL_WINSTDDRAG
  16738. #include <os2.h>
  16739.  
  16740. ULONG      cDitem;         /* Number of objects */
  16741. PDRAGINFO  pDraginfo;      /* Pointer */
  16742.  
  16743. pDraginfo = DrgAllocDraginfo(cDitem);
  16744.  
  16745.  
  16746. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgAllocDraginfo ΓòÉΓòÉΓòÉ
  16747.  
  16748. Related Functions 
  16749.  
  16750. o DrgAccessDraginfo 
  16751. o DrgDrag 
  16752. o DrgFreeDraginfo 
  16753. o DrgPushDraginfo 
  16754.  
  16755.  
  16756. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgAllocDraginfo ΓòÉΓòÉΓòÉ
  16757.  
  16758. This example calls the DrgAllocDraginfo function to create a Drag structure for 
  16759. a single object and uses the new structure to set the DRAGITEM (DrgSetDragitem) 
  16760. structure. 
  16761.  
  16762. #define INCL_WINSTDDRAG  /* Direct Manipulation (Drag) Functions */
  16763. #include <os2.h>
  16764.  
  16765. PDRAGINFO  pdinfo;       /* Pointer to DRAGINFO structure        */
  16766. HWND       hwnd;         /* Handle of calling (source) window    */
  16767. BOOL       flResult;     /* Result indicator                     */
  16768. DRAGITEM   ditem;        /* DRAGITEM structure                   */
  16769.  
  16770. pdinfo = DrgAllocDraginfo(1); /* Create the DRAGINFO structure   */
  16771.                               /* Set the drag item               */
  16772. flResult= DrgSetDragitem(pdinfo, &ditem, (ULONG)sizeof(ditem), 0);
  16773.  
  16774.  
  16775. ΓòÉΓòÉΓòÉ 6.5. DrgAllocDragtransfer ΓòÉΓòÉΓòÉ
  16776.  
  16777.  
  16778. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgAllocDragtransfer ΓòÉΓòÉΓòÉ
  16779.  
  16780. Select an item: 
  16781.  
  16782. Function Syntax 
  16783. Parameters 
  16784. Return Values 
  16785. Errors 
  16786. Notes 
  16787. Example 
  16788. Related Functions 
  16789. Glossary 
  16790.  
  16791.  
  16792. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgAllocDragtransfer ΓòÉΓòÉΓòÉ
  16793.  
  16794. cdxfer (ULONG) - input 
  16795.    Number of structures. Number of DRAGTRANSFER structures to be allocated. 
  16796.    This number must be greater than 0. 
  16797.  
  16798.  
  16799. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgAllocDragtransfer ΓòÉΓòÉΓòÉ
  16800.  
  16801. pResult (PDRAGTRANSFER) - return 
  16802.    Pointer. Pointer to an array of DRAGTRANSFER structures. 
  16803.  
  16804.    NULL 
  16805.       Error occurred. 
  16806.  
  16807.    Other 
  16808.       The array of DRAGTRANSFER structures. 
  16809.  
  16810.  
  16811. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgAllocDragtransfer ΓòÉΓòÉΓòÉ
  16812.  
  16813. Possible returns from WinGetLastError 
  16814.  
  16815. PMERR_MEMORY_ALLOCATION_ERR 
  16816.    An error occurred during memory management. 
  16817.  
  16818. PMERR_INSUFFICIENT_MEMORY 
  16819.    The operation terminated through insufficient memory. 
  16820.  
  16821. PMERR_PARAMETER_OUT_OF_RANGE 
  16822.    The value of a parameter was not within the defined valid range for that 
  16823.    parameter. 
  16824.  
  16825.  
  16826. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgAllocDragtransfer ΓòÉΓòÉΓòÉ
  16827.  
  16828. This function must be called before sending a DM_RENDER message. 
  16829.  
  16830.  
  16831. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgAllocDragtransfer ΓòÉΓòÉΓòÉ
  16832.  
  16833. /*******************************************/
  16834. /* This function allocates a specified     */
  16835. /* number of DRAGTRANSFER structures from  */
  16836. /* a single segment.                       */
  16837. /*******************************************/
  16838.  
  16839. #define INCL_WINSTDDRAG
  16840. #include <os2.h>
  16841.  
  16842. ULONG          cdxfer;           /* Number of structures */
  16843. PDRAGTRANSFER  pResult;          /* Pointer */
  16844.  
  16845. pResult = DrgAllocDragtransfer(cdxfer);
  16846.  
  16847.  
  16848. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgAllocDragtransfer ΓòÉΓòÉΓòÉ
  16849.  
  16850. Related Functions 
  16851.  
  16852. o DrgFreeDragtransfer 
  16853. o DrgSendTransferMsg 
  16854.  
  16855.  
  16856. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgAllocDragtransfer ΓòÉΓòÉΓòÉ
  16857.  
  16858. This example calls the DrgAllocDragtransfer function to allocate a single 
  16859. DRAGTRANSFER structure and adds a pointer to a DRAGITEM structure for an object 
  16860. that will be transferred. 
  16861.  
  16862. #define INCL_WINSTDDRAG   /* Direct Manipulation (Drag) Functions*/
  16863. #include <os2.h>
  16864.  
  16865. PDRAGTRANSFER  pResult;   /* Pointer to DRAGTRANSFER structure   */
  16866. PDRAGITEM      pDragitem; /* Pointer to DRAGITEM structure       */
  16867.  
  16868. pResult = DrgAllocDragtransfer(1);
  16869.  
  16870. if (pResult != NULL)      /* Indicate DRAGITEM to be transferred */
  16871.     pResult->pditem = pDragitem;
  16872.  
  16873.  
  16874. ΓòÉΓòÉΓòÉ 6.6. DrgDeleteDraginfoStrHandles ΓòÉΓòÉΓòÉ
  16875.  
  16876.  
  16877. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgDeleteDraginfoStrHandles ΓòÉΓòÉΓòÉ
  16878.  
  16879. Select an item: 
  16880.  
  16881. Function Syntax 
  16882. Parameters 
  16883. Return Values 
  16884. Errors 
  16885. Notes 
  16886. Example 
  16887. Related Functions 
  16888. Glossary 
  16889.  
  16890.  
  16891. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgDeleteDraginfoStrHandles ΓòÉΓòÉΓòÉ
  16892.  
  16893. pDraginfo (PDRAGINFO) - input 
  16894.    Pointer. Pointer to the DRAGINFO structure that contains string handles to 
  16895.    delete. 
  16896.  
  16897.  
  16898. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgDeleteDraginfoStrHandles ΓòÉΓòÉΓòÉ
  16899.  
  16900. fSuccess (BOOL) - return 
  16901.    Success indicator. 
  16902.  
  16903.    TRUE 
  16904.       Successful completion. 
  16905.  
  16906.    FALSE 
  16907.       Error occurred. 
  16908.  
  16909.  
  16910. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgDeleteDraginfoStrHandles ΓòÉΓòÉΓòÉ
  16911.  
  16912. Possible returns from WinGetLastError 
  16913.  
  16914. PMERR_INVALID_PARAMETERS 
  16915.    An application parameter value is invalid for its converted PM type. For 
  16916.    example: a 4-byte value outside the range -32,768 to +32,767 cannot be 
  16917.    converted to a SHORT, and a negative number cannot be converted to a ULONG 
  16918.    or USHORT. 
  16919.  
  16920.  
  16921. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgDeleteDraginfoStrHandles ΓòÉΓòÉΓòÉ
  16922.  
  16923. Using this function is equivalent to calling the DrgDeleteStrHandle function 
  16924. for each unique string in a DRAGINFO structure. 
  16925.  
  16926. This function must be called by the target of a direct manipulation operation 
  16927. either: 
  16928.  
  16929. o After processing a DM_DROPHELP message 
  16930.   or 
  16931. o After completing the direct manipulation operation begun as a result of a 
  16932.   DM_DROP message. 
  16933.  
  16934.  
  16935. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgDeleteDraginfoStrHandles ΓòÉΓòÉΓòÉ
  16936.  
  16937. /*******************************************/
  16938. /* This function deletes each unique       */
  16939. /* string handle in a DRAGINFO structure.  */
  16940. /*******************************************/
  16941.  
  16942. #define INCL_WINSTDDRAG
  16943. #include <os2.h>
  16944.  
  16945. PDRAGINFO  pDraginfo;      /* Pointer */
  16946. BOOL       fSuccess;       /* Success indicator */
  16947.  
  16948. fSuccess = DrgDeleteDraginfoStrHandles(
  16949.              pDraginfo);
  16950.  
  16951.  
  16952. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgDeleteDraginfoStrHandles ΓòÉΓòÉΓòÉ
  16953.  
  16954. Related Functions 
  16955.  
  16956. o DrgDeleteStrHandle 
  16957.  
  16958.  
  16959. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgDeleteDraginfoStrHandles ΓòÉΓòÉΓòÉ
  16960.  
  16961. This example calls the DrgDeleteDraginfoStrHandles function to delete all 
  16962. unique string handles associated with the specified DRAGINFO structure 
  16963. (previously allocated by the DrgAllocDraginfo function). 
  16964.  
  16965. #define INCL_WINSTDDRAG /* Direct Manipulation (Drag) Functions */
  16966. #include <os2.h>
  16967.  
  16968. BOOL      fSuccess;     /* Indicate success or failure          */
  16969. DRAGINFO  Draginfo;     /* DRAGINFO structure containing string */
  16970.                         /* handles to delete                    */
  16971.  
  16972. fSuccess = DrgDeleteDraginfoStrHandles (&Draginfo);
  16973.  
  16974.  
  16975. ΓòÉΓòÉΓòÉ 6.7. DrgDeleteStrHandle ΓòÉΓòÉΓòÉ
  16976.  
  16977.  
  16978. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgDeleteStrHandle ΓòÉΓòÉΓòÉ
  16979.  
  16980. Select an item: 
  16981.  
  16982. Function Syntax 
  16983. Parameters 
  16984. Return Values 
  16985. Errors 
  16986. Notes 
  16987. Example 
  16988. Related Functions 
  16989. Glossary 
  16990.  
  16991.  
  16992. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgDeleteStrHandle ΓòÉΓòÉΓòÉ
  16993.  
  16994. Hstr (HSTR) - input 
  16995.    String handle. The string handle to delete. 
  16996.  
  16997.  
  16998. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgDeleteStrHandle ΓòÉΓòÉΓòÉ
  16999.  
  17000. fSuccess (BOOL) - return 
  17001.    Success indicator. 
  17002.  
  17003.    TRUE 
  17004.       Successful completion. 
  17005.  
  17006.    FALSE 
  17007.       Error occurred. 
  17008.  
  17009.  
  17010. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgDeleteStrHandle ΓòÉΓòÉΓòÉ
  17011.  
  17012. Possible returns from WinGetLastError 
  17013.  
  17014. PMERR_INVALID_PARAMETERS 
  17015.    An application parameter value is invalid for its converted PM type. For 
  17016.    example: a 4-byte value outside the range -32,768 to +32,767 cannot be 
  17017.    converted to a SHORT, and a negative number cannot be converted to a ULONG 
  17018.    or USHORT. 
  17019.  
  17020.  
  17021. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgDeleteStrHandle ΓòÉΓòÉΓòÉ
  17022.  
  17023. This function must be used to delete a string handle created by the 
  17024. DrgAddStrHandle function. 
  17025.  
  17026.  
  17027. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgDeleteStrHandle ΓòÉΓòÉΓòÉ
  17028.  
  17029. /*******************************************/
  17030. /* This function deletes a string handle.  */
  17031. /*******************************************/
  17032.  
  17033. #define INCL_WINSTDDRAG
  17034. #include <os2.h>
  17035.  
  17036. HSTR  Hstr;     /* String handle */
  17037. BOOL  fSuccess; /* Success indicator */
  17038.  
  17039. fSuccess = DrgDeleteStrHandle(Hstr);
  17040.  
  17041.  
  17042. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgDeleteStrHandle ΓòÉΓòÉΓòÉ
  17043.  
  17044. Related Functions 
  17045.  
  17046. o DrgAddStrHandle 
  17047. o DrgDeleteDraginfoStrHandles 
  17048.  
  17049.  
  17050. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgDeleteStrHandle ΓòÉΓòÉΓòÉ
  17051.  
  17052. This example calls the DrgDeleteStrHandle function to delete an existing string 
  17053. handle (returned by a previous call to the DrgAddStrHandle function). 
  17054.  
  17055. #define INCL_WINSTDDRAG /* Direct Manipulation (Drag) Functions */
  17056. #include <os2.h>
  17057.  
  17058. BOOL  fSuccess;         /* Indicate success or failure          */
  17059. HSTR  Hstr;             /* String handle                        */
  17060.  
  17061. fSuccess = DrgDeleteStrHandle (Hstr);
  17062.  
  17063.  
  17064. ΓòÉΓòÉΓòÉ 6.8. DrgDrag ΓòÉΓòÉΓòÉ
  17065.  
  17066.  
  17067. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgDrag ΓòÉΓòÉΓòÉ
  17068.  
  17069. Select an item: 
  17070.  
  17071. Function Syntax 
  17072. Parameters 
  17073. Return Values 
  17074. Errors 
  17075. Notes 
  17076. Example 
  17077. Related Functions 
  17078. Glossary 
  17079.  
  17080.  
  17081. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgDrag ΓòÉΓòÉΓòÉ
  17082.  
  17083. hwndSource (HWND) - input 
  17084.    Window handle. Handle of the window calling DrgDrag. This window is the 
  17085.    source of the drag. 
  17086.  
  17087. pDraginfo (PDRAGINFO) - input/output 
  17088.    Pointer. Pointer to the DRAGINFO structure. 
  17089.  
  17090. pdimg (PDRAGIMAGE) - input 
  17091.    Pointer. Pointer to an array of DRAGIMAGE structures. These structures 
  17092.    describe the images that are to be drawn under the pointing device pointer 
  17093.    during the drag. 
  17094.  
  17095. cdimg (ULONG) - input 
  17096.    Array size. Size of the pdimg array. 
  17097.  
  17098. vkTerminate (LONG) - input 
  17099.    Pointing device button. Pointing device button that ends the drag operation. 
  17100.  
  17101.    VK_BUTTON1 
  17102.       Release of button 1 ends the drag. 
  17103.  
  17104.    VK_BUTTON2 
  17105.       Release of button 2 ends the drag. 
  17106.  
  17107.    VK_BUTTON3 
  17108.       Release of button 3 ends the drag. 
  17109.  
  17110.    VK_ENDDRAG 
  17111.       Release of the system-defined direct manipulation button ends the drag. 
  17112.       This is the recommended value if the DrgDrag function call is invoked in 
  17113.       response to a WM_BEGINDRAG message. 
  17114.  
  17115. pReserved (PVOID) - input 
  17116.    Reserved. Must be set to NULL by the caller. 
  17117.  
  17118.  
  17119. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgDrag ΓòÉΓòÉΓòÉ
  17120.  
  17121. hwndDest (HWND) - return 
  17122.    Window handle. Handle of window on which the dragged objects were dropped. 
  17123.  
  17124.    NULL 
  17125.       Error occurred. 
  17126.  
  17127.    Other 
  17128.       Window handle. 
  17129.  
  17130.  
  17131. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgDrag ΓòÉΓòÉΓòÉ
  17132.  
  17133. Possible returns from WinGetLastError 
  17134.  
  17135. PMERR_INVALID_HWND 
  17136.    An invalid window handle was specified. 
  17137.  
  17138. PMERR_INVALID_PARAMETERS 
  17139.    An application parameter value is invalid for its converted PM type. For 
  17140.    example: a 4-byte value outside the range -32,768 to +32,767 cannot be 
  17141.    converted to a SHORT, and a negative number cannot be converted to a ULONG 
  17142.    or USHORT. 
  17143.  
  17144. PMERR_INSUFFICIENT_MEMORY 
  17145.    The operation terminated through insufficient memory. 
  17146.  
  17147.  
  17148. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgDrag ΓòÉΓòÉΓòÉ
  17149.  
  17150. This function: 
  17151.  
  17152. o Initiates a direct manipulation operation 
  17153. o Uses the input image to provide visual feedback to the user 
  17154. o Notifies other windows as the dragged object passes over 
  17155. o Notifies the destination if the object is dropped. 
  17156.  
  17157. DrgDrag is called when the system-defined direct-manipulation button is pressed 
  17158. while the pointer is over a window and a pointing device movement follows.  As 
  17159. the pointer moves over a potential target, a DM_DRAGOVER message is sent to the 
  17160. target. When the pointer moves from one target window to another, a 
  17161. DM_DRAGLEAVE message is sent to the former target. 
  17162.  
  17163. If the pointer is over a valid target when the direct-manipulation button is 
  17164. released, a DM_DROP message is sent to the target. 
  17165.  
  17166. Before the DM_DROP message is sent, the cxOffset and cyOffset fields are copied 
  17167. from the DRAGIMAGE structures to the corresponding fields in the DRAGITEM 
  17168. structures.  The values from the first DRAGIMAGE are copied to the first 
  17169. DRAGITEM, from the second DRAGIMAGE to the second DRAGITEM, and so on. The 
  17170. target can use this information to place the images in the same spatial 
  17171. relationship after the drop.  If there are more DRAGITEM structures than there 
  17172. are DRAGIMAGE structures, the cxOffset and cyOffset from the final DRAGIMAGE 
  17173. are placed in each of the remaining DRAGITEM structures. 
  17174.  
  17175. The caller can define a default operation for the objects represented by the 
  17176. DRAGINFO structure by modifying the usOperation field. If the usOperation field 
  17177. is modified, the new value will be sent to the target as the operation whenever 
  17178. a DO_DEFAULT operation would normally be sent. The caller should not modify any 
  17179. other part of the DRAGINFO structure. The DRAGITEM structures associated with 
  17180. the DRAGINFO structure should only be altered with DrgSetDragitem or by using a 
  17181. pointer obtained with DrgQueryDragitemPtr. 
  17182.  
  17183. The following keys are active during the drag operation: 
  17184.  
  17185. Esc       The drag operation is canceled. 
  17186. F1        A DM_DROPHELP message is posted to the target so that it can provide 
  17187.           context help for the drag operation.  The drag operation is canceled. 
  17188.  
  17189. Before invoking DrgDrag, the caller is responsible for: 
  17190.  
  17191. o Obtaining a DRAGINFO structure using DrgAllocDraginfo 
  17192. o Initializing the DRAGITEM structures using DrgSetDragitem. 
  17193.  
  17194. On return from DrgDrag, the caller must free the structure using 
  17195. DrgFreeDraginfo. 
  17196.  
  17197. If the dragged objects are not dropped, NULL is returned. 
  17198.  
  17199.  
  17200. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgDrag ΓòÉΓòÉΓòÉ
  17201.  
  17202. /*******************************************/
  17203. /* This function performs a drag operation.*/
  17204. /*******************************************/
  17205.  
  17206. #define INCL_WINSTDDRAG
  17207. #include <os2.h>
  17208.  
  17209. HWND        hwndSource;        /* Window handle */
  17210. PDRAGINFO   pDraginfo;         /* Pointer */
  17211. PDRAGIMAGE  pdimg;             /* Pointer */
  17212. ULONG       cdimg;             /* Array size */
  17213. LONG        vkTerminate;       /* Pointing device button */
  17214. PVOID       pReserved;         /* Reserved */
  17215. HWND        hwndDest;          /* Window handle */
  17216.  
  17217. hwndDest = DrgDrag(hwndSource, pDraginfo,
  17218.              pdimg, cdimg, vkTerminate,
  17219.              pReserved);
  17220.  
  17221.  
  17222. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgDrag ΓòÉΓòÉΓòÉ
  17223.  
  17224. Prerequisite Functions 
  17225.  
  17226. o DrgAllocDraginfo 
  17227.  
  17228. Related Functions 
  17229.  
  17230. o DrgFreeDraginfo 
  17231. o DrgSetDragitem 
  17232.  
  17233.  
  17234. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgDrag ΓòÉΓòÉΓòÉ
  17235.  
  17236. This example uses the DrgDrag function to drag a single object in response to 
  17237. the direct-manipulation button being pressed while the pointer is over a drag 
  17238. object. The example shows the initialization of the DRAGITEM, DRAGINFO, and 
  17239. DRAGIMAGE structures used by the DrgDrag function. 
  17240.  
  17241. #define INCL_WINSTDDRAG /* Direct Manipulation (Drag) Functions  */
  17242. #define INCL_WININPUT   /* Window Input Functions                */
  17243. #include <os2.h>
  17244.  
  17245. PDRAGINFO pdinfo;       /* Pointer to DRAGINFO structure         */
  17246. HWND      hwnd;         /* Handle of calling (source) window     */
  17247. BOOL      flResult;     /* Result indicator                      */
  17248. DRAGITEM  ditem;        /* DRAGITEM structure                    */
  17249. DRAGIMAGE dimg;         /* DRAGIMAGE structure                   */
  17250. HBITMAP   hbm;          /* Bit-map handle                        */
  17251. HWND      hwndDrop;     /* Handle of drop (target) window        */
  17252.  
  17253. case WM_BEGINDRAG:
  17254.  
  17255.     /*************************************************************/
  17256.     /* Initialize the DRAGITEM structure                         */
  17257.     /*************************************************************/
  17258.     ditem.hwndItem = hwnd;       /* Conversation partner         */
  17259.     ditem.ulItemID = ID_ITEM;    /* Identifies item being dragged*/
  17260.     ditem.hstrType = DrgAddStrHandle(DRT_TEXT);   /* Text item   */
  17261.     ditem.hstrRMF = DrgAddStrHandle("<DRM_OS2FILE,DRF_TEXT>");
  17262.     ditem.hstrContainerName = DrgAddStrHandle("C:\\");
  17263.     ditem.hstrSourceName = DrgAddStrHandle("C:\\CONFIG.SYS");
  17264.     ditem.hstrTargetName = DrgAddStrHandle("C:\\OS2\\CONFIG.SYS");
  17265.     ditem.cxOffset = 0;          /* X-offset of the origin of    */
  17266.                                  /* the image from the pointer   */
  17267.                                  /* hotspot                      */
  17268.     ditem.cyOffset = 0;          /* Y-offset of the origin of    */
  17269.                                  /* the image from the pointer   */
  17270.                                  /* hotspot                      */
  17271.     ditem.fsControl = 0;         /* Source item control flags    */
  17272.                                  /* object is open               */
  17273.     ditem.fsSupportedOps = 0;
  17274.  
  17275.     /*************************************************************/
  17276.     /* Create the DRAGINFO structure                             */
  17277.     /*************************************************************/
  17278.     pdinfo = DrgAllocDraginfo(1);
  17279.     if (!pdinfo) return (FALSE); /* If allocation fails,         */
  17280.                                  /* return FALSE                 */
  17281.  
  17282.     /*************************************************************/
  17283.     /* Initialize the DRAGIMAGE structure                        */
  17284.     /*************************************************************/
  17285.     dimg.cb = sizeof(DRAGIMAGE); /* Size control block           */
  17286.     dimg.cptl        = 0;
  17287.     dimg.hImage = hbm;           /* Image handle passed to       */
  17288.                                  /* DrgDrag                      */
  17289.     dimg.sizlStretch.cx = 20L;   /* Size to stretch ico or bmp to*/
  17290.     dimg.sizlStretch.cy = 20L;
  17291.     dimg.fl = DRG_BITMAP |       /* Flags passed to DrgDrag      */
  17292.               DRG_STRETCH;       /* Stretch to size specified    */
  17293.                                  /* in sizlStretch               */
  17294.     dimg.cxOffset = 0;           /* Offset of the origin of      */
  17295.     dimg.cyOffset = 0;           /* the image from the pointer   */
  17296.                                  /* hotspot                      */
  17297.  
  17298.     /*************************************************************/
  17299.     /* Set the drag item                                         */
  17300.     /*************************************************************/
  17301.     flResult= DrgSetDragitem(pdinfo, &ditem, (ULONG)sizeof(ditem),
  17302.                              0);
  17303.  
  17304.     /*************************************************************/
  17305.     /* Perform the drag operation:                               */
  17306.     /* - Give the user a visual cue by changing the pointer to a */
  17307.     /*   bit map                                                 */
  17308.     /* - Send DM_DRAGOVER messages to the target window (in this */
  17309.     /*   case it is also the source)                             */
  17310.     /*************************************************************/
  17311.     hwndDrop = DrgDrag(hwnd,   /* Source of the drag             */
  17312.                 pdinfo,        /* Pointer to DRAGINFO structure  */
  17313.                (PDRAGIMAGE)&dimg, /* Drag image                  */
  17314.                 1,             /* Size of the pdimg array        */
  17315.                 VK_ENDDRAG,    /* Release of direct-manipulation */
  17316.                                /* button ends the drag           */
  17317.                 NULL);         /* Reserved                       */
  17318.  
  17319.  
  17320. ΓòÉΓòÉΓòÉ 6.9. DrgDragFiles ΓòÉΓòÉΓòÉ
  17321.  
  17322.  
  17323. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgDragFiles ΓòÉΓòÉΓòÉ
  17324.  
  17325. Select an item: 
  17326.  
  17327. Function Syntax 
  17328. Parameters 
  17329. Return Values 
  17330. Notes 
  17331. Example 
  17332. Related Functions 
  17333. Glossary 
  17334.  
  17335.  
  17336. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgDragFiles ΓòÉΓòÉΓòÉ
  17337.  
  17338. Hwnd (HWND) - input 
  17339.    Window handle. Handle of calling window. 
  17340.  
  17341. pFiles (PAPSZ) - input 
  17342.    File names. The names of the files to be dragged. 
  17343.  
  17344. pTypes (PAPSZ) - input 
  17345.    File types. The file types of the files to be dragged. 
  17346.  
  17347. pTargets (PAPSZ) - input 
  17348.    Target file names. 
  17349.  
  17350. cFiles (ULONG) - input 
  17351.    Number of files. Number of files to be dragged. 
  17352.  
  17353. hptrDrag (HPOINTER) - input 
  17354.    Icon. Icon to display during the drag. 
  17355.  
  17356. vkTerminate (ULONG) - input 
  17357.    Button. Button that ends the drag. 
  17358.  
  17359. fSourceRender (BOOL) - input 
  17360.    Flag. Flag to indicate whether the source must perform the move or copy. 
  17361.  
  17362.    TRUE 
  17363.       The caller will receive a DM_RENDERFILE message for each file. 
  17364.  
  17365.    FALSE 
  17366.       All file manipulation is performed by DrgDragFiles. 
  17367.  
  17368. ulReserved (ULONG) - input 
  17369.    Reserved. 
  17370.  
  17371.  
  17372. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgDragFiles ΓòÉΓòÉΓòÉ
  17373.  
  17374. fSuccess (BOOL) - return 
  17375.    Success indicator. 
  17376.  
  17377.    TRUE 
  17378.       The drag operation was initiated successfully. 
  17379.  
  17380.    FALSE 
  17381.       An error occurred. 
  17382.  
  17383.  
  17384. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgDragFiles ΓòÉΓòÉΓòÉ
  17385.  
  17386. This function begins a direct manipulation operation for one or more files. 
  17387. DRAGINFO and DRAGITEM structures are allocated and initialized, and are then 
  17388. used as input to DrgDrag.  All of the post-drag conversation required to 
  17389. complete the direct manipulation operation is handled by an object window 
  17390. created by this function. 
  17391.  
  17392. The caller should set fSourceRender to TRUE if it must perform the file 
  17393. manipulation for any of these files.  When fSourceRender is TRUE, the caller 
  17394. receives a DM_RENDERFILE message as the drag-object window receives a DM_RENDER 
  17395. message. The caller should move or copy the file after receiving the 
  17396. DM_RENDERFILE message.  The caller should then send a DM_FILERENDERED message 
  17397. to the drag-object window, and the drag-object window should send a 
  17398. DM_RENDERCOMPLETE message to the target. 
  17399.  
  17400. When pTypes is NULL, the .TYPE EA is interrogated to determine the type for 
  17401. each file in pFiles.  When pTypes is not NULL, the size of the array is 
  17402. expected to be the same as the size of pFiles.  When any individual pointer in 
  17403. the array is NULL, the .TYPE EA for the corresponding file is read. When .TYPE 
  17404. EA does not exist for any file for which it is needed, a type of DRT_UNKNOWN is 
  17405. used. 
  17406.  
  17407. When pTargets is NULL, the target name for a file will be the same as the 
  17408. source file name with the path information removed. If pTargets is not NULL, 
  17409. the size of the array is expected to be the same as the size of pFiles.  If any 
  17410. individual pointer in the array is NULL, the target name for the corresponding 
  17411. file will match the source name minus the path information. 
  17412.  
  17413. The rendering mechanism and format for each file is: <DRM_OS2FILE,DRF_UNKNOWN>. 
  17414.  
  17415. When an error occurs during the move or copy, the caller is sent a DM_DRAGERROR 
  17416. message.  The caller can take corrective action. 
  17417.  
  17418. As the operation is complete for each file in the list, a DM_DRAGFILECOMPLETE 
  17419. message is sent to the caller of DrgDragFiles.  The caller is thus notified 
  17420. that resources can be freed for a particular file. 
  17421.  
  17422. This function returns TRUE if the drag operation was initiated successfully and 
  17423. FALSE if an error occurred. 
  17424.  
  17425.  
  17426. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgDragFiles ΓòÉΓòÉΓòÉ
  17427.  
  17428. /*******************************************/
  17429. /* This function begins a direct           */
  17430. /* manipulation operation for one or more  */
  17431. /* files.                                  */
  17432. /*******************************************/
  17433.  
  17434. #define INCL_WINSTDDRAG
  17435. #include <os2.h>
  17436.  
  17437. HWND      Hwnd;              /* Window handle */
  17438. PAPSZ     pFiles;            /* File names */
  17439. PAPSZ     pTypes;            /* File types */
  17440. PAPSZ     pTargets;          /* Target file names */
  17441. ULONG     cFiles;            /* Number of files */
  17442. HPOINTER  hptrDrag;          /* Icon */
  17443. ULONG     vkTerminate;       /* Button */
  17444. BOOL      fSourceRender;     /* Flag */
  17445. ULONG     ulReserved;        /* Reserved */
  17446. BOOL      fSuccess;          /* Success indicator */
  17447.  
  17448. fSuccess = DrgDragFiles(Hwnd, pFiles,
  17449.              pTypes, pTargets, cFiles,
  17450.              hptrDrag, vkTerminate,
  17451.              fSourceRender, ulReserved);
  17452.  
  17453.  
  17454. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgDragFiles ΓòÉΓòÉΓòÉ
  17455.  
  17456. Related Functions 
  17457.  
  17458. o DrgAcceptDroppedFiles 
  17459.  
  17460.  
  17461. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgDragFiles ΓòÉΓòÉΓòÉ
  17462.  
  17463. This example calls the DrgDragFiles function to begin direct manipulation for a 
  17464. single file object, using the same source and target name, and determining the 
  17465. file type based on the file's type EA. 
  17466.  
  17467. #define INCL_WINSTDDRAG /* Direct Manipulation (Drag) Functions */
  17468. #define INCL_WININPUT   /* Window Input Functions               */
  17469. #include <os2.h>
  17470.  
  17471. BOOL     fSuccess;      /* Indicate success or failure          */
  17472. HWND     Hwnd;          /* Handle of calling window             */
  17473. PSZ      pFiles[1];     /* The names of the files to be dragged */
  17474. PSZ      pTypes[1];     /* The file types of the files to be    */
  17475.                         /* dragged                              */
  17476. PSZ      pTargets[1];   /* The target file names                */
  17477. HPOINTER hptrDrag;      /* Icon to display during drag          */
  17478.  
  17479. pFiles[0] = "FILENAME.EXT";  /* Copy file name to string array  */
  17480. pTargets[0] = NULL;     /* Use source name as target name       */
  17481. pTypes[0] = NULL;       /* Query type EA to determine file type */
  17482.  
  17483. fSuccess = DrgDragFiles(Hwnd, pFiles, pTypes, pTargets, 1,
  17484.                         hptrDrag, VK_BUTTON2, FALSE, 0L);
  17485.  
  17486.  
  17487. ΓòÉΓòÉΓòÉ 6.10. DrgFreeDraginfo ΓòÉΓòÉΓòÉ
  17488.  
  17489.  
  17490. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgFreeDraginfo ΓòÉΓòÉΓòÉ
  17491.  
  17492. Select an item: 
  17493.  
  17494. Function Syntax 
  17495. Parameters 
  17496. Return Values 
  17497. Errors 
  17498. Notes 
  17499. Example 
  17500. Related Functions 
  17501. Glossary 
  17502.  
  17503.  
  17504. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgFreeDraginfo ΓòÉΓòÉΓòÉ
  17505.  
  17506. pDraginfo (PDRAGINFO) - input 
  17507.    Pointer. Pointer to the DRAGINFO structure. 
  17508.  
  17509.  
  17510. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgFreeDraginfo ΓòÉΓòÉΓòÉ
  17511.  
  17512. fSuccess (BOOL) - return 
  17513.    Success indicator. 
  17514.  
  17515.    TRUE 
  17516.       Successful completion. 
  17517.  
  17518.    FALSE 
  17519.       Error occurred. 
  17520.  
  17521.  
  17522. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgFreeDraginfo ΓòÉΓòÉΓòÉ
  17523.  
  17524. Possible returns from WinGetLastError 
  17525.  
  17526. PMERR_MEMORY_DEALLOCATION_ERR 
  17527.    An error occurred during memory management. 
  17528.  
  17529. PMERR_SOURCE_SAME_AS_TARGET 
  17530.    The direct manipulation source and target process are the same. 
  17531.  
  17532.  
  17533. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgFreeDraginfo ΓòÉΓòÉΓòÉ
  17534.  
  17535. DrgFreeDraginfo fails with an error of PMERR_SOURCE_SAME_AS_TARGET if it is 
  17536. called by the process that called DrgDrag before DrgDrag returns. When a 
  17537. process is performing a drag operation between two of its own windows, this 
  17538. prevents the source window from freeing the DRAGINFO structure before the 
  17539. target window finishes processing. 
  17540.  
  17541.  
  17542. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgFreeDraginfo ΓòÉΓòÉΓòÉ
  17543.  
  17544. /*******************************************/
  17545. /* This function frees a DRAGINFO          */
  17546. /* structure allocated by DrgAllocDraginfo.*/
  17547. /*******************************************/
  17548.  
  17549. #define INCL_WINSTDDRAG
  17550. #include <os2.h>
  17551.  
  17552. PDRAGINFO  pDraginfo;      /* Pointer */
  17553. BOOL       fSuccess;       /* Success indicator */
  17554.  
  17555. fSuccess = DrgFreeDraginfo(pDraginfo);
  17556.  
  17557.  
  17558. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgFreeDraginfo ΓòÉΓòÉΓòÉ
  17559.  
  17560. Prerequisite Functions 
  17561.  
  17562. o DrgAllocDraginfo 
  17563.  
  17564. Related Functions 
  17565.  
  17566. o DrgAccessDraginfo 
  17567. o DrgDrag 
  17568. o DrgPushDraginfo 
  17569.  
  17570.  
  17571. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgFreeDraginfo ΓòÉΓòÉΓòÉ
  17572.  
  17573. This example calls the DrgFreeDraginfo function to free an existing DRAGINFO 
  17574. structure allocated by the DrgAllocDraginfo function after a drag operation has 
  17575. completed. 
  17576.  
  17577. #define INCL_WINSTDDRAG /* Direct Manipulation (Drag) Functions */
  17578. #include <os2.h>
  17579.  
  17580. BOOL       fSuccess;    /* Indicate success or failure          */
  17581. PDRAGINFO  pdinfo;      /* Pointer to DRAGINFO structure        */
  17582. HWND       hwnd;        /* Handle of calling (source) window    */
  17583. DRAGIMAGE  dimg;        /* DRAGIMAGE structure                  */
  17584. HWND       hwndDrop;    /* Handle of drop (target) window       */
  17585.  
  17586. /****************************************************************/
  17587. /* Perform the drag operation:                                  */
  17588. /* - Give the user a visual cue by changing the pointer to a    */
  17589. /*   bit map                                                    */
  17590. /* - Send DM_DRAGOVER messages to the target window (in this    */
  17591. /*   case it is also the source)                                */
  17592. /****************************************************************/
  17593. hwndDrop = DrgDrag(hwnd,      /* Source of the drag             */
  17594.             pdinfo,           /* Pointer to DRAGINFO structure  */
  17595.            (PDRAGIMAGE)&dimg, /* Drag image                     */
  17596.             1,                /* Size of the pdimg array        */
  17597.             VK_ENDDRAG,       /* Release of drag button         */
  17598.                               /* Terminates the drag            */
  17599.             NULL);            /* Reserved                       */
  17600.  
  17601. fSuccess = DrgFreeDraginfo(&pdinfo);
  17602.  
  17603.  
  17604. ΓòÉΓòÉΓòÉ 6.11. DrgFreeDragtransfer ΓòÉΓòÉΓòÉ
  17605.  
  17606.  
  17607. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgFreeDragtransfer ΓòÉΓòÉΓòÉ
  17608.  
  17609. Select an item: 
  17610.  
  17611. Function Syntax 
  17612. Parameters 
  17613. Return Values 
  17614. Errors 
  17615. Notes 
  17616. Example 
  17617. Related Functions 
  17618. Glossary 
  17619.  
  17620.  
  17621. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgFreeDragtransfer ΓòÉΓòÉΓòÉ
  17622.  
  17623. pdxfer (PDRAGTRANSFER) - input 
  17624.    Pointer. Pointer to the DRAGTRANSFER structures to be freed. 
  17625.  
  17626.  
  17627. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgFreeDragtransfer ΓòÉΓòÉΓòÉ
  17628.  
  17629. Rc (BOOL) - return 
  17630.    Return code. 
  17631.  
  17632.    0 
  17633.       The structure was freed. 
  17634.  
  17635.    Other 
  17636.       Deallocation failed. 
  17637.  
  17638.  
  17639. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgFreeDragtransfer ΓòÉΓòÉΓòÉ
  17640.  
  17641. Possible returns from WinGetLastError 
  17642.  
  17643. PMERR_MEMORY_DEALLOCATION_ERR 
  17644.    An error occurred during memory management. 
  17645.  
  17646.  
  17647. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgFreeDragtransfer ΓòÉΓòÉΓòÉ
  17648.  
  17649. This function frees the DRAGTRANSFER structures allocated by calls to 
  17650. DrgAllocDragtransfer.  When all of the DRAGTRANSFER structures have been freed, 
  17651. the memory block containing the DRAGTRANSFER array is deallocated. 
  17652.  
  17653.  
  17654. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgFreeDragtransfer ΓòÉΓòÉΓòÉ
  17655.  
  17656. /*******************************************/
  17657. /* This function frees the storage         */
  17658. /* associated with a DRAGTRANSFER          */
  17659. /* structure.                              */
  17660. /*******************************************/
  17661.  
  17662. #define INCL_WINSTDDRAG
  17663. #include <os2.h>
  17664.  
  17665. PDRAGTRANSFER  pdxfer;          /* Pointer */
  17666. BOOL           Rc;              /* Return code */
  17667.  
  17668. Rc = DrgFreeDragtransfer(pdxfer);
  17669.  
  17670.  
  17671. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgFreeDragtransfer ΓòÉΓòÉΓòÉ
  17672.  
  17673. Related Functions 
  17674.  
  17675. o DrgAllocDragtransfer 
  17676.  
  17677.  
  17678. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgFreeDragtransfer ΓòÉΓòÉΓòÉ
  17679.  
  17680. This example calls the DrgFreeDragtransfer function to free an existing 
  17681. DRAGTRANSFER structure allocated by the DrgAllocDragtransfer function. 
  17682.  
  17683. #define INCL_WINSTDDRAG /* Direct Manipulation (Drag) Functions */
  17684. #include <os2.h>
  17685.  
  17686. BOOL          fSuccess; /* Indicate success or failure          */
  17687. DRAGTRANSFER  dxfer;    /* Pointer to DRAGTRANSFER structure    */
  17688.  
  17689. fSuccess = DrgFreeDragtransfer(&dxfer);
  17690.  
  17691.  
  17692. ΓòÉΓòÉΓòÉ 6.12. DrgGetPS ΓòÉΓòÉΓòÉ
  17693.  
  17694.  
  17695. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgGetPS ΓòÉΓòÉΓòÉ
  17696.  
  17697. Select an item: 
  17698.  
  17699. Function Syntax 
  17700. Parameters 
  17701. Return Values 
  17702. Errors 
  17703. Notes 
  17704. Example 
  17705. Related Functions 
  17706. Glossary 
  17707.  
  17708.  
  17709. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgGetPS ΓòÉΓòÉΓòÉ
  17710.  
  17711. Hwnd (HWND) - input 
  17712.    Window handle. Handle of the window for which presentation space is 
  17713.    required. 
  17714.  
  17715.  
  17716. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgGetPS ΓòÉΓòÉΓòÉ
  17717.  
  17718. Hps (HPS) - return 
  17719.    Presentation-space handle. Presentation-space handle used for drawing in the 
  17720.    window. 
  17721.  
  17722.    NULLHANDLE 
  17723.       Error occurred. 
  17724.  
  17725.  
  17726. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgGetPS ΓòÉΓòÉΓòÉ
  17727.  
  17728. Possible returns from WinGetLastError 
  17729.  
  17730. PMERR_INVALID_HWND 
  17731.    An invalid window handle was specified. 
  17732.  
  17733. PMERR_NOT_DRAGGING 
  17734.    A drag operation is not in progress at this time. 
  17735.  
  17736.  
  17737. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgGetPS ΓòÉΓòÉΓòÉ
  17738.  
  17739. This function returns a handle to a presentation space that can be used for 
  17740. drawing while a direct manipulation operation is in progress. 
  17741.  
  17742. DrgGetPS is called only during a direct manipulation operation. This function 
  17743. is called only after a DM_DRAGOVER, DM_DRAGLEAVE, or DM_DROP message has been 
  17744. received. 
  17745.  
  17746. In order to draw target emphasis, an application must use DrgGetPS and 
  17747. DrgReleasePS to unlock its window. 
  17748.  
  17749. The presentation space created with DrgGetPS must be freed with DrgReleasePS. 
  17750.  
  17751.  
  17752. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgGetPS ΓòÉΓòÉΓòÉ
  17753.  
  17754. /*******************************************/
  17755. /* This function gets a presentation space */
  17756. /* that is used to provide target feedback */
  17757. /* to the user during a drag operation.    */
  17758. /*******************************************/
  17759.  
  17760. #define INCL_WINSTDDRAG
  17761. #include <os2.h>
  17762.  
  17763. HWND  Hwnd; /* Window handle */
  17764. HPS   Hps;  /* Presentation-space handle */
  17765.  
  17766. Hps = DrgGetPS(Hwnd);
  17767.  
  17768.  
  17769. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgGetPS ΓòÉΓòÉΓòÉ
  17770.  
  17771. Related Functions 
  17772.  
  17773. o DrgReleasePS 
  17774.  
  17775.  
  17776. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgGetPS ΓòÉΓòÉΓòÉ
  17777.  
  17778. This example uses the DrgGetPS function to get a presentation space handle 
  17779. which is used during drag operations such as loading a drag bit map. When 
  17780. finished with the presentation space, release it with the DrgReleasePS 
  17781. function. 
  17782.  
  17783. #define INCL_WINSTDDRAG /* Direct Manipulation (Drag) Functions */
  17784. #include <os2.h>
  17785.  
  17786. HPS   hps;              /* Presentation space handle            */
  17787. HWND  hwnd;             /* Handle of the window for which       */
  17788.                         /* presentation space is required       */
  17789.  
  17790. case DM_DRAGOVER:
  17791.     hps = DrgGetPS(hwnd);
  17792.  
  17793. DrawTargetEmphasis(hps, hwnd);
  17794. DrgReleasePS(hps);
  17795.  
  17796.  
  17797. ΓòÉΓòÉΓòÉ 6.13. DrgPostTransferMsg ΓòÉΓòÉΓòÉ
  17798.  
  17799.  
  17800. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgPostTransferMsg ΓòÉΓòÉΓòÉ
  17801.  
  17802. Select an item: 
  17803.  
  17804. Function Syntax 
  17805. Parameters 
  17806. Return Values 
  17807. Notes 
  17808. Example 
  17809. Related Functions 
  17810. Glossary 
  17811.  
  17812.  
  17813. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgPostTransferMsg ΓòÉΓòÉΓòÉ
  17814.  
  17815. hwndTo (HWND) - input 
  17816.    Window handle. Window handle to which the message is to be posted: 
  17817.  
  17818.    Target 
  17819.       hwndItem in the DRAGITEM structure. 
  17820.  
  17821.    Source 
  17822.       hwndClient in the DRAGTRANSFER structure. 
  17823.  
  17824. ulMsgid (ULONG) - input 
  17825.    Message identifier. Identifier of the message to be posted. 
  17826.    DM_RENDERCOMPLETE is the only valid message. 
  17827.  
  17828. pdxfer (PDRAGTRANSFER) - input 
  17829.    Pointer. Pointer to the DRAGTRANSFER structure. 
  17830.  
  17831. fs (ULONG) - input 
  17832.    Flags. The flags to be passed in the param2 parameter of the message. 
  17833.  
  17834. ulReserved (ULONG) - input 
  17835.    Reserved. This must be 0. 
  17836.  
  17837. fRetry (BOOL) - input 
  17838.    Retry indicator. 
  17839.  
  17840.    TRUE 
  17841.       If the destination queue is full, the message posting is retried at 
  17842.       1-second intervals until the message is posted successfully. 
  17843.  
  17844.       In this case, DrgPostTransferMsg dispatches any messages in the queue by 
  17845.       calling WinPeekMsg and WinDispatchMsg in a loop.  The application can 
  17846.       receive messages sent by other applications while it is trying to post 
  17847.       drag transfer messages. 
  17848.  
  17849.    FALSE 
  17850.       The call returns FALSE without retrying. 
  17851.  
  17852.  
  17853. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgPostTransferMsg ΓòÉΓòÉΓòÉ
  17854.  
  17855. fSuccess (BOOL) - return 
  17856.    Success indicator. 
  17857.  
  17858.    TRUE 
  17859.       Successful completion. 
  17860.  
  17861.    FALSE 
  17862.       Error occurred. 
  17863.  
  17864.  
  17865. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgPostTransferMsg ΓòÉΓòÉΓòÉ
  17866.  
  17867. The fsReply field in the DRAGTRANSFER structure is set to 0 before the message 
  17868. is posted. If the posting fails for any reason, FALSE is returned. 
  17869.  
  17870.  
  17871. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgPostTransferMsg ΓòÉΓòÉΓòÉ
  17872.  
  17873. /*******************************************/
  17874. /* This function posts a message to the    */
  17875. /* other application involved in the       */
  17876. /* direct manipulation operation.          */
  17877. /*******************************************/
  17878.  
  17879. #define INCL_WINSTDDRAG
  17880. #include <os2.h>
  17881.  
  17882. HWND           hwndTo;              /* Window handle */
  17883. ULONG          ulMsgid;             /* Message identifier */
  17884. PDRAGTRANSFER  pdxfer;              /* Pointer */
  17885. ULONG          fs;                  /* Flags */
  17886. ULONG          ulReserved;          /* Reserved */
  17887. BOOL           fRetry;              /* Retry indicator */
  17888. BOOL           fSuccess;            /* Success indicator */
  17889.  
  17890. fSuccess = DrgPostTransferMsg(hwndTo,
  17891.              ulMsgid, pdxfer, fs,
  17892.              ulReserved, fRetry);
  17893.  
  17894.  
  17895. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgPostTransferMsg ΓòÉΓòÉΓòÉ
  17896.  
  17897. Related Functions 
  17898.  
  17899. o DrgSendTransferMsg 
  17900.  
  17901.  
  17902. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgPostTransferMsg ΓòÉΓòÉΓòÉ
  17903.  
  17904. This example calls the DrgPostTransferMsg function to respond to a DM_RENDER 
  17905. message from the target. The response consists of a DM_RENDERCOMPLETE message, 
  17906. plus a flag indicating whether the render was successful (DMFL_RENDEROK) or not 
  17907. (DMFL_RENDERFAIL). 
  17908.  
  17909. #define INCL_WINSTDDRAG /* Direct Manipulation (Drag) Functions  */
  17910. #include <os2.h>
  17911.  
  17912. MPARAM        mp1;      /* Message parameter 1                   */
  17913. BOOL          fSuccess; /* Indicate success or failure           */
  17914. BOOL          Rendered; /* Success of render operation           */
  17915. PDRAGTRANSFER pdxfer;   /* Pointer to DRAGTRANSFER structure     */
  17916.  
  17917. case DM_RENDER:
  17918.    pdxfer = (PDRAGTRANSFER)PVOIDFROMMP(mp1); /* Get DRAGTRANSFER */
  17919.                                              /* structure        */
  17920.  
  17921.      /************************************************************/
  17922.      /* Attempt to render file                                   */
  17923.      /************************************************************/
  17924.  
  17925.      if (Rendered)
  17926.         {
  17927.         fSuccess = DrgPostTransferMsg(pdxfer->pditem,
  17928.                                       DM_RENDERCOMPLETE,
  17929.                                       pdxfer,
  17930.                                       DMFL_RENDEROK,
  17931.                                       0,FALSE);
  17932.         return (MRESULT)TRUE;
  17933.         }
  17934.      else
  17935.         {
  17936.         fSuccess = DrgPostTransferMsg(pdxfer->pditem,
  17937.                                       DM_RENDERCOMPLETE,
  17938.                                       pdxfer,
  17939.                                       DMFL_RENDERFAIL,
  17940.                                       0,FALSE);
  17941.         return (MRESULT)FALSE;
  17942.         }
  17943.  
  17944.  
  17945. ΓòÉΓòÉΓòÉ 6.14. DrgPushDraginfo ΓòÉΓòÉΓòÉ
  17946.  
  17947.  
  17948. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgPushDraginfo ΓòÉΓòÉΓòÉ
  17949.  
  17950. Select an item: 
  17951.  
  17952. Function Syntax 
  17953. Parameters 
  17954. Return Values 
  17955. Errors 
  17956. Notes 
  17957. Example 
  17958. Related Functions 
  17959. Glossary 
  17960.  
  17961.  
  17962. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgPushDraginfo ΓòÉΓòÉΓòÉ
  17963.  
  17964. pDraginfo (PDRAGINFO) - input 
  17965.    Pointer. Pointer to the DRAGINFO structure. 
  17966.  
  17967. hwndDest (HWND) - input 
  17968.    Window handle. Handle of the window whose process is to be given access to a 
  17969.    DRAGINFO structure. 
  17970.  
  17971.  
  17972. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgPushDraginfo ΓòÉΓòÉΓòÉ
  17973.  
  17974. fSuccess (BOOL) - return 
  17975.    Success indicator. 
  17976.  
  17977.    TRUE 
  17978.       Successful completion. 
  17979.  
  17980.    FALSE 
  17981.       Error occurred. 
  17982.  
  17983.  
  17984. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgPushDraginfo ΓòÉΓòÉΓòÉ
  17985.  
  17986. Possible returns from WinGetLastError 
  17987.  
  17988. PMERR_ACCESS_DENIED 
  17989.    The memory block was not allocated properly. 
  17990.  
  17991. PMERR_INSUFFICIENT_MEMORY 
  17992.    The operation terminated through insufficient memory. 
  17993.  
  17994.  
  17995. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgPushDraginfo ΓòÉΓòÉΓòÉ
  17996.  
  17997. The receiving process is responsible for: 
  17998.  
  17999.  1. Deleting the string handles in the DRAGINFO structure with 
  18000.     DrgDeleteDraginfoStrHandles 
  18001.  2. Freeing the DRAGINFO structure using DrgFreeDraginfo. 
  18002.  
  18003.  
  18004. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgPushDraginfo ΓòÉΓòÉΓòÉ
  18005.  
  18006. /*******************************************/
  18007. /* This function gives a process access to */
  18008. /* a DRAGINFO structure.                   */
  18009. /*******************************************/
  18010.  
  18011. #define INCL_WINSTDDRAG
  18012. #include <os2.h>
  18013.  
  18014. PDRAGINFO  pDraginfo;      /* Pointer */
  18015. HWND       hwndDest;       /* Window handle */
  18016. BOOL       fSuccess;       /* Success indicator */
  18017.  
  18018. fSuccess = DrgPushDraginfo(pDraginfo,
  18019.              hwndDest);
  18020.  
  18021.  
  18022. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgPushDraginfo ΓòÉΓòÉΓòÉ
  18023.  
  18024. Related Functions 
  18025.  
  18026. o DrgAccessDraginfo 
  18027. o DrgAllocDraginfo 
  18028. o DrgDrag 
  18029. o DrgFreeDraginfo 
  18030.  
  18031.  
  18032. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgPushDraginfo ΓòÉΓòÉΓòÉ
  18033.  
  18034. This example calls the DrgPushDraginfo function to grant access to a DRAGINFO 
  18035. structure to the process owning the specified window handle. The DRAGINFO 
  18036. structure was previously allocated using the DrgAllocDraginfo function. 
  18037.  
  18038. #define INCL_WINSTDDRAG /* Direct Manipulation (Drag) Functions */
  18039. #include <os2.h>
  18040.  
  18041. BOOL      fSuccess;     /* Indicate success or failure          */
  18042. DRAGINFO  Draginfo;     /* Pointer to DRAGINFO structure        */
  18043. HWND      hwndDest;     /* Handle of window whose process will  */
  18044.                         /* will be given access to the DRAGINFO */
  18045.                         /* structure                            */
  18046.  
  18047. fSuccess = DrgPushDraginfo(&Draginfo,hwndDest);
  18048.  
  18049.  
  18050. ΓòÉΓòÉΓòÉ 6.15. DrgQueryDragitem ΓòÉΓòÉΓòÉ
  18051.  
  18052.  
  18053. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgQueryDragitem ΓòÉΓòÉΓòÉ
  18054.  
  18055. Select an item: 
  18056.  
  18057. Function Syntax 
  18058. Parameters 
  18059. Return Values 
  18060. Notes 
  18061. Example 
  18062. Related Functions 
  18063. Glossary 
  18064.  
  18065.  
  18066. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgQueryDragitem ΓòÉΓòÉΓòÉ
  18067.  
  18068. pDraginfo (PDRAGINFO) - input 
  18069.    Pointer. Pointer to the DRAGINFO structure from which the DRAGITEM structure 
  18070.    is obtained. 
  18071.  
  18072. cbBuffer (ULONG) - input 
  18073.    Number of bytes. Maximum number of bytes to copy. 
  18074.  
  18075. pDragitem (PDRAGITEM) - output 
  18076.    Pointer. Pointer to the buffer into which the DRAGITEM structure is copied. 
  18077.  
  18078. iItem (ULONG) - input 
  18079.    DRAGITEM index. Zero-based index of the DRAGITEM to be returned. 
  18080.  
  18081.  
  18082. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgQueryDragitem ΓòÉΓòÉΓòÉ
  18083.  
  18084. fSuccess (BOOL) - return 
  18085.    Success indicator. 
  18086.  
  18087.    TRUE 
  18088.       Successful completion. 
  18089.  
  18090.    FALSE 
  18091.       Error occurred. 
  18092.  
  18093.  
  18094. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgQueryDragitem ΓòÉΓòÉΓòÉ
  18095.  
  18096. This function returns the DRAGITEM structure identified by iItem. 
  18097.  
  18098.  
  18099. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgQueryDragitem ΓòÉΓòÉΓòÉ
  18100.  
  18101. /*******************************************/
  18102. /* This function returns a DRAGITEM        */
  18103. /* structure used in the direct            */
  18104. /* manipulation operation.                 */
  18105. /*******************************************/
  18106.  
  18107. #define INCL_WINSTDDRAG
  18108. #include <os2.h>
  18109.  
  18110. PDRAGINFO  pDraginfo;      /* Pointer */
  18111. ULONG      cbBuffer;       /* Number of bytes */
  18112. PDRAGITEM  pDragitem;      /* Pointer */
  18113. ULONG      iItem;          /* DRAGITEM index */
  18114. BOOL       fSuccess;       /* Success indicator */
  18115.  
  18116. fSuccess = DrgQueryDragitem(pDraginfo,
  18117.              cbBuffer, pDragitem, iItem);
  18118.  
  18119.  
  18120. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgQueryDragitem ΓòÉΓòÉΓòÉ
  18121.  
  18122. Related Functions 
  18123.  
  18124. o DrgQueryDragitemPtr 
  18125. o DrgSetDragitem 
  18126.  
  18127.  
  18128. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgQueryDragitem ΓòÉΓòÉΓòÉ
  18129.  
  18130. This example calls the DrgQueryDragitem function to return the entirety of the 
  18131. first DRAGITEM structure in the given DRAGINFO structure, after which it 
  18132. obtains the source window handle. 
  18133.  
  18134. #define INCL_WINSTDDRAG /* Direct Manipulation (Drag) Functions */
  18135. #include <os2.h>
  18136.  
  18137. BOOL      fSuccess;     /* Indicate success or failure          */
  18138. DRAGINFO  Draginfo;     /* DRAGINFO structure from which the    */
  18139.                         /* DRAGITEM structure is obtained       */
  18140. ULONG     cbBuffer;     /* Maximum number of bytes to copy      */
  18141. DRAGITEM  Dragitem;     /* Buffer into which the DRAGITEM       */
  18142.                         /* structure is copied                  */
  18143. ULONG     iItem;        /* Zero-based index of the DRAGITEM     */
  18144.                         /* to be returned                       */
  18145. HWND      hwndSource;   /* Source window handle for the drag    */
  18146.  
  18147. cbBuffer = sizeof(DRAGITEM); /* Copy entire DRAGITEM structure  */
  18148. iItem = 0;                   /* Return first DRAGITEM           */
  18149.  
  18150. fSuccess = DrgQueryDragitem(&Draginfo,cbBuffer,&Dragitem,iItem);
  18151.  
  18152. hwndSource = Dragitem.hwndItem;  /* Obtain source window handle */
  18153.  
  18154.  
  18155. ΓòÉΓòÉΓòÉ 6.16. DrgQueryDragitemCount ΓòÉΓòÉΓòÉ
  18156.  
  18157.  
  18158. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgQueryDragitemCount ΓòÉΓòÉΓòÉ
  18159.  
  18160. Select an item: 
  18161.  
  18162. Function Syntax 
  18163. Parameters 
  18164. Return Values 
  18165. Example 
  18166. Glossary 
  18167.  
  18168.  
  18169. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgQueryDragitemCount ΓòÉΓòÉΓòÉ
  18170.  
  18171. pDraginfo (PDRAGINFO) - input 
  18172.    Pointer. Pointer to the DRAGINFO structure for which the number of dragged 
  18173.    objects is requested. 
  18174.  
  18175.  
  18176. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgQueryDragitemCount ΓòÉΓòÉΓòÉ
  18177.  
  18178. cDitem (ULONG) - return 
  18179.    Number of objects. Number of objects being dragged. 
  18180.  
  18181.  
  18182. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgQueryDragitemCount ΓòÉΓòÉΓòÉ
  18183.  
  18184. /*******************************************/
  18185. /* This function returns the number of     */
  18186. /* objects being dragged during the        */
  18187. /* current direct manipulation operation.  */
  18188. /*******************************************/
  18189.  
  18190. #define INCL_WINSTDDRAG
  18191. #include <os2.h>
  18192.  
  18193. PDRAGINFO  pDraginfo;      /* Pointer */
  18194. ULONG      cDitem;         /* Number of objects */
  18195.  
  18196. cDitem = DrgQueryDragitemCount(pDraginfo);
  18197.  
  18198.  
  18199. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgQueryDragitemCount ΓòÉΓòÉΓòÉ
  18200.  
  18201. This example calls the DrgQueryDragitemCount function to return the number of 
  18202. DRAGITEM structures in the corresponding DRAGINFO structure, which maps to the 
  18203. number of objects being dragged. 
  18204.  
  18205. #define INCL_WINSTDDRAG /* Direct Manipulation (Drag) Functions */
  18206. #include <os2.h>
  18207.  
  18208. ULONG     cDitem;       /* Number of objects being dragged      */
  18209. DRAGINFO  Draginfo;     /* DRAGINFO structure queried for the   */
  18210.                         /* number of drag objects               */
  18211.  
  18212. cDitem = DrgQueryDragitemCount(&Draginfo);
  18213.  
  18214.  
  18215. ΓòÉΓòÉΓòÉ 6.17. DrgQueryDragitemPtr ΓòÉΓòÉΓòÉ
  18216.  
  18217.  
  18218. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgQueryDragitemPtr ΓòÉΓòÉΓòÉ
  18219.  
  18220. Select an item: 
  18221.  
  18222. Function Syntax 
  18223. Parameters 
  18224. Return Values 
  18225. Notes 
  18226. Example 
  18227. Related Functions 
  18228. Glossary 
  18229.  
  18230.  
  18231. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgQueryDragitemPtr ΓòÉΓòÉΓòÉ
  18232.  
  18233. pDraginfo (PDRAGINFO) - input 
  18234.    Pointer. Pointer to the DRAGINFO structure from which the DRAGITEM structure 
  18235.    is obtained. 
  18236.  
  18237. ulIndex (ULONG) - input 
  18238.    DRAGITEM index. Zero-based index of the DRAGITEM structure for which the 
  18239.    pointer is to be returned. 
  18240.  
  18241.  
  18242. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgQueryDragitemPtr ΓòÉΓòÉΓòÉ
  18243.  
  18244. pDragitem (PDRAGITEM) - return 
  18245.    Pointer. Pointer to the DRAGITEM structure. 
  18246.  
  18247.  
  18248. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgQueryDragitemPtr ΓòÉΓòÉΓòÉ
  18249.  
  18250. This function returns a pointer to ulItemID in the DRAGITEM structure used in 
  18251. the direct manipulation operation. 
  18252.  
  18253.  
  18254. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgQueryDragitemPtr ΓòÉΓòÉΓòÉ
  18255.  
  18256. /*******************************************/
  18257. /* This function returns a pointer to the  */
  18258. /* DRAGITEM structure used in the direct   */
  18259. /* manipulation operation.                 */
  18260. /*******************************************/
  18261.  
  18262. #define INCL_WINSTDDRAG
  18263. #include <os2.h>
  18264.  
  18265. PDRAGINFO  pDraginfo;      /* Pointer */
  18266. ULONG      ulIndex;        /* DRAGITEM index */
  18267. PDRAGITEM  pDragitem;      /* Pointer */
  18268.  
  18269. pDragitem = DrgQueryDragitemPtr(pDraginfo,
  18270.               ulIndex);
  18271.  
  18272.  
  18273. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgQueryDragitemPtr ΓòÉΓòÉΓòÉ
  18274.  
  18275. Related Functions 
  18276.  
  18277. o DrgQueryDragitem 
  18278.  
  18279.  
  18280. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgQueryDragitemPtr ΓòÉΓòÉΓòÉ
  18281.  
  18282. This example calls the DrgQueryDragitemPtr function to return a pointer to 
  18283. first DRAGITEM structure in the given DRAGINFO structure, after which it 
  18284. obtains the source window handle. 
  18285.  
  18286. #define INCL_WINSTDDRAG /* Direct Manipulation (Drag) Functions  */
  18287. #include <os2.h>
  18288.  
  18289. PDRAGITEM  pDragitem;   /* DRAGITEM structure pointer            */
  18290. DRAGINFO   Draginfo;    /* DRAGINFO structure from which the     */
  18291.                         /* DRAGITEM structure is obtained        */
  18292. ULONG      ulIndex;     /* Zero-based index of the DRAGITEM      */
  18293.                         /* structure pointer to be returned      */
  18294. HWND       hwndSource;  /* Source window handle for the drag     */
  18295.  
  18296. USHORT     usn = 0;     /* Return pointer to first DRAGITEM      */
  18297.  
  18298. pDragitem = DrgQueryDragitemPtr(&Draginfo,usn);
  18299.  
  18300. hwndSource = pDragitem->hwndItem; /* Obtain source window handle */
  18301.  
  18302.  
  18303. ΓòÉΓòÉΓòÉ 6.18. DrgQueryNativeRMF ΓòÉΓòÉΓòÉ
  18304.  
  18305.  
  18306. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgQueryNativeRMF ΓòÉΓòÉΓòÉ
  18307.  
  18308. Select an item: 
  18309.  
  18310. Function Syntax 
  18311. Parameters 
  18312. Return Values 
  18313. Errors 
  18314. Notes 
  18315. Example 
  18316. Related Functions 
  18317. Glossary 
  18318.  
  18319.  
  18320. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgQueryNativeRMF ΓòÉΓòÉΓòÉ
  18321.  
  18322. pDragitem (PDRAGITEM) - input 
  18323.    Pointer. Pointer to the DRAGITEM structure whose native rendering mechanism 
  18324.    and format are to be obtained. 
  18325.  
  18326. cbBuflen (ULONG) - input 
  18327.    Number of bytes. Maximum number of bytes to copy to the buffer. 
  18328.  
  18329. ppBuffer (PCHAR) - output 
  18330.    Pointer. Pointer to the buffer in which the null-terminated string is to be 
  18331.    returned. 
  18332.  
  18333.  
  18334. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgQueryNativeRMF ΓòÉΓòÉΓòÉ
  18335.  
  18336. fSuccess (BOOL) - return 
  18337.    Success indicator. 
  18338.  
  18339.    TRUE 
  18340.       Successful completion. 
  18341.  
  18342.    FALSE 
  18343.       Error occurred. 
  18344.  
  18345.  
  18346. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgQueryNativeRMF ΓòÉΓòÉΓòÉ
  18347.  
  18348. Possible returns from WinGetLastError 
  18349.  
  18350. PMERR_INVALID_PARAMETERS 
  18351.    An application parameter value is invalid for its converted PM type. For 
  18352.    example: a 4-byte value outside the range -32,768 to +32,767 cannot be 
  18353.    converted to a SHORT, and a negative number cannot be converted to a ULONG 
  18354.    or USHORT. 
  18355.  
  18356.  
  18357. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgQueryNativeRMF ΓòÉΓòÉΓòÉ
  18358.  
  18359. If the rendering mechanism and format string for the object are NULL, FALSE is 
  18360. returned. If TRUE is returned, the format of the string is: <mechanism,format>. 
  18361.  
  18362. The native rendering mechanism and format are the first ordered pair, or the 
  18363. first ordered pair produced by a cross product, in the string associated with 
  18364. hstrRMF in the DRAGITEM structure. 
  18365.  
  18366. DrgQueryNativeRMFLen can be used to determine the size of the buffer required 
  18367. to hold the string returned by this function. 
  18368.  
  18369.  
  18370. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgQueryNativeRMF ΓòÉΓòÉΓòÉ
  18371.  
  18372. /*******************************************/
  18373. /* This function obtains the ordered pair  */
  18374. /* that represents the native rendering    */
  18375. /* mechanism and format of the dragged     */
  18376. /* object.                                 */
  18377. /*******************************************/
  18378.  
  18379. #define INCL_WINSTDDRAG
  18380. #include <os2.h>
  18381.  
  18382. PDRAGITEM  pDragitem;      /* Pointer */
  18383. ULONG      cbBuflen;       /* Number of bytes */
  18384. PCHAR      ppBuffer;       /* Pointer */
  18385. BOOL       fSuccess;       /* Success indicator */
  18386.  
  18387. fSuccess = DrgQueryNativeRMF(pDragitem,
  18388.              cbBuflen, ppBuffer);
  18389.  
  18390.  
  18391. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgQueryNativeRMF ΓòÉΓòÉΓòÉ
  18392.  
  18393. Prerequisite Functions 
  18394.  
  18395. o DrgQueryNativeRMFLen 
  18396.  
  18397. Related Functions 
  18398.  
  18399. o DrgVerifyNativeRMF 
  18400.  
  18401.  
  18402. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgQueryNativeRMF ΓòÉΓòÉΓòÉ
  18403.  
  18404. This example shows how to obtain the window handle of the source of a drag 
  18405. item. 
  18406.  
  18407. #define INCL_WINSTDDRAG  /* Direct Manipulation (Drag) Functions */
  18408. #define INCL_DOSMEMMGR   /* Memory Management Functions for      */
  18409.                          /* DosSubAlloc                          */
  18410. #include <OS2.H>
  18411.  
  18412. DRAGITEM ditem;
  18413. PVOID    pMem;
  18414. PSZ      pszBuffer;
  18415. ULONG    cb;
  18416. BOOL     rc, fResult;
  18417.  
  18418. cb = DrgQueryNativeRMFLen(&ditem) + 1;
  18419.  
  18420. rc = DosSubAlloc(pMem, (PVOID *) pszBuffer, cb);
  18421.  
  18422. if (!rc)
  18423.  
  18424. {
  18425.    fResult = DrgQueryNativeRMF(&ditem, cb, pszBuffer);
  18426. }
  18427.  
  18428.  
  18429. ΓòÉΓòÉΓòÉ 6.19. DrgQueryNativeRMFLen ΓòÉΓòÉΓòÉ
  18430.  
  18431.  
  18432. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgQueryNativeRMFLen ΓòÉΓòÉΓòÉ
  18433.  
  18434. Select an item: 
  18435.  
  18436. Function Syntax 
  18437. Parameters 
  18438. Return Values 
  18439. Errors 
  18440. Notes 
  18441. Example 
  18442. Related Functions 
  18443. Glossary 
  18444.  
  18445.  
  18446. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgQueryNativeRMFLen ΓòÉΓòÉΓòÉ
  18447.  
  18448. pDragitem (PDRAGITEM) - input 
  18449.    Pointer. Pointer to the DRAGITEM structure whose native rendering mechanism 
  18450.    and format string length are to be obtained. 
  18451.  
  18452.  
  18453. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgQueryNativeRMFLen ΓòÉΓòÉΓòÉ
  18454.  
  18455. ulLength (ULONG) - return 
  18456.    String length. String length of the ordered pair: 
  18457.  
  18458.    0 
  18459.       Error occurred. 
  18460.  
  18461.    Other 
  18462.       String length of the ordered pair, excluding the null-terminating byte. 
  18463.  
  18464.  
  18465. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgQueryNativeRMFLen ΓòÉΓòÉΓòÉ
  18466.  
  18467. Possible returns from WinGetLastError 
  18468.  
  18469. PMERR_INVALID_PARAMETERS 
  18470.    An application parameter value is invalid for its converted PM type. For 
  18471.    example: a 4-byte value outside the range -32,768 to +32,767 cannot be 
  18472.    converted to a SHORT, and a negative number cannot be converted to a ULONG 
  18473.    or USHORT. 
  18474.  
  18475.  
  18476. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgQueryNativeRMFLen ΓòÉΓòÉΓòÉ
  18477.  
  18478. This function is used to determine the size of the buffer that contains the 
  18479. string representing the native rendering mechanism and format of the dragged 
  18480. object. 
  18481.  
  18482. If the input string handle is NULLHANDLE or not valid, a length of 0 is 
  18483. returned. 
  18484.  
  18485.  
  18486. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgQueryNativeRMFLen ΓòÉΓòÉΓòÉ
  18487.  
  18488. /*******************************************/
  18489. /* This function obtains the length of the */
  18490. /* string representing the native          */
  18491. /* rendering mechanism and format of the   */
  18492. /* dragged object.                         */
  18493. /*******************************************/
  18494.  
  18495. #define INCL_WINSTDDRAG
  18496. #include <os2.h>
  18497.  
  18498. PDRAGITEM  pDragitem;      /* Pointer */
  18499. ULONG      ulLength;       /* String length */
  18500.  
  18501. ulLength = DrgQueryNativeRMFLen(pDragitem);
  18502.  
  18503.  
  18504. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgQueryNativeRMFLen ΓòÉΓòÉΓòÉ
  18505.  
  18506. Related Functions 
  18507.  
  18508. o DrgQueryNativeRMF 
  18509.  
  18510.  
  18511. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgQueryNativeRMFLen ΓòÉΓòÉΓòÉ
  18512.  
  18513. This example shows how to obtain the window handle of the source of a drag 
  18514. item. 
  18515.  
  18516. #define INCL_WINSTDDRAG  /* Direct Manipulation (Drag) Functions */
  18517. #define INCL_DOSMEMMGR   /* Memory Management Functions for      */
  18518.                          /* DosSubAlloc                          */
  18519. #include <OS2.H>
  18520.  
  18521. DRAGITEM ditem;
  18522. PVOID    pMem;
  18523. PSZ      pszBuffer;
  18524. ULONG    cb;
  18525. BOOL     rc, fResult;
  18526.  
  18527. cb = DrgQueryNativeRMFLen(&ditem) + 1;
  18528.  
  18529. rc = DosSubAlloc(pMem, (PVOID *) pszBuffer, cb);
  18530.  
  18531. if (!rc)
  18532.  
  18533. {
  18534.    fResult = DrgQueryNativeRMF(&ditem, cb, pszBuffer);
  18535. }
  18536.  
  18537.  
  18538. ΓòÉΓòÉΓòÉ 6.20. DrgQueryStrName ΓòÉΓòÉΓòÉ
  18539.  
  18540.  
  18541. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgQueryStrName ΓòÉΓòÉΓòÉ
  18542.  
  18543. Select an item: 
  18544.  
  18545. Function Syntax 
  18546. Parameters 
  18547. Return Values 
  18548. Errors 
  18549. Notes 
  18550. Example 
  18551. Related Functions 
  18552. Glossary 
  18553.  
  18554.  
  18555. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgQueryStrName ΓòÉΓòÉΓòÉ
  18556.  
  18557. Hstr (HSTR) - input 
  18558.    String handle. The handle must have been created with DrgAddStrHandle. 
  18559.  
  18560. cbBuflen (ULONG) - input 
  18561.    Number of bytes. Maximum number of bytes to copy. 
  18562.  
  18563. pBuffer (PSZ) - output 
  18564.    Buffer. Buffer where the null-terminated string is returned. 
  18565.  
  18566.  
  18567. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgQueryStrName ΓòÉΓòÉΓòÉ
  18568.  
  18569. ulLength (ULONG) - return 
  18570.    Number of bytes. Number of bytes written to pBuffer. 
  18571.  
  18572.  
  18573. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgQueryStrName ΓòÉΓòÉΓòÉ
  18574.  
  18575. Possible returns from WinGetLastError 
  18576.  
  18577. PMERR_INVALID_PARAMETERS 
  18578.    An application parameter value is invalid for its converted PM type. For 
  18579.    example: a 4-byte value outside the range -32,768 to +32,767 cannot be 
  18580.    converted to a SHORT, and a negative number cannot be converted to a ULONG 
  18581.    or USHORT. 
  18582.  
  18583.  
  18584. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgQueryStrName ΓòÉΓòÉΓòÉ
  18585.  
  18586. This function should be called whenever the contents of a string referenced by 
  18587. a drag string handle are required.  If the input string handle is NULLHANDLE or 
  18588. not valid, a null string is returned. 
  18589.  
  18590.  
  18591. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgQueryStrName ΓòÉΓòÉΓòÉ
  18592.  
  18593. /*******************************************/
  18594. /* This function gets the contents of a    */
  18595. /* string associated with a string handle. */
  18596. /*******************************************/
  18597.  
  18598. #define INCL_WINSTDDRAG
  18599. #include <os2.h>
  18600.  
  18601. HSTR   Hstr;      /* String handle */
  18602. ULONG  cbBuflen;  /* Number of bytes */
  18603. PSZ    pBuffer;   /* Buffer */
  18604. ULONG  ulLength;  /* Number of bytes */
  18605.  
  18606. ulLength = DrgQueryStrName(Hstr, cbBuflen,
  18607.              pBuffer);
  18608.  
  18609.  
  18610. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgQueryStrName ΓòÉΓòÉΓòÉ
  18611.  
  18612. Prerequisite Functions 
  18613.  
  18614. o DrgQueryStrNameLen 
  18615.  
  18616. Related Functions 
  18617.  
  18618. o DrgAddStrHandle 
  18619.  
  18620.  
  18621. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgQueryStrName ΓòÉΓòÉΓòÉ
  18622.  
  18623. This example shows how to obtain the contents of a string given that the string 
  18624. handle is known. The string handle must have been originally created with the 
  18625. DrgAddStrHandle function. 
  18626.  
  18627. #define INCL_WINSTDDRAG  /* Direct Manipulation (Drag) Functions */
  18628. #define INCL_DOSMEMMGR   /* Memory Management Functions for      */
  18629.                          /* DosAllocMem                          */
  18630. #include <OS2.H>
  18631.  
  18632. HSTR   hstr;             /* Handle to a string.  The handle must */
  18633.                          /* have been created with               */
  18634.                          /* DrgAddStrHandle.                     */
  18635. PSZ    pBuffer;          /* Buffer where the null-terminated     */
  18636.                          /* string is returned                   */
  18637. ULONG  ulStrlen;         /* String length                        */
  18638. ULONG  ulBytesRead;      /* Number of bytes read                 */
  18639. ULONG  rc;               /* Return code                          */
  18640.  
  18641. ulStrlen = DrgQueryStrNameLen(hstr) + 1;
  18642.  
  18643. rc = DosAllocMem((PVOID *) pBuffer,
  18644.                 (LONG)ulStrlen,
  18645.                 fPERM |
  18646.                 PAG_COMMIT);
  18647.  
  18648. /*****************************************************************/
  18649. /* The ulBytesRead parameter contains the number of bytes        */
  18650. /* actually written to the memory pointed to by pBuffer          */
  18651. /*****************************************************************/
  18652. ulBytesRead = DrgQueryStrName(hstr,
  18653.                      ulStrlen,      /* Number of bytes to copy   */
  18654.                      pBuffer);
  18655.  
  18656.  
  18657. ΓòÉΓòÉΓòÉ 6.21. DrgQueryStrNameLen ΓòÉΓòÉΓòÉ
  18658.  
  18659.  
  18660. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgQueryStrNameLen ΓòÉΓòÉΓòÉ
  18661.  
  18662. Select an item: 
  18663.  
  18664. Function Syntax 
  18665. Parameters 
  18666. Return Values 
  18667. Errors 
  18668. Notes 
  18669. Example 
  18670. Related Functions 
  18671. Glossary 
  18672.  
  18673.  
  18674. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgQueryStrNameLen ΓòÉΓòÉΓòÉ
  18675.  
  18676. Hstr (HSTR) - input 
  18677.    String handle. The handle must be created with DrgAddStrHandle. 
  18678.  
  18679.  
  18680. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgQueryStrNameLen ΓòÉΓòÉΓòÉ
  18681.  
  18682. cLength (ULONG) - return 
  18683.    String length. 
  18684.  
  18685.    0 
  18686.       The string handle is NULLHANDLE or is not valid. 
  18687.  
  18688.    Other 
  18689.       The length of the string associated with the string handle, excluding the 
  18690.       null terminating byte. 
  18691.  
  18692.  
  18693. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgQueryStrNameLen ΓòÉΓòÉΓòÉ
  18694.  
  18695. Possible returns from WinGetLastError 
  18696.  
  18697. PMERR_INVALID_PARAMETERS 
  18698.    An application parameter value is invalid for its converted PM type. For 
  18699.    example: a 4-byte value outside the range -32,768 to +32,767 cannot be 
  18700.    converted to a SHORT, and a negative number cannot be converted to a ULONG 
  18701.    or USHORT. 
  18702.  
  18703.  
  18704. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgQueryStrNameLen ΓòÉΓòÉΓòÉ
  18705.  
  18706. This function should be called before calling the DrgQueryStrName function. It 
  18707. is used to determine and allocate the buffer size for the string associated 
  18708. with the string handle.  If the input string handle is NULLHANDLE or not valid, 
  18709. a length of 0 is returned. 
  18710.  
  18711.  
  18712. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgQueryStrNameLen ΓòÉΓòÉΓòÉ
  18713.  
  18714. /*******************************************/
  18715. /* This function gets the length of a      */
  18716. /* string associated with a string handle. */
  18717. /*******************************************/
  18718.  
  18719. #define INCL_WINSTDDRAG
  18720. #include <os2.h>
  18721.  
  18722. HSTR   Hstr;     /* String handle */
  18723. ULONG  cLength;  /* String length */
  18724.  
  18725. cLength = DrgQueryStrNameLen(Hstr);
  18726.  
  18727.  
  18728. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgQueryStrNameLen ΓòÉΓòÉΓòÉ
  18729.  
  18730. Related Functions 
  18731.  
  18732. o DrgQueryStrName 
  18733.  
  18734.  
  18735. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgQueryStrNameLen ΓòÉΓòÉΓòÉ
  18736.  
  18737. This example shows how to obtain the length of a string given that the string 
  18738. handle is known. The string handle must have been originally created with the 
  18739. DrgAddStrHandle function. 
  18740.  
  18741. #define INCL_WINSTDDRAG /* Direct Manipulation (Drag) Functions  */
  18742. #define INCL_DOSMEMMGR  /* Memory Management Functions for       */
  18743.                         /* DosAllocMem                           */
  18744. #include <OS2.H>
  18745.  
  18746. HSTR   hstr;            /* Handle to a string.  The handle must  */
  18747.                         /* have been created with                */
  18748.                         /* DrgAddStrHandle.                      */
  18749. PSZ    pBuffer;         /* Buffer where the null-terminated      */
  18750.                         /* string is returned                    */
  18751. ULONG  ulStrlen;        /* String length                         */
  18752. ULONG  ulBytesRead;     /* Number of bytes read                  */
  18753. ULONG  rc;              /* Return code                           */
  18754.  
  18755. ulStrlen = DrgQueryStrNameLen(hstr) + 1;
  18756.  
  18757. rc = DosAllocMem((PVOID *) pBuffer,
  18758.                 (LONG)ulStrlen,
  18759.                  fPERM |
  18760.                  PAG_COMMIT);
  18761.  
  18762. /*****************************************************************/
  18763. /* The ulBytesRead parameter contains the number of bytes        */
  18764. /* actually written to the memory pointed to by pBuffer          */
  18765. /*****************************************************************/
  18766. ulBytesRead = DrgQueryStrName(hstr,
  18767.                      ulStrlen,      /* Number of bytes to copy   */
  18768.                      pBuffer);
  18769.  
  18770.  
  18771. ΓòÉΓòÉΓòÉ 6.22. DrgQueryTrueType ΓòÉΓòÉΓòÉ
  18772.  
  18773.  
  18774. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgQueryTrueType ΓòÉΓòÉΓòÉ
  18775.  
  18776. Select an item: 
  18777.  
  18778. Function Syntax 
  18779. Parameters 
  18780. Return Values 
  18781. Errors 
  18782. Notes 
  18783. Example 
  18784. Related Functions 
  18785. Glossary 
  18786.  
  18787.  
  18788. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgQueryTrueType ΓòÉΓòÉΓòÉ
  18789.  
  18790. pDragitem (PDRAGITEM) - input 
  18791.    Pointer. Pointer to the DRAGITEM structure whose true type is to be 
  18792.    obtained. 
  18793.  
  18794. cbBuflen (ULONG) - input 
  18795.    Number of bytes. Maximum number of bytes to copy to the buffer. 
  18796.  
  18797. pBuffer (PSZ) - output 
  18798.    Buffer. Buffer in which the null-terminated string is to be returned. 
  18799.  
  18800.  
  18801. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgQueryTrueType ΓòÉΓòÉΓòÉ
  18802.  
  18803. fSuccess (BOOL) - return 
  18804.    Success indicator. 
  18805.  
  18806.    TRUE 
  18807.       Successful completion. 
  18808.  
  18809.    FALSE 
  18810.       Error occurred. 
  18811.  
  18812.  
  18813. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgQueryTrueType ΓòÉΓòÉΓòÉ
  18814.  
  18815. Possible returns from WinGetLastError 
  18816.  
  18817. PMERR_INVALID_PARAMETERS 
  18818.    An application parameter value is invalid for its converted PM type. For 
  18819.    example: a 4-byte value outside the range -32,768 to +32,767 cannot be 
  18820.    converted to a SHORT, and a negative number cannot be converted to a ULONG 
  18821.    or USHORT. 
  18822.  
  18823.  
  18824. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgQueryTrueType ΓòÉΓòÉΓòÉ
  18825.  
  18826. The true type of an object is the first type in the string referenced by 
  18827. hstrType in the DRAGITEM structure. 
  18828.  
  18829. This function can be called after calling the DrgQueryTrueTypeLen function. If 
  18830. the type string for the object is NULLHANDLE, FALSE is returned. 
  18831.  
  18832.  
  18833. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgQueryTrueType ΓòÉΓòÉΓòÉ
  18834.  
  18835. /*******************************************/
  18836. /* This function obtains the true type of  */
  18837. /* a dragged object.                       */
  18838. /*******************************************/
  18839.  
  18840. #define INCL_WINSTDDRAG
  18841. #include <os2.h>
  18842.  
  18843. PDRAGITEM  pDragitem;      /* Pointer */
  18844. ULONG      cbBuflen;       /* Number of bytes */
  18845. PSZ        pBuffer;        /* Buffer */
  18846. BOOL       fSuccess;       /* Success indicator */
  18847.  
  18848. fSuccess = DrgQueryTrueType(pDragitem,
  18849.              cbBuflen, pBuffer);
  18850.  
  18851.  
  18852. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgQueryTrueType ΓòÉΓòÉΓòÉ
  18853.  
  18854. Prerequisite Functions 
  18855.  
  18856. o DrgQueryTrueTypeLen 
  18857.  
  18858. Related Functions 
  18859.  
  18860. o DrgVerifyTrueType 
  18861.  
  18862.  
  18863. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgQueryTrueType ΓòÉΓòÉΓòÉ
  18864.  
  18865. This example shows how to obtain the true type of an object. 
  18866.  
  18867. #define INCL_WINSTDDRAG  /* Direct Manipulation (Drag) Functions */
  18868. #include <OS2.H>
  18869.  
  18870. BOOL     fSuccess;       /* Return value                         */
  18871. DRAGITEM Dragitem;       /* DRAGITEM structure whose true type   */
  18872.                          /* is to be obtained                    */
  18873.  
  18874. char szBuffer[32];       /* Buffer in which the null-terminated  */
  18875.                          /* string is to be returned             */
  18876.  
  18877. fSuccess = DrgQueryTrueType(&Dragitem,
  18878.                             sizeof(szBuffer),
  18879.                             szBuffer);
  18880.  
  18881.  
  18882. ΓòÉΓòÉΓòÉ 6.23. DrgQueryTrueTypeLen ΓòÉΓòÉΓòÉ
  18883.  
  18884.  
  18885. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgQueryTrueTypeLen ΓòÉΓòÉΓòÉ
  18886.  
  18887. Select an item: 
  18888.  
  18889. Function Syntax 
  18890. Parameters 
  18891. Return Values 
  18892. Errors 
  18893. Notes 
  18894. Example 
  18895. Related Functions 
  18896. Glossary 
  18897.  
  18898.  
  18899. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgQueryTrueTypeLen ΓòÉΓòÉΓòÉ
  18900.  
  18901. pDragitem (PDRAGITEM) - input 
  18902.    Pointer. Pointer to the DRAGITEM structure whose true type length is to be 
  18903.    obtained. 
  18904.  
  18905.  
  18906. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgQueryTrueTypeLen ΓòÉΓòÉΓòÉ
  18907.  
  18908. ulLength (ULONG) - return 
  18909.    String length. 
  18910.  
  18911.    0 
  18912.       Error occurred. 
  18913.  
  18914.    Other 
  18915.       The length of the first element of the character string associated with 
  18916.       hstrType, excluding the null-terminating byte. 
  18917.  
  18918.  
  18919. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgQueryTrueTypeLen ΓòÉΓòÉΓòÉ
  18920.  
  18921. Possible returns from WinGetLastError 
  18922.  
  18923. PMERR_INVALID_PARAMETERS 
  18924.    An application parameter value is invalid for its converted PM type. For 
  18925.    example: a 4-byte value outside the range -32,768 to +32,767 cannot be 
  18926.    converted to a SHORT, and a negative number cannot be converted to a ULONG 
  18927.    or USHORT. 
  18928.  
  18929.  
  18930. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgQueryTrueTypeLen ΓòÉΓòÉΓòÉ
  18931.  
  18932. This function can be used to determine the buffer size to allocate for the 
  18933. string representing the true type of a dragged object. The true type of an 
  18934. object is the first type in the type string referenced by hstrType in the 
  18935. DRAGITEM structure. 
  18936.  
  18937. This function can be called before calling the DrgQueryTrueType function. 
  18938.  
  18939. If the input string handle is NULLHANDLE or not valid, a length of 0 is 
  18940. returned. 
  18941.  
  18942.  
  18943. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgQueryTrueTypeLen ΓòÉΓòÉΓòÉ
  18944.  
  18945. /*******************************************/
  18946. /* This function obtains the length of the */
  18947. /* string that represents the true type of */
  18948. /* a dragged object.                       */
  18949. /*******************************************/
  18950.  
  18951. #define INCL_WINSTDDRAG
  18952. #include <os2.h>
  18953.  
  18954. PDRAGITEM  pDragitem;      /* Pointer */
  18955. ULONG      ulLength;       /* String length */
  18956.  
  18957. ulLength = DrgQueryTrueTypeLen(pDragitem);
  18958.  
  18959.  
  18960. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgQueryTrueTypeLen ΓòÉΓòÉΓòÉ
  18961.  
  18962. Related Functions 
  18963.  
  18964. o DrgQueryTrueType 
  18965.  
  18966.  
  18967. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgQueryTrueTypeLen ΓòÉΓòÉΓòÉ
  18968.  
  18969. This example shows how to obtain the length of the true type string with the 
  18970. DrgQueryTrueTypeLen function. 
  18971.  
  18972. #define INCL_WINSTDDRAG  /* Direct Manipulation (Drag) Functions */
  18973. #define INCL_DOSMEMMGR   /* Memory Management Functions for      */
  18974.                          /* DosAllocMem                          */
  18975. #include <OS2.H>
  18976.  
  18977. PSZ      pszBuffer;      /* Buffer in which the DRAGITEM         */
  18978.                          /* structure is stored                  */
  18979. BOOL     fSuccess;       /* Return value                         */
  18980. DRAGITEM Dragitem;       /* DRAGITEM structure whose true type   */
  18981.                          /* length is to be obtained             */
  18982. ULONG    rc;             /* Return code                          */
  18983. ULONG    ulLength;       /* String length of dragged object      */
  18984.  
  18985. ulLength = DrgQueryTrueTypeLen(&Dragitem) + 1;
  18986.  
  18987. rc = DosAllocMem((PVOID *) pszBuffer, ulLength, fPERM);
  18988.  
  18989. fSuccess = DrgQueryTrueType(&Dragitem, ulLength, pszBuffer);
  18990.  
  18991.  
  18992. ΓòÉΓòÉΓòÉ 6.24. DrgReleasePS ΓòÉΓòÉΓòÉ
  18993.  
  18994.  
  18995. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgReleasePS ΓòÉΓòÉΓòÉ
  18996.  
  18997. Select an item: 
  18998.  
  18999. Function Syntax 
  19000. Parameters 
  19001. Return Values 
  19002. Errors 
  19003. Notes 
  19004. Example 
  19005. Related Functions 
  19006. Glossary 
  19007.  
  19008.  
  19009. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgReleasePS ΓòÉΓòÉΓòÉ
  19010.  
  19011. Hps (HPS) - input 
  19012.    Presentation-space handle. Handle of the presentation space to release. 
  19013.  
  19014.  
  19015. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgReleasePS ΓòÉΓòÉΓòÉ
  19016.  
  19017. fSuccess (BOOL) - return 
  19018.    Success indicator. 
  19019.  
  19020.    TRUE 
  19021.       Successful completion. 
  19022.  
  19023.    FALSE 
  19024.       Error occurred. 
  19025.  
  19026.  
  19027. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgReleasePS ΓòÉΓòÉΓòÉ
  19028.  
  19029. Possible returns from WinGetLastError 
  19030.  
  19031. PMERR_INV_HPS 
  19032.    An invalid presentation-space handle was specified. 
  19033.  
  19034. PMERR_NOT_DRAGGING 
  19035.    A drag operation is not in progress at this time. 
  19036.  
  19037.  
  19038. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgReleasePS ΓòÉΓòÉΓòÉ
  19039.  
  19040. Only presentation spaces created with DrgGetPS can be released using this 
  19041. function. 
  19042.  
  19043. The presentation-space handle should not be used after this function. 
  19044.  
  19045.  
  19046. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgReleasePS ΓòÉΓòÉΓòÉ
  19047.  
  19048. /*******************************************/
  19049. /* This function releases a presentation   */
  19050. /* space obtained by using the DrgGetPS    */
  19051. /* function.                               */
  19052. /*******************************************/
  19053.  
  19054. #define INCL_WINSTDDRAG
  19055. #include <os2.h>
  19056.  
  19057. HPS   Hps;      /* Presentation-space handle */
  19058. BOOL  fSuccess; /* Success indicator */
  19059.  
  19060. fSuccess = DrgReleasePS(Hps);
  19061.  
  19062.  
  19063. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgReleasePS ΓòÉΓòÉΓòÉ
  19064.  
  19065. Prerequisite Functions 
  19066.  
  19067. o DrgGetPS 
  19068.  
  19069.  
  19070. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgReleasePS ΓòÉΓòÉΓòÉ
  19071.  
  19072. In this example the presentation space handle is retrieved, a bit map is 
  19073. loaded, and the presentation space is released with the DrgReleasePS function. 
  19074.  
  19075. #define INCL_WINSTDDRAG  /* Direct Manipulation (Drag) Functions */
  19076. #include <os2.h>
  19077. #define ID_BITMAP 255
  19078. HPS    hps;
  19079. HWND hwnd;
  19080.  
  19081. case DM_DRAGOVER:
  19082.     hps = DrgGetPS(hwnd);
  19083.  
  19084.     DrawTargetEmphasis(hps, hwnd);
  19085.     DrgReleasePS(hps);
  19086.  
  19087.  
  19088. ΓòÉΓòÉΓòÉ 6.25. DrgSendTransferMsg ΓòÉΓòÉΓòÉ
  19089.  
  19090.  
  19091. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgSendTransferMsg ΓòÉΓòÉΓòÉ
  19092.  
  19093. Select an item: 
  19094.  
  19095. Function Syntax 
  19096. Parameters 
  19097. Return Values 
  19098. Notes 
  19099. Example 
  19100. Related Functions 
  19101. Glossary 
  19102.  
  19103.  
  19104. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgSendTransferMsg ΓòÉΓòÉΓòÉ
  19105.  
  19106. hwndTo (HWND) - input 
  19107.    Window handle. Window handle to which the message is to be sent: 
  19108.  
  19109.    Target 
  19110.       hwndItem in the DRAGITEM structure. 
  19111.  
  19112.    Source 
  19113.       hwndClient in the DRAGTRANSFER structure. 
  19114.  
  19115. ulMsgid (ULONG) - input 
  19116.    Message identifier. Identifier of the message to be sent. Valid messages 
  19117.    are: 
  19118.  
  19119.    DM_ENDCONVERSATION 
  19120.    DM_RENDER 
  19121.    DM_RENDERPREPARE 
  19122.  
  19123. mpParam1 (MPARAM) - input 
  19124.    mp1 for the message. 
  19125.  
  19126. mpParam2 (MPARAM) - input 
  19127.    mp2 for the message. 
  19128.  
  19129.  
  19130. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgSendTransferMsg ΓòÉΓòÉΓòÉ
  19131.  
  19132. mresReply (MRESULT) - return 
  19133.    Message-return data. 
  19134.  
  19135.  
  19136. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgSendTransferMsg ΓòÉΓòÉΓòÉ
  19137.  
  19138. If the message to be sent is DM_RENDER or DM_RENDERCOMPLETE, the fsReply field 
  19139. in DRAGTRANSFER is set to 0 before the message is sent.  If the message cannot 
  19140. be sent, FALSE is returned. 
  19141.  
  19142. When the message to be sent is DM_RENDER, DosGiveSeg is called. DosGiveSeg 
  19143. gives access to the DRAGTRANSFER structure to the process that owns the window 
  19144. indicated by hwndTo.  The use count for the segment in which the DRAGTRANSFER 
  19145. structure exists is incremented. 
  19146.  
  19147. The process to which the message is being sent must call DrgFreeDragtransfer 
  19148. for the DRAGTRANSFER structure before the segment can be freed. 
  19149.  
  19150.  
  19151. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgSendTransferMsg ΓòÉΓòÉΓòÉ
  19152.  
  19153. /*******************************************/
  19154. /* This function sends a message to the    */
  19155. /* other application involved in the       */
  19156. /* direct manipulation operation.          */
  19157. /*******************************************/
  19158.  
  19159. #define INCL_WINSTDDRAG
  19160. #include <os2.h>
  19161.  
  19162. HWND     hwndTo;       /* Window handle */
  19163. ULONG    ulMsgid;      /* Message identifier */
  19164. MPARAM   mpParam1;     /* mp1 for the message */
  19165. MPARAM   mpParam2;     /* mp2 for the message */
  19166. MRESULT  mresReply;    /* Message-return data */
  19167.  
  19168. mresReply = DrgSendTransferMsg(hwndTo,
  19169.               ulMsgid, mpParam1, mpParam2);
  19170.  
  19171.  
  19172. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgSendTransferMsg ΓòÉΓòÉΓòÉ
  19173.  
  19174. Related Functions 
  19175.  
  19176. o DrgPostTransferMsg 
  19177.  
  19178.  
  19179. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgSendTransferMsg ΓòÉΓòÉΓòÉ
  19180.  
  19181. This function is used to send a message from one window to another when a 
  19182. direct manipulation is in progress. In this example, the function is used to 
  19183. inform the target that the operation is complete and successful. 
  19184.  
  19185. #define INCL_WINSTDDRAG  /* Direct Manipulation (Drag) Functions */
  19186. #include <os2.h>
  19187.  
  19188. PDRAGINFO pdinfo;
  19189. MPARAM    mp1;
  19190. TID       tid;
  19191.  
  19192. case DM_DROP:
  19193.   pdinfo = (PDRAGINFO) mp1;
  19194.  
  19195.   /***************************************************************/
  19196.   /* If this is a copy operation, spawn a thread to do the copy  */
  19197.   /***************************************************************/
  19198.   if (pdinfo->usOperation == DO_COPY)
  19199.   {
  19200.     DosCreateThread (&tid, CopyThread, pdinfo, FALSE, 4096);
  19201.   }
  19202.   break;
  19203.  
  19204. void Copy Thread (PDRAGINFO pdinfo)
  19205. {
  19206.   PDRAGITEM pditem;
  19207.   USHORT    i;
  19208.   ULONG     flResult;
  19209.   HAB       hab;
  19210.   HMQ       hmq;
  19211.   char      szSource[CCH_MAXPATH];
  19212.   char      szTarget[CCH_MACPATH];
  19213.  
  19214.   /***************************************************************/
  19215.   /* DrgSendTransferMsg needs a message queue, so create one for */
  19216.   /* this thread                                                 */
  19217.   /***************************************************************/
  19218.   hab = WinInitialize (0);
  19219.   hmq = WinCreateMsgQueue (hab, 0);
  19220.  
  19221.   /***************************************************************/
  19222.   /* Try to copy each item that was dragged                      */
  19223.   /***************************************************************/
  19224.   for (i = 0; i < pdinfo->cditem; i++)
  19225.   {
  19226.     /*************************************************************/
  19227.     /* Get a pointer to the DRAGITEM                             */
  19228.     /*************************************************************/
  19229.     pditem = DrgQueryDragitemPtr (pdinfo, i);
  19230.  
  19231.     /*************************************************************/
  19232.     /* If we could query the source and target names, and the    */
  19233.     /* copy was successful, return success                       */
  19234.     /*************************************************************/
  19235.     if (DrgQueryStrName (pditem->hstrSourceName, sizeof (szSource),
  19236.                          szSource)
  19237.         DrgQueryStrName (pditem->hstrTargetName, sizeof (szTarget),
  19238.                          szTarget)
  19239.         !DosCopy (szSource, szTarget, 0))
  19240.     {
  19241.       flResult = DMFL_TARGETSUCCESSFUL;
  19242.     }
  19243.  
  19244.     /*************************************************************/
  19245.     /* Otherwise, return failure                                 */
  19246.     /*************************************************************/
  19247.     else
  19248.     {
  19249.       flResult = DMFL_TARGETFAIL;
  19250.     }
  19251.  
  19252.     /*************************************************************/
  19253.     /* Let the source know we're done with this item             */
  19254.     /*************************************************************/
  19255.     DrgSendTransferMsg (pditem->hwndItem, DM_ENDCONVERSATION,
  19256.                         (MPARAM) pditem->ulItemID,
  19257.                         (MPARAM) flResult);
  19258.   }
  19259.  
  19260.   WinDestroyMsgQueue (hmq);
  19261.   WinTerminate (hab);
  19262. }
  19263.  
  19264.  
  19265. ΓòÉΓòÉΓòÉ 6.26. DrgSetDragImage ΓòÉΓòÉΓòÉ
  19266.  
  19267.  
  19268. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgSetDragImage ΓòÉΓòÉΓòÉ
  19269.  
  19270. Select an item: 
  19271.  
  19272. Function Syntax 
  19273. Parameters 
  19274. Return Values 
  19275. Errors 
  19276. Notes 
  19277. Example 
  19278. Related Functions 
  19279. Glossary 
  19280.  
  19281.  
  19282. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgSetDragImage ΓòÉΓòÉΓòÉ
  19283.  
  19284. pDraginfo (PDRAGINFO) - input 
  19285.    Pointer. Pointer to the DRAGINFO structure representing the drag operation 
  19286.    for which the pointer is to be set. 
  19287.  
  19288. pdimg (PDRAGIMAGE) - input 
  19289.    Pointer. Pointer to an array of DRAGIMAGE structures. These structures 
  19290.    describe the images to be drawn under the pointer during the drag. 
  19291.  
  19292. cdimg (ULONG) - input 
  19293.    Array size. Size of the pdimg array. 
  19294.  
  19295. pReserved (PVOID) - input 
  19296.    Reserved. Must be set to NULL by the caller. 
  19297.  
  19298.  
  19299. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgSetDragImage ΓòÉΓòÉΓòÉ
  19300.  
  19301. fSuccess (BOOL) - return 
  19302.    Success indicator. 
  19303.  
  19304.    TRUE 
  19305.       Successful completion. 
  19306.  
  19307.    FALSE 
  19308.       Error occurred. 
  19309.  
  19310.  
  19311. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgSetDragImage ΓòÉΓòÉΓòÉ
  19312.  
  19313. Possible returns from WinGetLastError 
  19314.  
  19315. PMERR_ACCESS_DENIED 
  19316.    The memory block was not allocated properly. 
  19317.  
  19318. PMERR_INVALID_PARAMETERS 
  19319.    An application parameter value is invalid for its converted PM type. For 
  19320.    example: a 4-byte value outside the range -32,768 to +32,767 cannot be 
  19321.    converted to a SHORT, and a negative number cannot be converted to a ULONG 
  19322.    or USHORT. 
  19323.  
  19324. PMERR_INSUFFICIENT_MEMORY 
  19325.    The operation terminated through insufficient memory. 
  19326.  
  19327.  
  19328. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgSetDragImage ΓòÉΓòÉΓòÉ
  19329.  
  19330. The image that is set with DrgSetDragImage is used only while the pointer is 
  19331. over the target that made the call.  If the pointer leaves the original target, 
  19332. the new target can specify an image by calling DrgSetDragImage. 
  19333.  
  19334. If the new target does not call DrgSetDragImage, the original image that was 
  19335. supplied on the call to DrgDrag is used. 
  19336.  
  19337.  
  19338. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgSetDragImage ΓòÉΓòÉΓòÉ
  19339.  
  19340. /*******************************************/
  19341. /* This function sets the image that is    */
  19342. /* being dragged.                          */
  19343. /*******************************************/
  19344.  
  19345. #define INCL_WINSTDDRAG
  19346. #include <os2.h>
  19347.  
  19348. PDRAGINFO   pDraginfo;       /* Pointer */
  19349. PDRAGIMAGE  pdimg;           /* Pointer */
  19350. ULONG       cdimg;           /* Array size */
  19351. PVOID       pReserved;       /* Reserved */
  19352. BOOL        fSuccess;        /* Success indicator */
  19353.  
  19354. fSuccess = DrgSetDragImage(pDraginfo, pdimg,
  19355.              cdimg, pReserved);
  19356.  
  19357.  
  19358. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgSetDragImage ΓòÉΓòÉΓòÉ
  19359.  
  19360. Related Functions 
  19361.  
  19362. o DrgSetDragPointer 
  19363.  
  19364.  
  19365. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgSetDragImage ΓòÉΓòÉΓòÉ
  19366.  
  19367. This example sets the icon image that is displayed during a direct manipulation 
  19368. operation. 
  19369.  
  19370. #define INCL_GPIBITMAPS  /* GPI Bit Map Functions                */
  19371. #define INCL_WINSTDDRAG  /* Direct Manipulation (Drag) Functions */
  19372. #include <os2.h>
  19373. #define ID_BITMAP 257    /* .rc file: "bitmap 257 drgimage.bmp"  */
  19374. HPS       hps;           /* Presentation space handle            */
  19375. BOOL      flResult;
  19376. HAB       hab;
  19377. PDRAGINFO pdinfo;
  19378. DRAGIMAGE dimg;
  19379. HBITMAP   hbm;           /* Bit-map handle                       */
  19380. HWND      hwnd;
  19381.  
  19382. /*****************************************************************/
  19383. /* Load a bit map for use as a drag image                        */
  19384. /*****************************************************************/
  19385.  
  19386. case WM_CREATE:
  19387.     hps = WinGetPS(hwnd);
  19388.  
  19389.     hbm = GpiLoadBitmap(hps,0L,ID_BITMAP,20L,20L);
  19390.     WinReleasePS(hps);
  19391.     break;
  19392.  
  19393. case DM_DRAGOVER:
  19394.  
  19395. /*****************************************************************/
  19396. /* Initialize the DRAGIMAGE structure                            */
  19397. /*****************************************************************/
  19398.  
  19399.       dimg.cb = sizeof(DRAGIMAGE);  /* Size control block        */
  19400.       dimg.cptl        = 0;
  19401.       dimg.hImage = hbm;            /* Image handle passed to    */
  19402.                                     /* DrgDrag                   */
  19403.       dimg.sizlStretch.cx = 20L;    /* Size to stretch ico or    */
  19404.       dimg.sizlStretch.cy = 20L;    /* bmp to                    */
  19405.       dimg.fl = DRG_BITMAP |
  19406.                 DRG_STRETCH;        /* Stretch to size specified */
  19407.       dimg.cxOffset = 0;            /* Offset of the origin of   */
  19408.       dimg.cyOffset = 0;            /* the image from the pointer*/
  19409.                                     /* hotspot                   */
  19410.  
  19411. /*****************************************************************/
  19412. /* Set the drag image                                            */
  19413. /*****************************************************************/
  19414.  
  19415. flResult= DrgSetDragImage(pdinfo,&dimg,(ULONG)sizeof(dimg), NULL);
  19416.  
  19417.  
  19418. ΓòÉΓòÉΓòÉ 6.27. DrgSetDragitem ΓòÉΓòÉΓòÉ
  19419.  
  19420.  
  19421. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgSetDragitem ΓòÉΓòÉΓòÉ
  19422.  
  19423. Select an item: 
  19424.  
  19425. Function Syntax 
  19426. Parameters 
  19427. Return Values 
  19428. Notes 
  19429. Example 
  19430. Related Functions 
  19431. Glossary 
  19432.  
  19433.  
  19434. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgSetDragitem ΓòÉΓòÉΓòÉ
  19435.  
  19436. pDraginfo (PDRAGINFO) - input 
  19437.    Pointer. Pointer to the DRAGINFO structure in which to place the DRAGITEM. 
  19438.  
  19439. pDragitem (PDRAGITEM) - input 
  19440.    Pointer. Pointer to the DRAGITEM structure to place in DRAGINFO. 
  19441.  
  19442. cbBuffer (ULONG) - input 
  19443.    DRAGITEM size. Size of the DRAGITEM addressed by pDragitem. 
  19444.  
  19445. iItem (ULONG) - input 
  19446.    DRAGITEM index. Zero-based index of the DRAGITEM to be set. 
  19447.  
  19448.  
  19449. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgSetDragitem ΓòÉΓòÉΓòÉ
  19450.  
  19451. fSuccess (BOOL) - return 
  19452.    Success indicator. 
  19453.  
  19454.    TRUE 
  19455.       Successful completion. 
  19456.  
  19457.    FALSE 
  19458.       Error occurred. 
  19459.  
  19460.  
  19461. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgSetDragitem ΓòÉΓòÉΓòÉ
  19462.  
  19463. This function is used to initialize the DRAGINFO structure before calling 
  19464. DrgDrag. 
  19465.  
  19466. This function is used only by the source of the drag, not by the target. 
  19467.  
  19468.  
  19469. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgSetDragitem ΓòÉΓòÉΓòÉ
  19470.  
  19471. /*******************************************/
  19472. /* This function sets the values in a      */
  19473. /* DRAGITEM structure.                     */
  19474. /*******************************************/
  19475.  
  19476. #define INCL_WINSTDDRAG
  19477. #include <os2.h>
  19478.  
  19479. PDRAGINFO  pDraginfo;      /* Pointer */
  19480. PDRAGITEM  pDragitem;      /* Pointer */
  19481. ULONG      cbBuffer;       /* DRAGITEM size */
  19482. ULONG      iItem;          /* DRAGITEM index */
  19483. BOOL       fSuccess;       /* Success indicator */
  19484.  
  19485. fSuccess = DrgSetDragitem(pDraginfo,
  19486.              pDragitem, cbBuffer, iItem);
  19487.  
  19488.  
  19489. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgSetDragitem ΓòÉΓòÉΓòÉ
  19490.  
  19491. Related Functions 
  19492.  
  19493. o DrgQueryDragitem 
  19494.  
  19495.  
  19496. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgSetDragitem ΓòÉΓòÉΓòÉ
  19497.  
  19498. This example shows a direct manipulation operation between two windows. The 
  19499. actual operation, copying the CONFIG.SYS file to C:\OS2\CONFIG.SYS, is visually 
  19500. represented by a drag and drop of an icon. 
  19501.  
  19502. #define INCL_GPIBITMAPS  /* GPI Bit Map Functions                */
  19503. #define INCL_WINSTDDRAG  /* Direct Manipulation (Drag) Functions */
  19504. #define INCL_DOSFILEMGR  /* File Management Functions            */
  19505. #define INCL_WININPUT    /* Window Input Functions               */
  19506. #include <os2.h>
  19507. #include <string.h>
  19508. #define ID_WINDOW 255
  19509. #define ID_ITEM 256
  19510. #define ID_BITMAP 257    /* .rc file: "bitmap 257 drgimage.bmp"  */
  19511. HPS       hps;           /* Presentation space handle            */
  19512. BOOL      flResult;
  19513. HAB       hab;
  19514. PDRAGINFO pdinfo;
  19515. DRAGITEM  ditem;
  19516. DRAGIMAGE dimg;
  19517. PDRAGITEM pditem;
  19518. HBITMAP   hbm;           /* Bit-map handle                       */
  19519. HPOINTER  hptr;          /* Pointer bit-map handle               */
  19520. HWND      hwndDrop;
  19521. HWND      hwnd;
  19522. MPARAM    mp1;
  19523. char szBuffer[32];       /* Buffer where intersection string     */
  19524.                          /* is returned                          */
  19525. char szSource[32];
  19526. char szTarget[32];
  19527.  
  19528. /*****************************************************************/
  19529. /* Inside  ClientWindowProc of Source Window                     */
  19530. /*****************************************************************/
  19531.  
  19532. case WM_BEGINDRAG:
  19533.  
  19534. /*****************************************************************/
  19535. /* Initialize the DRAGITEM structure                             */
  19536. /*****************************************************************/
  19537.  
  19538.     ditem.hwndItem = hwnd;      /* Conversation partner          */
  19539.     ditem.ulItemID = ID_ITEM;   /* Identifies item being dragged */
  19540.     ditem.hstrType = DrgAddStrHandle(DRT_TEXT);     /* Text item */
  19541.     ditem.hstrRMF = DrgAddStrHandle("<DRM_OS2FILE,DRF_TEXT>");
  19542.     ditem.hstrContainerName = DrgAddStrHandle("C:\\");
  19543.     ditem.hstrSourceName = DrgAddStrHandle("C:\\CONFIG.SYS");
  19544.     ditem.hstrTargetName = DrgAddStrHandle("C:\\OS2\\CONFIG.SYS");
  19545.     ditem.cxOffset = 0; ditem.cyOffset = 0;
  19546.     ditem.fsControl = 0; ditem.fsSupportedOps = 0;
  19547.  
  19548. /*****************************************************************/
  19549. /* Create the DRAGINFO structure                                 */
  19550. /*****************************************************************/
  19551.  
  19552.     pdinfo = DrgAllocDraginfo(1);
  19553.  
  19554. /*****************************************************************/
  19555. /* Initialize the DRAGIMAGE structure                            */
  19556. /*****************************************************************/
  19557.  
  19558.     dimg.cb = sizeof(DRAGIMAGE); /* Size control block           */
  19559.     dimg.cptl        = 0;
  19560.     dimg.hImage = hbm;           /* Image handle passed to       */
  19561.                                  /* DrgDrag                      */
  19562.     dimg.sizlStretch.cx = 20L;   /* Size to stretch ico or       */
  19563.     dimg.sizlStretch.cy = 20L;   /* bmp to                       */
  19564.     dimg.fl = DRG_BITMAP |
  19565.               DRG_STRETCH;       /* Stretch to size specified    */
  19566.     dimg.cxOffset = 0;           /* Offset of the origin of the  */
  19567.     dimg.cyOffset = 0;           /* image from the pointer       */
  19568.                                  /* hotspot                      */
  19569.  
  19570. flResult= DrgSetDragitem(pdinfo, &ditem, (ULONG)sizeof(ditem), 0);
  19571.  
  19572. /*****************************************************************/
  19573. /* Perform the drag operation:                                   */
  19574. /*****************************************************************/
  19575.  
  19576.       hwndDrop = DrgDrag(hwnd,  /* Source of the drag            */
  19577.                   pdinfo,       /* Pointer to DRAGINFO structure */
  19578.                  (PDRAGIMAGE)&dimg,  /* Drag image               */
  19579.                   1,            /* Size of the pdimg array       */
  19580.                   VK_ENGDRAG,   /* Release of drag button        */
  19581.                                 /* terminates the drag           */
  19582.                   NULL);        /* Reserved                      */
  19583.  
  19584. /*****************************************************************/
  19585. /* Inside ClientWindowProc of Target Window                      */
  19586. /*****************************************************************/
  19587.  
  19588.   case DM_DRAGOVER:
  19589.  
  19590.       pdinfo = MPFROMP(mp1);
  19591.       pditem = DrgQueryDragitemPtr(pdinfo,0);
  19592.  
  19593.       flResult = DrgVerifyTrueType(pditem,"DRF_TEXT");
  19594.  
  19595.       if(!flResult)
  19596.  
  19597. /*****************************************************************/
  19598. /* Inform the application that you will accept the drop          */
  19599. /*****************************************************************/
  19600.  
  19601.       return(MRFROM2SHORT(DOR_DROP,DO_COPY));
  19602.  
  19603.   case DM_DROP:
  19604.       pdinfo = MPFROMP(mp1);
  19605.       pditem = DrgQueryDragitemPtr(pdinfo,0);
  19606.  
  19607. /*****************************************************************/
  19608. /* Perform the operation represented by the direct manipulation  */
  19609. /*****************************************************************/
  19610.  
  19611. DrgQueryStrName(pditem->hstrSourceName,sizeof(szSource),szSource);
  19612. DrgQueryStrName(pditem->hstrTargetName,sizeof(szTarget),szTarget);
  19613. flResult = DosCopy(szSource,szTarget,0L);
  19614.  
  19615. /*****************************************************************/
  19616. /* If operation is successful, return DMFL_TARGETSUCCESSFUL      */
  19617. /*****************************************************************/
  19618.  
  19619. if(!flResult)
  19620. {
  19621.       DrgSendTransferMsg(pditem->hwndItem,
  19622.                          DM_ENDCONVERSATION,
  19623.                          MPFROMLONG(pditem->ulItemID),
  19624.                          MPFROMLONG(DMFL_TARGETSUCCESSFUL));
  19625. }
  19626.  
  19627. /*****************************************************************/
  19628. /* Otherwise, return DMFL_TARGETFAIL                             */
  19629. /*****************************************************************/
  19630.  
  19631. else
  19632. {
  19633.       DrgSendTransferMsg(pditem->hwndItem,
  19634.                          DM_ENDCONVERSATION,
  19635.                          MPFROMLONG(pditem->ulItemID),
  19636.                          MPFROMLONG(DMFL_TARGETFAIL));
  19637. }
  19638.  
  19639.  
  19640. ΓòÉΓòÉΓòÉ 6.28. DrgSetDragPointer ΓòÉΓòÉΓòÉ
  19641.  
  19642.  
  19643. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgSetDragPointer ΓòÉΓòÉΓòÉ
  19644.  
  19645. Select an item: 
  19646.  
  19647. Function Syntax 
  19648. Parameters 
  19649. Return Values 
  19650. Errors 
  19651. Notes 
  19652. Example 
  19653. Related Functions 
  19654. Glossary 
  19655.  
  19656.  
  19657. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgSetDragPointer ΓòÉΓòÉΓòÉ
  19658.  
  19659. pDraginfo (PDRAGINFO) - input 
  19660.    Pointer. Pointer to the DRAGINFO structure to be used for this drag. 
  19661.  
  19662. hptrHandle (HPOINTER) - input 
  19663.    Pointer handle. Handle to the pointer to use. 
  19664.  
  19665.  
  19666. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgSetDragPointer ΓòÉΓòÉΓòÉ
  19667.  
  19668. fResult (BOOL) - return 
  19669.    Success indicator. 
  19670.  
  19671.    TRUE 
  19672.       Successful completion. 
  19673.  
  19674.    FALSE 
  19675.       Error occurred. 
  19676.  
  19677.  
  19678. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgSetDragPointer ΓòÉΓòÉΓòÉ
  19679.  
  19680. Possible returns from WinGetLastError 
  19681.  
  19682. PMERR_INVALID_HPTR 
  19683.    An invalid pointer handle was specified. 
  19684.  
  19685.  
  19686. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgSetDragPointer ΓòÉΓòÉΓòÉ
  19687.  
  19688. This function sets the pointer to be used to indicate the hot spot while 
  19689. dragging over the current target. 
  19690.  
  19691. The pointer that is set with DrgSetDragPointer is used only while it is over 
  19692. the current target.  The pointer is reset to the default when a new target is 
  19693. dragged over. 
  19694.  
  19695. This function can be used by an application to provide meaningful augmentation 
  19696. emphasis for an operation that is unknown to the system (for example, swap). 
  19697.  
  19698. When the drag pointer is successfully set, TRUE is returned. 
  19699.  
  19700.  
  19701. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgSetDragPointer ΓòÉΓòÉΓòÉ
  19702.  
  19703. /*******************************************/
  19704. /* This function sets the pointer to be    */
  19705. /* used while over the current target.     */
  19706. /*******************************************/
  19707.  
  19708. #define INCL_WINSTDDRAG
  19709. #include <os2.h>
  19710.  
  19711. PDRAGINFO  pDraginfo;       /* Pointer */
  19712. HPOINTER   hptrHandle;      /* Pointer handle */
  19713. BOOL       fResult;         /* Success indicator */
  19714.  
  19715. fResult = DrgSetDragPointer(pDraginfo,
  19716.             hptrHandle);
  19717.  
  19718.  
  19719. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgSetDragPointer ΓòÉΓòÉΓòÉ
  19720.  
  19721. Related Functions 
  19722.  
  19723. o DrgSetDragImage 
  19724.  
  19725.  
  19726. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgSetDragPointer ΓòÉΓòÉΓòÉ
  19727.  
  19728. This example uses the DrgSetDragPointer function to set the image used for the 
  19729. pointer while the pointer is over the target during a direct manipulation 
  19730. operation. 
  19731.  
  19732. #define INCL_WINSTDDRAG  /* Direct Manipulation (Drag) Functions */
  19733. #include <OS2.H>
  19734. BOOL      flResult;
  19735. PDRAGITEM pditem;
  19736. HPOINTER  hptrCrossHair;
  19737. MPARAM    mp1;
  19738. char szBuffer[32];
  19739.  
  19740. case DM_DRAGOVER:
  19741.     DrgSetDragPointer ((PDRAGINFO) mp1, hptrCrossHair);
  19742.  
  19743.  
  19744. ΓòÉΓòÉΓòÉ 6.29. DrgVerifyNativeRMF ΓòÉΓòÉΓòÉ
  19745.  
  19746.  
  19747. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgVerifyNativeRMF ΓòÉΓòÉΓòÉ
  19748.  
  19749. Select an item: 
  19750.  
  19751. Function Syntax 
  19752. Parameters 
  19753. Return Values 
  19754. Notes 
  19755. Example 
  19756. Related Functions 
  19757. Glossary 
  19758.  
  19759.  
  19760. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgVerifyNativeRMF ΓòÉΓòÉΓòÉ
  19761.  
  19762. pDragitem (PDRAGITEM) - input 
  19763.    Pointer. Pointer to the DRAGITEM structure whose native rendering mechanism 
  19764.    and format are to be verified. 
  19765.  
  19766. pRMF (PSZ) - input 
  19767.    String. A string specifying the rendering mechanism and format. The string 
  19768.    is of the form: mechfmt[,mechfmt,mechfmt,...], where mechfmt can be in 
  19769.    either of these formats: 
  19770.  
  19771.    o <mechanism(1),format(1)> 
  19772.    o (mechanism(1)[, mechanism(n)...]) (format(1)[,format(n)...]) 
  19773.  
  19774.  
  19775. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgVerifyNativeRMF ΓòÉΓòÉΓòÉ
  19776.  
  19777. fValid (BOOL) - return 
  19778.    Validity indicator. 
  19779.  
  19780.    TRUE 
  19781.       Successful completion. 
  19782.  
  19783.    FALSE 
  19784.       Error occurred. 
  19785.  
  19786.  
  19787. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgVerifyNativeRMF ΓòÉΓòÉΓòÉ
  19788.  
  19789. This function determines if the native rendering mechanism and format of a 
  19790. dragged object are understood by the target. 
  19791.  
  19792. If TRUE is returned, the target may be able to carry out the action indicated 
  19793. by the direct manipulation itself, or it can select the native rendering 
  19794. mechanism and format as those to be used for the data exchange. 
  19795.  
  19796.  
  19797. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgVerifyNativeRMF ΓòÉΓòÉΓòÉ
  19798.  
  19799. /*******************************************/
  19800. /* This function determines if the native  */
  19801. /* rendering mechanism and format of an    */
  19802. /* object match any supplied by the        */
  19803. /* application.                            */
  19804. /*******************************************/
  19805.  
  19806. #define INCL_WINSTDDRAG
  19807. #include <os2.h>
  19808.  
  19809. PDRAGITEM  pDragitem;      /* Pointer */
  19810. PSZ        pRMF;           /* String */
  19811. BOOL       fValid;         /* Validity indicator */
  19812.  
  19813. fValid = DrgVerifyNativeRMF(pDragitem, pRMF);
  19814.  
  19815.  
  19816. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgVerifyNativeRMF ΓòÉΓòÉΓòÉ
  19817.  
  19818. Related Functions 
  19819.  
  19820. o DrgQueryNativeRMF 
  19821.  
  19822.  
  19823. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgVerifyNativeRMF ΓòÉΓòÉΓòÉ
  19824.  
  19825. This example determines if the native rendering mechanism and format of an 
  19826. object match any supplied by the application. 
  19827.  
  19828. #define INCL_WINSTDDRAG  /* Direct Manipulation (Drag) Functions */
  19829. #include <OS2.H>
  19830.  
  19831. DRAGITEM Dragitem;       /* DRAGITEM structure whose native      */
  19832.                          /* rendering mechanism and format are   */
  19833.                          /* to be verified                       */
  19834.  
  19835. char pszRMF[25];         /* A string specifying the rendering    */
  19836.                          /* mechanism and format.  The string is */
  19837.                          /* of the form:                         */
  19838.                          /*                                      */
  19839.                          /* mechfmt[,mechfmt,mechfmt,...],       */
  19840.                          /*                                      */
  19841.                          /* where 'mechfmt' can be in either of  */
  19842.                          /* these formats:                       */
  19843.                          /*                                      */
  19844.                          /*  o <mechanism(1),format(1)>          */
  19845.                          /*  o (mechanism(1)[, mechanism(n)...]) */
  19846.                          /*    (format(1)[,format(n)...])        */
  19847.  
  19848.  
  19849. strcpy(pszRMF,"(DRM_OS2FILE,DRF_TEXT)");
  19850.                          /* Mechanism is an OS/2 file and format */
  19851.                          /* is a null-terminated string.  See    */
  19852.                          /* the DRAGITEM structure for valid     */
  19853.                          /* formats.                             */
  19854.  
  19855. if(DrgVerifyNativeRMF(&Dragitem, pszRMF))
  19856. {
  19857.                          /* Code block                           */
  19858. }
  19859.  
  19860.  
  19861. ΓòÉΓòÉΓòÉ 6.30. DrgVerifyRMF ΓòÉΓòÉΓòÉ
  19862.  
  19863.  
  19864. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgVerifyRMF ΓòÉΓòÉΓòÉ
  19865.  
  19866. Select an item: 
  19867.  
  19868. Function Syntax 
  19869. Parameters 
  19870. Return Values 
  19871. Notes 
  19872. Example 
  19873. Related Functions 
  19874. Glossary 
  19875.  
  19876.  
  19877. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgVerifyRMF ΓòÉΓòÉΓòÉ
  19878.  
  19879. pDragitem (PDRAGITEM) - input 
  19880.    Pointer. Pointer to the DRAGITEM structure whose native rendering mechanism 
  19881.    and format are to be validated. 
  19882.  
  19883. pMech (PSZ) - input 
  19884.    Mechanism string. A string specifying the rendering mechanism to search for. 
  19885.    NULL will match any mechanism. 
  19886.  
  19887. pFormat (PSZ) - input 
  19888.    Format string. A string specifying the rendering format to search for. NULL 
  19889.    will match any format. 
  19890.  
  19891.  
  19892. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgVerifyRMF ΓòÉΓòÉΓòÉ
  19893.  
  19894. fValid (BOOL) - return 
  19895.    Validity indicator. 
  19896.  
  19897.    TRUE 
  19898.       Successful completion. 
  19899.  
  19900.    FALSE 
  19901.       Error occurred. 
  19902.  
  19903.  
  19904. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgVerifyRMF ΓòÉΓòÉΓòÉ
  19905.  
  19906. This function determines if a given rendering mechanism and format ordered pair 
  19907. are represented in the set of valid pairs specified by hstrRMF for the dragged 
  19908. object. 
  19909.  
  19910.  
  19911. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgVerifyRMF ΓòÉΓòÉΓòÉ
  19912.  
  19913. /*******************************************/
  19914. /* This function determines if a given     */
  19915. /* rendering mechanism and format are      */
  19916. /* supported for a dragged object.         */
  19917. /*******************************************/
  19918.  
  19919. #define INCL_WINSTDDRAG
  19920. #include <os2.h>
  19921.  
  19922. PDRAGITEM  pDragitem;      /* Pointer */
  19923. PSZ        pMech;          /* Mechanism string */
  19924. PSZ        pFormat;        /* Format string */
  19925. BOOL       fValid;         /* Validity indicator */
  19926.  
  19927. fValid = DrgVerifyRMF(pDragitem, pMech,
  19928.            pFormat);
  19929.  
  19930.  
  19931. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgVerifyRMF ΓòÉΓòÉΓòÉ
  19932.  
  19933. Related Functions 
  19934.  
  19935. o DrgVerifyNativeRMF 
  19936.  
  19937.  
  19938. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgVerifyRMF ΓòÉΓòÉΓòÉ
  19939.  
  19940. This example determines if a given rendering mechanism and format are supported 
  19941. for a dragged object. 
  19942.  
  19943. #define INCL_WINSTDDRAG  /* Direct Manipulation (Drag) Functions */
  19944. #include <OS2.H>
  19945.  
  19946. DRAGITEM Dragitem;       /* DRAGITEM structure whose native      */
  19947.                          /* rendering mechanism and format are   */
  19948.                          /* to be validated                      */
  19949. char pszMech[] = "DRM_OS2FILE";
  19950.                          /* A string specifying the rendering    */
  19951.                          /* mechanism to search for              */
  19952. char pszFormat[] = "DRF_TEXT";
  19953.                          /* A string specifying the rendering    */
  19954.                          /* format to search for                 */
  19955.  
  19956. if(DrgVerifyRMF(&Dragitem, pszMech, pszFormat))
  19957.                          /* Mechanism is an OS/2 file and format */
  19958.                          /* is a null-terminated string          */
  19959. {
  19960.                          /* Code block                           */
  19961. }
  19962.  
  19963.  
  19964. ΓòÉΓòÉΓòÉ 6.31. DrgVerifyTrueType ΓòÉΓòÉΓòÉ
  19965.  
  19966.  
  19967. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgVerifyTrueType ΓòÉΓòÉΓòÉ
  19968.  
  19969. Select an item: 
  19970.  
  19971. Function Syntax 
  19972. Parameters 
  19973. Return Values 
  19974. Notes 
  19975. Example 
  19976. Related Functions 
  19977. Glossary 
  19978.  
  19979.  
  19980. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgVerifyTrueType ΓòÉΓòÉΓòÉ
  19981.  
  19982. pDragitem (PDRAGITEM) - input 
  19983.    Pointer. Pointer to the DRAGITEM structure whose true type is to be 
  19984.    verified. 
  19985.  
  19986. pType (PSZ) - input 
  19987.    Type string. A string specifying a type. This string is in the format: 
  19988.    type[,type...]. 
  19989.  
  19990.  
  19991. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgVerifyTrueType ΓòÉΓòÉΓòÉ
  19992.  
  19993. fValid (BOOL) - return 
  19994.    Validity indicator. 
  19995.  
  19996.    TRUE 
  19997.       Successful completion. 
  19998.  
  19999.    FALSE 
  20000.       Error occurred. 
  20001.  
  20002.  
  20003. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgVerifyTrueType ΓòÉΓòÉΓòÉ
  20004.  
  20005. If an item in the string pointed to by pType matches the first type in the 
  20006. string associated with hstrType in the DRAGITEM structure, TRUE is returned. 
  20007.  
  20008. A target application uses this function to determine if it supports the true 
  20009. type of a dragged object.  If the application does not support the true type, 
  20010. it can either disallow a drop or change its default operation.  If the default 
  20011. operation is a move, the drop should be disallowed, or the operation changed to 
  20012. a copy to prevent any loss of data for the object. 
  20013.  
  20014.  
  20015. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgVerifyTrueType ΓòÉΓòÉΓòÉ
  20016.  
  20017. /*******************************************/
  20018. /* This function determines if the true    */
  20019. /* type of a dragged object matches an     */
  20020. /* application-supplied type string.       */
  20021. /*******************************************/
  20022.  
  20023. #define INCL_WINSTDDRAG
  20024. #include <os2.h>
  20025.  
  20026. PDRAGITEM  pDragitem;      /* Pointer */
  20027. PSZ        pType;          /* Type string */
  20028. BOOL       fValid;         /* Validity indicator */
  20029.  
  20030. fValid = DrgVerifyTrueType(pDragitem, pType);
  20031.  
  20032.  
  20033. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgVerifyTrueType ΓòÉΓòÉΓòÉ
  20034.  
  20035. Related Functions 
  20036.  
  20037. o DrgQueryTrueType 
  20038. o DrgVerifyType 
  20039. o DrgVerifyTypeSet 
  20040.  
  20041.  
  20042. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgVerifyTrueType ΓòÉΓòÉΓòÉ
  20043.  
  20044. This example verifies whether a given type is present in the list of types 
  20045. defined for a drag object. 
  20046.  
  20047. #define INCL_WINSTDDRAG  /* Direct Manipulation (Drag) Functions */
  20048. #include <OS2.H>
  20049.  
  20050. BOOL      fValid;
  20051. DRAGITEM  Dragitem;      /* DRAGITEM structure whose hstrType is */
  20052.                          /* to be verified                       */
  20053.  
  20054. char pszType[8];         /* A string specifying the types to     */
  20055.                          /* search for                           */
  20056.  
  20057. strcpy(pszType,DRT_EXE); /* Executable file type. See the      */
  20058.                            /* DRAGINFO structure for valid       */
  20059.                            /* types.                             */
  20060.  
  20061. fValid = DrgVerifyTrueType(&Dragitem, pszType);
  20062.  
  20063.  
  20064. ΓòÉΓòÉΓòÉ 6.32. DrgVerifyType ΓòÉΓòÉΓòÉ
  20065.  
  20066.  
  20067. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgVerifyType ΓòÉΓòÉΓòÉ
  20068.  
  20069. Select an item: 
  20070.  
  20071. Function Syntax 
  20072. Parameters 
  20073. Return Values 
  20074. Errors 
  20075. Notes 
  20076. Example 
  20077. Related Functions 
  20078. Glossary 
  20079.  
  20080.  
  20081. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgVerifyType ΓòÉΓòÉΓòÉ
  20082.  
  20083. pDragitem (PDRAGITEM) - input 
  20084.    Pointer. Pointer to the DRAGITEM structure whose hstrType is to be verified. 
  20085.  
  20086. pType (PSZ) - input 
  20087.    Type string. A string specifying the types to search for. This string is in 
  20088.    the format: type[,type...]. 
  20089.  
  20090.  
  20091. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgVerifyType ΓòÉΓòÉΓòÉ
  20092.  
  20093. fValid (BOOL) - return 
  20094.    Success indicator. 
  20095.  
  20096.    TRUE 
  20097.       Successful completion. 
  20098.  
  20099.    FALSE 
  20100.       Error occurred. 
  20101.  
  20102.  
  20103. ΓòÉΓòÉΓòÉ <hidden> Errors - DrgVerifyType ΓòÉΓòÉΓòÉ
  20104.  
  20105. Possible returns from WinGetLastError 
  20106.  
  20107. PMERR_INVALID_PARAMETERS 
  20108.    An application parameter value is invalid for its converted PM type. For 
  20109.    example: a 4-byte value outside the range -32,768 to +32,767 cannot be 
  20110.    converted to a SHORT, and a negative number cannot be converted to a ULONG 
  20111.    or USHORT. 
  20112.  
  20113. PMERR_INSUFFICIENT_MEMORY 
  20114.    The operation terminated through insufficient memory. 
  20115.  
  20116.  
  20117. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgVerifyType ΓòÉΓòÉΓòÉ
  20118.  
  20119. If at least one of the types specified by pType is present in hstrType in the 
  20120. DRAGITEM structure, TRUE is returned. 
  20121.  
  20122.  
  20123. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgVerifyType ΓòÉΓòÉΓòÉ
  20124.  
  20125. /*******************************************/
  20126. /* This function verifies whether a given  */
  20127. /* type is present in the list of types    */
  20128. /* defined for a drag object.              */
  20129. /*******************************************/
  20130.  
  20131. #define INCL_WINSTDDRAG
  20132. #include <os2.h>
  20133.  
  20134. PDRAGITEM  pDragitem;      /* Pointer */
  20135. PSZ        pType;          /* Type string */
  20136. BOOL       fValid;         /* Success indicator */
  20137.  
  20138. fValid = DrgVerifyType(pDragitem, pType);
  20139.  
  20140.  
  20141. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgVerifyType ΓòÉΓòÉΓòÉ
  20142.  
  20143. Related Functions 
  20144.  
  20145. o DrgVerifyTrueType 
  20146. o DrgVerifyTypeSet 
  20147.  
  20148.  
  20149. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgVerifyType ΓòÉΓòÉΓòÉ
  20150.  
  20151. This example verifies whether a given type is present in the list of types 
  20152. defined for a drag object. 
  20153.  
  20154. #define INCL_WINSTDDRAG  /* Direct Manipulation (Drag) Functions */
  20155. #include <OS2.H>
  20156.  
  20157.  
  20158. BOOL     fValid;
  20159. DRAGITEM Dragitem;       /* DRAGITEM structure whose hstrType is */
  20160.                          /* to be verified                       */
  20161. char pszType[] = DRT_EXE;
  20162.                          /* A string specifying the types to     */
  20163.                          /* search for                           */
  20164.  
  20165. fValid = DrgVerifyType(&Dragitem, pszType);
  20166.  
  20167.  
  20168. ΓòÉΓòÉΓòÉ 6.33. DrgVerifyTypeSet ΓòÉΓòÉΓòÉ
  20169.  
  20170.  
  20171. ΓòÉΓòÉΓòÉ <hidden> Topics - DrgVerifyTypeSet ΓòÉΓòÉΓòÉ
  20172.  
  20173. Select an item: 
  20174.  
  20175. Function Syntax 
  20176. Parameters 
  20177. Return Values 
  20178. Notes 
  20179. Example 
  20180. Related Functions 
  20181. Glossary 
  20182.  
  20183.  
  20184. ΓòÉΓòÉΓòÉ <hidden> Parameters - DrgVerifyTypeSet ΓòÉΓòÉΓòÉ
  20185.  
  20186. pDragitem (PDRAGITEM) - input 
  20187.    Pointer. Pointer to the DRAGITEM structure whose hstrType is to be verified. 
  20188.  
  20189. pType (PSZ) - input 
  20190.    Type string. A string specifying the types to search for. This string is in 
  20191.    the format: type[,type...]. 
  20192.  
  20193. cbBuflen (ULONG) - input 
  20194.    Buffer size. Size of the return buffer. The buffer should be at least one 
  20195.    byte longer than the length of the string pointed to by pType. 
  20196.  
  20197. pBuffer (PSZ) - output 
  20198.    Buffer. Buffer where the intersection string is returned. 
  20199.  
  20200.  
  20201. ΓòÉΓòÉΓòÉ <hidden> Return Values - DrgVerifyTypeSet ΓòÉΓòÉΓòÉ
  20202.  
  20203. fMatch (BOOL) - return 
  20204.    Match indicator. 
  20205.  
  20206.    TRUE 
  20207.       Successful completion. 
  20208.  
  20209.    FALSE 
  20210.       Error occurred. 
  20211.  
  20212.  
  20213. ΓòÉΓòÉΓòÉ <hidden> Notes - DrgVerifyTypeSet ΓòÉΓòÉΓòÉ
  20214.  
  20215. If at least one of the types specified by pType is present in hstrType in the 
  20216. DRAGITEM structure, TRUE is returned. 
  20217.  
  20218.  
  20219. ΓòÉΓòÉΓòÉ <hidden> Syntax - DrgVerifyTypeSet ΓòÉΓòÉΓòÉ
  20220.  
  20221. /*******************************************/
  20222. /* This function returns the intersection  */
  20223. /* of the contents of the string           */
  20224. /* associated with the type-string handle  */
  20225. /* for an object and an                    */
  20226. /* application-specified type string.      */
  20227. /*******************************************/
  20228.  
  20229. #define INCL_WINSTDDRAG
  20230. #include <os2.h>
  20231.  
  20232. PDRAGITEM  pDragitem;      /* Pointer */
  20233. PSZ        pType;          /* Type string */
  20234. ULONG      cbBuflen;       /* Buffer size */
  20235. PSZ        pBuffer;        /* Buffer */
  20236. BOOL       fMatch;         /* Match indicator */
  20237.  
  20238. fMatch = DrgVerifyTypeSet(pDragitem, pType,
  20239.            cbBuflen, pBuffer);
  20240.  
  20241.  
  20242. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DrgVerifyTypeSet ΓòÉΓòÉΓòÉ
  20243.  
  20244. Related Functions 
  20245.  
  20246. o DrgVerifyType 
  20247. o DrgVerifyTrueType 
  20248.  
  20249.  
  20250. ΓòÉΓòÉΓòÉ <hidden> Example Code - DrgVerifyTypeSet ΓòÉΓòÉΓòÉ
  20251.  
  20252.  In this example, the DrgVerifyTypeSet function is used to determine whether 
  20253. DRT_TEXT is among the types associated with the object. If it is, the drop is 
  20254. accepted. 
  20255.  
  20256. #define INCL_WINSTDDRAG  /* Direct Manipulation (Drag) Functions */
  20257. #include <OS2.H>
  20258. #include <stdio.h>
  20259. BOOL     flResult;
  20260. DRAGITEM pditem;
  20261. char     szBuffer[32];
  20262.  
  20263. case DM_DRAGOVER:
  20264.  
  20265.    flResult = DrgVerifyTypeSet(&pditem,
  20266.                                DRT_TEXT,
  20267.                                sizeof(szBuffer),
  20268.                                szBuffer);
  20269.  
  20270.    flResult = strcmp(szBuffer,DRT_TEXT);
  20271.  
  20272.    /**************************************************************/
  20273.    /* See if the object is an OS/2 file as well as being of text */
  20274.    /* format.  AND result flag with previous result flag to get  */
  20275.    /* the "effective" return code.                               */
  20276.    /**************************************************************/
  20277.  
  20278.    flResult = DrgVerifyRMF(&pditem,"DRM_OS2FILE","DRF_TEXT");
  20279.  
  20280.    /**************************************************************/
  20281.    /* See if DRT_TEXT is the true type of the object             */
  20282.    /**************************************************************/
  20283.  
  20284.    flResult = DrgVerifyTrueType(&pditem,"DRF_TEXT");
  20285.  
  20286.    if(!flResult)
  20287.  
  20288.    /**************************************************************/
  20289.    /* Inform the application that you will accept the drop       */
  20290.    /**************************************************************/
  20291.  
  20292.    return(MRFROM2SHORT(DOR_DROP, DO_COPY));
  20293.    break;
  20294.  
  20295.  
  20296. ΓòÉΓòÉΓòÉ 7. Dynamic Data Formatting Functions ΓòÉΓòÉΓòÉ
  20297.  
  20298. The Information Presentation Facility (IPF) manages online, context-sensitive 
  20299. help information. Dynamic Data Formatting (DDF) is used for displaying dynamic 
  20300. help information. This section contains the DDF functions used to accomplish 
  20301. Dynamic Data Formatting. 
  20302.  
  20303.  
  20304. ΓòÉΓòÉΓòÉ 7.1. DdfBeginList ΓòÉΓòÉΓòÉ
  20305.  
  20306.  
  20307. ΓòÉΓòÉΓòÉ <hidden> Topics - DdfBeginList ΓòÉΓòÉΓòÉ
  20308.  
  20309. Select an item: 
  20310.  
  20311. Function Syntax 
  20312. Parameters 
  20313. Return Values 
  20314. Errors 
  20315. Notes 
  20316. Example 
  20317. Related Functions 
  20318. Glossary 
  20319.  
  20320.  
  20321. ΓòÉΓòÉΓòÉ <hidden> Parameters - DdfBeginList ΓòÉΓòÉΓòÉ
  20322.  
  20323. hddf (HDDF) - input 
  20324.    Handle to DDF returned by DdfInitialize. 
  20325.  
  20326. ulWidthDT (ULONG) - input 
  20327.    Width of the definition term. 
  20328.  
  20329. fBreakType (ULONG) - input 
  20330.    Only the following constants may be specified: 
  20331.  
  20332.    HMBT_ALL            Start all definition descriptions on the next line, 
  20333.                        regardless of the actual lengths of definition terms. 
  20334.    HMBT_FIT            Start definition description on the next line only when 
  20335.                        the definition term is longer than the width specified. 
  20336.    HMBT_NONE           Do not start the definition description on the next 
  20337.                        line, even when the definition term is longer than the 
  20338.                        width specified. 
  20339.  
  20340. fSpacing (ULONG) - input 
  20341.    Only the following constants may be specified: 
  20342.  
  20343.    HMLS_SINGLELINE     Do not insert a blank line between each definition 
  20344.                        description and the next definition term. 
  20345.    HMLS_DOUBLELINE     Insert a blank line between each definition description 
  20346.                        and the next definition term. 
  20347.  
  20348.  
  20349. ΓòÉΓòÉΓòÉ <hidden> Return Values - DdfBeginList ΓòÉΓòÉΓòÉ
  20350.  
  20351. fsuccess (BOOL) - return 
  20352.    Success indicator. 
  20353.  
  20354.    TRUE 
  20355.       Successful completion. 
  20356.  
  20357.    FALSE 
  20358.       Error occurred. 
  20359.  
  20360.  
  20361. ΓòÉΓòÉΓòÉ <hidden> Errors - DdfBeginList ΓòÉΓòÉΓòÉ
  20362.  
  20363. Possible returns from WinGetLastError 
  20364.  
  20365. HMERR_DDF_MEMORY 
  20366.    Not enough memory is available. 
  20367.  
  20368. HMERR_DDF_LIST_UNCLOSED 
  20369.    An attempt was made to nest a list. 
  20370.  
  20371. HMERR_DDF_LIST_BREAKTYPE 
  20372.    The value of BreakType is not valid. 
  20373.  
  20374. HMERR_DDF_LIST_SPACING 
  20375.    The value for Spacing is not valid. 
  20376.  
  20377.  
  20378. ΓòÉΓòÉΓòÉ <hidden> Notes - DdfBeginList ΓòÉΓòÉΓòÉ
  20379.  
  20380. Once this function has been called, use of any DDF function other than 
  20381. DdfListItem, DdfSetColor, and DdfEndList may produce unpredictable results. 
  20382.  
  20383.  
  20384. ΓòÉΓòÉΓòÉ <hidden> Syntax - DdfBeginList ΓòÉΓòÉΓòÉ
  20385.  
  20386. /*******************************************/
  20387. /* This function begins a definition list  */
  20388. /* in the DDF buffer; it corresponds to    */
  20389. /* the :dl. (definition list) tag.         */
  20390. /*******************************************/
  20391.  
  20392. #define INCL_DDF
  20393. #include <os2.h>
  20394.  
  20395. HDDF   hddf;
  20396. ULONG  ulWidthDT;
  20397. ULONG  fBreakType;
  20398. ULONG  fSpacing;
  20399. BOOL   fsuccess;    /* Success indicator */
  20400.  
  20401. fsuccess = DdfBeginList(hddf, ulWidthDT,
  20402.              fBreakType, fSpacing);
  20403.  
  20404.  
  20405. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DdfBeginList ΓòÉΓòÉΓòÉ
  20406.  
  20407. Related Functions 
  20408.  
  20409. o DdfBitmap 
  20410. o DdfEndList 
  20411. o DdfHyperText 
  20412. o DdfInform 
  20413. o DdfInitialize 
  20414. o DdfListItem 
  20415. o DdfMetafile 
  20416. o DdfPara 
  20417. o DdfSetColor 
  20418. o DdfSetFont 
  20419. o DdfSetFontStyle 
  20420. o DdfSetFormat 
  20421. o DdfText 
  20422. o DdfSetTextAlign 
  20423.  
  20424.  
  20425. ΓòÉΓòÉΓòÉ <hidden> Example Code - DdfBeginList ΓòÉΓòÉΓòÉ
  20426.  
  20427.  After initializing a DDF buffer with DdfInitialize, the example uses 
  20428. DdfBeginList to indicate the beginning of a definition list in the DDF buffer 
  20429. (this corresponds to the IPF dl tag). For a more detailed example and 
  20430. discussion of initializing DDF, see the DdfInitialize sample. 
  20431.  
  20432.  
  20433.  
  20434. #define INCL_WINWINDOWMGR       /* General window management    */
  20435. #define INCL_WINMESSAGEMGR      /* Message management           */
  20436. #define INCL_DDF                /* Dynamic Data Facility        */
  20437. #include <os2.h>
  20438. #include <pmhelp.h>
  20439.  
  20440. struct _LISTITEM        /* definition list                      */
  20441. {
  20442.     PSZ Term;
  20443.     PSZ Desc;
  20444. } Definition[2] = {{"MVS", "Multiple Virtual
  20445. System"},
  20446.                    {"VM",  "Virtual Machine"}};
  20447. MRESULT WindowProc( HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2)
  20448. {
  20449.  
  20450.     HWND   hwndParent;
  20451.     HWND   hwndInstance;
  20452.     HDDF   hDdf;            /* DDF handle                           */
  20453.     SHORT i;               /* loop index                           */
  20454.  
  20455.     switch( ulMsg )
  20456.     {
  20457.     case HM_QUERY_DDF_DATA:
  20458.         /* get the help instance */
  20459.         hwndParent = WinQueryWindow( hwnd, QW_PARENT );
  20460.         hwndParent = WinQueryWindow( hwndParent, QW_PARENT );
  20461.         hwndInstance = (HWND)WinSendMsg( hwndParent, HM_QUERY,
  20462.                                  MPFROMSHORT( HMQW_INSTANCE ), NULL );
  20463.  
  20464.         /* Allocate 1K Buffer (default)  */
  20465.         hDdf = DdfInitialize(
  20466.                    hwndInstance,  /* Handle of help instance */
  20467.                    0L,            /* Default buffer size     */
  20468.                    0L             /* Default increment       */
  20469.                    );
  20470.  
  20471.         if (hDdf == NULLHANDLE)       /* Check return code       */
  20472.         {
  20473.             return (MRESULT)FALSE;
  20474.         }
  20475.  
  20476.         /* begin definition list */
  20477.         if (!DdfBeginList(hDdf, 3L, HMBT_ALL, HMLS_SINGLELINE))
  20478.         {
  20479.             return (MRESULT)FALSE;
  20480.         }
  20481.  
  20482.         /* insert 2 entries into definition list */
  20483.         for (i=0; i < 2; i++)
  20484.         {
  20485.             if (!DdfListItem(hDdf, Definition[i].Term,
  20486.                                    Definition[i].Desc))
  20487.             {
  20488.                return (MRESULT)FALSE;
  20489.             }
  20490.         }
  20491.  
  20492.         /* terminate definition list */
  20493.         if (!DdfEndList(hDdf))
  20494.         {
  20495.             return (MRESULT)FALSE;
  20496.         }
  20497.  
  20498.         return (MRESULT)hDdf;
  20499.     }
  20500. }
  20501.  
  20502.  
  20503. ΓòÉΓòÉΓòÉ 7.2. DdfBitmap ΓòÉΓòÉΓòÉ
  20504.  
  20505.  
  20506. ΓòÉΓòÉΓòÉ <hidden> Topics - DdfBitmap ΓòÉΓòÉΓòÉ
  20507.  
  20508. Select an item: 
  20509.  
  20510. Function Syntax 
  20511. Parameters 
  20512. Return Values 
  20513. Errors 
  20514. Notes 
  20515. Example 
  20516. Related Functions 
  20517. Glossary 
  20518.  
  20519.  
  20520. ΓòÉΓòÉΓòÉ <hidden> Parameters - DdfBitmap ΓòÉΓòÉΓòÉ
  20521.  
  20522. hddf (HDDF) - input 
  20523.    Handle to DDF returned by DdfInitialize. 
  20524.  
  20525. hbm (HBITMAP) - input 
  20526.    Standard Presentation Manager bit map handle. 
  20527.  
  20528. fAlign (ULONG) - input 
  20529.    Any of the following values can be specified: 
  20530.  
  20531.    ART_LEFT       Left-justify the bit map. 
  20532.    ART_RIGHT      Right-justify the bit map. 
  20533.    ART_CENTER     Center the bit map. 
  20534.    ART_RUNIN      Allow the bit map to be reflowed with text. 
  20535.  
  20536.  
  20537. ΓòÉΓòÉΓòÉ <hidden> Return Values - DdfBitmap ΓòÉΓòÉΓòÉ
  20538.  
  20539. fsuccess (BOOL) - return 
  20540.    Success indicator. 
  20541.  
  20542.    TRUE 
  20543.       Successful completion. 
  20544.  
  20545.    FALSE 
  20546.       Error occurred. 
  20547.  
  20548.  
  20549. ΓòÉΓòÉΓòÉ <hidden> Errors - DdfBitmap ΓòÉΓòÉΓòÉ
  20550.  
  20551. Possible returns from WinGetLastError 
  20552.  
  20553. HMERR_DDF_MEMORY 
  20554.    Not enough memory is available. 
  20555.  
  20556. HMERR_DDF_ALIGN_TYPE 
  20557.    The alignment type is not valid. 
  20558.  
  20559.  
  20560. ΓòÉΓòÉΓòÉ <hidden> Notes - DdfBitmap ΓòÉΓòÉΓòÉ
  20561.  
  20562. The handle to the presentation space in which the bit map was created cannot be 
  20563. freed by the application while the panel is displayed. 
  20564.  
  20565. Note:  There is a (3-byte + size of HBITMAP structure) ESC code overhead in the 
  20566.        DDF internal buffer for this function.  There is a 1-byte ESC code 
  20567.        overhead required for the Align flag.
  20568.  
  20569.  
  20570. ΓòÉΓòÉΓòÉ <hidden> Syntax - DdfBitmap ΓòÉΓòÉΓòÉ
  20571.  
  20572. /*******************************************/
  20573. /* This function places a reference to a   */
  20574. /* bit map in the DDF buffer.              */
  20575. /*******************************************/
  20576.  
  20577. #define INCL_DDF
  20578. #include <os2.h>
  20579.  
  20580. HDDF     hddf;
  20581. HBITMAP  hbm;
  20582. ULONG    fAlign;
  20583. BOOL     fsuccess;    /* Success indicator */
  20584.  
  20585. fsuccess = DdfBitmap(hddf, hbm, fAlign);
  20586.  
  20587.  
  20588. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DdfBitmap ΓòÉΓòÉΓòÉ
  20589.  
  20590. Related Functions 
  20591.  
  20592. o DdfBeginList 
  20593. o DdfEndList 
  20594. o DdfHyperText 
  20595. o DdfInform 
  20596. o DdfInitialize 
  20597. o DdfListItem 
  20598. o DdfMetafile 
  20599. o DdfPara 
  20600. o DdfSetColor 
  20601. o DdfSetFont 
  20602. o DdfSetFontStyle 
  20603. o DdfSetFormat 
  20604. o DdfText 
  20605. o DdfSetTextAlign 
  20606.  
  20607.  
  20608. ΓòÉΓòÉΓòÉ <hidden> Example Code - DdfBitmap ΓòÉΓòÉΓòÉ
  20609.  
  20610. After initializing a DDF buffer with DdfInitialize, the example obtains a 
  20611. device context (DevOpenDC), creates a presentation space (GpiCreatePS), and 
  20612. loads a bit map (GpiLoadBitmap). It then uses DdfBitmap to place a reference to 
  20613. the bit map in the DDF buffer. For a more detailed example and discussion of 
  20614. initializing DDF, see the DdfInitialize sample. 
  20615.  
  20616. #define INCL_WINWINDOWMGR       /* General window management    */
  20617. #define INCL_WINMESSAGEMGR      /* Message management           */
  20618. #define INCL_GPICONTROL         /* Basic PS control             */
  20619. #define INCL_GPIBITMAPS         /* Bit maps and Pel Operations   */
  20620. #define INCL_GPIPRIMITIVES      /* Drawing Primitives/Attributes*/
  20621. #define INCL_DDF                /* Dynamic Data Facility        */
  20622. #include <os2.h>
  20623. #include <pmhelp.h>
  20624.  
  20625. #define ACVP_HAB  12
  20626. #define BM_HPS    16
  20627. #define BM_HDC    20
  20628. #define BM_HWND   24
  20629. #define ID_LEFT   255
  20630.  
  20631. MRESULT WindowProc( HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2 )
  20632. {
  20633.     HWND    hwndParent;     /* parent window                        */
  20634.     HWND    hwndInstance;   /* help instance window                 */
  20635.     HDDF    hDdf;           /* DDF handle                           */
  20636.     HDC     hdc;            /* device context handle                */
  20637.     HPS     hps;            /* presentation space handle            */
  20638.     HAB     hab;            /* anchor block handle                  */
  20639.     SIZEL   sizel = {0L,0L};/* size of new PS                       */
  20640.     HBITMAP hBitmap;        /* bit map handle                        */
  20641.     HMODULE hModule;        /* module handle                         */
  20642.  
  20643.     switch( ulMsg )
  20644.     {
  20645.     case HM_QUERY_DDF_DATA:
  20646.         hwndParent = WinQueryWindow( hwnd, QW_PARENT );
  20647.         hwndParent = WinQueryWindow( hwndParent, QW_PARENT );
  20648.         hwndInstance = (HWND)WinSendMsg( hwndParent, HM_QUERY,
  20649.                                  MPFROMSHORT( HMQW_INSTANCE ), NULL );
  20650.  
  20651.         /* Allocate 1K Buffer (default)  */
  20652.         hDdf = DdfInitialize(
  20653.                        hwndInstance,  /* Handle of help instance */
  20654.                        0L,            /* Default buffer size     */
  20655.                        0L             /* Default increment       */
  20656.                        );
  20657.  
  20658.         if (hDdf == NULLHANDLE)       /* Check return code       */
  20659.         {
  20660.             return (MRESULT)FALSE;
  20661.         }
  20662.  
  20663.         /* get module handle for bit map */
  20664.         DosQueryModuleHandle("bitmap", &hModule);
  20665.         if (hModule == NULLHANDLE)
  20666.         {
  20667.             return (MRESULT)FALSE;
  20668.         }
  20669.  
  20670.         /* get hab for this window */
  20671.         if ((hab = (HAB)WinQueryWindowULong(hwnd, ACVP_HAB)) == NULLHANDLE)
  20672.         {
  20673.             return (MRESULT)FALSE;
  20674.         }
  20675.  
  20676.         /* create a device context */
  20677.         if ((hdc = DevOpenDC(hab, OD_MEMORY, "*", 0L,
  20678.                                (PDEVOPENDATA)NULL, (HDC)NULL)) == NULLHANDLE)
  20679.         {
  20680.            return (MRESULT)FALSE;
  20681.         }
  20682.  
  20683.         /* save hdc in reserved word */
  20684.         WinSetWindowULong(hwnd, BM_HDC, (ULONG)hdc);
  20685.  
  20686.  
  20687.         /* create a noncached micro presentation space */
  20688.         /* and associate it with the window */
  20689.         if ((hps = GpiCreatePS(hab, hdc, &sizel, PU_PELS |
  20690. GPIF_DEFAULT
  20691.                                 | GPIT_MICRO | GPIA_ASSOC)) == NULLHANDLE)
  20692.         {
  20693.            return (MRESULT)FALSE;
  20694.         }
  20695.  
  20696.         /* save hps in reserved word */
  20697.         WinSetWindowULong(hwnd, BM_HPS, (ULONG)hps);
  20698.  
  20699.         /* Load the Bit map to display */
  20700.         if ((hBitmap = GpiLoadBitmap(hps, hModule, ID_LEFT, 300L,
  20701.                                      300L)) == NULLHANDLE)
  20702.         {
  20703.             return (MRESULT)FALSE;
  20704.         }
  20705.  
  20706.         /* save bit map hwnd in reserved word */
  20707.         WinSetWindowULong(hwnd, BM_HWND, (ULONG)hBitmap);
  20708.  
  20709.         /* Display the bit map align left */
  20710.         if (!DdfBitmap(hDdf, hBitmap, (ULONG)TA_LEFT))
  20711.         {
  20712.             return (MRESULT)FALSE;
  20713.         }
  20714.  
  20715.         return (MRESULT)hDdf;
  20716.  
  20717.     case WM_CLOSE:
  20718.         /* release PS, DC, and bit map */
  20719.         GpiDestroyPS((HPS)WinQueryWindowULong(hwnd, BM_HPS));
  20720.         DevCloseDC((HDC)WinQueryWindowULong(hwnd, BM_HDC));
  20721.         GpiDeleteBitmap((HBITMAP)WinQueryWindowULong(hwnd, BM_HWND));
  20722.         WinDestroyWindow(WinQueryWindow(hwnd, QW_PARENT));
  20723.         return (MRESULT)TRUE;
  20724.     }
  20725. }
  20726.  
  20727.  
  20728. ΓòÉΓòÉΓòÉ 7.3. DdfEndList ΓòÉΓòÉΓòÉ
  20729.  
  20730.  
  20731. ΓòÉΓòÉΓòÉ <hidden> Topics - DdfEndList ΓòÉΓòÉΓòÉ
  20732.  
  20733. Select an item: 
  20734.  
  20735. Function Syntax 
  20736. Parameters 
  20737. Return Values 
  20738. Errors 
  20739. Example 
  20740. Related Functions 
  20741. Glossary 
  20742.  
  20743.  
  20744. ΓòÉΓòÉΓòÉ <hidden> Parameters - DdfEndList ΓòÉΓòÉΓòÉ
  20745.  
  20746. hddf (HDDF) - input 
  20747.    Handle to DDF returned by DdfInitialize. 
  20748.  
  20749.  
  20750. ΓòÉΓòÉΓòÉ <hidden> Return Values - DdfEndList ΓòÉΓòÉΓòÉ
  20751.  
  20752. fsuccess (BOOL) - return 
  20753.    Success indicator. 
  20754.  
  20755.    TRUE 
  20756.       Successful completion. 
  20757.  
  20758.    FALSE 
  20759.       Error occurred. 
  20760.  
  20761.  
  20762. ΓòÉΓòÉΓòÉ <hidden> Errors - DdfEndList ΓòÉΓòÉΓòÉ
  20763.  
  20764. Possible returns from WinGetLastError 
  20765.  
  20766. HMERR_DDF_LIST_UNINITIALIZED 
  20767.    No definition list has been initialized by DdfBeginList. 
  20768.  
  20769.  
  20770. ΓòÉΓòÉΓòÉ <hidden> Syntax - DdfEndList ΓòÉΓòÉΓòÉ
  20771.  
  20772. /*******************************************/
  20773. /* This function terminates the definition */
  20774. /* list initialized by DdfBeginList.       */
  20775. /*******************************************/
  20776.  
  20777. #define INCL_DDF
  20778. #include <os2.h>
  20779.  
  20780. HDDF  hddf;
  20781. BOOL  fsuccess; /* Success indicator */
  20782.  
  20783. fsuccess = DdfEndList(hddf);
  20784.  
  20785.  
  20786. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DdfEndList ΓòÉΓòÉΓòÉ
  20787.  
  20788. Related Functions 
  20789.  
  20790. o DdfBeginList 
  20791. o DdfBitmap 
  20792. o DdfHyperText 
  20793. o DdfInform 
  20794. o DdfInitialize 
  20795. o DdfListItem 
  20796. o DdfMetafile 
  20797. o DdfPara 
  20798. o DdfSetColor 
  20799. o DdfSetFont 
  20800. o DdfSetFontStyle 
  20801. o DdfSetFormat 
  20802. o DdfText 
  20803. o DdfSetTextAlign 
  20804.  
  20805.  
  20806. ΓòÉΓòÉΓòÉ <hidden> Example Code - DdfEndList ΓòÉΓòÉΓòÉ
  20807.  
  20808.  After initializing a DDF buffer with DdfInitialize, the example uses 
  20809. DdfBeginList to indicate the beginning of a definition list in the DDF buffer 
  20810. (this corresponds to the IPF dl tag). For a more detailed example and 
  20811. discussion of initializing DDF, see the DdfInitialize sample. 
  20812.  
  20813.  
  20814.  
  20815. #define INCL_WINWINDOWMGR       /* General window management    */
  20816. #define INCL_WINMESSAGEMGR      /* Message management           */
  20817. #define INCL_DDF                /* Dynamic Data Facility        */
  20818. #include <os2.h>
  20819. #include <pmhelp.h>
  20820.  
  20821. struct _LISTITEM        /* definition list                      */
  20822. {
  20823.     PSZ Term;
  20824.     PSZ Desc;
  20825. } Definition[2] = {{"MVS", "Multiple Virtual
  20826. System"},
  20827.                    {"VM",  "Virtual Machine"}};
  20828. MRESULT WindowProc( HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2)
  20829. {
  20830.  
  20831.     HWND   hwndParent;
  20832.     HWND   hwndInstance;
  20833.     HDDF   hDdf;            /* DDF handle                           */
  20834.     SHORT i;               /* loop index                           */
  20835.  
  20836.     switch( ulMsg )
  20837.     {
  20838.     case HM_QUERY_DDF_DATA:
  20839.         /* get the help instance */
  20840.         hwndParent = WinQueryWindow( hwnd, QW_PARENT );
  20841.         hwndParent = WinQueryWindow( hwndParent, QW_PARENT );
  20842.         hwndInstance = (HWND)WinSendMsg( hwndParent, HM_QUERY,
  20843.                                  MPFROMSHORT( HMQW_INSTANCE ), NULL );
  20844.  
  20845.         /* Allocate 1K Buffer (default)  */
  20846.         hDdf = DdfInitialize(
  20847.                    hwndInstance,  /* Handle of help instance */
  20848.                    0L,            /* Default buffer size     */
  20849.                    0L             /* Default increment       */
  20850.                    );
  20851.  
  20852.         if (hDdf == NULLHANDLE)       /* Check return code       */
  20853.         {
  20854.             return (MRESULT)FALSE;
  20855.         }
  20856.  
  20857.         /* begin definition list */
  20858.         if (!DdfBeginList(hDdf, 3L, HMBT_ALL, HMLS_SINGLELINE))
  20859.         {
  20860.             return (MRESULT)FALSE;
  20861.         }
  20862.  
  20863.         /* insert 2 entries into definition list */
  20864.         for (i=0; i < 2; i++)
  20865.         {
  20866.             if (!DdfListItem(hDdf, Definition[i].Term,
  20867.                                    Definition[i].Desc))
  20868.             {
  20869.                return (MRESULT)FALSE;
  20870.             }
  20871.         }
  20872.  
  20873.         /* terminate definition list */
  20874.         if (!DdfEndList(hDdf))
  20875.         {
  20876.             return (MRESULT)FALSE;
  20877.         }
  20878.  
  20879.         return (MRESULT)hDdf;
  20880.     }
  20881. }
  20882.  
  20883.  
  20884. ΓòÉΓòÉΓòÉ 7.4. DdfHyperText ΓòÉΓòÉΓòÉ
  20885.  
  20886.  
  20887. ΓòÉΓòÉΓòÉ <hidden> Topics - DdfHyperText ΓòÉΓòÉΓòÉ
  20888.  
  20889. Select an item: 
  20890.  
  20891. Function Syntax 
  20892. Parameters 
  20893. Return Values 
  20894. Errors 
  20895. Notes 
  20896. Example 
  20897. Related Functions 
  20898. Glossary 
  20899.  
  20900.  
  20901. ΓòÉΓòÉΓòÉ <hidden> Parameters - DdfHyperText ΓòÉΓòÉΓòÉ
  20902.  
  20903. hddf (HDDF) - input 
  20904.    Handle to DDF returned by DdfInitialize. 
  20905.  
  20906. pText (PSZ) - input 
  20907.    Hypertext phrase. 
  20908.  
  20909. pReference (PSZ) - input 
  20910.    The value of this parameter depends on the value of ReferenceType: 
  20911.  
  20912.    - If ReferenceType is REFERENCE_BY_RES, this parameter must contain a 
  20913.    pointer to a numeric string containing the res number; otherwise it will 
  20914.    default to a res number of zero. Valid values are 1 - 64000; all other 
  20915.    values are reserved. 
  20916.    - If ReferenceType is REFERENCE_BY_ID, this parameter contains a pointer to 
  20917.    a string containing the alphanumeric identifier of the destination panel. 
  20918.  
  20919. fReferenceType (ULONG) - input 
  20920.    This parameter specifies whether you are linking via a resource identifier 
  20921.    (res number) or via an alphanumeric identifier. 
  20922.  
  20923.    REFERENCE_BY_RES To link via a resource identifier. 
  20924.    REFERENCE_BY_ID To link via an alphanumeric identifier. 
  20925.  
  20926.  
  20927. ΓòÉΓòÉΓòÉ <hidden> Return Values - DdfHyperText ΓòÉΓòÉΓòÉ
  20928.  
  20929. fsuccess (BOOL) - return 
  20930.    Success indicator. 
  20931.  
  20932.    TRUE 
  20933.       Successful completion. 
  20934.  
  20935.    FALSE 
  20936.       Error occurred. 
  20937.  
  20938.  
  20939. ΓòÉΓòÉΓòÉ <hidden> Errors - DdfHyperText ΓòÉΓòÉΓòÉ
  20940.  
  20941. Possible returns from WinGetLastError 
  20942.  
  20943. HMERR_DDF_MEMORY 
  20944.    Not enough memory is available. 
  20945.  
  20946. HMERR_DDF_REFTYPE 
  20947.    The reference type is not valid. 
  20948.  
  20949.  
  20950. ΓòÉΓòÉΓòÉ <hidden> Notes - DdfHyperText ΓòÉΓòÉΓòÉ
  20951.  
  20952. Note:  There is a 3-byte ESC code overhead in the DDF internal buffer for each 
  20953.        word in the text buffer.  There is a 1-byte ESC code overhead for each 
  20954.        blank and for each newline character.  If ReferenceType is 
  20955.        REFERENCE_BY_ID, then there is a (3-byte + Reference length) ESC code 
  20956.        overhead. For a ReferenceType of REFERENCE_BY_RES, the overhead is 5 
  20957.        bytes. Finally, there is a 3-byte ESC code overhead that is required for 
  20958.        ending the hypertext link.
  20959.  
  20960.  
  20961. ΓòÉΓòÉΓòÉ <hidden> Syntax - DdfHyperText ΓòÉΓòÉΓòÉ
  20962.  
  20963. /*******************************************/
  20964. /* This function defines a hypertext link  */
  20965. /* to another panel.                       */
  20966. /*******************************************/
  20967.  
  20968. #define INCL_DDF
  20969. #include <os2.h>
  20970.  
  20971. HDDF   hddf;
  20972. PSZ    pText;
  20973. PSZ    pReference;
  20974. ULONG  fReferenceType;
  20975. BOOL   fsuccess;        /* Success indicator */
  20976.  
  20977. fsuccess = DdfHyperText(hddf, pText,
  20978.              pReference, fReferenceType);
  20979.  
  20980.  
  20981. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DdfHyperText ΓòÉΓòÉΓòÉ
  20982.  
  20983. Related Functions 
  20984.  
  20985. o DdfBeginList 
  20986. o DdfBitmap 
  20987. o DdfEndList 
  20988. o DdfInform 
  20989. o DdfInitialize 
  20990. o DdfListItem 
  20991. o DdfMetafile 
  20992. o DdfPara 
  20993. o DdfSetColor 
  20994. o DdfSetFont 
  20995. o DdfSetFontStyle 
  20996. o DdfSetFormat 
  20997. o DdfText 
  20998. o DdfSetTextAlign 
  20999.  
  21000.  
  21001. ΓòÉΓòÉΓòÉ <hidden> Example Code - DdfHyperText ΓòÉΓòÉΓòÉ
  21002.  
  21003.  After initializing a DDF buffer with DdfInitialize, the example uses 
  21004. DdfHyperText to create a hypertext link with another resource. For a more 
  21005. detailed example and discussion of initializing DDF, see the DdfInitialize 
  21006. sample. 
  21007.  
  21008. #define INCL_WINWINDOWMGR       /* General window management    */
  21009. #define INCL_WINMESSAGEMGR      /* Message management           */
  21010. #define INCL_DDF                /* Dynamic Data Facility        */
  21011. #include <os2.h>
  21012. #include <pmhelp.h>
  21013.  
  21014. PSZ    Text = "This text is a HYPERTEXT message.\n"; /* hypertext
  21015.                                                          string  */
  21016. PSZ    ResID = "1";     /* Resource identifier                  */
  21017.  
  21018. MRESULT WindowProc( HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2 )
  21019. {
  21020.     HWND   hwndParent;
  21021.     HWND   hwndInstance;
  21022.     HDDF   hDdf;            /* DDF handle                           */
  21023.  
  21024.     switch( ulMsg )
  21025.     {
  21026.     case HM_QUERY_DDF_DATA:
  21027.         /* get the help instance */
  21028.         hwndParent = WinQueryWindow( hwnd, QW_PARENT );
  21029.         hwndParent = WinQueryWindow( hwndParent, QW_PARENT );
  21030.         hwndInstance = (HWND)WinSendMsg( hwndParent, HM_QUERY,
  21031.                                  MPFROMSHORT( HMQW_INSTANCE ), NULL );
  21032.  
  21033.         /* Allocate 1K Buffer (default)  */
  21034.         hDdf = DdfInitialize(
  21035.                     hwndInstance,  /* Handle of help instance */
  21036.                     0L,            /* Default buffer size     */
  21037.                     0L             /* Default increment       */
  21038.                     );
  21039.  
  21040.         if (hDdf == NULLHANDLE)       /* Check return code       */
  21041.         {
  21042.             return (MRESULT)FALSE;
  21043.         }
  21044.  
  21045.         /* create hypertext link with resource 1 */
  21046.         if (!DdfHyperText(hDdf, (PSZ)Text, ResID, REFERENCE_BY_RES))
  21047.         {
  21048.             return (MRESULT)FALSE;
  21049.         }
  21050.  
  21051.         return (MRESULT)hDdf;
  21052.     }
  21053. }
  21054.  
  21055.  
  21056. ΓòÉΓòÉΓòÉ 7.5. DdfInform ΓòÉΓòÉΓòÉ
  21057.  
  21058.  
  21059. ΓòÉΓòÉΓòÉ <hidden> Topics - DdfInform ΓòÉΓòÉΓòÉ
  21060.  
  21061. Select an item: 
  21062.  
  21063. Function Syntax 
  21064. Parameters 
  21065. Return Values 
  21066. Errors 
  21067. Example 
  21068. Related Functions 
  21069. Glossary 
  21070.  
  21071.  
  21072. ΓòÉΓòÉΓòÉ <hidden> Parameters - DdfInform ΓòÉΓòÉΓòÉ
  21073.  
  21074. hddf (HDDF) - input 
  21075.    Handle to DDF returned by DdfInitialize. 
  21076.  
  21077. pText (PSZ) - input 
  21078.    Hypertext phrase. 
  21079.  
  21080. resInformNumber (ULONG) - input 
  21081.    Res number associated with this hypertext field.  Possible values are 1 to 
  21082.    64000; all other values are reserved. 
  21083.  
  21084.  
  21085. ΓòÉΓòÉΓòÉ <hidden> Return Values - DdfInform ΓòÉΓòÉΓòÉ
  21086.  
  21087. fsuccess (BOOL) - return 
  21088.    Success indicator. 
  21089.  
  21090.    TRUE 
  21091.       Successful completion. 
  21092.  
  21093.    FALSE 
  21094.       Error occurred. 
  21095.  
  21096.  
  21097. ΓòÉΓòÉΓòÉ <hidden> Errors - DdfInform ΓòÉΓòÉΓòÉ
  21098.  
  21099. Possible returns from WinGetLastError 
  21100.  
  21101. HMERR_DDF_MEMORY 
  21102.    Not enough memory is available. 
  21103.  
  21104.  
  21105. ΓòÉΓòÉΓòÉ <hidden> Syntax - DdfInform ΓòÉΓòÉΓòÉ
  21106.  
  21107. /*******************************************/
  21108. /* This function defines a hypertext       */
  21109. /* inform link; it corresponds to the link */
  21110. /* tag with reftype=inform.                */
  21111. /*******************************************/
  21112.  
  21113. #define INCL_DDF
  21114. #include <os2.h>
  21115.  
  21116. HDDF   hddf;
  21117. PSZ    pText;
  21118. ULONG  resInformNumber;
  21119. BOOL   fsuccess;         /* Success indicator */
  21120.  
  21121. fsuccess = DdfInform(hddf, pText,
  21122.              resInformNumber);
  21123.  
  21124.  
  21125. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DdfInform ΓòÉΓòÉΓòÉ
  21126.  
  21127. Related Functions 
  21128.  
  21129. o DdfBeginList 
  21130. o DdfBitmap 
  21131. o DdfEndList 
  21132. o DdfHyperText 
  21133. o DdfInitialize 
  21134. o DdfListItem 
  21135. o DdfMetafile 
  21136. o DdfPara 
  21137. o DdfSetColor 
  21138. o DdfSetFont 
  21139. o DdfSetFontStyle 
  21140. o DdfSetFormat 
  21141. o DdfText 
  21142. o DdfSetTextAlign 
  21143.  
  21144.  
  21145. ΓòÉΓòÉΓòÉ <hidden> Example Code - DdfInform ΓòÉΓòÉΓòÉ
  21146.  
  21147. After initializing a DDF buffer with DdfInitialize, the example uses DdfInform 
  21148. to create a hypertext inform link with another resource (corresponds to the IPF 
  21149. :link. tag with reftype=inform). For a more detailed example and discussion of 
  21150. initializing DDF, see the DdfInitialize sample. 
  21151.  
  21152. #define INCL_WINWINDOWMGR       /* General window management    */
  21153. #define INCL_WINMESSAGEMGR      /* Message management           */
  21154. #define INCL_DDF                /* Dynamic Data Facility        */
  21155. #include <os2.h>
  21156. #include <pmhelp.h>
  21157.  
  21158. PSZ    Text = "This text is a HYPERTEXT message.\n"; /* hypertext
  21159.                                                          string  */
  21160. MRESULT WindowProc( HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2 )
  21161. {
  21162.     HWND   hwndParent;
  21163.     HWND   hwndInstance;
  21164.     HDDF   hDdf;            /* DDF handle                           */
  21165.  
  21166.     switch( ulMsg )
  21167.     {
  21168.         case HM_QUERY_DDF_DATA:
  21169.             /* get the help instance */
  21170.             hwndParent = WinQueryWindow( hwnd, QW_PARENT );
  21171.             hwndParent = WinQueryWindow( hwndParent, QW_PARENT );
  21172.             hwndInstance = (HWND)WinSendMsg( hwndParent, HM_QUERY,
  21173.                                      MPFROMSHORT( HMQW_INSTANCE ), NULL );
  21174.  
  21175.         /* Allocate 1K Buffer (default)  */
  21176.         hDdf = DdfInitialize(
  21177.                         hwndInstance,  /* Handle of help instance */
  21178.                         0L,            /* Default buffer size     */
  21179.                         0L             /* Default increment       */
  21180.                         );
  21181.  
  21182.         if (hDdf == NULLHANDLE)       /* Check return code       */
  21183.         {
  21184.             return (MRESULT)FALSE;
  21185.         }
  21186.  
  21187.         /* create hypertext inform link with resource 1 */
  21188.         if (!DdfInform(hDdf, (PSZ)Text, 1L))
  21189.         {
  21190.             return (MRESULT)FALSE;
  21191.         }
  21192.  
  21193.         return (MRESULT)hDdf;
  21194.     }
  21195. }
  21196.  
  21197.  
  21198. ΓòÉΓòÉΓòÉ 7.6. DdfInitialize ΓòÉΓòÉΓòÉ
  21199.  
  21200.  
  21201. ΓòÉΓòÉΓòÉ <hidden> Topics - DdfInitialize ΓòÉΓòÉΓòÉ
  21202.  
  21203. Select an item: 
  21204.  
  21205. Function Syntax 
  21206. Parameters 
  21207. Return Values 
  21208. Notes 
  21209. Example 
  21210. Related Functions 
  21211. Glossary 
  21212.  
  21213.  
  21214. ΓòÉΓòÉΓòÉ <hidden> Parameters - DdfInitialize ΓòÉΓòÉΓòÉ
  21215.  
  21216. hwndHelpInstance (HWND) - input 
  21217.    Handle of a help instance. 
  21218.  
  21219. cbBuffer (ULONG) - input 
  21220.    Initial length of internal buffer where DDF information is to be stored. If 
  21221.    this field is NULL, a default value of 1K is defined.  The maximum value is 
  21222.    60KB. 
  21223.  
  21224. ulIncrement (ULONG) - input 
  21225.    Amount by which to increment the buffer size, if necessary. If this field is 
  21226.    NULL, a default value of 256 bytes is defined.  The maximum value is 60KB. 
  21227.  
  21228.  
  21229. ΓòÉΓòÉΓòÉ <hidden> Return Values - DdfInitialize ΓòÉΓòÉΓòÉ
  21230.  
  21231. hddfsuccess (HDDF) - return 
  21232.    A handle to DDF (HDDF) is returned if initialization was successful. 
  21233.    Otherwise, the value returned is: 
  21234.  
  21235.    NULL 
  21236.       An error has occurred because of insufficient memory or incorrect 
  21237.       instance. 
  21238.  
  21239.  
  21240. ΓòÉΓòÉΓòÉ <hidden> Notes - DdfInitialize ΓòÉΓòÉΓòÉ
  21241.  
  21242. At initialization, the default for dynamic data display is that text aligned on 
  21243. the left, and formatting is turned on. 
  21244.  
  21245.  
  21246. ΓòÉΓòÉΓòÉ <hidden> Syntax - DdfInitialize ΓòÉΓòÉΓòÉ
  21247.  
  21248. /*******************************************/
  21249. /* This function initializes the IPF       */
  21250. /* internal structures for dynamic data    */
  21251. /* formatting and returns a DDF handle.    */
  21252. /* The application uses this handle to     */
  21253. /* refer to a particular DDF panel.        */
  21254. /*******************************************/
  21255.  
  21256. #define INCL_DDF
  21257. #include <os2.h>
  21258.  
  21259. HWND   hwndHelpInstance;
  21260. ULONG  cbBuffer;
  21261. ULONG  ulIncrement;
  21262. HDDF   hddfsuccess;
  21263.  
  21264. hddfsuccess = DdfInitialize(
  21265.                 hwndHelpInstance, cbBuffer,
  21266.                 ulIncrement);
  21267.  
  21268.  
  21269. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DdfInitialize ΓòÉΓòÉΓòÉ
  21270.  
  21271. Related Functions 
  21272.  
  21273. o DdfBeginList 
  21274. o DdfBitmap 
  21275. o DdfEndList 
  21276. o DdfHyperText 
  21277. o DdfInform 
  21278. o DdfListItem 
  21279. o DdfMetafile 
  21280. o DdfPara 
  21281. o DdfSetColor 
  21282. o DdfSetFont 
  21283. o DdfSetFontStyle 
  21284. o DdfSetFormat 
  21285. o DdfText 
  21286. o DdfSetTextAlign 
  21287.  
  21288.  
  21289. ΓòÉΓòÉΓòÉ <hidden> Example Code - DdfInitialize ΓòÉΓòÉΓòÉ
  21290.  
  21291. This example shows how to initialize and use the Dynamic Data Facility for 
  21292. displaying an online document. Two functions are defined: the first, SampleObj, 
  21293. creates a window that will display the online information and specifies the 
  21294. second function, SampleWindowProc, as the corresponding window procedure. These 
  21295. two functions are compiled into a DLL and exported, so that IPF can invoke them 
  21296. when it encounters the :ddf and :acviewport tags during execution. The 
  21297. :acviewport tag will specify the DLL name and the SampleObj function; when IPF 
  21298. calls SampleObj, it initializes an application-controlled window with 
  21299. SampleWindowProc as the window procedure and returns the window handle. Later, 
  21300. when IPF encounters the :ddf tag, it will send SampleWindowProc an 
  21301. HM_QUERY_DDF_DATA message.  At this point, before calling any of the DDF API, 
  21302. DdfInitialize must first be called to initiate a DDF buffer, after which the 
  21303. other DDF API can be called to display the online information. 
  21304.  
  21305. #define INCL_WINWINDOWMGR       /* General window management    */
  21306. #define INCL_WINMESSAGEMGR      /* Message management           */
  21307. #define INCL_WINDIALOGS         /* Dialog boxes                 */
  21308. #define INCL_DDF                /* Dynamic Data Facility        */
  21309. #define INCL_32
  21310. #include <os2.h>
  21311. #include <pmhelp.h>
  21312.  
  21313. #define COM_HWND 4                /* window word offsets        */
  21314. #define PAGE_HWND 8
  21315. #define ACVP_HAB  12
  21316.  
  21317. USHORT DdfClass = FALSE;
  21318.  
  21319. MRESULT EXPENTRY SampleWindowProc(HWND hWnd, ULONG Message,
  21320.                                  MPARAM lParam1, MPARAM lParam2);
  21321.  
  21322. USHORT APIENTRY SampleObj(PACVP pACVP, PCH Parameter)
  21323. {
  21324. HWND DdfHwnd;           /* Client window handle                  */
  21325. HWND DdfCHwnd;          /* Child window handle                   */
  21326. HWND PreviousHwnd;      /* Handle for setting comm window active */
  21327.  
  21328.     /* register DDF Base class if not registered already */
  21329.     if (!DdfClass)
  21330.     {
  21331.          if (!WinRegisterClass(
  21332.                    pACVP->hAB,   /* Anchor block handle           */
  21333.                    "CLASS_Ddf",  /* Application window class name */
  21334.                                  /* Address of window procedure   */
  21335.                    SampleWindowProc,
  21336.                                  /* Window class style            */
  21337.                    CS_SYNCPAINT | CS_SIZEREDRAW | CS_MOVENOTIFY,
  21338.                    20))          /* Extra storage                 */
  21339.         {
  21340.             return TRUE;
  21341.         }
  21342.         DdfClass = TRUE;
  21343.     }
  21344.  
  21345.     /*  create standard window  */
  21346.     if (!(DdfHwnd = WinCreateStdWindow(
  21347.                       pACVP->hWndParent, /* ACVP is parent       */
  21348.                       0L,                /* No class style       */
  21349.                       NULL,              /* Frame control flag   */
  21350.                       "CLASS_Ddf",       /* Window class name    */
  21351.                       NULL,              /* No title bar         */
  21352.                       0L,                /* No special style     */
  21353.                       0L,                /* Resource in .EXE     */
  21354.                       0,                 /* No window identifier */
  21355.                       &DdfCHwnd )))      /* Client window handle */
  21356.     {
  21357.         return FALSE;
  21358.     }
  21359.  
  21360.     /* store the frame window handle in ACVP data structure */
  21361.     pACVP->hWndACVP = DdfHwnd;
  21362.  
  21363.     /* set this window as active communication window */
  21364.     PreviousHwnd = (HWND)WinSendMsg(pACVP->hWndParent,
  21365.                            HM_SET_OBJCOM_WINDOW,
  21366.                            MPFROMHWND(DdfHwnd), NULL);
  21367.  
  21368.     /* save returned communication hwnd in reserved word */
  21369.     WinSetWindowULong(DdfCHwnd, COM_HWND, (ULONG)PreviousHwnd);
  21370.  
  21371.     /* save anchor block handle in reserved word */
  21372.     WinSetWindowULong (DdfCHwnd, ACVP_HAB, (ULONG)pACVP->hAB);
  21373.  
  21374.     return FALSE;
  21375. } /* SampleObj */
  21376.  
  21377.  
  21378. MRESULT EXPENTRY SampleWindowProc(HWND hWnd, ULONG Message,
  21379.                                  MPARAM lParam1, MPARAM lParam2)
  21380. {
  21381.     HWND   hwndParent;      /* parent window                        */
  21382.     HWND   hwndInstance;    /* help instance window                 */
  21383.     HDDF   hDdf;            /* DDF handle                           */
  21384.     ULONG  DdfID;           /* DDF resource id                      */
  21385.  
  21386.     switch (Message)
  21387.     {
  21388.     case HM_QUERY_DDF_DATA:
  21389.         WinSetWindowULong(hWnd, PAGE_HWND, LONGFROMMP(lParam1));
  21390.         DdfID = LONGFROMMP(lParam2);
  21391.         hwndParent = WinQueryWindow(hWnd, QW_PARENT);
  21392.         hwndParent = WinQueryWindow(hwndParent, QW_PARENT);
  21393.         hwndInstance = (HWND)WinSendMsg(hwndParent, HM_QUERY,
  21394.                                   MPFROMSHORT(HMQW_INSTANCE), NULL);
  21395.  
  21396.         /* Allocate 1K Buffer (default)  */
  21397.         hDdf = DdfInitialize(
  21398.                         hwndInstance,  /* Handle of help instance */
  21399.                         0L,            /* Default buffer size     */
  21400.                         0L             /* Default increment       */
  21401.                         );
  21402.  
  21403.         if (hDdf == NULLHANDLE)       /* Check return code       */
  21404.         {
  21405.             return (MRESULT)FALSE;
  21406.         }
  21407.  
  21408.         return (MRESULT)hDdf;
  21409.  
  21410.     default:
  21411.         return (WinDefWindowProc(hWnd, Message, lParam1, lParam2));
  21412.     }
  21413. } /* SampleWindowProc */
  21414.  
  21415.  
  21416. ΓòÉΓòÉΓòÉ 7.7. DdfListItem ΓòÉΓòÉΓòÉ
  21417.  
  21418.  
  21419. ΓòÉΓòÉΓòÉ <hidden> Topics - DdfListItem ΓòÉΓòÉΓòÉ
  21420.  
  21421. Select an item: 
  21422.  
  21423. Function Syntax 
  21424. Parameters 
  21425. Return Values 
  21426. Errors 
  21427. Notes 
  21428. Example 
  21429. Related Functions 
  21430. Glossary 
  21431.  
  21432.  
  21433. ΓòÉΓòÉΓòÉ <hidden> Parameters - DdfListItem ΓòÉΓòÉΓòÉ
  21434.  
  21435. hddf (HDDF) - input 
  21436.    Handle to DDF returned by DdfInitialize. 
  21437.  
  21438. pTerm (PSZ) - input 
  21439.    Term portion of the definition list entry. 
  21440.  
  21441. pDescription (PSZ) - input 
  21442.    Description portion of the definition list entry. 
  21443.  
  21444.  
  21445. ΓòÉΓòÉΓòÉ <hidden> Return Values - DdfListItem ΓòÉΓòÉΓòÉ
  21446.  
  21447. fsuccess (BOOL) - return 
  21448.    Success indicator. 
  21449.  
  21450.    TRUE 
  21451.       Successful completion. 
  21452.  
  21453.    FALSE 
  21454.       Error occurred. 
  21455.  
  21456.  
  21457. ΓòÉΓòÉΓòÉ <hidden> Errors - DdfListItem ΓòÉΓòÉΓòÉ
  21458.  
  21459. Possible returns from WinGetLastError 
  21460.  
  21461. HMERR_DDF_MEMORY 
  21462.    Not enough memory is available. 
  21463.  
  21464. HMERR_DDF_LIST_UNINITIALIZED 
  21465.    No definition list has been initialized by DdfBeginList. 
  21466.  
  21467.  
  21468. ΓòÉΓòÉΓòÉ <hidden> Notes - DdfListItem ΓòÉΓòÉΓòÉ
  21469.  
  21470. The handle to the presentation space in which the bit map was created cannot be 
  21471. freed by the application while the panel is displayed. 
  21472.  
  21473. Note:  There is a (3-byte + size of HBITMAP structure) ESC code overhead in the 
  21474.        DDF internal buffer for this function.  There is a 1-byte ESC code 
  21475.        overhead required for the Align flag.
  21476.  
  21477.  
  21478. ΓòÉΓòÉΓòÉ <hidden> Syntax - DdfListItem ΓòÉΓòÉΓòÉ
  21479.  
  21480. /*******************************************/
  21481. /* This function inserts a definition list */
  21482. /* entry in the DDF buffer; it corresponds */
  21483. /* to a combination of the :dt.            */
  21484. /* (definition term) and :dd. (definition  */
  21485. /* define) tags.                           */
  21486. /*******************************************/
  21487.  
  21488. #define INCL_DDF
  21489. #include <os2.h>
  21490.  
  21491. HDDF  hddf;
  21492. PSZ   pTerm;
  21493. PSZ   pDescription;
  21494. BOOL  fsuccess;     /* Success indicator */
  21495.  
  21496. fsuccess = DdfListItem(hddf, pTerm,
  21497.              pDescription);
  21498.  
  21499.  
  21500. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DdfListItem ΓòÉΓòÉΓòÉ
  21501.  
  21502. Related Functions 
  21503.  
  21504. o DdfBeginList 
  21505. o DdfBitmap 
  21506. o DdfEndList 
  21507. o DdfHyperText 
  21508. o DdfInform 
  21509. o DdfInitialize 
  21510. o DdfMetafile 
  21511. o DdfPara 
  21512. o DdfSetColor 
  21513. o DdfSetFont 
  21514. o DdfSetFontStyle 
  21515. o DdfSetFormat 
  21516. o DdfText 
  21517. o DdfSetTextAlign 
  21518.  
  21519.  
  21520. ΓòÉΓòÉΓòÉ <hidden> Example Code - DdfListItem ΓòÉΓòÉΓòÉ
  21521.  
  21522.  After initializing a DDF buffer with DdfInitialize, the example uses 
  21523. DdfBeginList to indicate the beginning of a definition list in the DDF buffer 
  21524. (this corresponds to the IPF dl tag). For a more detailed example and 
  21525. discussion of initializing DDF, see the DdfInitialize sample. 
  21526.  
  21527.  
  21528.  
  21529. #define INCL_WINWINDOWMGR       /* General window management    */
  21530. #define INCL_WINMESSAGEMGR      /* Message management           */
  21531. #define INCL_DDF                /* Dynamic Data Facility        */
  21532. #include <os2.h>
  21533. #include <pmhelp.h>
  21534.  
  21535. struct _LISTITEM        /* definition list                      */
  21536. {
  21537.     PSZ Term;
  21538.     PSZ Desc;
  21539. } Definition[2] = {{"MVS", "Multiple Virtual
  21540. System"},
  21541.                    {"VM",  "Virtual Machine"}};
  21542. MRESULT WindowProc( HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2)
  21543. {
  21544.  
  21545.     HWND   hwndParent;
  21546.     HWND   hwndInstance;
  21547.     HDDF   hDdf;            /* DDF handle                           */
  21548.     SHORT i;               /* loop index                           */
  21549.  
  21550.     switch( ulMsg )
  21551.     {
  21552.     case HM_QUERY_DDF_DATA:
  21553.         /* get the help instance */
  21554.         hwndParent = WinQueryWindow( hwnd, QW_PARENT );
  21555.         hwndParent = WinQueryWindow( hwndParent, QW_PARENT );
  21556.         hwndInstance = (HWND)WinSendMsg( hwndParent, HM_QUERY,
  21557.                                  MPFROMSHORT( HMQW_INSTANCE ), NULL );
  21558.  
  21559.         /* Allocate 1K Buffer (default)  */
  21560.         hDdf = DdfInitialize(
  21561.                    hwndInstance,  /* Handle of help instance */
  21562.                    0L,            /* Default buffer size     */
  21563.                    0L             /* Default increment       */
  21564.                    );
  21565.  
  21566.         if (hDdf == NULLHANDLE)       /* Check return code       */
  21567.         {
  21568.             return (MRESULT)FALSE;
  21569.         }
  21570.  
  21571.         /* begin definition list */
  21572.         if (!DdfBeginList(hDdf, 3L, HMBT_ALL, HMLS_SINGLELINE))
  21573.         {
  21574.             return (MRESULT)FALSE;
  21575.         }
  21576.  
  21577.         /* insert 2 entries into definition list */
  21578.         for (i=0; i < 2; i++)
  21579.         {
  21580.             if (!DdfListItem(hDdf, Definition[i].Term,
  21581.                                    Definition[i].Desc))
  21582.             {
  21583.                return (MRESULT)FALSE;
  21584.             }
  21585.         }
  21586.  
  21587.         /* terminate definition list */
  21588.         if (!DdfEndList(hDdf))
  21589.         {
  21590.             return (MRESULT)FALSE;
  21591.         }
  21592.  
  21593.         return (MRESULT)hDdf;
  21594.     }
  21595. }
  21596.  
  21597.  
  21598. ΓòÉΓòÉΓòÉ 7.8. DdfMetafile ΓòÉΓòÉΓòÉ
  21599.  
  21600.  
  21601. ΓòÉΓòÉΓòÉ <hidden> Topics - DdfMetafile ΓòÉΓòÉΓòÉ
  21602.  
  21603. Select an item: 
  21604.  
  21605. Function Syntax 
  21606. Parameters 
  21607. Return Values 
  21608. Errors 
  21609. Notes 
  21610. Example 
  21611. Related Functions 
  21612. Glossary 
  21613.  
  21614.  
  21615. ΓòÉΓòÉΓòÉ <hidden> Parameters - DdfMetafile ΓòÉΓòÉΓòÉ
  21616.  
  21617. hddf (HDDF) - input 
  21618.    Handle to DDF returned by DdfInitialize. 
  21619.  
  21620. hmf (HMF) - input 
  21621.    The handle of the metafile to display. 
  21622.  
  21623. prclRect (PRECTL) - input 
  21624.  
  21625.    If not NULL, contains the size of the rectangle in which the metafile will 
  21626.    be displayed.  The aspect ratio of the metafile is adjusted to fit this 
  21627.    rectangle. 
  21628.  
  21629.  
  21630. ΓòÉΓòÉΓòÉ <hidden> Return Values - DdfMetafile ΓòÉΓòÉΓòÉ
  21631.  
  21632. fsuccess (BOOL) - return 
  21633.    Success indicator. 
  21634.  
  21635.    TRUE 
  21636.       Successful completion. 
  21637.  
  21638.    FALSE 
  21639.       Error occurred. 
  21640.  
  21641.  
  21642. ΓòÉΓòÉΓòÉ <hidden> Errors - DdfMetafile ΓòÉΓòÉΓòÉ
  21643.  
  21644. Possible returns from WinGetLastError 
  21645.  
  21646. HMERR_DDF_MEMORY 
  21647.    Not enough memory is available. 
  21648.  
  21649.  
  21650. ΓòÉΓòÉΓòÉ <hidden> Notes - DdfMetafile ΓòÉΓòÉΓòÉ
  21651.  
  21652. Note:  There is a 3-byte ESC code overhead in the DDF internal buffer for this 
  21653.        function.  There is also a (MetaFilename length) overhead. Finally, the 
  21654.        Rect variable requires an additional 16 bytes of overhead in the DDF 
  21655.        internal buffer.
  21656.  
  21657.  
  21658. ΓòÉΓòÉΓòÉ <hidden> Syntax - DdfMetafile ΓòÉΓòÉΓòÉ
  21659.  
  21660. /*******************************************/
  21661. /* This function places a reference to a   */
  21662. /* metafile into the DDF buffer.           */
  21663. /*******************************************/
  21664.  
  21665. #define INCL_DDF
  21666. #include <os2.h>
  21667.  
  21668. HDDF    hddf;
  21669. HMF     hmf;
  21670. PRECTL  prclRect;
  21671. BOOL    fsuccess;   /* Success indicator */
  21672.  
  21673. fsuccess = DdfMetafile(hddf, hmf, prclRect);
  21674.  
  21675.  
  21676. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DdfMetafile ΓòÉΓòÉΓòÉ
  21677.  
  21678. Related Functions 
  21679.  
  21680. o DdfBeginList 
  21681. o DdfBitmap 
  21682. o DdfEndList 
  21683. o DdfHyperText 
  21684. o DdfInform 
  21685. o DdfInitialize 
  21686. o DdfListItem 
  21687. o DdfPara 
  21688. o DdfSetColor 
  21689. o DdfSetFont 
  21690. o DdfSetFontStyle 
  21691. o DdfSetFormat 
  21692. o DdfText 
  21693. o DdfSetTextAlign 
  21694.  
  21695.  
  21696. ΓòÉΓòÉΓòÉ <hidden> Example Code - DdfMetafile ΓòÉΓòÉΓòÉ
  21697.  
  21698.  After initializing a DDF buffer with DdfInitialize and loading a metafile with 
  21699. GpiLoadMetaFile, the example uses DdfMetafile to place a reference to the 
  21700. metafile in the DDF buffer. For a more detailed example and discussion of 
  21701. initializing DDF, see the DdfInitialize sample. 
  21702.  
  21703. #define INCL_WINWINDOWMGR       /* General window management    */
  21704. #define INCL_WINMESSAGEMGR      /* Message management           */
  21705. #define INCL_DDF                /* Dynamic Data Facility        */
  21706. #define INCL_GPIMETAFILES       /* MetaFiles                    */
  21707. #include <os2.h>
  21708. #include <pmhelp.h>
  21709.  
  21710. #define MF_HWND   0
  21711. #define ACVP_HAB  4
  21712.  
  21713. MRESULT WindowProc( HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2 )
  21714. {
  21715.     HWND   hwndParent;
  21716.     HAB    hab;
  21717.     HWND   hwndInstance;    /* help instance window                 */
  21718.     HDDF   hDdf;            /* DDF handle                           */
  21719.     HMF    hwndMetaFile;    /* metafile handle                      */
  21720.  
  21721.     switch( ulMsg )
  21722.     {
  21723.     case HM_QUERY_DDF_DATA:
  21724.         /* get the help instance */
  21725.         hwndParent = WinQueryWindow( hwnd, QW_PARENT );
  21726.         hwndParent = WinQueryWindow( hwndParent, QW_PARENT );
  21727.         hwndInstance = (HWND)WinSendMsg( hwndParent, HM_QUERY,
  21728.                                  MPFROMSHORT( HMQW_INSTANCE ), NULL );
  21729.  
  21730.         /* Allocate 1K Buffer (default)  */
  21731.         hDdf = DdfInitialize(
  21732.                     hwndInstance,  /* Handle of help instance */
  21733.                     0L,            /* Default buffer size     */
  21734.                     0L             /* Default increment       */
  21735.                     );
  21736.  
  21737.         if (hDdf == NULLHANDLE)       /* Check return code       */
  21738.         {
  21739.             return (MRESULT)FALSE;
  21740.         }
  21741.  
  21742.         /* get hab for this window */
  21743.         if ((hab = (HAB)WinQueryWindowULong(hwnd, ACVP_HAB)) == NULLHANDLE)
  21744.         {
  21745.            return (MRESULT)FALSE;
  21746.         }
  21747.  
  21748.         /* Load the Metafile to display */
  21749.         if ((hwndMetaFile = GpiLoadMetaFile(hab, "SAMP.MET")) == NULLHANDLE)
  21750.         {
  21751.             return (MRESULT)FALSE;
  21752.         }
  21753.  
  21754.         /* Save MetaFile hwnd in reserved word */
  21755.         WinSetWindowULong(hwnd, MF_HWND, hwndMetaFile);
  21756.  
  21757.         if (!DdfMetafile(hDdf, hwndMetaFile, NULL))
  21758.         {
  21759.             return (MRESULT)FALSE;
  21760.         }
  21761.  
  21762.         return (hDdf);
  21763.  
  21764.     case WM_CLOSE:
  21765.         GpiDeleteMetaFile((HMF)WinQueryWindowULong(hwnd, MF_HWND));
  21766.         WinDestroyWindow(WinQueryWindow(hwnd, QW_PARENT));
  21767.  
  21768.         return (MRESULT)TRUE;
  21769.     }
  21770.     return WinDefWindowProc( hwnd, ulMsg, mp1, mp2 );
  21771. }
  21772.  
  21773.  
  21774. ΓòÉΓòÉΓòÉ 7.9. DdfPara ΓòÉΓòÉΓòÉ
  21775.  
  21776.  
  21777. ΓòÉΓòÉΓòÉ <hidden> Topics - DdfPara ΓòÉΓòÉΓòÉ
  21778.  
  21779. Select an item: 
  21780.  
  21781. Function Syntax 
  21782. Parameters 
  21783. Return Values 
  21784. Errors 
  21785. Notes 
  21786. Example 
  21787. Related Functions 
  21788. Glossary 
  21789.  
  21790.  
  21791. ΓòÉΓòÉΓòÉ <hidden> Parameters - DdfPara ΓòÉΓòÉΓòÉ
  21792.  
  21793. hddf (HDDF) - input 
  21794.    Handle to DDF returned by DdfInitialize. 
  21795.  
  21796.  
  21797. ΓòÉΓòÉΓòÉ <hidden> Return Values - DdfPara ΓòÉΓòÉΓòÉ
  21798.  
  21799. fsuccess (BOOL) - return 
  21800.    Success indicator. 
  21801.  
  21802.    TRUE 
  21803.       Successful completion. 
  21804.  
  21805.    FALSE 
  21806.       Error occurred. 
  21807.  
  21808.  
  21809. ΓòÉΓòÉΓòÉ <hidden> Errors - DdfPara ΓòÉΓòÉΓòÉ
  21810.  
  21811. Possible returns from WinGetLastError 
  21812.  
  21813. HMERR_DDF_MEMORY 
  21814.    Not enough memory is available. 
  21815.  
  21816.  
  21817. ΓòÉΓòÉΓòÉ <hidden> Notes - DdfPara ΓòÉΓòÉΓòÉ
  21818.  
  21819. Note:  There is a 1-byte ESC code overhead in the DDF internal buffer for this function.
  21820.  
  21821.  
  21822. ΓòÉΓòÉΓòÉ <hidden> Syntax - DdfPara ΓòÉΓòÉΓòÉ
  21823.  
  21824. /*******************************************/
  21825. /* This function creates a paragraph       */
  21826. /* within the DDF buffer. It corresponds   */
  21827. /* to the :p. tag. This function places a  */
  21828. /* reference to a bit map in the DDF       */
  21829. /* buffer.                                 */
  21830. /*******************************************/
  21831.  
  21832. #define INCL_DDF
  21833. #include <os2.h>
  21834.  
  21835. HDDF  hddf;
  21836. BOOL  fsuccess; /* Success indicator */
  21837.  
  21838. fsuccess = DdfPara(hddf);
  21839.  
  21840.  
  21841. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DdfPara ΓòÉΓòÉΓòÉ
  21842.  
  21843. Related Functions 
  21844.  
  21845. o DdfBeginList 
  21846. o DdfBitmap 
  21847. o DdfEndList 
  21848. o DdfHyperText 
  21849. o DdfInform 
  21850. o DdfInitialize 
  21851. o DdfListItem 
  21852. o DdfMetafile 
  21853. o DdfSetColor 
  21854. o DdfSetFont 
  21855. o DdfSetFontStyle 
  21856. o DdfSetFormat 
  21857. o DdfText 
  21858. o DdfSetTextAlign 
  21859.  
  21860.  
  21861. ΓòÉΓòÉΓòÉ <hidden> Example Code - DdfPara ΓòÉΓòÉΓòÉ
  21862.  
  21863. After initializing a DDF buffer with DdfInitialize, the example uses DdfPara to 
  21864. start a new paragraph, DdfSetFont and DdfSetFontStyle to have the text 
  21865. displayed in a large, bold Courier font, DdfSetColor to change the text color, 
  21866. and DdfText to place text in the buffer.  For a more detailed example and 
  21867. discussion of initializing DDF, see the DdfInitialize sample. 
  21868.  
  21869. #define INCL_WINWINDOWMGR       /* General window management    */
  21870. #define INCL_WINMESSAGEMGR      /* Message management           */
  21871. #define INCL_DDF                /* Dynamic Data Facility        */
  21872. #include <os2.h>
  21873. #include <pmhelp.h>
  21874.  
  21875.  
  21876. MRESULT WindowProc( HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2 )
  21877. {
  21878.    HWND   hwndParent;
  21879.    HWND   hwndInstance;    /* help instance window                 */
  21880.    HDDF   hDdf;            /* DDF handle                           */
  21881.  
  21882.     switch( ulMsg )
  21883.     {
  21884.     case HM_QUERY_DDF_DATA:
  21885.         /* get the help instance */
  21886.         hwndParent = WinQueryWindow( hwnd, QW_PARENT );
  21887.         hwndParent = WinQueryWindow( hwndParent, QW_PARENT );
  21888.         hwndInstance = (HWND)WinSendMsg( hwndParent, HM_QUERY,
  21889.                                  MPFROMSHORT( HMQW_INSTANCE ), NULL );
  21890.  
  21891.         /* Allocate 1K Buffer (default)  */
  21892.         hDdf = DdfInitialize(
  21893.                     hwndInstance,  /* Handle of help instance */
  21894.                     0L,            /* Default buffer size     */
  21895.                     0L             /* Default increment       */
  21896.                     );
  21897.  
  21898.         if (hDdf == NULLHANDLE)       /* Check return code       */
  21899.         {
  21900.             return (MRESULT)FALSE;
  21901.         }
  21902.  
  21903.         /* create paragraph in DDF buffer */
  21904.         if( !DdfPara( hDdf ) )
  21905.         {
  21906.            return (MRESULT)FALSE;
  21907.         }
  21908.  
  21909.         /* Change to large (100 x 100 dimensions) Courier font */
  21910.         if( !DdfSetFont( hDdf, "Courier", 100L, 100L ) )
  21911.         {
  21912.            return (MRESULT)FALSE;
  21913.         }
  21914.  
  21915.         /* make the font BOLDFACE */
  21916.         if( !DdfSetFontStyle( hDdf, FM_SEL_BOLD ) )
  21917.         {
  21918.            return (MRESULT)FALSE;
  21919.         }
  21920.  
  21921.         /* make the text display as BLUE on a PALE GRAY background */
  21922.         if( !DdfSetColor( hDdf, CLR_PALEGRAY, CLR_BLUE ) )
  21923.         {
  21924.            return (MRESULT)FALSE;
  21925.         }
  21926.  
  21927.         /* Write data into the buffer */
  21928.         if (!DdfText(hDdf, "Sample Text"))
  21929.         {
  21930.            return (MRESULT)FALSE;
  21931.         }
  21932.  
  21933.         return (MRESULT)hDdf;
  21934.     }
  21935.     return WinDefWindowProc( hwnd, ulMsg, mp1, mp2 );
  21936. }
  21937.  
  21938.  
  21939. ΓòÉΓòÉΓòÉ 7.10. DdfSetColor ΓòÉΓòÉΓòÉ
  21940.  
  21941.  
  21942. ΓòÉΓòÉΓòÉ <hidden> Topics - DdfSetColor ΓòÉΓòÉΓòÉ
  21943.  
  21944. Select an item: 
  21945.  
  21946. Function Syntax 
  21947. Parameters 
  21948. Return Values 
  21949. Errors 
  21950. Notes 
  21951. Example 
  21952. Related Functions 
  21953. Glossary 
  21954.  
  21955.  
  21956. ΓòÉΓòÉΓòÉ <hidden> Parameters - DdfSetColor ΓòÉΓòÉΓòÉ
  21957.  
  21958. hddf (HDDF) - input 
  21959.    Handle to DDF returned by DdfInitialize. 
  21960.  
  21961. BackColor (COLOR) - input 
  21962.    Specifies the desired background color. 
  21963.  
  21964. ForColor (COLOR) - input 
  21965.    Specifies the desired foreground color. 
  21966.  
  21967.    The following color value constants may be used for the foreground and 
  21968.    background colors: 
  21969.  
  21970.    CLR_DEFAULT -  used to set IPF default text color 
  21971.    CLR_BLACK 
  21972.    CLR_BLUE 
  21973.    CLR_RED 
  21974.    CLR_PINK 
  21975.    CLR_GREEN 
  21976.    CLR_CYAN 
  21977.    CLR_YELLOW 
  21978.    CLR_BROWN 
  21979.    CLR_DARKGRAY 
  21980.    CLR_DARKBLUE 
  21981.    CLR_DARKRED 
  21982.    CLR_DARKPINK 
  21983.    CLR_DARKGREEN 
  21984.    CLR_DARKCYAN 
  21985.    CLR_PALEGRAY 
  21986.    CLR_UNCHANGED 
  21987.  
  21988.  
  21989. ΓòÉΓòÉΓòÉ <hidden> Return Values - DdfSetColor ΓòÉΓòÉΓòÉ
  21990.  
  21991. fsuccess (BOOL) - return 
  21992.    Success indicator. 
  21993.  
  21994.    TRUE 
  21995.       Successful completion. 
  21996.  
  21997.    FALSE 
  21998.       Error occurred. 
  21999.  
  22000.  
  22001. ΓòÉΓòÉΓòÉ <hidden> Errors - DdfSetColor ΓòÉΓòÉΓòÉ
  22002.  
  22003. Possible returns from WinGetLastError 
  22004.  
  22005. HMERR_DDF_MEMORY 
  22006.    Not enough memory is available. 
  22007.  
  22008. HMERR_DDF_BACKCOLOR 
  22009.    The background color is not valid. 
  22010.  
  22011. HMERR_DDF_FORCOLOR 
  22012.    The foreground color is not valid. 
  22013.  
  22014.  
  22015. ΓòÉΓòÉΓòÉ <hidden> Notes - DdfSetColor ΓòÉΓòÉΓòÉ
  22016.  
  22017. Note:  There is a 4-byte ESC code overhead in the DDF internal buffer for the 
  22018.        foreground color, and a 4-byte overhead for the background color, with 
  22019.        this function.
  22020.  
  22021.  
  22022. ΓòÉΓòÉΓòÉ <hidden> Syntax - DdfSetColor ΓòÉΓòÉΓòÉ
  22023.  
  22024. /*******************************************/
  22025. /* This function sets the background and   */
  22026. /* foreground colors of the displayed text.*/
  22027. /*******************************************/
  22028.  
  22029. #define INCL_DDF
  22030. #include <os2.h>
  22031.  
  22032. HDDF   hddf;
  22033. COLOR  BackColor;
  22034. COLOR  ForColor;
  22035. BOOL   fsuccess;   /* Success indicator */
  22036.  
  22037. fsuccess = DdfSetColor(hddf, BackColor,
  22038.              ForColor);
  22039.  
  22040.  
  22041. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DdfSetColor ΓòÉΓòÉΓòÉ
  22042.  
  22043. Related Functions 
  22044.  
  22045. o DdfBeginList 
  22046. o DdfBitmap 
  22047. o DdfEndList 
  22048. o DdfHyperText 
  22049. o DdfInform 
  22050. o DdfInitialize 
  22051. o DdfListItem 
  22052. o DdfMetafile 
  22053. o DdfPara 
  22054. o DdfSetFont 
  22055. o DdfSetFontStyle 
  22056. o DdfSetFormat 
  22057. o DdfText 
  22058. o DdfSetTextAlign 
  22059.  
  22060.  
  22061. ΓòÉΓòÉΓòÉ <hidden> Example Code - DdfSetColor ΓòÉΓòÉΓòÉ
  22062.  
  22063. After initializing a DDF buffer with DdfInitialize, the example uses DdfPara to 
  22064. start a new paragraph, DdfSetFont and DdfSetFontStyle to have the text 
  22065. displayed in a large, bold Courier font, DdfSetColor to change the text color, 
  22066. and DdfText to place text in the buffer.  For a more detailed example and 
  22067. discussion of initializing DDF, see the DdfInitialize sample. 
  22068.  
  22069. #define INCL_WINWINDOWMGR       /* General window management    */
  22070. #define INCL_WINMESSAGEMGR      /* Message management           */
  22071. #define INCL_DDF                /* Dynamic Data Facility        */
  22072. #include <os2.h>
  22073. #include <pmhelp.h>
  22074.  
  22075.  
  22076. MRESULT WindowProc( HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2 )
  22077. {
  22078.    HWND   hwndParent;
  22079.    HWND   hwndInstance;    /* help instance window                 */
  22080.    HDDF   hDdf;            /* DDF handle                           */
  22081.  
  22082.     switch( ulMsg )
  22083.     {
  22084.     case HM_QUERY_DDF_DATA:
  22085.         /* get the help instance */
  22086.         hwndParent = WinQueryWindow( hwnd, QW_PARENT );
  22087.         hwndParent = WinQueryWindow( hwndParent, QW_PARENT );
  22088.         hwndInstance = (HWND)WinSendMsg( hwndParent, HM_QUERY,
  22089.                                  MPFROMSHORT( HMQW_INSTANCE ), NULL );
  22090.  
  22091.         /* Allocate 1K Buffer (default)  */
  22092.         hDdf = DdfInitialize(
  22093.                     hwndInstance,  /* Handle of help instance */
  22094.                     0L,            /* Default buffer size     */
  22095.                     0L             /* Default increment       */
  22096.                     );
  22097.  
  22098.         if (hDdf == NULLHANDLE)       /* Check return code       */
  22099.         {
  22100.             return (MRESULT)FALSE;
  22101.         }
  22102.  
  22103.         /* create paragraph in DDF buffer */
  22104.         if( !DdfPara( hDdf ) )
  22105.         {
  22106.            return (MRESULT)FALSE;
  22107.         }
  22108.  
  22109.         /* Change to large (100 x 100 dimensions) Courier font */
  22110.         if( !DdfSetFont( hDdf, "Courier", 100L, 100L ) )
  22111.         {
  22112.            return (MRESULT)FALSE;
  22113.         }
  22114.  
  22115.         /* make the font BOLDFACE */
  22116.         if( !DdfSetFontStyle( hDdf, FM_SEL_BOLD ) )
  22117.         {
  22118.            return (MRESULT)FALSE;
  22119.         }
  22120.  
  22121.         /* make the text display as BLUE on a PALE GRAY background */
  22122.         if( !DdfSetColor( hDdf, CLR_PALEGRAY, CLR_BLUE ) )
  22123.         {
  22124.            return (MRESULT)FALSE;
  22125.         }
  22126.  
  22127.         /* Write data into the buffer */
  22128.         if (!DdfText(hDdf, "Sample Text"))
  22129.         {
  22130.            return (MRESULT)FALSE;
  22131.         }
  22132.  
  22133.         return (MRESULT)hDdf;
  22134.     }
  22135.     return WinDefWindowProc( hwnd, ulMsg, mp1, mp2 );
  22136. }
  22137.  
  22138.  
  22139. ΓòÉΓòÉΓòÉ 7.11. DdfSetFont ΓòÉΓòÉΓòÉ
  22140.  
  22141.  
  22142. ΓòÉΓòÉΓòÉ <hidden> Topics - DdfSetFont ΓòÉΓòÉΓòÉ
  22143.  
  22144. Select an item: 
  22145.  
  22146. Function Syntax 
  22147. Parameters 
  22148. Return Values 
  22149. Errors 
  22150. Example 
  22151. Related Functions 
  22152. Glossary 
  22153.  
  22154.  
  22155. ΓòÉΓòÉΓòÉ <hidden> Parameters - DdfSetFont ΓòÉΓòÉΓòÉ
  22156.  
  22157. hddf (HDDF) - input 
  22158.    Handle to DDF returned by DdfInitialize. 
  22159.  
  22160. pFaceName (PSZ) - input 
  22161.    This parameter can be specified in two ways: 
  22162.  
  22163.    An ASCIIZ string specifying the font name. 
  22164.    "NULL" or "DEFAULT" to specify the default font. 
  22165.  
  22166. ulWidth (ULONG) - input 
  22167.    Font width in in points.  A point is approximately 1/72 of an inch 
  22168.  
  22169. ulHeight (ULONG) - input 
  22170.    Font height in points. 
  22171.  
  22172.  
  22173. ΓòÉΓòÉΓòÉ <hidden> Return Values - DdfSetFont ΓòÉΓòÉΓòÉ
  22174.  
  22175. fsuccess (BOOL) - return 
  22176.    Success indicator. 
  22177.  
  22178.    TRUE 
  22179.       Successful completion. 
  22180.  
  22181.    FALSE 
  22182.       Error occurred. 
  22183.  
  22184.  
  22185. ΓòÉΓòÉΓòÉ <hidden> Errors - DdfSetFont ΓòÉΓòÉΓòÉ
  22186.  
  22187. Possible returns from WinGetLastError 
  22188.  
  22189. HMERR_DDF_MEMORY 
  22190.    Not enough memory is available. 
  22191.  
  22192.  
  22193. ΓòÉΓòÉΓòÉ <hidden> Syntax - DdfSetFont ΓòÉΓòÉΓòÉ
  22194.  
  22195. /*******************************************/
  22196. /* This function specifies a text font in  */
  22197. /* the DDF buffer.                         */
  22198. /*******************************************/
  22199.  
  22200. #define INCL_DDF
  22201. #include <os2.h>
  22202.  
  22203. HDDF   hddf;
  22204. PSZ    pFaceName;
  22205. ULONG  ulWidth;
  22206. ULONG  ulHeight;
  22207. BOOL   fsuccess;   /* Success indicator */
  22208.  
  22209. fsuccess = DdfSetFont(hddf, pFaceName,
  22210.              ulWidth, ulHeight);
  22211.  
  22212.  
  22213. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DdfSetFont ΓòÉΓòÉΓòÉ
  22214.  
  22215. Related Functions 
  22216.  
  22217. o DdfBeginList 
  22218. o DdfBitmap 
  22219. o DdfEndList 
  22220. o DdfHyperText 
  22221. o DdfInform 
  22222. o DdfInitialize 
  22223. o DdfListItem 
  22224. o DdfMetafile 
  22225. o DdfPara 
  22226. o DdfSetColor 
  22227. o DdfSetFontStyle 
  22228. o DdfSetFormat 
  22229. o DdfText 
  22230. o DdfSetTextAlign 
  22231.  
  22232.  
  22233. ΓòÉΓòÉΓòÉ <hidden> Example Code - DdfSetFont ΓòÉΓòÉΓòÉ
  22234.  
  22235. After initializing a DDF buffer with DdfInitialize, the example uses DdfPara to 
  22236. start a new paragraph, DdfSetFont and DdfSetFontStyle to have the text 
  22237. displayed in a large, bold Courier font, DdfSetColor to change the text color, 
  22238. and DdfText to place text in the buffer.  For a more detailed example and 
  22239. discussion of initializing DDF, see the DdfInitialize sample. 
  22240.  
  22241. #define INCL_WINWINDOWMGR       /* General window management    */
  22242. #define INCL_WINMESSAGEMGR      /* Message management           */
  22243. #define INCL_DDF                /* Dynamic Data Facility        */
  22244. #include <os2.h>
  22245. #include <pmhelp.h>
  22246.  
  22247.  
  22248. MRESULT WindowProc( HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2 )
  22249. {
  22250.    HWND   hwndParent;
  22251.    HWND   hwndInstance;    /* help instance window                 */
  22252.    HDDF   hDdf;            /* DDF handle                           */
  22253.  
  22254.     switch( ulMsg )
  22255.     {
  22256.     case HM_QUERY_DDF_DATA:
  22257.         /* get the help instance */
  22258.         hwndParent = WinQueryWindow( hwnd, QW_PARENT );
  22259.         hwndParent = WinQueryWindow( hwndParent, QW_PARENT );
  22260.         hwndInstance = (HWND)WinSendMsg( hwndParent, HM_QUERY,
  22261.                                  MPFROMSHORT( HMQW_INSTANCE ), NULL );
  22262.  
  22263.         /* Allocate 1K Buffer (default)  */
  22264.         hDdf = DdfInitialize(
  22265.                     hwndInstance,  /* Handle of help instance */
  22266.                     0L,            /* Default buffer size     */
  22267.                     0L             /* Default increment       */
  22268.                     );
  22269.  
  22270.         if (hDdf == NULLHANDLE)       /* Check return code       */
  22271.         {
  22272.             return (MRESULT)FALSE;
  22273.         }
  22274.  
  22275.         /* create paragraph in DDF buffer */
  22276.         if( !DdfPara( hDdf ) )
  22277.         {
  22278.            return (MRESULT)FALSE;
  22279.         }
  22280.  
  22281.         /* Change to large (100 x 100 dimensions) Courier font */
  22282.         if( !DdfSetFont( hDdf, "Courier", 100L, 100L ) )
  22283.         {
  22284.            return (MRESULT)FALSE;
  22285.         }
  22286.  
  22287.         /* make the font BOLDFACE */
  22288.         if( !DdfSetFontStyle( hDdf, FM_SEL_BOLD ) )
  22289.         {
  22290.            return (MRESULT)FALSE;
  22291.         }
  22292.  
  22293.         /* make the text display as BLUE on a PALE GRAY background */
  22294.         if( !DdfSetColor( hDdf, CLR_PALEGRAY, CLR_BLUE ) )
  22295.         {
  22296.            return (MRESULT)FALSE;
  22297.         }
  22298.  
  22299.         /* Write data into the buffer */
  22300.         if (!DdfText(hDdf, "Sample Text"))
  22301.         {
  22302.            return (MRESULT)FALSE;
  22303.         }
  22304.  
  22305.         return (MRESULT)hDdf;
  22306.     }
  22307.     return WinDefWindowProc( hwnd, ulMsg, mp1, mp2 );
  22308. }
  22309.  
  22310.  
  22311. ΓòÉΓòÉΓòÉ 7.12. DdfSetFontStyle ΓòÉΓòÉΓòÉ
  22312.  
  22313.  
  22314. ΓòÉΓòÉΓòÉ <hidden> Topics - DdfSetFontStyle ΓòÉΓòÉΓòÉ
  22315.  
  22316. Select an item: 
  22317.  
  22318. Function Syntax 
  22319. Parameters 
  22320. Return Values 
  22321. Errors 
  22322. Example 
  22323. Related Functions 
  22324. Glossary 
  22325.  
  22326.  
  22327. ΓòÉΓòÉΓòÉ <hidden> Parameters - DdfSetFontStyle ΓòÉΓòÉΓòÉ
  22328.  
  22329. hddf (HDDF) - input 
  22330.    Handle to DDF returned by DdfInitialize. 
  22331.  
  22332. fFontStyle (ULONG) - input 
  22333.    A NULL value for this parameter will set the font-style back to the default. 
  22334.    Any of the following values can be specified: 
  22335.  
  22336.    FM_SEL_ITALIC 
  22337.    FM_SEL_BOLD 
  22338.    FM_SEL_UNDERSCORE 
  22339.  
  22340. These values can be "ORed" together to combine different font styles. 
  22341.  
  22342. Note:  There is a 4-byte ESC code overhead in the DDF internal buffer for FontStyle.
  22343.  
  22344.  
  22345. ΓòÉΓòÉΓòÉ <hidden> Return Values - DdfSetFontStyle ΓòÉΓòÉΓòÉ
  22346.  
  22347. fsuccess (BOOL) - return 
  22348.    Success indicator. 
  22349.  
  22350.    TRUE 
  22351.       Successful completion. 
  22352.  
  22353.    FALSE 
  22354.       Error occurred. 
  22355.  
  22356.  
  22357. ΓòÉΓòÉΓòÉ <hidden> Errors - DdfSetFontStyle ΓòÉΓòÉΓòÉ
  22358.  
  22359. Possible returns from WinGetLastError 
  22360.  
  22361. HMERR_DDF_MEMORY 
  22362.    Not enough memory is available. 
  22363.  
  22364. HMERR_DDF_FONTSTYLE 
  22365.    The font style is not valid. 
  22366.  
  22367.  
  22368. ΓòÉΓòÉΓòÉ <hidden> Syntax - DdfSetFontStyle ΓòÉΓòÉΓòÉ
  22369.  
  22370. /*******************************************/
  22371. /* This function specifies a text font     */
  22372. /* style in the DDF buffer.                */
  22373. /*******************************************/
  22374.  
  22375. #define INCL_DDF
  22376. #include <os2.h>
  22377.  
  22378. HDDF   hddf;
  22379. ULONG  fFontStyle;
  22380. BOOL   fsuccess;    /* Success indicator */
  22381.  
  22382. fsuccess = DdfSetFontStyle(hddf, fFontStyle);
  22383.  
  22384.  
  22385. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DdfSetFontStyle ΓòÉΓòÉΓòÉ
  22386.  
  22387. Related Functions 
  22388.  
  22389. o DdfBeginList 
  22390. o DdfBitmap 
  22391. o DdfEndList 
  22392. o DdfHyperText 
  22393. o DdfInform 
  22394. o DdfInitialize 
  22395. o DdfListItem 
  22396. o DdfMetafile 
  22397. o DdfPara 
  22398. o DdfSetColor 
  22399. o DdfSetFont 
  22400. o DdfSetFormat 
  22401. o DdfText 
  22402. o DdfSetTextAlign 
  22403.  
  22404.  
  22405. ΓòÉΓòÉΓòÉ <hidden> Example Code - DdfSetFontStyle ΓòÉΓòÉΓòÉ
  22406.  
  22407. After initializing a DDF buffer with DdfInitialize, the example uses DdfPara to 
  22408. start a new paragraph, DdfSetFont and DdfSetFontStyle to have the text 
  22409. displayed in a large, bold Courier font, DdfSetColor to change the text color, 
  22410. and DdfText to place text in the buffer.  For a more detailed example and 
  22411. discussion of initializing DDF, see the DdfInitialize sample. 
  22412.  
  22413. #define INCL_WINWINDOWMGR       /* General window management    */
  22414. #define INCL_WINMESSAGEMGR      /* Message management           */
  22415. #define INCL_DDF                /* Dynamic Data Facility        */
  22416. #include <os2.h>
  22417. #include <pmhelp.h>
  22418.  
  22419.  
  22420. MRESULT WindowProc( HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2 )
  22421. {
  22422.    HWND   hwndParent;
  22423.    HWND   hwndInstance;    /* help instance window                 */
  22424.    HDDF   hDdf;            /* DDF handle                           */
  22425.  
  22426.     switch( ulMsg )
  22427.     {
  22428.     case HM_QUERY_DDF_DATA:
  22429.         /* get the help instance */
  22430.         hwndParent = WinQueryWindow( hwnd, QW_PARENT );
  22431.         hwndParent = WinQueryWindow( hwndParent, QW_PARENT );
  22432.         hwndInstance = (HWND)WinSendMsg( hwndParent, HM_QUERY,
  22433.                                  MPFROMSHORT( HMQW_INSTANCE ), NULL );
  22434.  
  22435.         /* Allocate 1K Buffer (default)  */
  22436.         hDdf = DdfInitialize(
  22437.                     hwndInstance,  /* Handle of help instance */
  22438.                     0L,            /* Default buffer size     */
  22439.                     0L             /* Default increment       */
  22440.                     );
  22441.  
  22442.         if (hDdf == NULLHANDLE)       /* Check return code       */
  22443.         {
  22444.             return (MRESULT)FALSE;
  22445.         }
  22446.  
  22447.         /* create paragraph in DDF buffer */
  22448.         if( !DdfPara( hDdf ) )
  22449.         {
  22450.            return (MRESULT)FALSE;
  22451.         }
  22452.  
  22453.         /* Change to large (100 x 100 dimensions) Courier font */
  22454.         if( !DdfSetFont( hDdf, "Courier", 100L, 100L ) )
  22455.         {
  22456.            return (MRESULT)FALSE;
  22457.         }
  22458.  
  22459.         /* make the font BOLDFACE */
  22460.         if( !DdfSetFontStyle( hDdf, FM_SEL_BOLD ) )
  22461.         {
  22462.            return (MRESULT)FALSE;
  22463.         }
  22464.  
  22465.         /* make the text display as BLUE on a PALE GRAY background */
  22466.         if( !DdfSetColor( hDdf, CLR_PALEGRAY, CLR_BLUE ) )
  22467.         {
  22468.            return (MRESULT)FALSE;
  22469.         }
  22470.  
  22471.         /* Write data into the buffer */
  22472.         if (!DdfText(hDdf, "Sample Text"))
  22473.         {
  22474.            return (MRESULT)FALSE;
  22475.         }
  22476.  
  22477.         return (MRESULT)hDdf;
  22478.     }
  22479.     return WinDefWindowProc( hwnd, ulMsg, mp1, mp2 );
  22480. }
  22481.  
  22482.  
  22483. ΓòÉΓòÉΓòÉ 7.13. DdfSetFormat ΓòÉΓòÉΓòÉ
  22484.  
  22485.  
  22486. ΓòÉΓòÉΓòÉ <hidden> Topics - DdfSetFormat ΓòÉΓòÉΓòÉ
  22487.  
  22488. Select an item: 
  22489.  
  22490. Function Syntax 
  22491. Parameters 
  22492. Return Values 
  22493. Errors 
  22494. Notes 
  22495. Example 
  22496. Related Functions 
  22497. Glossary 
  22498.  
  22499.  
  22500. ΓòÉΓòÉΓòÉ <hidden> Parameters - DdfSetFormat ΓòÉΓòÉΓòÉ
  22501.  
  22502. hddf (HDDF) - input 
  22503.    Handle to DDF returned by DdfInitialize. 
  22504.  
  22505. fFormatType (ULONG) - input 
  22506.    Only the following constants may be used in this parameter: 
  22507.  
  22508.    TRUE      Turn formatting on. 
  22509.    FALSE     Turn formatting off. 
  22510.  
  22511.  
  22512. ΓòÉΓòÉΓòÉ <hidden> Return Values - DdfSetFormat ΓòÉΓòÉΓòÉ
  22513.  
  22514. fsuccess (BOOL) - return 
  22515.    Success indicator. 
  22516.  
  22517.    TRUE 
  22518.       Successful completion. 
  22519.  
  22520.    FALSE 
  22521.       Error occurred. 
  22522.  
  22523.  
  22524. ΓòÉΓòÉΓòÉ <hidden> Errors - DdfSetFormat ΓòÉΓòÉΓòÉ
  22525.  
  22526. Possible returns from WinGetLastError 
  22527.  
  22528. HMERR_DDF_MEMORY 
  22529.    Not enough memory is available. 
  22530.  
  22531.  
  22532. ΓòÉΓòÉΓòÉ <hidden> Notes - DdfSetFormat ΓòÉΓòÉΓòÉ
  22533.  
  22534. Note:  If formatting is ON, there is a 3-byte ESC code overhead in the DDF 
  22535.        internal buffer for this function.  Otherwise, there is a 4-byte ESC 
  22536.        code overhead.
  22537.  
  22538.  
  22539. ΓòÉΓòÉΓòÉ <hidden> Syntax - DdfSetFormat ΓòÉΓòÉΓòÉ
  22540.  
  22541. /*******************************************/
  22542. /* This function is used to turn           */
  22543. /* formatting off or on. It corresponds to */
  22544. /* the :lines. tag.                        */
  22545. /*******************************************/
  22546.  
  22547. #define INCL_DDF
  22548. #include <os2.h>
  22549.  
  22550. HDDF   hddf;
  22551. ULONG  fFormatType;
  22552. BOOL   fsuccess;     /* Success indicator */
  22553.  
  22554. fsuccess = DdfSetFormat(hddf, fFormatType);
  22555.  
  22556.  
  22557. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DdfSetFormat ΓòÉΓòÉΓòÉ
  22558.  
  22559. Related Functions 
  22560.  
  22561. o DdfBeginList 
  22562. o DdfBitmap 
  22563. o DdfEndList 
  22564. o DdfHyperText 
  22565. o DdfInform 
  22566. o DdfInitialize 
  22567. o DdfListItem 
  22568. o DdfMetafile 
  22569. o DdfPara 
  22570. o DdfSetColor 
  22571. o DdfSetFont 
  22572. o DdfSetFontStyle 
  22573. o DdfText 
  22574. o DdfSetTextAlign 
  22575.  
  22576.  
  22577. ΓòÉΓòÉΓòÉ <hidden> Example Code - DdfSetFormat ΓòÉΓòÉΓòÉ
  22578.  
  22579. After initializing a DDF buffer with DdfInitialize, the example uses 
  22580. DdfSetTextAlign to specify left justified test in the DDF buffer when 
  22581. formatting is OFF.  The example then uses DdfSetFormat to turn off formatting 
  22582. for text in the DDF buffer (corresponds to the IPF lines tag). For a more 
  22583. detailed example and discussion of initializing DDF, see the DdfInitialize 
  22584. sample. 
  22585.  
  22586. #define INCL_WINWINDOWMGR       /* General window management    */
  22587. #define INCL_WINMESSAGEMGR      /* Message management           */
  22588. #define INCL_GPIPRIMITIVES      /* Drawing Primitives/Attributes*/
  22589. #define INCL_DDF                /* Dynamic Data Facility        */
  22590. #include <os2.h>
  22591. #include <pmhelp.h>
  22592.  
  22593.  
  22594. MRESULT WindowProc( HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2 )
  22595. {
  22596.    HWND   hwndParent;
  22597.    HWND   hwndInstance;    /* help instance window                 */
  22598.    HDDF   hDdf;            /* DDF handle                           */
  22599.  
  22600.     switch( ulMsg )
  22601.     {
  22602.     case HM_QUERY_DDF_DATA:
  22603.         /* get the help instance */
  22604.         hwndParent = WinQueryWindow( hwnd, QW_PARENT );
  22605.         hwndParent = WinQueryWindow( hwndParent, QW_PARENT );
  22606.         hwndInstance = (HWND)WinSendMsg( hwndParent, HM_QUERY,
  22607.                                  MPFROMSHORT( HMQW_INSTANCE ), NULL );
  22608.  
  22609.         /* Allocate 1K Buffer (default)  */
  22610.         hDdf = DdfInitialize(
  22611.                     hwndInstance,  /* Handle of help instance */
  22612.                     0L,            /* Default buffer size     */
  22613.                     0L             /* Default increment       */
  22614.                     );
  22615.  
  22616.         if (hDdf == NULLHANDLE)       /* Check return code       */
  22617.         {
  22618.            return (MRESULT)FALSE;
  22619.         }
  22620.  
  22621.         /* left justify text when formatting is OFF */
  22622.         if (!DdfSetTextAlign(hDdf, TA_LEFT))
  22623.         {
  22624.            return (MRESULT)FALSE;
  22625.         }
  22626.  
  22627.         /* turn formatting OFF */
  22628.         if (!DdfSetFormat(hDdf, FALSE))
  22629.         {
  22630.            return (MRESULT)FALSE;
  22631.         }
  22632.  
  22633.         if (!DdfText(hDdf,
  22634.                 "Format OFF: This text should be Left Aligned!\n"))
  22635.         {
  22636.            return (MRESULT)FALSE;
  22637.         }
  22638.  
  22639.         return (MRESULT)hDdf;
  22640.      }
  22641.      return WinDefWindowProc( hwnd, ulMsg, mp1, mp2 );
  22642. }
  22643.  
  22644.  
  22645. ΓòÉΓòÉΓòÉ 7.14. DdfSetTextAlign ΓòÉΓòÉΓòÉ
  22646.  
  22647.  
  22648. ΓòÉΓòÉΓòÉ <hidden> Topics - DdfSetTextAlign ΓòÉΓòÉΓòÉ
  22649.  
  22650. Select an item: 
  22651.  
  22652. Function Syntax 
  22653. Parameters 
  22654. Return Values 
  22655. Errors 
  22656. Notes 
  22657. Example 
  22658. Related Functions 
  22659. Glossary 
  22660.  
  22661.  
  22662. ΓòÉΓòÉΓòÉ <hidden> Parameters - DdfSetTextAlign ΓòÉΓòÉΓòÉ
  22663.  
  22664. hddf (HDDF) - input 
  22665.    Handle to DDF returned by DdfInitialize. 
  22666.  
  22667. fAlign (ULONG) - input 
  22668.    Only the following constants may be used: 
  22669.  
  22670.    TA_LEFT        Left-justify text. 
  22671.    TA_RIGHT       Right-justify text. 
  22672.    TA_CENTER      Center text. 
  22673.  
  22674.  
  22675. ΓòÉΓòÉΓòÉ <hidden> Return Values - DdfSetTextAlign ΓòÉΓòÉΓòÉ
  22676.  
  22677. fsuccess (BOOL) - return 
  22678.    Success indicator. 
  22679.  
  22680.    TRUE 
  22681.       Successful completion. 
  22682.  
  22683.    FALSE 
  22684.       Error occurred. 
  22685.  
  22686.  
  22687. ΓòÉΓòÉΓòÉ <hidden> Errors - DdfSetTextAlign ΓòÉΓòÉΓòÉ
  22688.  
  22689. Possible returns from WinGetLastError 
  22690.  
  22691. HMERR_DDF_ALIGN_TYPE 
  22692.    The alignment type is not valid. 
  22693.  
  22694.  
  22695. ΓòÉΓòÉΓòÉ <hidden> Notes - DdfSetTextAlign ΓòÉΓòÉΓòÉ
  22696.  
  22697. It should be called before DdfSetFormat is called to turn off text formatting, 
  22698. and should not be called again until formatting is turned back on.  Note that 
  22699. leading and trailing spaces are not stripped from the text as a result of this 
  22700. alignment. 
  22701.  
  22702.  
  22703. ΓòÉΓòÉΓòÉ <hidden> Syntax - DdfSetTextAlign ΓòÉΓòÉΓòÉ
  22704.  
  22705. /*******************************************/
  22706. /* This function defines whether left,     */
  22707. /* center, or right text justification is  */
  22708. /* to be used when text formatting is off. */
  22709. /*******************************************/
  22710.  
  22711. #define INCL_DDF
  22712. #include <os2.h>
  22713.  
  22714. HDDF   hddf;
  22715. ULONG  fAlign;
  22716. BOOL   fsuccess;  /* Success indicator */
  22717.  
  22718. fsuccess = DdfSetTextAlign(hddf, fAlign);
  22719.  
  22720.  
  22721. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DdfSetTextAlign ΓòÉΓòÉΓòÉ
  22722.  
  22723. Related Functions 
  22724.  
  22725. o DdfBeginList 
  22726. o DdfBitmap 
  22727. o DdfEndList 
  22728. o DdfHyperText 
  22729. o DdfInform 
  22730. o DdfInitialize 
  22731. o DdfListItem 
  22732. o DdfMetafile 
  22733. o DdfPara 
  22734. o DdfSetColor 
  22735. o DdfSetFont 
  22736. o DdfSetFontStyle 
  22737. o DdfSetFormat 
  22738. o DdfText 
  22739.  
  22740.  
  22741. ΓòÉΓòÉΓòÉ <hidden> Example Code - DdfSetTextAlign ΓòÉΓòÉΓòÉ
  22742.  
  22743. After initializing a DDF buffer with DdfInitialize, the example uses 
  22744. DdfSetTextAlign to specify left justified test in the DDF buffer when 
  22745. formatting is OFF.  The example then uses DdfSetFormat to turn off formatting 
  22746. for text in the DDF buffer (corresponds to the IPF lines tag). For a more 
  22747. detailed example and discussion of initializing DDF, see the DdfInitialize 
  22748. sample. 
  22749.  
  22750. #define INCL_WINWINDOWMGR       /* General window management    */
  22751. #define INCL_WINMESSAGEMGR      /* Message management           */
  22752. #define INCL_GPIPRIMITIVES      /* Drawing Primitives/Attributes*/
  22753. #define INCL_DDF                /* Dynamic Data Facility        */
  22754. #include <os2.h>
  22755. #include <pmhelp.h>
  22756.  
  22757.  
  22758. MRESULT WindowProc( HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2 )
  22759. {
  22760.    HWND   hwndParent;
  22761.    HWND   hwndInstance;    /* help instance window                 */
  22762.    HDDF   hDdf;            /* DDF handle                           */
  22763.  
  22764.     switch( ulMsg )
  22765.     {
  22766.     case HM_QUERY_DDF_DATA:
  22767.         /* get the help instance */
  22768.         hwndParent = WinQueryWindow( hwnd, QW_PARENT );
  22769.         hwndParent = WinQueryWindow( hwndParent, QW_PARENT );
  22770.         hwndInstance = (HWND)WinSendMsg( hwndParent, HM_QUERY,
  22771.                                  MPFROMSHORT( HMQW_INSTANCE ), NULL );
  22772.  
  22773.         /* Allocate 1K Buffer (default)  */
  22774.         hDdf = DdfInitialize(
  22775.                     hwndInstance,  /* Handle of help instance */
  22776.                     0L,            /* Default buffer size     */
  22777.                     0L             /* Default increment       */
  22778.                     );
  22779.  
  22780.         if (hDdf == NULLHANDLE)       /* Check return code       */
  22781.         {
  22782.            return (MRESULT)FALSE;
  22783.         }
  22784.  
  22785.         /* left justify text when formatting is OFF */
  22786.         if (!DdfSetTextAlign(hDdf, TA_LEFT))
  22787.         {
  22788.            return (MRESULT)FALSE;
  22789.         }
  22790.  
  22791.         /* turn formatting OFF */
  22792.         if (!DdfSetFormat(hDdf, FALSE))
  22793.         {
  22794.            return (MRESULT)FALSE;
  22795.         }
  22796.  
  22797.         if (!DdfText(hDdf,
  22798.                 "Format OFF: This text should be Left Aligned!\n"))
  22799.         {
  22800.            return (MRESULT)FALSE;
  22801.         }
  22802.  
  22803.         return (MRESULT)hDdf;
  22804.      }
  22805.      return WinDefWindowProc( hwnd, ulMsg, mp1, mp2 );
  22806. }
  22807.  
  22808.  
  22809. ΓòÉΓòÉΓòÉ 7.15. DdfText ΓòÉΓòÉΓòÉ
  22810.  
  22811.  
  22812. ΓòÉΓòÉΓòÉ <hidden> Topics - DdfText ΓòÉΓòÉΓòÉ
  22813.  
  22814. Select an item: 
  22815.  
  22816. Function Syntax 
  22817. Parameters 
  22818. Return Values 
  22819. Example 
  22820. Related Functions 
  22821. Glossary 
  22822.  
  22823.  
  22824. ΓòÉΓòÉΓòÉ <hidden> Parameters - DdfText ΓòÉΓòÉΓòÉ
  22825.  
  22826. hddf (HDDF) - input 
  22827.    Handle to DDF returned by DdfInitialize. 
  22828.  
  22829. pText (PSZ) - input 
  22830.    Pointer to the text buffer to be formatted. 
  22831.  
  22832.    Note:  There is a 3-byte ESC code overhead in the DDF internal buffer for 
  22833.           each word in the text buffer.  There is a 1-byte ESC code overhead 
  22834.           for each blank and for each newline character.
  22835.  
  22836.  
  22837. ΓòÉΓòÉΓòÉ <hidden> Return Values - DdfText ΓòÉΓòÉΓòÉ
  22838.  
  22839. fsuccess (BOOL) - return 
  22840.    Success indicator. 
  22841.  
  22842.    TRUE 
  22843.       Successful completion. 
  22844.  
  22845.    FALSE 
  22846.       Error occurred. 
  22847.  
  22848.  
  22849. ΓòÉΓòÉΓòÉ <hidden> Syntax - DdfText ΓòÉΓòÉΓòÉ
  22850.  
  22851. /*******************************************/
  22852. /* This function adds text to the DDF      */
  22853. /* buffer.                                 */
  22854. /*******************************************/
  22855.  
  22856. #define INCL_DDF
  22857. #include <os2.h>
  22858.  
  22859. HDDF  hddf;
  22860. PSZ   pText;
  22861. BOOL  fsuccess; /* Success indicator */
  22862.  
  22863. fsuccess = DdfText(hddf, pText);
  22864.  
  22865.  
  22866. ΓòÉΓòÉΓòÉ <hidden> Related Functions - DdfText ΓòÉΓòÉΓòÉ
  22867.  
  22868. Related Functions 
  22869.  
  22870. o DdfBeginList 
  22871. o DdfBitmap 
  22872. o DdfEndList 
  22873. o DdfHyperText 
  22874. o DdfInform 
  22875. o DdfInitialize 
  22876. o DdfListItem 
  22877. o DdfMetafile 
  22878. o DdfPara 
  22879. o DdfSetColor 
  22880. o DdfSetFont 
  22881. o DdfSetFontStyle 
  22882. o DdfSetFormat 
  22883. o DdfSetTextAlign 
  22884.  
  22885.  
  22886. ΓòÉΓòÉΓòÉ <hidden> Example Code - DdfText ΓòÉΓòÉΓòÉ
  22887.  
  22888. After initializing a DDF buffer with DdfInitialize, the example uses DdfPara to 
  22889. start a new paragraph, DdfSetFont and DdfSetFontStyle to have the text 
  22890. displayed in a large, bold Courier font, DdfSetColor to change the text color, 
  22891. and DdfText to place text in the buffer.  For a more detailed example and 
  22892. discussion of initializing DDF, see the DdfInitialize sample. 
  22893.  
  22894. #define INCL_WINWINDOWMGR       /* General window management    */
  22895. #define INCL_WINMESSAGEMGR      /* Message management           */
  22896. #define INCL_DDF                /* Dynamic Data Facility        */
  22897. #include <os2.h>
  22898. #include <pmhelp.h>
  22899.  
  22900.  
  22901. MRESULT WindowProc( HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2 )
  22902. {
  22903.    HWND   hwndParent;
  22904.    HWND   hwndInstance;    /* help instance window                 */
  22905.    HDDF   hDdf;            /* DDF handle                           */
  22906.  
  22907.     switch( ulMsg )
  22908.     {
  22909.     case HM_QUERY_DDF_DATA:
  22910.         /* get the help instance */
  22911.         hwndParent = WinQueryWindow( hwnd, QW_PARENT );
  22912.         hwndParent = WinQueryWindow( hwndParent, QW_PARENT );
  22913.         hwndInstance = (HWND)WinSendMsg( hwndParent, HM_QUERY,
  22914.                                  MPFROMSHORT( HMQW_INSTANCE ), NULL );
  22915.  
  22916.         /* Allocate 1K Buffer (default)  */
  22917.         hDdf = DdfInitialize(
  22918.                     hwndInstance,  /* Handle of help instance */
  22919.                     0L,            /* Default buffer size     */
  22920.                     0L             /* Default increment       */
  22921.                     );
  22922.  
  22923.         if (hDdf == NULLHANDLE)       /* Check return code       */
  22924.         {
  22925.             return (MRESULT)FALSE;
  22926.         }
  22927.  
  22928.         /* create paragraph in DDF buffer */
  22929.         if( !DdfPara( hDdf ) )
  22930.         {
  22931.            return (MRESULT)FALSE;
  22932.         }
  22933.  
  22934.         /* Change to large (100 x 100 dimensions) Courier font */
  22935.         if( !DdfSetFont( hDdf, "Courier", 100L, 100L ) )
  22936.         {
  22937.            return (MRESULT)FALSE;
  22938.         }
  22939.  
  22940.         /* make the font BOLDFACE */
  22941.         if( !DdfSetFontStyle( hDdf, FM_SEL_BOLD ) )
  22942.         {
  22943.            return (MRESULT)FALSE;
  22944.         }
  22945.  
  22946.         /* make the text display as BLUE on a PALE GRAY background */
  22947.         if( !DdfSetColor( hDdf, CLR_PALEGRAY, CLR_BLUE ) )
  22948.         {
  22949.            return (MRESULT)FALSE;
  22950.         }
  22951.  
  22952.         /* Write data into the buffer */
  22953.         if (!DdfText(hDdf, "Sample Text"))
  22954.         {
  22955.            return (MRESULT)FALSE;
  22956.         }
  22957.  
  22958.         return (MRESULT)hDdf;
  22959.     }
  22960.     return WinDefWindowProc( hwnd, ulMsg, mp1, mp2 );
  22961. }
  22962.  
  22963.  
  22964. ΓòÉΓòÉΓòÉ 8. Errors ΓòÉΓòÉΓòÉ
  22965.  
  22966. Error codes are furnished numerically and alphabetically. 
  22967.  
  22968. o For a listing of error codes by number, see Error Number and Name. 
  22969.  
  22970. o For a listing of error codes and their explanations, see Error Name and 
  22971.   Explanation. 
  22972.  
  22973.  
  22974. ΓòÉΓòÉΓòÉ 8.1. Error Number and Name ΓòÉΓòÉΓòÉ
  22975.  
  22976. This section lists PM errors returned by WinGetLastError in order of their 
  22977. error numbers. For explanations of these errors, see Error Name and 
  22978. Explanation. 
  22979.  
  22980. Error Number   Error Constant 
  22981. 0x0000         PMERR_OK 
  22982. 0x1001         HMERR_NO_FRAME_WND_IN_CHAIN 
  22983. 0x1001         PMERR_INVALID_HWND 
  22984. 0x1002         HMERR_INVALID_ASSOC_APP_WND 
  22985. 0x1002         PMERR_INVALID_HMQ 
  22986. 0x1003         HMERR_INVALID_ASSOC_HELP_INST 
  22987. 0x1003         PMERR_PARAMETER_OUT_OF_RANGE 
  22988. 0x1004         HMERR_INVALID_DESTROY_HELP_INST 
  22989. 0x1004         PMERR_WINDOW_LOCK_UNDERFLOW 
  22990. 0x1005         HMERR_NO_HELP_INST_IN_CHAIN 
  22991. 0x1005         PMERR_WINDOW_LOCK_OVERFLOW 
  22992. 0x1006         HMERR_INVALID_HELP_INSTANCE_HDL 
  22993. 0x1006         PMERR_BAD_WINDOW_LOCK_COUNT 
  22994. 0x1007         HMERR_INVALID_QUERY_APP_WND 
  22995. 0x1007         PMERR_WINDOW_NOT_LOCKED 
  22996. 0x1008         HMERR_HELP_INST_CALLED_INVALID 
  22997. 0x1008         PMERR_INVALID_SELECTOR 
  22998. 0x1009         HMERR_HELPTABLE_UNDEFINE 
  22999. 0x1009         PMERR_CALL_FROM_WRONG_THREAD 
  23000. 0x100A         HMERR_HELP_INSTANCE_UNDEFINE 
  23001. 0x100A         PMERR_RESOURCE_NOT_FOUND 
  23002. 0x100B         HMERR_HELPITEM_NOT_FOUND 
  23003. 0x100B         PMERR_INVALID_STRING_PARM 
  23004. 0x100C         HMERR_INVALID_HELPSUBITEM_SIZE 
  23005. 0x100C         PMERR_INVALID_HHEAP 
  23006. 0x100D         HMERR_HELPSUBITEM_NOT_FOUND 
  23007. 0x100D         PMERR_INVALID_HEAP_POINTER 
  23008. 0x100E         PMERR_INVALID_HEAP_SIZE_PARM 
  23009. 0x100F         PMERR_INVALID_HEAP_SIZE 
  23010. 0x1010         PMERR_INVALID_HEAP_SIZE_WORD 
  23011. 0x1011         PMERR_HEAP_OUT_OF_MEMORY 
  23012. 0x1012         PMERR_HEAP_MAX_SIZE_REACHED 
  23013. 0x1013         PMERR_INVALID_HATOMTBL 
  23014. 0x1014         PMERR_INVALID_ATOM 
  23015. 0x1015         PMERR_INVALID_ATOM_NAME 
  23016. 0x1016         PMERR_INVALID_INTEGER_ATOM 
  23017. 0x1017         PMERR_ATOM_NAME_NOT_FOUND 
  23018. 0x1018         PMERR_QUEUE_TOO_LARGE 
  23019. 0x1019         PMERR_INVALID_FLAG 
  23020. 0x101A         PMERR_INVALID_HACCEL 
  23021. 0x101B         PMERR_INVALID_HPTR 
  23022. 0x101C         PMERR_INVALID_HENUM 
  23023. 0x101D         PMERR_INVALID_SRC_CODEPAGE 
  23024. 0x101E         PMERR_INVALID_DST_CODEPAGE 
  23025. 0x101F         PMERR_UNKNOWN_COMPONENT_ID 
  23026. 0x1020         PMERR_UNKNOWN_ERROR_CODE 
  23027. 0x1021         PMERR_SEVERITY_LEVELS 
  23028. 0x1034         PMERR_INVALID_RESOURCE_FORMAT 
  23029. 0x1036         PMERR_NO_MSG_QUEUE 
  23030. 0x1037         PMERR_WIN_DEBUGMSG 
  23031. 0x1038         PMERR_QUEUE_FULL 
  23032. 0x1039         PMERR_LIBRARY_LOAD_FAILED 
  23033. 0x103A         PMERR_PROCEDURE_LOAD_FAILED 
  23034. 0x103B         PMERR_LIBRARY_DELETE_FAILED 
  23035. 0x103C         PMERR_PROCEDURE_DELETE_FAILED 
  23036. 0x103D         PMERR_ARRAY_TOO_LARGE 
  23037. 0x103E         PMERR_ARRAY_TOO_SMALL 
  23038. 0x103F         PMERR_DATATYPE_ENTRY_BAD_INDEX 
  23039. 0x1040         PMERR_DATATYPE_ENTRY_CTL_BAD 
  23040. 0x1041         PMERR_DATATYPE_ENTRY_CTL_MISS 
  23041. 0x1042         PMERR_DATATYPE_ENTRY_INVALID 
  23042. 0x1043         PMERR_DATATYPE_ENTRY_NOT_NUM 
  23043. 0x1044         PMERR_DATATYPE_ENTRY_NOT_OFF 
  23044. 0x1045         PMERR_DATATYPE_INVALID 
  23045. 0x1046         PMERR_DATATYPE_NOT_UNIQUE 
  23046. 0x1047         PMERR_DATATYPE_TOO_LONG 
  23047. 0x1048         PMERR_DATATYPE_TOO_SMALL 
  23048. 0x1049         PMERR_DIRECTION_INVALID 
  23049. 0x104A         PMERR_INVALID_HAB 
  23050. 0x104D         PMERR_INVALID_HSTRUCT 
  23051. 0x104E         PMERR_LENGTH_TOO_SMALL 
  23052. 0x104F         PMERR_MSGID_TOO_SMALL 
  23053. 0x1050         PMERR_NO_HANDLE_ALLOC 
  23054. 0x1051         PMERR_NOT_IN_A_PM_SESSION 
  23055. 0x1052         PMERR_MSG_QUEUE_ALREADY_EXISTS 
  23056. 0x1101         PMERR_INVALID_PIB 
  23057. 0x1102         PMERR_INSUFF_SPACE_TO_ADD 
  23058. 0x1103         PMERR_INVALID_GROUP_HANDLE 
  23059. 0x1104         PMERR_DUPLICATE_TITLE 
  23060. 0x1105         PMERR_INVALID_TITLE 
  23061. 0x1107         PMERR_HANDLE_NOT_IN_GROUP 
  23062. 0x1106         PMERR_INVALID_TARGET_HANDLE 
  23063. 0x1108         PMERR_INVALID_PATH_STATEMENT 
  23064. 0x1109         PMERR_NO_PROGRAM_FOUND 
  23065. 0x110A         PMERR_INVALID_BUFFER_SIZE 
  23066. 0x110B         PMERR_BUFFER_TOO_SMALL 
  23067. 0x110C         PMERR_PL_INITIALISATION_FAIL 
  23068. 0x110D         PMERR_CANT_DESTROY_SYS_GROUP 
  23069. 0x110E         PMERR_INVALID_TYPE_CHANGE 
  23070. 0x110F         PMERR_INVALID_PROGRAM_HANDLE 
  23071. 0x1110         PMERR_NOT_CURRENT_PL_VERSION 
  23072. 0x1111         PMERR_INVALID_CIRCULAR_REF 
  23073. 0x1112         PMERR_MEMORY_ALLOCATION_ERR 
  23074. 0x1113         PMERR_MEMORY_DEALLOCATION_ERR 
  23075. 0x1114         PMERR_TASK_HEADER_TOO_BIG 
  23076. 0x1115         PMERR_INVALID_INI_FILE_HANDLE 
  23077. 0x1116         PMERR_MEMORY_SHARE 
  23078. 0x1117         PMERR_OPEN_QUEUE 
  23079. 0x1118         PMERR_CREATE_QUEUE 
  23080. 0x1119         PMERR_WRITE_QUEUE 
  23081. 0x111A         PMERR_READ_QUEUE 
  23082. 0x111B         PMERR_CALL_NOT_EXECUTED 
  23083. 0x111C         PMERR_UNKNOWN_APIPKT 
  23084. 0x111D         PMERR_INITHREAD_EXISTS 
  23085. 0x111E         PMERR_CREATE_THREAD 
  23086. 0x111F         PMERR_NO_HK_PROFILE_INSTALLED 
  23087. 0x1120         PMERR_INVALID_DIRECTORY 
  23088. 0x1121         PMERR_WILDCARD_IN_FILENAME 
  23089. 0x1122         PMERR_FILENAME_BUFFER_FULL 
  23090. 0x1123         PMERR_FILENAME_TOO_LONG 
  23091. 0x1124         PMERR_INI_FILE_IS_SYS_OR_USER 
  23092. 0x1125         PMERR_BROADCAST_PLMSG 
  23093. 0x1126         PMERR_190_INIT_DONE 
  23094. 0x1127         PMERR_HMOD_FOR_PMSHAPI 
  23095. 0x1128         PMERR_SET_HK_PROFILE 
  23096. 0x1129         PMERR_API_NOT_ALLOWED 
  23097. 0x112A         PMERR_INI_STILL_OPEN 
  23098. 0x112B         PMERR_PROGDETAILS_NOT_IN_INI 
  23099. 0x112C         PMERR_PIBSTRUCT_NOT_IN_INI 
  23100. 0x112D         PMERR_INVALID_DISKPROGDETAILS 
  23101. 0x112E         PMERR_PROGDETAILS_READ_FAILURE 
  23102. 0x112F         PMERR_PROGDETAILS_WRITE_FAILURE 
  23103. 0x1130         PMERR_PROGDETAILS_QSIZE_FAILURE 
  23104. 0x1131         PMERR_INVALID_PROGDETAILS 
  23105. 0x1132         PMERR_SHEPROFILEHOOK_NOT_FOUND 
  23106. 0x1133         PMERR_190PLCONVERTED 
  23107. 0x1134         PMERR_FAILED_TO_CONVERT_INI_PL 
  23108. 0x1135         PMERR_PMSHAPI_NOT_INITIALISED 
  23109. 0x1136         PMERR_INVALID_SHELL_API_HOOK_ID 
  23110. 0x1200         PMERR_DOS_ERROR 
  23111. 0x1201         PMERR_NO_SPACE 
  23112. 0x1202         PMERR_INVALID_SWITCH_HANDLE 
  23113. 0x1203         PMERR_NO_HANDLE 
  23114. 0x1204         PMERR_INVALID_PROCESS_ID 
  23115. 0x1205         PMERR_NOT_SHELL 
  23116. 0x1206         PMERR_INVALID_WINDOW 
  23117. 0x1207         PMERR_INVALID_POST_MSG 
  23118. 0x1208         PMERR_INVALID_PARAMETERS 
  23119. 0x1209         PMERR_INVALID_PROGRAM_TYPE 
  23120. 0x120A         PMERR_NOT_EXTENDED_FOCUS 
  23121. 0x120B         PMERR_INVALID_SESSION_ID 
  23122. 0x120C         PMERR_SMG_INVALID_ICON_FILE 
  23123. 0x120D         PMERR_SMG_ICON_NOT_CREATED 
  23124. 0x120E         PMERR_SHL_DEBUG 
  23125. 0x1301         PMERR_OPENING_INI_FILE 
  23126. 0x1302         PMERR_INI_FILE_CORRUPT 
  23127. 0x1303         PMERR_INVALID_PARM 
  23128. 0x1304         PMERR_NOT_IN_IDX 
  23129. 0x1305         PMERR_NO_ENTRIES_IN_GROUP 
  23130. 0x1306         PMERR_INI_WRITE_FAIL 
  23131. 0x1307         PMERR_IDX_FULL 
  23132. 0x1308         PMERR_INI_PROTECTED 
  23133. 0x1309         PMERR_MEMORY_ALLOC 
  23134. 0x130A         PMERR_INI_INIT_ALREADY_DONE 
  23135. 0x130B         PMERR_INVALID_INTEGER 
  23136. 0x130C         PMERR_INVALID_ASCIIZ 
  23137. 0x130D         PMERR_CAN_NOT_CALL_SPOOLER 
  23138. 0x130D         PMERR_VALIDATION_REJECTED 
  23139. 0x1401         PMERR_WARNING_WINDOW_NOT_KILLED 
  23140. 0x1402         PMERR_ERROR_INVALID_WINDOW 
  23141. 0x1403         PMERR_ALREADY_INITIALIZED 
  23142. 0x1405         PMERR_MSG_PROG_NO_MOU 
  23143. 0x1406         PMERR_MSG_PROG_NON_RECOV 
  23144. 0x1407         PMERR_WINCONV_INVALID_PATH 
  23145. 0x1408         PMERR_PI_NOT_INITIALISED 
  23146. 0x1409         PMERR_PL_NOT_INITIALISED 
  23147. 0x140A         PMERR_NO_TASK_MANAGER 
  23148. 0x140B         PMERR_SAVE_NOT_IN_PROGRESS 
  23149. 0x140C         PMERR_NO_STACK_SPACE 
  23150. 0x140d         PMERR_INVALID_COLR_FIELD 
  23151. 0x140e         PMERR_INVALID_COLR_VALUE 
  23152. 0x140f         PMERR_COLR_WRITE 
  23153. 0x1501         PMERR_TARGET_FILE_EXISTS 
  23154. 0x1502         PMERR_SOURCE_SAME_AS_TARGET 
  23155. 0x1503         PMERR_SOURCE_FILE_NOT_FOUND 
  23156. 0x1504         PMERR_INVALID_NEW_PATH 
  23157. 0x1505         PMERR_TARGET_FILE_NOT_FOUND 
  23158. 0x1506         PMERR_INVALID_DRIVE_NUMBER 
  23159. 0x1507         PMERR_NAME_TOO_LONG 
  23160. 0x1508         PMERR_NOT_ENOUGH_ROOM_ON_DISK 
  23161. 0x1509         PMERR_NOT_ENOUGH_MEM 
  23162. 0x150B         PMERR_LOG_DRV_DOES_NOT_EXIST 
  23163. 0x150C         PMERR_INVALID_DRIVE 
  23164. 0x150D         PMERR_ACCESS_DENIED 
  23165. 0x150E         PMERR_NO_FIRST_SLASH 
  23166. 0x150F         PMERR_READ_ONLY_FILE 
  23167. 0x151F         PMERR_GROUP_PROTECTED 
  23168. 0x152F         PMERR_INVALID_PROGRAM_CATEGORY 
  23169. 0x1530         PMERR_INVALID_APPL 
  23170. 0x1531         PMERR_CANNOT_START 
  23171. 0x1532         PMERR_STARTED_IN_BACKGROUND 
  23172. 0x1533         PMERR_INVALID_HAPP 
  23173. 0x1534         PMERR_CANNOT_STOP 
  23174. 0x1601         PMERR_INTERNAL_ERROR_1 
  23175. 0x1602         PMERR_INTERNAL_ERROR_2 
  23176. 0x1603         PMERR_INTERNAL_ERROR_3 
  23177. 0x1604         PMERR_INTERNAL_ERROR_4 
  23178. 0x1605         PMERR_INTERNAL_ERROR_5 
  23179. 0x1606         PMERR_INTERNAL_ERROR_6 
  23180. 0x1607         PMERR_INTERNAL_ERROR_7 
  23181. 0x1608         PMERR_INTERNAL_ERROR_8 
  23182. 0x1609         PMERR_INTERNAL_ERROR_9 
  23183. 0x160A         PMERR_INTERNAL_ERROR_10 
  23184. 0x160B         PMERR_INTERNAL_ERROR_11 
  23185. 0x160C         PMERR_INTERNAL_ERROR_12 
  23186. 0x160D         PMERR_INTERNAL_ERROR_13 
  23187. 0x160E         PMERR_INTERNAL_ERROR_14 
  23188. 0x160F         PMERR_INTERNAL_ERROR_15 
  23189. 0x1610         PMERR_INTERNAL_ERROR_16 
  23190. 0x1611         PMERR_INTERNAL_ERROR_17 
  23191. 0x1612         PMERR_INTERNAL_ERROR_18 
  23192. 0x1613         PMERR_INTERNAL_ERROR_19 
  23193. 0x1614         PMERR_INTERNAL_ERROR_20 
  23194. 0x1615         PMERR_INTERNAL_ERROR_21 
  23195. 0x1616         PMERR_INTERNAL_ERROR_22 
  23196. 0x1617         PMERR_INTERNAL_ERROR_23 
  23197. 0x1618         PMERR_INTERNAL_ERROR_24 
  23198. 0x1619         PMERR_INTERNAL_ERROR_25 
  23199. 0x161A         PMERR_INTERNAL_ERROR_26 
  23200. 0x161B         PMERR_INTERNAL_ERROR_27 
  23201. 0x161C         PMERR_INTERNAL_ERROR_28 
  23202. 0x161D         PMERR_INTERNAL_ERROR_29 
  23203. 0x1630         PMERR_INVALID_FREE_MESSAGE_ID 
  23204. 0x1641         PMERR_FUNCTION_NOT_SUPPORTED 
  23205. 0x1642         PMERR_INVALID_ARRAY_COUNT 
  23206. 0x1643         PMERR_INVALID_LENGTH 
  23207. 0x1644         PMERR_INVALID_BUNDLE_TYPE 
  23208. 0x1645         PMERR_INVALID_PARAMETER 
  23209. 0x1646         PMERR_INVALID_NUMBER_OF_PARMS 
  23210. 0x1647         PMERR_GREATER_THAN_64K 
  23211. 0x1648         PMERR_INVALID_PARAMETER_TYPE 
  23212. 0x1649         PMERR_NEGATIVE_STRCOND_DIM 
  23213. 0x164A         PMERR_INVALID_NUMBER_OF_TYPES 
  23214. 0x164B         PMERR_INCORRECT_HSTRUCT 
  23215. 0x164C         PMERR_INVALID_ARRAY_SIZE 
  23216. 0x164D         PMERR_INVALID_CONTROL_DATATYPE 
  23217. 0x164E         PMERR_INCOMPLETE_CONTROL_SEQU 
  23218. 0x164F         PMERR_INVALID_DATATYPE 
  23219. 0x1650         PMERR_INCORRECT_DATATYPE 
  23220. 0x1651         PMERR_NOT_SELF_DESCRIBING_DTYP 
  23221. 0x1652         PMERR_INVALID_CTRL_SEQ_INDEX 
  23222. 0x1653         PMERR_INVALID_TYPE_FOR_LENGTH 
  23223. 0x1654         PMERR_INVALID_TYPE_FOR_OFFSET 
  23224. 0x1655         PMERR_INVALID_TYPE_FOR_MPARAM 
  23225. 0x1656         PMERR_INVALID_MESSAGE_ID 
  23226. 0x1657         PMERR_C_LENGTH_TOO_SMALL 
  23227. 0x1658         PMERR_APPL_STRUCTURE_TOO_SMALL 
  23228. 0x1659         PMERR_INVALID_ERRORINFO_HANDLE 
  23229. 0x165A         PMERR_INVALID_CHARACTER_INDEX 
  23230. 0x2001         HMERR_INDEX_NOT_FOUND 
  23231. 0x2001         PMERR_ALREADY_IN_AREA 
  23232. 0x2002         HMERR_CONTENT_NOT_FOUND 
  23233. 0x2002         PMERR_ALREADY_IN_ELEMENT 
  23234. 0x2003         HMERR_OPEN_LIB_FILE 
  23235. 0x2003         PMERR_ALREADY_IN_PATH 
  23236. 0x2004         HMERR_READ_LIB_FILE 
  23237. 0x2004         PMERR_ALREADY_IN_SEG 
  23238. 0x2005         HMERR_CLOSE_LIB_FILE 
  23239. 0x2005         PMERR_AREA_INCOMPLETE 
  23240. 0x2006         HMERR_INVALID_LIB_FILE 
  23241. 0x2006         PMERR_BASE_ERROR 
  23242. 0x2007         HMERR_NO_MEMORY 
  23243. 0x2007         PMERR_BITBLT_LENGTH_EXCEEDED 
  23244. 0x2008         HMERR_ALLOCATE_SEGMENT 
  23245. 0x2008         PMERR_BITMAP_IN_USE 
  23246. 0x2009         HMERR_FREE_MEMORY 
  23247. 0x2009         PMERR_BITMAP_IS_SELECTED 
  23248. 0x200A         PMERR_BITMAP_NOT_FOUND 
  23249. 0x200B         PMERR_BITMAP_NOT_SELECTED 
  23250. 0x200C         PMERR_BOUNDS_OVERFLOW 
  23251. 0x200D         PMERR_CALLED_SEG_IS_CHAINED 
  23252. 0x200E         PMERR_CALLED_SEG_IS_CURRENT 
  23253. 0x200F         PMERR_CALLED_SEG_NOT_FOUND 
  23254. 0x2010         HMERR_PANEL_NOT_FOUND 
  23255. 0x2010         PMERR_CANNOT_DELETE_ALL_DATA 
  23256. 0x2011         HMERR_DATABASE_NOT_OPEN 
  23257. 0x2011         PMERR_CANNOT_REPLACE_ELEMENT_0 
  23258. 0x2012         PMERR_COL_TABLE_NOT_REALIZABLE 
  23259. 0x2013         HMERR_LOAD_DLL 
  23260. 0x2013         PMERR_COL_TABLE_NOT_REALIZED 
  23261. 0x2014         PMERR_COORDINATE_OVERFLOW 
  23262. 0x2015         PMERR_CORR_FORMAT_MISMATCH 
  23263. 0x2016         PMERR_DATA_TOO_LONG 
  23264. 0x2017         PMERR_DC_IS_ASSOCIATED 
  23265. 0x2018         PMERR_DESC_STRING_TRUNCATED 
  23266. 0x2019         PMERR_DEVICE_DRIVER_ERROR_1 
  23267. 0x201A         PMERR_DEVICE_DRIVER_ERROR_2 
  23268. 0x201B         PMERR_DEVICE_DRIVER_ERROR_3 
  23269. 0x201C         PMERR_DEVICE_DRIVER_ERROR_4 
  23270. 0x201D         PMERR_DEVICE_DRIVER_ERROR_5 
  23271. 0x201E         PMERR_DEVICE_DRIVER_ERROR_6 
  23272. 0x201F         PMERR_DEVICE_DRIVER_ERROR_7 
  23273. 0x2020         PMERR_DEVICE_DRIVER_ERROR_8 
  23274. 0x2021         PMERR_DEVICE_DRIVER_ERROR_9 
  23275. 0x2022         PMERR_DEVICE_DRIVER_ERROR_10 
  23276. 0x2023         PMERR_DEV_FUNC_NOT_INSTALLED 
  23277. 0x2024         PMERR_DOSOPEN_FAILURE 
  23278. 0x2025         PMERR_DOSREAD_FAILURE 
  23279. 0x2026         PMERR_DRIVER_NOT_FOUND 
  23280. 0x2027         PMERR_DUP_SEG 
  23281. 0x2028         PMERR_DYNAMIC_SEG_SEQ_ERROR 
  23282. 0x2029         PMERR_DYNAMIC_SEG_ZERO_INV 
  23283. 0x202A         PMERR_ELEMENT_INCOMPLETE 
  23284. 0x202B         PMERR_ESC_CODE_NOT_SUPPORTED 
  23285. 0x202C         PMERR_EXCEEDS_MAX_SEG_LENGTH 
  23286. 0x202D         PMERR_FONT_AND_MODE_MISMATCH 
  23287. 0x202E         PMERR_FONT_FILE_NOT_LOADED 
  23288. 0x202F         PMERR_FONT_NOT_LOADED 
  23289. 0x2030         PMERR_FONT_TOO_BIG 
  23290. 0x2031         PMERR_HARDWARE_INIT_FAILURE 
  23291. 0x2032         PMERR_HBITMAP_BUSY 
  23292. 0x2033         PMERR_HDC_BUSY 
  23293. 0x2034         PMERR_HRGN_BUSY 
  23294. 0x2035         PMERR_HUGE_FONTS_NOT_SUPPORTED 
  23295. 0x2036         PMERR_ID_HAS_NO_BITMAP 
  23296. 0x2037         PMERR_IMAGE_INCOMPLETE 
  23297. 0x2038         PMERR_INCOMPAT_COLOR_FORMAT 
  23298. 0x2039         PMERR_INCOMPAT_COLOR_OPTIONS 
  23299. 0x203A         PMERR_INCOMPATIBLE_BITMAP 
  23300. 0x203B         PMERR_INCOMPATIBLE_METAFILE 
  23301. 0x203C         PMERR_INCORRECT_DC_TYPE 
  23302. 0x203D         PMERR_INSUFFICIENT_DISK_SPACE 
  23303. 0x203E         PMERR_INSUFFICIENT_MEMORY 
  23304. 0x203F         PMERR_INV_ANGLE_PARM 
  23305. 0x2040         PMERR_INV_ARC_CONTROL 
  23306. 0x2041         PMERR_INV_AREA_CONTROL 
  23307. 0x2042         PMERR_INV_ARC_POINTS 
  23308. 0x2043         PMERR_INV_ATTR_MODE 
  23309. 0x2044         PMERR_INV_BACKGROUND_COL_ATTR 
  23310. 0x2045         PMERR_INV_BACKGROUND_MIX_ATTR 
  23311. 0x2046         PMERR_INV_BITBLT_MIX 
  23312. 0x2047         PMERR_INV_BITBLT_STYLE 
  23313. 0x2048         PMERR_INV_BITMAP_DIMENSION 
  23314. 0x2049         PMERR_INV_BOX_CONTROL 
  23315. 0x204A         PMERR_INV_BOX_ROUNDING_PARM 
  23316. 0x204B         PMERR_INV_CHAR_ANGLE_ATTR 
  23317. 0x204C         PMERR_INV_CHAR_DIRECTION_ATTR 
  23318. 0x204D         PMERR_INV_CHAR_MODE_ATTR 
  23319. 0x204E         PMERR_INV_CHAR_POS_OPTIONS 
  23320. 0x204F         PMERR_INV_CHAR_SET_ATTR 
  23321. 0x2050         PMERR_INV_CHAR_SHEAR_ATTR 
  23322. 0x2051         PMERR_INV_CLIP_PATH_OPTIONS 
  23323. 0x2052         PMERR_INV_CODEPAGE 
  23324. 0x2053         PMERR_INV_COLOR_ATTR 
  23325. 0x2054         PMERR_INV_COLOR_DATA 
  23326. 0x2055         PMERR_INV_COLOR_FORMAT 
  23327. 0x2056         PMERR_INV_COLOR_INDEX 
  23328. 0x2057         PMERR_INV_COLOR_OPTIONS 
  23329. 0x2058         PMERR_INV_COLOR_START_INDEX 
  23330. 0x2059         PMERR_INV_COORD_OFFSET 
  23331. 0x205A         PMERR_INV_COORD_SPACE 
  23332. 0x205B         PMERR_INV_COORDINATE 
  23333. 0x205C         PMERR_INV_CORRELATE_DEPTH 
  23334. 0x205D         PMERR_INV_CORRELATE_TYPE 
  23335. 0x205E         PMERR_INV_CURSOR_BITMAP 
  23336. 0x205F         PMERR_INV_DC_DATA 
  23337. 0x2060         PMERR_INV_DC_TYPE 
  23338. 0x2061         PMERR_INV_DEVICE_NAME 
  23339. 0x2062         PMERR_INV_DEV_MODES_OPTIONS 
  23340. 0x2063         PMERR_INV_DRAW_CONTROL 
  23341. 0x2064         PMERR_INV_DRAW_VALUE 
  23342. 0x2065         PMERR_INV_DRAWING_MODE 
  23343. 0x2066         PMERR_INV_DRIVER_DATA 
  23344. 0x2067         PMERR_INV_DRIVER_NAME 
  23345. 0x2068         PMERR_INV_DRAW_BORDER_OPTION 
  23346. 0x2069         PMERR_INV_EDIT_MODE 
  23347. 0x206A         PMERR_INV_ELEMENT_OFFSET 
  23348. 0x206B         PMERR_INV_ELEMENT_POINTER 
  23349. 0x206C         PMERR_INV_END_PATH_OPTIONS 
  23350. 0x206D         PMERR_INV_ESC_CODE 
  23351. 0x206E         PMERR_INV_ESCAPE_DATA 
  23352. 0x206F         PMERR_INV_EXTENDED_LCID 
  23353. 0x2070         PMERR_INV_FILL_PATH_OPTIONS 
  23354. 0x2071         PMERR_INV_FIRST_CHAR 
  23355. 0x2072         PMERR_INV_FONT_ATTRS 
  23356. 0x2073         PMERR_INV_FONT_FILE_DATA 
  23357. 0x2074         PMERR_INV_FOR_THIS_DC_TYPE 
  23358. 0x2075         PMERR_INV_FORMAT_CONTROL 
  23359. 0x2076         PMERR_INV_FORMS_CODE 
  23360. 0x2077         PMERR_INV_FONTDEF 
  23361. 0x2078         PMERR_INV_GEOM_LINE_WIDTH_ATTR 
  23362. 0x2079         PMERR_INV_GETDATA_CONTROL 
  23363. 0x207A         PMERR_INV_GRAPHICS_FIELD 
  23364. 0x207B         PMERR_INV_HBITMAP 
  23365. 0x207C         PMERR_INV_HDC 
  23366. 0x207D         PMERR_INV_HJOURNAL 
  23367. 0x207E         PMERR_INV_HMF 
  23368. 0x207F         PMERR_INV_HPS 
  23369. 0x2080         PMERR_INV_HRGN 
  23370. 0x2081         PMERR_INV_ID 
  23371. 0x2082         PMERR_INV_IMAGE_DATA_LENGTH 
  23372. 0x2083         PMERR_INV_IMAGE_DIMENSION 
  23373. 0x2084         PMERR_INV_IMAGE_FORMAT 
  23374. 0x2085         PMERR_INV_IN_AREA 
  23375. 0x2086         PMERR_INV_IN_CALLED_SEG 
  23376. 0x2087         PMERR_INV_IN_CURRENT_EDIT_MODE 
  23377. 0x2088         PMERR_INV_IN_DRAW_MODE 
  23378. 0x2089         PMERR_INV_IN_ELEMENT 
  23379. 0x208A         PMERR_INV_IN_IMAGE 
  23380. 0x208B         PMERR_INV_IN_PATH 
  23381. 0x208C         PMERR_INV_IN_RETAIN_MODE 
  23382. 0x208D         PMERR_INV_IN_SEG 
  23383. 0x208E         PMERR_INV_IN_VECTOR_SYMBOL 
  23384. 0x208F         PMERR_INV_INFO_TABLE 
  23385. 0x2090         PMERR_INV_JOURNAL_OPTION 
  23386. 0x2091         PMERR_INV_KERNING_FLAGS 
  23387. 0x2092         PMERR_INV_LENGTH_OR_COUNT 
  23388. 0x2093         PMERR_INV_LINE_END_ATTR 
  23389. 0x2094         PMERR_INV_LINE_JOIN_ATTR 
  23390. 0x2095         PMERR_INV_LINE_TYPE_ATTR 
  23391. 0x2096         PMERR_INV_LINE_WIDTH_ATTR 
  23392. 0x2097         PMERR_INV_LOGICAL_ADDRESS 
  23393. 0x2098         PMERR_INV_MARKER_BOX_ATTR 
  23394. 0x2099         PMERR_INV_MARKER_SET_ATTR 
  23395. 0x209A         PMERR_INV_MARKER_SYMBOL_ATTR 
  23396. 0x209B         PMERR_INV_MATRIX_ELEMENT 
  23397. 0x209C         PMERR_INV_MAX_HITS 
  23398. 0x209D         PMERR_INV_METAFILE 
  23399. 0x209E         PMERR_INV_METAFILE_LENGTH 
  23400. 0x209F         PMERR_INV_METAFILE_OFFSET 
  23401. 0x20A0         PMERR_INV_MICROPS_DRAW_CONTROL 
  23402. 0x20A1         PMERR_INV_MICROPS_FUNCTION 
  23403. 0x20A2         PMERR_INV_MICROPS_ORDER 
  23404. 0x20A3         PMERR_INV_MIX_ATTR 
  23405. 0x20A4         PMERR_INV_MODE_FOR_OPEN_DYN 
  23406. 0x20A5         PMERR_INV_MODE_FOR_REOPEN_SEG 
  23407. 0x20A6         PMERR_INV_MODIFY_PATH_MODE 
  23408. 0x20A7         PMERR_INV_MULTIPLIER 
  23409. 0x20A8         PMERR_INV_NESTED_FIGURES 
  23410. 0x20A9         PMERR_INV_OR_INCOMPAT_OPTIONS 
  23411. 0x20AA         PMERR_INV_ORDER_LENGTH 
  23412. 0x20AB         PMERR_INV_ORDERING_PARM 
  23413. 0x20AC         PMERR_INV_OUTSIDE_DRAW_MODE 
  23414. 0x20AD         PMERR_INV_PAGE_VIEWPORT 
  23415. 0x20AE         PMERR_INV_PATH_ID 
  23416. 0x20AF         PMERR_INV_PATH_MODE 
  23417. 0x20B0         PMERR_INV_PATTERN_ATTR 
  23418. 0x20B1         PMERR_INV_PATTERN_REF_PT_ATTR 
  23419. 0x20B2         PMERR_INV_PATTERN_SET_ATTR 
  23420. 0x20B3         PMERR_INV_PATTERN_SET_FONT 
  23421. 0x20B4         PMERR_INV_PICK_APERTURE_OPTION 
  23422. 0x20B5         PMERR_INV_PICK_APERTURE_POSN 
  23423. 0x20B6         PMERR_INV_PICK_APERTURE_SIZE 
  23424. 0x20B7         PMERR_INV_PICK_NUMBER 
  23425. 0x20B8         PMERR_INV_PLAY_METAFILE_OPTION 
  23426. 0x20B9         PMERR_INV_PRIMITIVE_TYPE 
  23427. 0x20BA         PMERR_INV_PS_SIZE 
  23428. 0x20BB         PMERR_INV_PUTDATA_FORMAT 
  23429. 0x20BC         PMERR_INV_QUERY_ELEMENT_NO 
  23430. 0x20BD         PMERR_INV_RECT 
  23431. 0x20BE         PMERR_INV_REGION_CONTROL 
  23432. 0x20BF         PMERR_INV_REGION_MIX_MODE 
  23433. 0x20C0         PMERR_INV_REPLACE_MODE_FUNC 
  23434. 0x20C1         PMERR_INV_RESERVED_FIELD 
  23435. 0x20C2         PMERR_INV_RESET_OPTIONS 
  23436. 0x20C3         PMERR_INV_RGBCOLOR 
  23437. 0x20C4         PMERR_INV_SCAN_START 
  23438. 0x20C5         PMERR_INV_SEG_ATTR 
  23439. 0x20C6         PMERR_INV_SEG_ATTR_VALUE 
  23440. 0x20C7         PMERR_INV_SEG_CH_LENGTH 
  23441. 0x20C8         PMERR_INV_SEG_NAME 
  23442. 0x20C9         PMERR_INV_SEG_OFFSET 
  23443. 0x20CA         PMERR_INV_SETID 
  23444. 0x20CB         PMERR_INV_SETID_TYPE 
  23445. 0x20CC         PMERR_INV_SET_VIEWPORT_OPTION 
  23446. 0x20CD         PMERR_INV_SHARPNESS_PARM 
  23447. 0x20CE         PMERR_INV_SOURCE_OFFSET 
  23448. 0x20CF         PMERR_INV_STOP_DRAW_VALUE 
  23449. 0x20D0         PMERR_INV_TRANSFORM_TYPE 
  23450. 0x20D1         PMERR_INV_USAGE_PARM 
  23451. 0x20D2         PMERR_INV_VIEWING_LIMITS 
  23452. 0x20D3         PMERR_JFILE_BUSY 
  23453. 0x20D4         PMERR_JNL_FUNC_DATA_TOO_LONG 
  23454. 0x20D5         PMERR_KERNING_NOT_SUPPORTED 
  23455. 0x20D6         PMERR_LABEL_NOT_FOUND 
  23456. 0x20D7         PMERR_MATRIX_OVERFLOW 
  23457. 0x20D8         PMERR_METAFILE_INTERNAL_ERROR 
  23458. 0x20D9         PMERR_METAFILE_IN_USE 
  23459. 0x20DA         PMERR_METAFILE_LIMIT_EXCEEDED 
  23460. 0x20DB         PMERR_NAME_STACK_FULL 
  23461. 0x20DC         PMERR_NOT_CREATED_BY_DEVOPENDC 
  23462. 0x20DD         PMERR_NOT_IN_AREA 
  23463. 0x20DE         PMERR_NOT_IN_DRAW_MODE 
  23464. 0x20DF         PMERR_NOT_IN_ELEMENT 
  23465. 0x20E0         PMERR_NOT_IN_IMAGE 
  23466. 0x20E1         PMERR_NOT_IN_PATH 
  23467. 0x20E2         PMERR_NOT_IN_RETAIN_MODE 
  23468. 0x20E3         PMERR_NOT_IN_SEG 
  23469. 0x20E4         PMERR_NO_BITMAP_SELECTED 
  23470. 0x20E5         PMERR_NO_CURRENT_ELEMENT 
  23471. 0x20E6         PMERR_NO_CURRENT_SEG 
  23472. 0x20E7         PMERR_NO_METAFILE_RECORD_HANDLE 
  23473. 0x20E8         PMERR_ORDER_TOO_BIG 
  23474. 0x20E9         PMERR_OTHER_SET_ID_REFS 
  23475. 0x20EA         PMERR_OVERRAN_SEG 
  23476. 0x20EB         PMERR_OWN_SET_ID_REFS 
  23477. 0x20EC         PMERR_PATH_INCOMPLETE 
  23478. 0x20ED         PMERR_PATH_LIMIT_EXCEEDED 
  23479. 0x20EE         PMERR_PATH_UNKNOWN 
  23480. 0x20EF         PMERR_PEL_IS_CLIPPED 
  23481. 0x20F0         PMERR_PEL_NOT_AVAILABLE 
  23482. 0x20F1         PMERR_PRIMITIVE_STACK_EMPTY 
  23483. 0x20F2         PMERR_PROLOG_ERROR 
  23484. 0x20F3         PMERR_PROLOG_SEG_ATTR_NOT_SET 
  23485. 0x20F4         PMERR_PS_BUSY 
  23486. 0x20F5         PMERR_PS_IS_ASSOCIATED 
  23487. 0x20F6         PMERR_RAM_JNL_FILE_TOO_SMALL 
  23488. 0x20F7         PMERR_REALIZE_NOT_SUPPORTED 
  23489. 0x20F8         PMERR_REGION_IS_CLIP_REGION 
  23490. 0x20F9         PMERR_RESOURCE_DEPLETION 
  23491. 0x20FA         PMERR_SEG_AND_REFSEG_ARE_SAME 
  23492. 0x20FB         PMERR_SEG_CALL_RECURSIVE 
  23493. 0x20FC         PMERR_SEG_CALL_STACK_EMPTY 
  23494. 0x20FD         PMERR_SEG_CALL_STACK_FULL 
  23495. 0x20FE         PMERR_SEG_IS_CURRENT 
  23496. 0x20FF         PMERR_SEG_NOT_CHAINED 
  23497. 0x2100         PMERR_SEG_NOT_FOUND 
  23498. 0x2101         PMERR_SEG_STORE_LIMIT_EXCEEDED 
  23499. 0x2102         PMERR_SETID_IN_USE 
  23500. 0x2103         PMERR_SETID_NOT_FOUND 
  23501. 0x2104         PMERR_STARTDOC_NOT_ISSUED 
  23502. 0x2105         PMERR_STOP_DRAW_OCCURRED 
  23503. 0x2106         PMERR_TOO_MANY_METAFILES_IN_USE 
  23504. 0x2107         PMERR_TRUNCATED_ORDER 
  23505. 0x2108         PMERR_UNCHAINED_SEG_ZERO_INV 
  23506. 0x2109         PMERR_UNSUPPORTED_ATTR 
  23507. 0x210A         PMERR_UNSUPPORTED_ATTR_VALUE 
  23508. 0x210B         PMERR_ENDDOC_NOT_ISSUED 
  23509. 0x210C         PMERR_PS_NOT_ASSOCIATED 
  23510. 0x210D         PMERR_INV_FLOOD_FILL_OPTIONS 
  23511. 0x210E         PMERR_INV_FACENAME 
  23512. 0x210F         PMERR_PALETTE_SELECTED 
  23513. 0x2110         PMERR_NO_PALETTE_SELECTED 
  23514. 0x2111         PMERR_INV_HPAL 
  23515. 0x2112         PMERR_PALETTE_BUSY 
  23516. 0x2113         PMERR_START_POINT_CLIPPED 
  23517. 0x2114         PMERR_NO_FILL 
  23518. 0x2115         PMERR_INV_FACENAMEDESC 
  23519. 0x2116         PMERR_INV_BITMAP_DATA 
  23520. 0x2117         PMERR_INV_CHAR_ALIGN_ATTR 
  23521. 0x2118         PMERR_INV_HFONT 
  23522. 0x2119         PMERR_HFONT_IS_SELECTED 
  23523. 0x2120         PMERR_RASTER_FONT 
  23524. 0x3001         HMERR_DDF_MEMORY 
  23525. 0x3002         HMERR_DDF_ALIGN_TYPE 
  23526. 0x3003         HMERR_DDF_BACKCOLOR 
  23527. 0x3004         HMERR_DDF_FORECOLOR 
  23528. 0x3005         HMERR_DDF_FONTSTYLE 
  23529. 0x3006         HMERR_DDF_REFTYPE 
  23530. 0x3007         HMERR_DDF_LIST_UNCLOSED 
  23531. 0x3008         HMERR_DDF_LIST_UNINITIALIZED 
  23532. 0x3009         HMERR_DDF_LIST_BREAKTYPE 
  23533. 0x300A         HMERR_DDF_LIST_SPACING 
  23534. 0x300B         HMERR_DDF_HINSTANCE 
  23535. 0x300C         HMERR_DDF_EXCEED_MAX_LENGTH 
  23536. 0x300D         HMERR_DDF_EXCEED_MAX_INC 
  23537. 0x300E         HMERR_DDF_INVALID_DDF 
  23538. 0x300F         HMERR_DDF_FORMAT_TYPE 
  23539. 0x3010         HMERR_DDF_INVALID_PARM 
  23540. 0x3011         HMERR_DDF_INVALID_FONT 
  23541. 0x3012         HMERR_DDF_SEVERE 
  23542. 0x4001         PMERR_SPL_DRIVER_ERROR 
  23543. 0x4002         PMERR_SPL_DEVICE_ERROR 
  23544. 0x4003         PMERR_SPL_DEVICE_NOT_INSTALLED 
  23545. 0x4004         PMERR_SPL_QUEUE_ERROR 
  23546. 0x4005         PMERR_SPL_INV_HSPL 
  23547. 0x4006         PMERR_SPL_NO_DISK_SPACE 
  23548. 0x4007         PMERR_SPL_NO_MEMORY 
  23549. 0x4008         PMERR_SPL_PRINT_ABORT 
  23550. 0x4009         PMERR_SPL_SPOOLER_NOT_INSTALLED 
  23551. 0x400A         PMERR_SPL_INV_FORMS_CODE 
  23552. 0x400B         PMERR_SPL_INV_PRIORITY 
  23553. 0x400C         PMERR_SPL_NO_FREE_JOB_ID 
  23554. 0x400D         PMERR_SPL_NO_DATA 
  23555. 0x400E         PMERR_SPL_INV_TOKEN 
  23556. 0x400F         PMERR_SPL_INV_DATATYPE 
  23557. 0x4010         PMERR_SPL_PROCESSOR_ERROR 
  23558. 0x4011         PMERR_SPL_INV_JOB_ID 
  23559. 0x4012         PMERR_SPL_JOB_NOT_PRINTING 
  23560. 0x4013         PMERR_SPL_JOB_PRINTING 
  23561. 0x4014         PMERR_SPL_QUEUE_ALREADY_EXISTS 
  23562. 0x4015         PMERR_SPL_INV_QUEUE_NAME 
  23563. 0x4016         PMERR_SPL_QUEUE_NOT_EMPTY 
  23564. 0x4017         PMERR_SPL_DEVICE_ALREADY_EXISTS 
  23565. 0x4018         PMERR_SPL_DEVICE_LIMIT_REACHED 
  23566. 0x4019         PMERR_SPL_STATUS_STRING_TRUNC 
  23567. 0x401A         PMERR_SPL_INV_LENGTH_OR_COUNT 
  23568. 0x401B         PMERR_SPL_FILE_NOT_FOUND 
  23569. 0x401C         PMERR_SPL_CANNOT_OPEN_FILE 
  23570. 0x401D         PMERR_SPL_DRIVER_NOT_INSTALLED 
  23571. 0x401E         PMERR_SPL_INV_PROCESSOR_DATTYPE 
  23572. 0x401F         PMERR_SPL_INV_DRIVER_DATATYPE 
  23573. 0x4020         PMERR_SPL_PROCESSOR_NOT_INST 
  23574. 0x4021         PMERR_SPL_NO_SUCH_LOG_ADDRESS 
  23575. 0x4022         PMERR_SPL_PRINTER_NOT_FOUND 
  23576. 0x4023         PMERR_SPL_DD_NOT_FOUND 
  23577. 0x4024         PMERR_SPL_QUEUE_NOT_FOUND 
  23578. 0x4025         PMERR_SPL_MANY_QUEUES_ASSOC 
  23579. 0x4026         PMERR_SPL_NO_QUEUES_ASSOCIATED 
  23580. 0x4027         PMERR_SPL_INI_FILE_ERROR 
  23581. 0x4028         PMERR_SPL_NO_DEFAULT_QUEUE 
  23582. 0x4029         PMERR_SPL_NO_CURRENT_FORMS_CODE 
  23583. 0x402A         PMERR_SPL_NOT_AUTHORISED 
  23584. 0x402B         PMERR_SPL_TEMP_NETWORK_ERROR 
  23585. 0x402C         PMERR_SPL_HARD_NETWORK_ERROR 
  23586. 0x402D         PMERR_DEL_NOT_ALLOWED 
  23587. 0x402E         PMERR_CANNOT_DEL_QP_REF 
  23588. 0x402F         PMERR_CANNOT_DEL_QNAME_REF 
  23589. 0x4030         PMERR_CANNOT_DEL_PRINTER_DD_REF 
  23590. 0x4031         PMERR_CANNOT_DEL_PRN_NAME_REF 
  23591. 0x4032         PMERR_CANNOT_DEL_PRN_ADDR_REF 
  23592. 0x4033         PMERR_SPOOLER_QP_NOT_DEFINED 
  23593. 0x4034         PMERR_PRN_NAME_NOT_DEFINED 
  23594. 0x4035         PMERR_PRN_ADDR_NOT_DEFINED 
  23595. 0x4036         PMERR_PRINTER_DD_NOT_DEFINED 
  23596. 0x4037         PMERR_PRINTER_QUEUE_NOT_DEFINED 
  23597. 0x4038         PMERR_PRN_ADDR_IN_USE 
  23598. 0x4039         PMERR_SPL_TOO_MANY_OPEN_FILES 
  23599. 0x403A         PMERR_SPL_CP_NOT_REQD 
  23600. 0x4040         PMERR_UNABLE_TO_CLOSE_DEVICE 
  23601. 0x4FA1         PMERR_SPL_ERROR_1 
  23602. 0x4FA2         PMERR_SPL_ERROR_2 
  23603. 0x4FA3         PMERR_SPL_ERROR_3 
  23604. 0x4FA4         PMERR_SPL_ERROR_4 
  23605. 0x4FA5         PMERR_SPL_ERROR_5 
  23606. 0x4FA6         PMERR_SPL_ERROR_6 
  23607. 0x4FA7         PMERR_SPL_ERROR_7 
  23608. 0x4FA8         PMERR_SPL_ERROR_8 
  23609. 0x4FA9         PMERR_SPL_ERROR_9 
  23610. 0x4FAA         PMERR_SPL_ERROR_10 
  23611. 0x4FAB         PMERR_SPL_ERROR_11 
  23612. 0x4FAC         PMERR_SPL_ERROR_12 
  23613. 0x4FAD         PMERR_SPL_ERROR_13 
  23614. 0x4FAE         PMERR_SPL_ERROR_14 
  23615. 0x4FAF         PMERR_SPL_ERROR_15 
  23616. 0x4FB0         PMERR_SPL_ERROR_16 
  23617. 0x4FB1         PMERR_SPL_ERROR_17 
  23618. 0x4FB2         PMERR_SPL_ERROR_18 
  23619. 0x4FB3         PMERR_SPL_ERROR_19 
  23620. 0x4FB4         PMERR_SPL_ERROR_20 
  23621. 0x4FB5         PMERR_SPL_ERROR_21 
  23622. 0x4FB6         PMERR_SPL_ERROR_22 
  23623. 0x4FB7         PMERR_SPL_ERROR_23 
  23624. 0x4FB8         PMERR_SPL_ERROR_24 
  23625. 0x4FB9         PMERR_SPL_ERROR_25 
  23626. 0x4FBA         PMERR_SPL_ERROR_26 
  23627. 0x4FBB         PMERR_SPL_ERROR_27 
  23628. 0x4FBC         PMERR_SPL_ERROR_28 
  23629. 0x4FBD         PMERR_SPL_ERROR_29 
  23630. 0x4FBE         PMERR_SPL_ERROR_30 
  23631. 0x4FBF         PMERR_SPL_ERROR_31 
  23632. 0x4FC0         PMERR_SPL_ERROR_32 
  23633. 0x4FC1         PMERR_SPL_ERROR_33 
  23634. 0x4FC2         PMERR_SPL_ERROR_34 
  23635. 0x4FC3         PMERR_SPL_ERROR_35 
  23636. 0x4FC4         PMERR_SPL_ERROR_36 
  23637. 0x4FC5         PMERR_SPL_ERROR_37 
  23638. 0x4FC6         PMERR_SPL_ERROR_38 
  23639. 0x4FC7         PMERR_SPL_ERROR_39 
  23640. 0x4FC8         PMERR_SPL_ERROR_40 
  23641. 0x4FC9         PMERR_SPLMSGBOX_INFO_CAPTION 
  23642. 0x4FCA         PMERR_SPLMSGBOX_WARNING_CAPTION 
  23643. 0x4FCB         PMERR_SPLMSGBOX_ERROR_CAPTION 
  23644. 0x4FCC         PMERR_SPLMSGBOX_SEVERE_CAPTION 
  23645. 0x4FCD         PMERR_SPLMSGBOX_JOB_DETAILS 
  23646. 0x4FCE         PMERR_SPLMSGBOX_ERROR_ACTION 
  23647. 0x4FCF         PMERR_SPLMSGBOX_SEVERE_ACTION 
  23648. 0x4FD0         PMERR_SPLMSGBOX_BIT_0_TEXT 
  23649. 0x4FD1         PMERR_SPLMSGBOX_BIT_1_TEXT 
  23650. 0x4FD2         PMERR_SPLMSGBOX_BIT_2_TEXT 
  23651. 0x4FD3         PMERR_SPLMSGBOX_BIT_3_TEXT 
  23652. 0x4FD4         PMERR_SPLMSGBOX_BIT_4_TEXT 
  23653. 0x4FD5         PMERR_SPLMSGBOX_BIT_5_TEXT 
  23654. 0x4FD6         PMERR_SPLMSGBOX_BIT_15_TEXT 
  23655. 0x4FD7         PMERR_SPL_NOPATHBUFFER 
  23656. 0x4FD8         PMERR_SPL_ALREADY_INITIALISED 
  23657. 0x4FD9         PMERR_SPL_ERROR 
  23658. 0x5001         PMERR_INV_TYPE 
  23659. 0x5002         PMERR_INV_CONV 
  23660. 0x5003         PMERR_INV_SEGLEN 
  23661. 0x5004         PMERR_DUP_SEGNAME 
  23662. 0x5005         PMERR_INV_XFORM 
  23663. 0x5006         PMERR_INV_VIEWLIM 
  23664. 0x5007         PMERR_INV_3DCOORD 
  23665. 0x5008         PMERR_SMB_OVFLOW 
  23666. 0x5009         PMERR_SEG_OVFLOW 
  23667. 0x5010         PMERR_PIC_DUP_FILENAME 
  23668.  
  23669.  
  23670. ΓòÉΓòÉΓòÉ 8.2. Error Name and Explanation ΓòÉΓòÉΓòÉ
  23671.  
  23672. This appendix gives an explanation for each PM error. The errors are listed in 
  23673. alphabetic order.  The number associated with each error is given in Error 
  23674. Number and Name. 
  23675.  
  23676. Error Constant                                  Explanation 
  23677.  
  23678. HMERR_ALLOCATE_SEGMENT                          Unable to allocate a segment of 
  23679.                                                 memory for memory allocation 
  23680.                                                 requests from the Help Manager. 
  23681.  
  23682. HMERR_CLOSE_LIB_FILE                            The library file cannot be 
  23683.                                                 closed. 
  23684.  
  23685. HMERR_CONTENT_NOT_FOUND                         The library file does not have 
  23686.                                                 any content. 
  23687.  
  23688. HMERR_DATABASE_NOT_OPEN                         Unable to read the unopened 
  23689.                                                 database. 
  23690.  
  23691. HMERR_DDF_ALIGN_TYPE                            The alignment type is not 
  23692.                                                 valid. 
  23693.  
  23694. HMERR_DDF_BACKCOLOR                             The background color is not 
  23695.                                                 valid. 
  23696.  
  23697. HMERR_DDF_EXCEED_MAX_INC                        The value specified to 
  23698.                                                 increment DDF memory is too 
  23699.                                                 large. 
  23700.  
  23701. HMERR_DDF_EXCEED_MAX_LENGTH                     The amount of data is too large 
  23702.                                                 for the DDF buffer. 
  23703.  
  23704. HMERR_DDF_FONTSTYLE                             The font style is not valid. 
  23705.  
  23706. HMERR_DDF_FORECOLOR                             The foreground color is not 
  23707.                                                 valid. 
  23708.  
  23709. HMERR_DDF_FORMAT_TYPE                           The format type specified is 
  23710.                                                 invalid. 
  23711.  
  23712. HMERR_DDF_HINSTANCE                             The DDF instance is invalid. 
  23713.  
  23714. HMERR_DDF_INVALID_DDF                           The DDF handle is invalid. 
  23715.  
  23716. HMERR_DDF_INVALID_FONT                          The font value specified is 
  23717.                                                 invalid. 
  23718.  
  23719. HMERR_DDF_INVALID_PARM                          One of the DDF parameters 
  23720.                                                 specified is invalid. 
  23721.  
  23722. HMERR_DDF_LIST_BREAKTYPE                        The value of BreakType is not 
  23723.                                                 valid. 
  23724.  
  23725. HMERR_DDF_LIST_SPACING                          The value for Spacing is not 
  23726.                                                 valid. 
  23727.  
  23728. HMERR_DDF_LIST_UNCLOSED                         An attempt was made to nest a 
  23729.                                                 list. 
  23730.  
  23731. HMERR_DDF_LIST_UNINITIALIZED                    No definition list has been 
  23732.                                                 initialized by DdfBeginList. 
  23733.  
  23734. HMERR_DDF_MEMORY                                Not enough memory is available. 
  23735.  
  23736. HMERR_DDF_REFTYPE                               The reference type is not 
  23737.                                                 valid. 
  23738.  
  23739. HMERR_DDF_SEVERE                                Internal error detected by the 
  23740.                                                 Help Manager. 
  23741.  
  23742. HMERR_FREE_MEMORY                               Unable to free allocated 
  23743.                                                 memory. 
  23744.  
  23745. HMERR_HELP_INST_CALLED_INVALID                  The handle of the instance 
  23746.                                                 specified on a call to the Help 
  23747.                                                 Manager does not have the class 
  23748.                                                 name of a Help Manager 
  23749.                                                 instance. 
  23750.  
  23751. HMERR_HELP_INSTANCE_UNDEFINE                    The help instance handle 
  23752.                                                 specified is invalid. 
  23753.  
  23754. HMERR_HELPITEM_NOT_FOUND                        Context-sensitive help was 
  23755.                                                 requested but the ID of the 
  23756.                                                 main help item specified was 
  23757.                                                 not found in the help table. 
  23758.  
  23759. HMERR_HELPSUBITEM_NOT_FOUND                     Context-sensitive help was 
  23760.                                                 requested but the ID of the 
  23761.                                                 help item specified was not 
  23762.                                                 found in the help subtable. 
  23763.  
  23764. HMERR_HELPTABLE_UNDEFINE                        The application did not provide 
  23765.                                                 a help table for 
  23766.                                                 context-sensitive help. 
  23767.  
  23768. HMERR_INDEX_NOT_FOUND                           The index is not in the library 
  23769.                                                 file. 
  23770.  
  23771. HMERR_INVALID_ASSOC_APP_WND                     The application window handle 
  23772.                                                 specified on the 
  23773.                                                 WinAssociateHelpInstance 
  23774.                                                 function is not a valid window 
  23775.                                                 handle. 
  23776.  
  23777. HMERR_INVALID_ASSOC_HELP_INST                   The help instance handle 
  23778.                                                 specified on the 
  23779.                                                 WinAssociateHelpInstance 
  23780.                                                 function is not a valid window 
  23781.                                                 handle. 
  23782.  
  23783. HMERR_INVALID_DESTROY_HELP_INST                 The window handle specified as 
  23784.                                                 the help instance to destroy is 
  23785.                                                 not of the help instance class. 
  23786.  
  23787. HMERR_INVALID_HELP_INSTANCE_HDL                 The handle specified to be a 
  23788.                                                 help instance does not have the 
  23789.                                                 class name of a Help Manager 
  23790.                                                 instance. 
  23791.  
  23792. HMERR_INVALID_HELPSUBITEM_SIZE                  The help subtable item size is 
  23793.                                                 less than 2. 
  23794.  
  23795. HMERR_INVALID_LIB_FILE                          Improper library file provided. 
  23796.  
  23797. HMERR_INVALID_QUERY_APP_WND                     The application window 
  23798.                                                 specified on a 
  23799.                                                 WinQueryHelpInstance function 
  23800.                                                 is not a valid window handle. 
  23801.  
  23802. HMERR_LOAD_DLL                                  Unable to load resource data 
  23803.                                                 link library. 
  23804.  
  23805. HMERR_NO_FRAME_WND_IN_CHAIN                     There is no frame window in the 
  23806.                                                 window chain from which to find 
  23807.                                                 or set the associated help 
  23808.                                                 instance. 
  23809.  
  23810. HMERR_NO_HELP_INST_IN_CHAIN                     The parent or owner chain of 
  23811.                                                 the application window 
  23812.                                                 specified does not have an 
  23813.                                                 associated help instance. 
  23814.  
  23815. HMERR_NO_MEMORY                                 Unable to allocate the 
  23816.                                                 requested amount of memory. 
  23817.  
  23818. HMERR_OPEN_LIB_FILE                             The library file cannot be 
  23819.                                                 opened. 
  23820.  
  23821. HMERR_PANEL_NOT_FOUND                           Unable to find the requested 
  23822.                                                 help panel. 
  23823.  
  23824. HMERR_READ_LIB_FILE                             The library file cannot be 
  23825.                                                 read. 
  23826.  
  23827. PMERR_ACCESS_DENIED                             The memory block was not 
  23828.                                                 allocated properly. 
  23829.  
  23830. PMERR_ALREADY_IN_AREA                           An attempt was made to begin a 
  23831.                                                 new area while an existing area 
  23832.                                                 bracket was already open. 
  23833.  
  23834. PMERR_ALREADY_IN_ELEMENT                        An attempt was made to begin a 
  23835.                                                 new element while an existing 
  23836.                                                 element bracket was already 
  23837.                                                 open. 
  23838.  
  23839. PMERR_ALREADY_IN_PATH                           An attempt was made to begin a 
  23840.                                                 new path while an existing path 
  23841.                                                 bracket was already open. 
  23842.  
  23843. PMERR_ALREADY_IN_SEG                            An attempt was made to open a 
  23844.                                                 new segment while an existing 
  23845.                                                 segment bracket was already 
  23846.                                                 open. 
  23847.  
  23848. PMERR_APPL_STRUCTURE_TOO_SMALL                  The application buffer length 
  23849.                                                 is less than the total length 
  23850.                                                 required for the (application) 
  23851.                                                 component types. 
  23852.  
  23853. PMERR_ARRAY_TOO_SMALL                           The array specified was too 
  23854.                                                 small. 
  23855.  
  23856. PMERR_AREA_INCOMPLETE                           One of the following has 
  23857.                                                 occurred: 
  23858.  
  23859.                                                                                                 o A segment has been opened, closed,
  23860.                                                                                                  or drawn.
  23861.                                                                                                 o GpiAssociate was issued while an
  23862.                                                                                                  area bracket was open.
  23863.                                                                                                 o A drawn segment has opened an area
  23864.                                                                                                  bracket and ended without closing it.
  23865.  
  23866. PMERR_ARRAY_TOO_LARGE                           More than 4 bytes was attempted 
  23867.                                                 to be inserted or extracted. 
  23868.  
  23869. PMERR_ATOM_NAME_NOT_FOUND                       The specified atom name is not 
  23870.                                                 in the atom table. 
  23871.  
  23872. PMERR_BASE_ERROR                                An OS/2 base error has 
  23873.                                                 occurred.  The base error code 
  23874.                                                 can be accessed using the 
  23875.                                                 OffBinaryData field of the 
  23876.                                                 ERRINFO structure returned by 
  23877.                                                 WinGetErrorInfo. 
  23878.  
  23879. PMERR_BITMAP_IN_USE                             An attempt was made either to 
  23880.                                                 set a bit map into a device 
  23881.                                                 context using GpiSetBitmap 
  23882.                                                 while it was already selected 
  23883.                                                 into an existing device 
  23884.                                                 context, or to tag a bit map 
  23885.                                                 with a local pattern set 
  23886.                                                 identifier (setid) using 
  23887.                                                 GpiSetBitmapId while it was 
  23888.                                                 already tagged with an existing 
  23889.                                                 setid. 
  23890.  
  23891. PMERR_BITMAP_IS_SELECTED                        An attempt was made to delete a 
  23892.                                                 bit map while it was selected 
  23893.                                                 into a device context. 
  23894.  
  23895. PMERR_BITMAP_NOT_FOUND                          A attempt was made to perform a 
  23896.                                                 bit-map operation on a bit map 
  23897.                                                 that did not exist. 
  23898.  
  23899. PMERR_BITMAP_NOT_SELECTED                       A attempt was made to perform 
  23900.                                                 an operation on presentation 
  23901.                                                 space associated with a memory 
  23902.                                                 device context that had no 
  23903.                                                 selected bit map. 
  23904.  
  23905. PMERR_BOUNDS_OVERFLOW                           An internal overflow error 
  23906.                                                 occurred during boundary data 
  23907.                                                 accumulation.  This can occur 
  23908.                                                 if coordinates or matrix 
  23909.                                                 transformation elements (or 
  23910.                                                 both) are invalid or too large. 
  23911.  
  23912. PMERR_BUFFER_TOO_SMALL                          The supplied buffer was not 
  23913.                                                 large enough for the data to be 
  23914.                                                 returned. 
  23915.  
  23916. PMERR_C_LENGTH_TOO_SMALL                        The maximum length of the C 
  23917.                                                 structure is less than the 
  23918.                                                 total length required for the 
  23919.                                                 (C) component types. 
  23920.  
  23921. PMERR_CALLED_SEG_IS_CHAINED                     An attempt was made to call a 
  23922.                                                 segment that has a chained 
  23923.                                                 attribute set. 
  23924.  
  23925. PMERR_CAN_NOT_CALL_SPOOLER                      An error occurred attempting to 
  23926.                                                 call the spooler validation 
  23927.                                                 routine.  This error is not 
  23928.                                                 raised if the spooler is not 
  23929.                                                 installed. 
  23930.  
  23931. PMERR_CANNOT_DEL_PRINTER_DD_REF                 Presentation Manager device 
  23932.                                                 driver deletion not possible 
  23933.                                                 due to a reference. 
  23934.  
  23935. PMERR_CANNOT_DEL_PRN_ADDR_REF                   Printer port deletion not 
  23936.                                                 possible due to a reference. 
  23937.  
  23938. PMERR_CANNOT_DEL_PRN_NAME_REF                   Printer deletion not possible 
  23939.                                                 due to a reference. 
  23940.  
  23941. PMERR_CANNOT_DEL_QNAME_REF                      Spooler queue deletion not 
  23942.                                                 possible due to a reference. 
  23943.  
  23944. PMERR_CANNOT_DEL_QP_REF                         Spooler queue processor 
  23945.                                                 deletion not possible due to a 
  23946.                                                 reference. 
  23947.  
  23948. PMERR_CANNOT_STOP                               The session cannot be stopped. 
  23949.  
  23950. PMERR_CALLED_SEG_IS_CURRENT                     An attempt was made to call a 
  23951.                                                 segment that is currently open. 
  23952.  
  23953. PMERR_CALLED_SEG_NOT_FOUND                      An attempt was made to call a 
  23954.                                                 segment that did not exist. 
  23955.  
  23956. PMERR_COL_TABLE_NOT_REALIZABLE                  An attempt was made to realize 
  23957.                                                 a color table that is not 
  23958.                                                 realizable. 
  23959.  
  23960. PMERR_COL_TABLE_NOT_REALIZED                    An attempt was made to realize 
  23961.                                                 a color table on a device 
  23962.                                                 driver that does not support 
  23963.                                                 this function. 
  23964.  
  23965. PMERR_COORDINATE_OVERFLOW                       An internal coordinate overflow 
  23966.                                                 error occurred.  This can occur 
  23967.                                                 if coordinates or matrix 
  23968.                                                 transformation elements (or 
  23969.                                                 both) are invalid or too large. 
  23970.  
  23971. PMERR_DATA_TOO_LONG                             An attempt was made to transfer 
  23972.                                                 more than the maximum permitted 
  23973.                                                 amount of data (64512 bytes) 
  23974.                                                 using GpiPutData, GpiGetData, 
  23975.                                                 or GpiElement. 
  23976.  
  23977. PMERR_DATATYPE_ENTRY_BAD_INDEX                  An invalid datatype entry index 
  23978.                                                 was specified. 
  23979.  
  23980. PMERR_DATATYPE_ENTRY_CTL_BAD                    An invalid datatype entry 
  23981.                                                 control was specified. 
  23982.  
  23983. PMERR_DATATYPE_ENTRY_CTL_MISS                   The datatype entry control was 
  23984.                                                 missing. 
  23985.  
  23986. PMERR_DATATYPE_ENTRY_NOT_NUM                    The datatype entry specified 
  23987.                                                 was not numerical. 
  23988.  
  23989. PMERR_DATATYPE_ENTRY_NOT_OFF                    The datatype entry specified 
  23990.                                                 was not an offset. 
  23991.  
  23992. PMERR_DATATYPE_INVALID                          An invalid datatype was 
  23993.                                                 specified. 
  23994.  
  23995. PMERR_DATATYPE_NOT_UNIQUE                       An attempt to register a 
  23996.                                                 datatype failed because it is 
  23997.                                                 not unique. 
  23998.  
  23999. PMERR_DATATYPE_TOO_LONG                         The datatype specified was too 
  24000.                                                 long. 
  24001.  
  24002. PMERR_DATATYPE_TOO_SMALL                        The datatype specified was too 
  24003.                                                 small. 
  24004.  
  24005. PMERR_DC_IS_ASSOCIATED                          An attempt was made to 
  24006.                                                 associate a presentation space 
  24007.                                                 with a device context that was 
  24008.                                                 already associated or to 
  24009.                                                 destroy a device context that 
  24010.                                                 was associated. 
  24011.  
  24012. PMERR_DEL_NOT_ALLOWED                           Deletion not possible. 
  24013.  
  24014. PMERR_DESC_STRING_TRUNCATED                     An attempt was made to supply a 
  24015.                                                 description string with 
  24016.                                                 GpiBeginElement that was 
  24017.                                                 greater then the permitted 
  24018.                                                 maximum length (251 
  24019.                                                 characters).  The string was 
  24020.                                                 truncated. 
  24021.  
  24022. PMERR_DEV_FUNC_NOT_INSTALLED                    The function requested is not 
  24023.                                                 supported by the presentation 
  24024.                                                 driver. 
  24025.  
  24026. PMERR_DEVICE_DRIVER_ERROR_1                     Miscellaneous error available 
  24027.                                                 for use by user written device 
  24028.                                                 drivers. 
  24029.  
  24030. PMERR_DEVICE_DRIVER_ERROR_2                     Miscellaneous error available 
  24031.                                                 for use by user written device 
  24032.                                                 drivers. 
  24033.  
  24034. PMERR_DEVICE_DRIVER_ERROR_3                     Miscellaneous error available 
  24035.                                                 for use by user written device 
  24036.                                                 drivers. 
  24037.  
  24038. PMERR_DEVICE_DRIVER_ERROR_4                     Miscellaneous error available 
  24039.                                                 for use by user written device 
  24040.                                                 drivers. 
  24041.  
  24042. PMERR_DEVICE_DRIVER_ERROR_5                     Miscellaneous error available 
  24043.                                                 for use by user written device 
  24044.                                                 drivers. 
  24045.  
  24046. PMERR_DEVICE_DRIVER_ERROR_6                     Miscellaneous error available 
  24047.                                                 for use by user written device 
  24048.                                                 drivers. 
  24049.  
  24050. PMERR_DEVICE_DRIVER_ERROR_7                     Miscellaneous error available 
  24051.                                                 for use by user written device 
  24052.                                                 drivers. 
  24053.  
  24054. PMERR_DEVICE_DRIVER_ERROR_8                     Miscellaneous error available 
  24055.                                                 for use by user written device 
  24056.                                                 drivers. 
  24057.  
  24058. PMERR_DEVICE_DRIVER_ERROR_9                     Miscellaneous error available 
  24059.                                                 for use by user written device 
  24060.                                                 drivers. 
  24061.  
  24062. PMERR_DEVICE_DRIVER_ERROR_10                    Miscellaneous error available 
  24063.                                                 for use by user written device 
  24064.                                                 drivers. 
  24065.  
  24066. PMERR_DOS_ERROR                                 A DOS call returned an error. 
  24067.  
  24068. PMERR_DOSOPEN_FAILURE                           A DosOpen call made during 
  24069.                                                 GpiLoadMetaFile or 
  24070.                                                 GpiSaveMetaFile gave a good 
  24071.                                                 return code but the file was 
  24072.                                                 not opened successfully. 
  24073.  
  24074. PMERR_DOSREAD_FAILURE                           A DosRead call made during 
  24075.                                                 GpiLoadMetaFile gave a good 
  24076.                                                 return code.  However, it 
  24077.                                                 failed to read any more bytes 
  24078.                                                 although the file length 
  24079.                                                 indicated that there were more 
  24080.                                                 to be read. 
  24081.  
  24082. PMERR_DRIVER_NOT_FOUND                          The device driver specified 
  24083.                                                 with DevPostDeviceModes was not 
  24084.                                                 found. 
  24085.  
  24086. PMERR_DUP_SEG                                   During GpiPlayMetaFile, while 
  24087.                                                 the actual drawing mode was 
  24088.                                                 draw-and-retain or retain, a 
  24089.                                                 metafile segment to be stored 
  24090.                                                 in the presentation space was 
  24091.                                                 found to have the same segment 
  24092.                                                 identifier as an existing 
  24093.                                                 segment. 
  24094.  
  24095. PMERR_DUP_SEGNAME                               A called segment has a name 
  24096.                                                 that has already been used by 
  24097.                                                 another called segment in the 
  24098.                                                 input PIF. 
  24099.  
  24100. PMERR_DUPLICATE_TITLE                           The program title specified in 
  24101.                                                 the PIBSTRUCT already exists 
  24102.                                                 within the same group. 
  24103.  
  24104. PMERR_DYNAMIC_SEG_SEQ_ERROR                     During removal of dynamic 
  24105.                                                 segments while processing 
  24106.                                                 GpiDrawChain, GpiDrawFrom, or 
  24107.                                                 GpiDrawSegment, the internal 
  24108.                                                 state indicated that dynamic 
  24109.                                                 segment data was still visible 
  24110.                                                 after all chained dynamic 
  24111.                                                 segments had been processed. 
  24112.                                                 This can occur if segments 
  24113.                                                 drawn dynamically (including 
  24114.                                                 called segments) are modified 
  24115.                                                 or removed from the chain while 
  24116.                                                 visible. 
  24117.  
  24118. PMERR_DYNAMIC_SEG_ZERO_INV                      An attempt was been made to 
  24119.                                                 open a dynamic segment with a 
  24120.                                                 segment identifier of zero. 
  24121.  
  24122. PMERR_ENDDOC_NOT_ISSUED                         A request to close the spooled 
  24123.                                                 output without first issuing a 
  24124.                                                 an ENDDOC was attempted. 
  24125.  
  24126. PMERR_ESC_CODE_NOT_SUPPORTED                    The code specified with 
  24127.                                                 DevEscape is not supported by 
  24128.                                                 the target device driver. 
  24129.  
  24130. PMERR_EXCEEDS_MAX_SEG_LENGTH                    During metafile creation or 
  24131.                                                 generation of retained graphics 
  24132.                                                 the system has exceeded maximum 
  24133.                                                 segment size. 
  24134.  
  24135. PMERR_FONT_AND_MODE_MISMATCH                    An attempt was made to draw 
  24136.                                                 characters with a character 
  24137.                                                 mode and character set that are 
  24138.                                                 incompatible.  For example, the 
  24139.                                                 character specifies an 
  24140.                                                 image/raster font when the mode 
  24141.                                                 calls for a vector/outline 
  24142.                                                 font. 
  24143.  
  24144. PMERR_FONT_FILE_NOT_LOADED                      An attempt was made to unload a 
  24145.                                                 font file that was not loaded. 
  24146.  
  24147. PMERR_FONT_NOT_LOADED                           An attempt was made to create a 
  24148.                                                 font that was not loaded. 
  24149.  
  24150. PMERR_FUNCTION_NOT_SUPPORTED                    The function is not supported. 
  24151.  
  24152. PMERR_GREATER_THAN_64K                          A data item or array dimension 
  24153.                                                 is greater than 65 535. 
  24154.  
  24155. PMERR_HBITMAP_BUSY                              An internal bit map busy error 
  24156.                                                 was detected.  The bit map was 
  24157.                                                 locked by one thread during an 
  24158.                                                 attempt to access it from 
  24159.                                                 another thread. 
  24160.  
  24161. PMERR_HDC_BUSY                                  An internal device context busy 
  24162.                                                 error was detected.  The device 
  24163.                                                 context was locked by one 
  24164.                                                 thread during an attempt to 
  24165.                                                 access it from another thread. 
  24166.  
  24167. PMERR_HEAP_MAX_SIZE_REACHED                     The heap has reached its 
  24168.                                                 maximum size (64KB), and cannot 
  24169.                                                 be increased. 
  24170.  
  24171. PMERR_HEAP_OUT_OF_MEMORY                        An attempt to increase the size 
  24172.                                                 of the heap failed. 
  24173.  
  24174. PMERR_HFONT_IS_SELECTED                         An attempt has been made to 
  24175.                                                 either change the owner of a 
  24176.                                                 font, or delete when it is 
  24177.                                                 currently selected. 
  24178.  
  24179. PMERR_HRGN_BUSY                                 An internal region busy error 
  24180.                                                 was detected.  The region was 
  24181.                                                 locked by one thread during an 
  24182.                                                 attempt to access it from 
  24183.                                                 another thread. 
  24184.  
  24185. PMERR_HUGE_FONTS_NOT_SUPPORTED                  An attempt was made using 
  24186.                                                 GpiSetCharSet, 
  24187.                                                 GpiSetPatternSet, 
  24188.                                                 GpiSetMarkerSet, or GpiSetAttrs 
  24189.                                                 to select a font that is larger 
  24190.                                                 than the maximum size (64Kb) 
  24191.                                                 supported by the target device 
  24192.                                                 driver. 
  24193.  
  24194. PMERR_ID_HAS_NO_BITMAP                          No bit map was tagged with the 
  24195.                                                 setid specified on a 
  24196.                                                 GpiQueryBitmapHandle function. 
  24197.  
  24198. PMERR_IMAGE_INCOMPLETE                          A drawn segment has opened an 
  24199.                                                 image bracket and ended without 
  24200.                                                 closing it. 
  24201.  
  24202. PMERR_INCOMPATIBLE_BITMAP                       An attempt was made to select a 
  24203.                                                 bit map or perform a BitBlt 
  24204.                                                 operation on a device context 
  24205.                                                 that was incompatible with the 
  24206.                                                 format of the bit map. 
  24207.  
  24208. PMERR_INCOMPATIBLE_METAFILE                     An attempt was made to 
  24209.                                                 associate a presentation space 
  24210.                                                 and a metafile device context 
  24211.                                                 with incompatible page units, 
  24212.                                                 size or coordinate format; or 
  24213.                                                 to play a metafile using the 
  24214.                                                 RES_RESET option (to reset the 
  24215.                                                 presentation space) to a 
  24216.                                                 presentation space that is 
  24217.                                                 itself associated with a 
  24218.                                                 metafile device context. 
  24219.  
  24220. PMERR_INCOMPLETE_CONTROL_SEQ                    A control data type sequence is 
  24221.                                                 incomplete. 
  24222.  
  24223. PMERR_INCORRECT_DATATYPE                        A data type is specified which 
  24224.                                                 is incorrect for this function. 
  24225.  
  24226. PMERR_INCORRECT_DC_TYPE                         An attempt was made to perform 
  24227.                                                 a bit-map operation on a 
  24228.                                                 presentation space associated 
  24229.                                                 with a device context of a type 
  24230.                                                 that is unable to support 
  24231.                                                 bit-map operations. 
  24232.  
  24233. PMERR_INCORRECT_HSTRUCT                         A structure handle is non-NULL, 
  24234.                                                 and is invalid for one of the 
  24235.                                                 following reasons: 
  24236.  
  24237.                                                                                                 o It is not the handle of a data structure.
  24238.                                                                                                 o It is the handle of an ERRINFO
  24239.                                                                                                  structure, which should not be used on
  24240.                                                                                                  this call.
  24241.                                                                                                 o A handle block returned by the bindings
  24242.                                                                                                  to the application has been used for an
  24243.                                                                                                  in-line structure handle.
  24244.  
  24245. PMERR_INI_FILE_IS_SYS_OR_USER                   User or system initialization 
  24246.                                                 file cannot be closed. 
  24247.  
  24248. PMERR_INSUFF_SPACE_TO_ADD                       The initialization file could 
  24249.                                                 not be extended to add the 
  24250.                                                 required program or group. 
  24251.  
  24252. PMERR_INSUFFICIENT_DISK_SPACE                   The operation terminated 
  24253.                                                 through insufficient disk 
  24254.                                                 space. 
  24255.  
  24256. PMERR_INSUFFICIENT_MEMORY                       The operation terminated 
  24257.                                                 through insufficient memory. 
  24258.  
  24259. PMERR_INTERNAL_ERROR_n                          An internal error has occurred. 
  24260.                                                 n is a number that identifies 
  24261.                                                 the particular error. 
  24262.  
  24263. PMERR_INV_ANGLE_PARM                            An invalid angle parameter was 
  24264.                                                 specified with GpiPartialArc. 
  24265.  
  24266. PMERR_INV_ARC_CONTROL                           An invalid control parameter 
  24267.                                                 was specified with GpiFullArc. 
  24268.  
  24269. PMERR_INV_AREA_CONTROL                          An invalid options parameter 
  24270.                                                 was specified with 
  24271.                                                 GpiBeginArea. 
  24272.  
  24273. PMERR_INV_ATTR_MODE                             An invalid mode parameter was 
  24274.                                                 specified with GpiSetAttrMode. 
  24275.  
  24276. PMERR_INV_BACKGROUND_COL_ATTR                   An invalid background color 
  24277.                                                 attribute value was specified 
  24278.                                                 or the default value was 
  24279.                                                 explicitly specified with 
  24280.                                                 GpiSetAttrs instead of using 
  24281.                                                 the defaults mask. 
  24282.  
  24283. PMERR_INV_BACKGROUND_MIX_ATTR                   An invalid background mix 
  24284.                                                 attribute value was specified 
  24285.                                                 or the default value was 
  24286.                                                 explicitly specified with 
  24287.                                                 GpiSetAttrs instead of using 
  24288.                                                 the defaults mask. 
  24289.  
  24290. PMERR_INV_BITBLT_MIX                            An invalid lRop parameter was 
  24291.                                                 specified with a GpiBitBlt or 
  24292.                                                 GpiWCBitBlt function. 
  24293.  
  24294. PMERR_INV_BITBLT_STYLE                          An invalid options parameter 
  24295.                                                 was specified with a GpiBitBlt 
  24296.                                                 or GpiWCBitBlt function. 
  24297.  
  24298. PMERR_INV_BITMAP_DATA                           In processing a bit map, the 
  24299.                                                 end of the data was 
  24300.                                                 unexpectedly encountered. 
  24301.  
  24302. PMERR_INV_BITMAP_DIMENSION                      An invalid dimension was 
  24303.                                                 specified with a load bit-map 
  24304.                                                 function. 
  24305.  
  24306. PMERR_INV_BOX_CONTROL                           An invalid control parameter 
  24307.                                                 was specified with GpiBox. 
  24308.  
  24309. PMERR_INV_BOX_ROUNDING_PARM                     An invalid corner rounding 
  24310.                                                 control parameter was specified 
  24311.                                                 with GpiBox. 
  24312.  
  24313. PMERR_INV_CHAR_ALIGN_ATTR                       The text alignment attribute 
  24314.                                                 specified in 
  24315.                                                 GpiSetTextAlignment is not 
  24316.                                                 valid. 
  24317.  
  24318. PMERR_INV_CHAR_ANGLE_ATTR                       The default character angle 
  24319.                                                 attribute value was explicitly 
  24320.                                                 specified with GpiSetAttrs 
  24321.                                                 instead of using the defaults 
  24322.                                                 mask. 
  24323.  
  24324. PMERR_INV_CHAR_DIRECTION_ATTR                   An invalid character direction 
  24325.                                                 attribute value was specified 
  24326.                                                 or the default value was 
  24327.                                                 explicitly specified with 
  24328.                                                 GpiSetAttrs instead of using 
  24329.                                                 the defaults mask. 
  24330.  
  24331. PMERR_INV_CHAR_MODE_ATTR                        An invalid character mode 
  24332.                                                 attribute value was specified 
  24333.                                                 or the default value was 
  24334.                                                 explicitly specified with 
  24335.                                                 GpiSetAttrs instead of using 
  24336.                                                 the defaults mask. 
  24337.  
  24338. PMERR_INV_CHAR_POS_OPTIONS                      An invalid options parameter 
  24339.                                                 was specified with 
  24340.                                                 GpiCharStringPos or 
  24341.                                                 GpiCharStringPosAt. 
  24342.  
  24343. PMERR_INV_CHAR_SET_ATTR                         An invalid character setid 
  24344.                                                 attribute value was specified 
  24345.                                                 or the default value was 
  24346.                                                 explicitly specified with 
  24347.                                                 GpiSetAttrs instead of using 
  24348.                                                 the defaults mask. 
  24349.  
  24350. PMERR_INV_CHAR_SHEAR_ATTR                       An invalid character shear 
  24351.                                                 attribute value was specified 
  24352.                                                 or the default value was 
  24353.                                                 explicitly specified with 
  24354.                                                 GpiSetAttrs instead of using 
  24355.                                                 the defaults mask. 
  24356.  
  24357. PMERR_INV_CLIP_PATH_OPTIONS                     An invalid options parameter 
  24358.                                                 was specified with 
  24359.                                                 GpiSetClipPath. 
  24360.  
  24361. PMERR_INV_CODEPAGE                              An invalid code-page parameter 
  24362.                                                 was specified with GpiSetCp. 
  24363.  
  24364. PMERR_INV_COLOR_ATTR                            An invalid color attribute 
  24365.                                                 value was specified or the 
  24366.                                                 default value was explicitly 
  24367.                                                 specified with GpiSetAttrs 
  24368.                                                 instead of using the defaults 
  24369.                                                 mask. 
  24370.  
  24371. PMERR_INV_COLOR_DATA                            Invalid color table definition 
  24372.                                                 data was specified with 
  24373.                                                 GpiCreateLogColorTable. 
  24374.  
  24375. PMERR_INV_COLOR_FORMAT                          An invalid format parameter was 
  24376.                                                 specified with 
  24377.                                                 GpiCreateLogColorTable. 
  24378.  
  24379. PMERR_INV_COLOR_INDEX                           An invalid color index 
  24380.                                                 parameter was specified with 
  24381.                                                 GpiQueryRGBColor. 
  24382.  
  24383. PMERR_INV_COLOR_OPTIONS                         An invalid options parameter 
  24384.                                                 was specified with a logical 
  24385.                                                 color table or color query 
  24386.                                                 function. 
  24387.  
  24388. PMERR_INV_COLOR_START_INDEX                     An invalid starting index 
  24389.                                                 parameter was specified with a 
  24390.                                                 logical color table or color 
  24391.                                                 query function. 
  24392.  
  24393. PMERR_INV_CONV                                  Invalid conversion-type 
  24394.                                                 parameter. 
  24395.  
  24396. PMERR_INV_COORD_OFFSET                          An invalid coordinate offset 
  24397.                                                 value was specified. 
  24398.  
  24399. PMERR_INV_COORD_SPACE                           An invalid source or target 
  24400.                                                 coordinate space parameter was 
  24401.                                                 specified with GpiConvert. 
  24402.  
  24403. PMERR_INV_COORDINATE                            An invalid coordinate value was 
  24404.                                                 specified. 
  24405.  
  24406. PMERR_INV_CORRELATE_DEPTH                       An invalid maxdepth parameter 
  24407.                                                 was specified with 
  24408.                                                 GpiCorrelateSegment, 
  24409.                                                 GpiCorrelateFrom, or 
  24410.                                                 GpiCorrelateChain. 
  24411.  
  24412. PMERR_INV_CORRELATE_TYPE                        An invalid type parameter was 
  24413.                                                 specified with 
  24414.                                                 GpiCorrelateSegment, 
  24415.                                                 GpiCorrelateFrom, or 
  24416.                                                 GpiCorrelateChain. 
  24417.  
  24418. PMERR_INV_CURSOR_BITMAP                         An invalid pointer was 
  24419.                                                 referenced with WinSetPointer. 
  24420.  
  24421. PMERR_INV_DC_DATA                               An invalid data parameter was 
  24422.                                                 specified with DevOpenDC. 
  24423.  
  24424. PMERR_INV_DC_TYPE                               An invalid type parameter was 
  24425.                                                 specified with DevOpenDC, or a 
  24426.                                                 function was issued that is 
  24427.                                                 invalid for a 
  24428.                                                 OD_METAFILE_NOQUERY device 
  24429.                                                 context. 
  24430.  
  24431. PMERR_INV_DEV_MODES_OPTIONS                     An invalid options parameter 
  24432.                                                 was specified with 
  24433.                                                 DevPostDeviceModes. 
  24434.  
  24435. PMERR_INV_DEVICE_NAME                           An invalid devicename parameter 
  24436.                                                 was specified with 
  24437.                                                 DevPostDeviceModes. 
  24438.  
  24439. PMERR_INV_DRAW_BORDER_OPTION                    An invalid option parameter was 
  24440.                                                 specified with WinDrawBorder. 
  24441.  
  24442. PMERR_INV_DRAW_CONTROL                          An invalid control parameter 
  24443.                                                 was specified with 
  24444.                                                 GpiSetDrawControl or 
  24445.                                                 GpiQueryDrawControl. 
  24446.  
  24447. PMERR_INV_DRAW_VALUE                            An invalid value parameter was 
  24448.                                                 specified with 
  24449.                                                 GpiSetDrawControl. 
  24450.  
  24451. PMERR_INV_DRAWING_MODE                          An invalid mode parameter was 
  24452.                                                 specified with 
  24453.                                                 GpiSetDrawControl not 
  24454.                                                 draw-and-retain or draw. 
  24455.  
  24456. PMERR_INV_DRIVER_DATA                           Invalid driver data was 
  24457.                                                 specified. 
  24458.  
  24459. PMERR_INV_DRIVER_NAME                           A driver name was specified 
  24460.                                                 which has not been installed. 
  24461.  
  24462. PMERR_INV_EDIT_MODE                             An invalid mode parameter was 
  24463.                                                 specified with GpiSetEditMode. 
  24464.  
  24465. PMERR_INV_ELEMENT_OFFSET                        An invalid off (offset) 
  24466.                                                 parameter was specified with 
  24467.                                                 GpiQueryElement. 
  24468.  
  24469. PMERR_INV_ELEMENT_POINTER                       An attempt was made to issue 
  24470.                                                 GpiPutData with the element 
  24471.                                                 pointer not pointing at the 
  24472.                                                 last element. 
  24473.  
  24474. PMERR_INV_END_PATH_OPTIONS                      An attempt to create or delete 
  24475.                                                 a path out of context of the 
  24476.                                                 path bracket was made. 
  24477.  
  24478. PMERR_INV_ESCAPE_CODE                           An invalid code parameter was 
  24479.                                                 specified with DevEscape. 
  24480.  
  24481. PMERR_INV_ESCAPE_DATA                           An invalid data parameter was 
  24482.                                                 specified with DevEscape. 
  24483.  
  24484. PMERR_INV_FACENAME                              An invalid font family name was 
  24485.                                                 passed to GpiQueryFaceString. 
  24486.  
  24487. PMERR_INV_FACENAMEDESC                          The font facename description 
  24488.                                                 is invalid. 
  24489.  
  24490. PMERR_INV_FILL_PATH_OPTIONS                     An invalid options parameter 
  24491.                                                 was specified with GpiFillPath. 
  24492.  
  24493. PMERR_INV_FIRST_CHAR                            An invalid firstchar parameter 
  24494.                                                 was specified with 
  24495.                                                 GpiQueryWidthTable. 
  24496.  
  24497. PMERR_INV_FLOOD_FILL_OPTIONS                    Invalid flood fill parameters 
  24498.                                                 were specified. 
  24499.  
  24500. PMERR_INV_FONT_ATTRS                            An invalid attrs parameter was 
  24501.                                                 specified with 
  24502.                                                 GpiCreateLogFont. 
  24503.  
  24504. PMERR_INV_FONT_FILE_DATA                        The font file specified with 
  24505.                                                 GpiLoadFonts, 
  24506.                                                 GpiLoadPublicFonts, 
  24507.                                                 GpiQueryFontFileDescriptions, 
  24508.                                                 or GpiQueryFullFontFileDescs 
  24509.                                                 contains invalid data. 
  24510.  
  24511. PMERR_INV_FOR_THIS_DC_TYPE                      An attempt has been made to 
  24512.                                                 issue GpiRemoveDynamics or 
  24513.                                                 GpiDrawDynamics to a 
  24514.                                                 presentation space associated 
  24515.                                                 with a metafile device context. 
  24516.  
  24517. PMERR_INV_FORMS_CODE                            An invalid forms code parameter 
  24518.                                                 was specified with 
  24519.                                                 DevQueryHardcopyCaps. 
  24520.  
  24521. PMERR_INV_GEOM_LINE_WIDTH_ATTR                  An invalid geometric line width 
  24522.                                                 attribute value was specified. 
  24523.  
  24524. PMERR_INV_GETDATA_CONTROL                       An invalid format parameter was 
  24525.                                                 specified with GpiGetData. 
  24526.  
  24527. PMERR_INV_GRAPHICS_FIELD                        An invalid field parameter was 
  24528.                                                 specified with 
  24529.                                                 GpiSetGraphicsField. 
  24530.  
  24531. PMERR_INV_HBITMAP                               An invalid bit-map handle was 
  24532.                                                 specified. 
  24533.  
  24534. PMERR_INV_HDC                                   An invalid device-context 
  24535.                                                 handle or (micro presentation 
  24536.                                                 space) presentation-space 
  24537.                                                 handle was specified. 
  24538.  
  24539. PMERR_INV_HFONT                                 An invalid font handle was 
  24540.                                                 specified. 
  24541.  
  24542. PMERR_INV_HMF                                   An invalid metafile handle was 
  24543.                                                 specified. 
  24544.  
  24545. PMERR_INV_HPAL                                  An invalid color palette handle 
  24546.                                                 was specified. 
  24547.  
  24548. PMERR_INV_HPS                                   An invalid presentation-space 
  24549.                                                 handle was specified. 
  24550.  
  24551. PMERR_INV_HRGN                                  An invalid region handle was 
  24552.                                                 specified. 
  24553.  
  24554. PMERR_INV_ID                                    An invalid lPSid parameter was 
  24555.                                                 specified with GpiRestorePS. 
  24556.  
  24557. PMERR_INV_IMAGE_DATA_LENGTH                     An invalid lLength parameter 
  24558.                                                 was specified with GpiImage. 
  24559.                                                 There is a mismatch between the 
  24560.                                                 image size and the data length. 
  24561.  
  24562. PMERR_INV_IMAGE_DIMENSION                       An invalid psizlImageSize 
  24563.                                                 parameter was specified with 
  24564.                                                 GpiImage. 
  24565.  
  24566. PMERR_INV_IMAGE_FORMAT                          An invalid lFormat parameter 
  24567.                                                 was specified with GpiImage. 
  24568.  
  24569. PMERR_INV_IN_AREA                               An attempt was made to issue a 
  24570.                                                 function invalid inside an area 
  24571.                                                 bracket.  This can be detected 
  24572.                                                 while the actual drawing mode 
  24573.                                                 is draw or draw-and-retain or 
  24574.                                                 during segment drawing or 
  24575.                                                 correlation functions. 
  24576.  
  24577. PMERR_INV_IN_CURRENT_EDIT_MODE                  An attempt was made to issue a 
  24578.                                                 function invalid inside the 
  24579.                                                 current editing mode. 
  24580.  
  24581. PMERR_INV_IN_ELEMENT                            An attempt was made to issue a 
  24582.                                                 function invalid inside an 
  24583.                                                 element bracket. 
  24584.  
  24585. PMERR_INV_IN_IMAGE                              An attempt was made to issue a 
  24586.                                                 function invalid inside an 
  24587.                                                 element bracket. 
  24588.  
  24589. PMERR_INV_IN_PATH                               An attempt was made to issue a 
  24590.                                                 function invalid inside a path 
  24591.                                                 bracket. 
  24592.  
  24593. PMERR_INV_IN_RETAIN_MODE                        An attempt was made to issue a 
  24594.                                                 function (for example, query) 
  24595.                                                 that is invalid when the actual 
  24596.                                                 drawing mode is not draw or 
  24597.                                                 draw-and-retain. 
  24598.  
  24599. PMERR_INV_IN_SEG                                An attempt was made to issue a 
  24600.                                                 function invalid inside a 
  24601.                                                 segment bracket. 
  24602.  
  24603. PMERR_INV_IN_VECTOR_SYMBOL                      An invalid order was detected 
  24604.                                                 inside a vector symbol 
  24605.                                                 definition while drawing a 
  24606.                                                 vector (outline) font. 
  24607.  
  24608. PMERR_INV_INFO_TABLE                            An invalid bit-map info table 
  24609.                                                 was specified with a bit-map 
  24610.                                                 operation. 
  24611.  
  24612. PMERR_INV_LENGTH_OR_COUNT                       An invalid length or count 
  24613.                                                 parameter was specified. 
  24614.  
  24615. PMERR_INV_LINE_END_ATTR                         An invalid line end attribute 
  24616.                                                 value was specified. 
  24617.  
  24618. PMERR_INV_LINE_JOIN_ATTR                        An invalid line join attribute 
  24619.                                                 value was specified. 
  24620.  
  24621. PMERR_INV_LINE_TYPE_ATTR                        An invalid line type attribute 
  24622.                                                 value was specified or the 
  24623.                                                 default value was explicitly 
  24624.                                                 specified with GpiSetAttrs 
  24625.                                                 instead of using the defaults 
  24626.                                                 mask. 
  24627.  
  24628. PMERR_INV_LINE_WIDTH_ATTR                       An invalid line width attribute 
  24629.                                                 value was specified or the 
  24630.                                                 default value was explicitly 
  24631.                                                 specified with GpiSetAttrs 
  24632.                                                 instead of using the defaults 
  24633.                                                 mask. 
  24634.  
  24635. PMERR_INV_LOGICAL_ADDRESS                       An invalid device logical 
  24636.                                                 address was specified. 
  24637.  
  24638. PMERR_INV_MARKER_BOX_ATTR                       An invalid marker box attribute 
  24639.                                                 value was specified. 
  24640.  
  24641. PMERR_INV_MARKER_SET_ATTR                       An invalid marker set attribute 
  24642.                                                 value was specified or the 
  24643.                                                 default value was explicitly 
  24644.                                                 specified with GpiSetAttrs 
  24645.                                                 instead of using the defaults 
  24646.                                                 mask. 
  24647.  
  24648. PMERR_INV_MARKER_SYMBOL_ATTR                    An invalid marker symbol 
  24649.                                                 attribute value was specified 
  24650.                                                 or the default value was 
  24651.                                                 explicitly specified with 
  24652.                                                 GpiSetAttrs instead of using 
  24653.                                                 the defaults mask. 
  24654.  
  24655. PMERR_INV_MATRIX_ELEMENT                        An invalid transformation 
  24656.                                                 matrix element was specified. 
  24657.  
  24658. PMERR_INV_MAX_HITS                              An invalid maxhits parameter 
  24659.                                                 was specified with 
  24660.                                                 GpiCorrelateSegment, 
  24661.                                                 GpiCorrelateFrom, or 
  24662.                                                 GpiCorrelateChain. 
  24663.  
  24664. PMERR_INV_METAFILE                              An invalid metafile was 
  24665.                                                 specified with GpiPlayMetaFile. 
  24666.  
  24667. PMERR_INV_METAFILE_LENGTH                       An invalid length parameter was 
  24668.                                                 specified with 
  24669.                                                 GpiSetMetaFileBits or 
  24670.                                                 GpiQueryMetaFileBits. 
  24671.  
  24672. PMERR_INV_METAFILE_OFFSET                       An invalid length parameter was 
  24673.                                                 specified with 
  24674.                                                 GpiSetMetaFileBits or 
  24675.                                                 GpiQueryMetaFileBits. 
  24676.  
  24677. PMERR_INV_MICROPS_DRAW_CONTROL                  A draw control parameter was 
  24678.                                                 specified with 
  24679.                                                 GpiSetDrawControl that is 
  24680.                                                 invalid in a micro presentation 
  24681.                                                 space. 
  24682.  
  24683. PMERR_INV_MICROPS_FUNCTION                      An attempt was made to issue a 
  24684.                                                 function that is invalid in a 
  24685.                                                 micro presentation space. 
  24686.  
  24687. PMERR_INV_MICROPS_ORDER                         An attempt was made to play a 
  24688.                                                 metafile containing orders that 
  24689.                                                 are invalid in a micro 
  24690.                                                 presentation space. 
  24691.  
  24692. PMERR_INV_MIX_ATTR                              An invalid mix attribute value 
  24693.                                                 was specified or the default 
  24694.                                                 value was explicitly specified 
  24695.                                                 with GpiSetAttrs instead of 
  24696.                                                 using the defaults mask. 
  24697.  
  24698. PMERR_INV_MODE_FOR_OPEN_DYN                     An attempt was made to open a 
  24699.                                                 segment with the ATTR_DYNAMIC 
  24700.                                                 segment set, while the drawing 
  24701.                                                 mode was set to DM_DRAW or 
  24702.                                                 DM_DRAWANDRETAIN. 
  24703.  
  24704. PMERR_INV_MODE_FOR_REOPEN_SEG                   An attempt was made to reopen 
  24705.                                                 an existing segment while the 
  24706.                                                 drawing mode was set to DM_DRAW 
  24707.                                                 or DM_DRAWANDRETAIN. 
  24708.  
  24709. PMERR_INV_MODIFY_PATH_MODE                      An invalid mode parameter was 
  24710.                                                 specified with GpiModifyPath. 
  24711.  
  24712. PMERR_INV_MULTIPLIER                            An invalid multiplier parameter 
  24713.                                                 was specified with 
  24714.                                                 GpiPartialArc or GpiFullArc. 
  24715.  
  24716. PMERR_INV_NESTED_FIGURES                        Nested figures have been 
  24717.                                                 detected within a path 
  24718.                                                 definition. 
  24719.  
  24720. PMERR_INV_OR_INCOMPAT_OPTIONS                   An invalid or incompatible 
  24721.                                                 (with micro presentation space) 
  24722.                                                 options parameter was specified 
  24723.                                                 with GpiCreatePS or GpiSetPS. 
  24724.  
  24725. PMERR_INV_ORDER_LENGTH                          An invalid order length was 
  24726.                                                 detected during GpiPutData or 
  24727.                                                 segment drawing. 
  24728.  
  24729. PMERR_INV_ORDERING_PARM                         An invalid order parameter was 
  24730.                                                 specified with 
  24731.                                                 GpiSetSegmentPriority. 
  24732.  
  24733. PMERR_INV_OUTSIDE_DRAW_MODE                     An attempt was made to issue a 
  24734.                                                 GpiSavePS or GpiRestorePS 
  24735.                                                 function, or an output only 
  24736.                                                 function (for example, 
  24737.                                                 GpiPaintRegion) from 
  24738.                                                 GpiPlayMetaFile without the 
  24739.                                                 drawing mode set to DM_DRAW. 
  24740.  
  24741. PMERR_INV_PAGE_VIEWPORT                         An invalid viewport parameter 
  24742.                                                 was specified with 
  24743.                                                 GpiSetPageViewport. 
  24744.  
  24745. PMERR_INV_PATH_CONVERT_OPTIONS                  An invalid options parameter 
  24746.                                                 was specified with 
  24747.                                                 GpiOutlinePath. 
  24748.  
  24749. PMERR_INV_PATH_ID                               An invalid path identifier 
  24750.                                                 parameter was specified. 
  24751.  
  24752. PMERR_INV_PATTERN_ATTR                          An invalid pattern symbol 
  24753.                                                 attribute value was specified 
  24754.                                                 or the default value was 
  24755.                                                 explicitly specified with 
  24756.                                                 GpiSetAttrs instead of using 
  24757.                                                 the defaults mask. 
  24758.  
  24759. PMERR_INV_PATTERN_REF_PT_ATTR                   An invalid refpoint attribute 
  24760.                                                 value was specified. 
  24761.  
  24762. PMERR_INV_PATTERN_SET_ATTR                      An invalid pattern set 
  24763.                                                 attribute value was specified 
  24764.                                                 or the default value was 
  24765.                                                 explicitly specified with 
  24766.                                                 GpiSetAttrs instead of using 
  24767.                                                 the defaults mask. 
  24768.  
  24769. PMERR_INV_PATTERN_SET_FONT                      An attempt was made to use an 
  24770.                                                 unsuitable font as a pattern 
  24771.                                                 set. 
  24772.  
  24773. PMERR_INV_PICK_APERTURE_OPTION                  An invalid options parameter 
  24774.                                                 was specified with 
  24775.                                                 GpiSetPickApertureSize. 
  24776.  
  24777. PMERR_INV_PICK_APERTURE_POSN                    An invalid pick aperture 
  24778.                                                 position was specified. 
  24779.  
  24780. PMERR_INV_PICK_APERTURE_SIZE                    An invalid size parameter was 
  24781.                                                 specified with 
  24782.                                                 GpiSetPickApertureSize. 
  24783.  
  24784. PMERR_INV_PLAY_METAFILE_OPTION                  An invalid option parameter was 
  24785.                                                 specified with GpiPlayMetaFile. 
  24786.  
  24787. PMERR_INV_PRIMITIVE_TYPE                        An invalid primitive type 
  24788.                                                 parameter was specified with 
  24789.                                                 GpiSetAttrs or GpiQueryAttrs. 
  24790.  
  24791. PMERR_INV_PS_SIZE                               An invalid size parameter was 
  24792.                                                 specified with GpiCreatePS or 
  24793.                                                 GpiSetPS. 
  24794.  
  24795. PMERR_INV_PUTDATA_FORMAT                        An invalid format parameter was 
  24796.                                                 specified with GpiPutData. 
  24797.  
  24798. PMERR_INV_QUERY_ELEMENT_NO                      An invalid start parameter was 
  24799.                                                 specified with DevQueryCaps. 
  24800.  
  24801. PMERR_INV_RECT                                  An invalid rectangle parameter 
  24802.                                                 was specified. 
  24803.  
  24804. PMERR_INV_REGION_CONTROL                        An invalid control parameter 
  24805.                                                 was specified with 
  24806.                                                 GpiQueryRegionRects. 
  24807.  
  24808. PMERR_INV_REGION_MIX_MODE                       An invalid mode parameter was 
  24809.                                                 specified with 
  24810.                                                 GpiCombineRegion. 
  24811.  
  24812. PMERR_INV_REPLACE_MODE_FUNC                     An attempt was made to issue 
  24813.                                                 GpiPutData with the editing 
  24814.                                                 mode set to SEGEM_REPLACE. 
  24815.  
  24816. PMERR_INV_RESERVED_FIELD                        An invalid reserved field was 
  24817.                                                 specified. 
  24818.  
  24819. PMERR_INV_RESET_OPTIONS                         An invalid options parameter 
  24820.                                                 was specified with GpiResetPS. 
  24821.  
  24822. PMERR_INV_RGBCOLOR                              An invalid rgb color parameter 
  24823.                                                 was specified with 
  24824.                                                 GpiQueryNearestColor or 
  24825.                                                 GpiQueryColor. 
  24826.  
  24827. PMERR_INV_SCAN_START                            An invalid scanstart parameter 
  24828.                                                 was specified with a bit-map 
  24829.                                                 function. 
  24830.  
  24831. PMERR_INV_SEG_ATTR                              An invalid attribute parameter 
  24832.                                                 was specified with 
  24833.                                                 GpiSetSegmentAttrs, 
  24834.                                                 GpiQuerySegmentAttrs, 
  24835.                                                 GpiSetInitialSegmentAttrs, or 
  24836.                                                 GpiQueryInitialSegmentAttrs. 
  24837.  
  24838. PMERR_INV_SEG_ATTR_VALUE                        An invalid attribute value 
  24839.                                                 parameter was specified with 
  24840.                                                 GpiSetSegmentAttrs or 
  24841.                                                 GpiSetInitialSegmentAttrs. 
  24842.  
  24843. PMERR_INV_SEG_NAME                              An invalid segment identifier 
  24844.                                                 was specified. 
  24845.  
  24846. PMERR_INV_SEG_OFFSET                            An invalid offset parameter was 
  24847.                                                 specified with GpiPutData. 
  24848.  
  24849. PMERR_INV_SEGLEN                                An order length exceeds the 
  24850.                                                 remaining segment length in the 
  24851.                                                 input PIF. 
  24852.  
  24853. PMERR_INV_SETID                                 An invalid setid parameter was 
  24854.                                                 specified. 
  24855.  
  24856. PMERR_INV_SHARPNESS_PARM                        An invalid sharpness parameter 
  24857.                                                 was specified with 
  24858.                                                 GpiPolyFilletSharp. 
  24859.  
  24860. PMERR_INV_STOP_DRAW_VALUE                       An invalid value parameter was 
  24861.                                                 specified with GpiSetStopDraw. 
  24862.  
  24863. PMERR_INV_TRANSFORM_TYPE                        An invalid options parameter 
  24864.                                                 was specified with a transform 
  24865.                                                 matrix function. 
  24866.  
  24867. PMERR_INV_TYPE                                  Invalid file-type parameter. 
  24868.  
  24869. PMERR_INV_USAGE_PARM                            An invalid options parameter 
  24870.                                                 was specified with 
  24871.                                                 GpiCreateBitmap. 
  24872.  
  24873. PMERR_INV_VIEWING_LIMITS                        An invalid limits parameter was 
  24874.                                                 specified with 
  24875.                                                 GpiSetViewingLimits. 
  24876.  
  24877. PMERR_INV_VIEWLIM                               A set viewing limits order has 
  24878.                                                 an inconsistent mask and order 
  24879.                                                 length in the input PIF. 
  24880.  
  24881. PMERR_INV_XFORM                                 A set (default) viewing 
  24882.                                                 transform order has an 
  24883.                                                 inconsistent mask and order 
  24884.                                                 length in the input PIF. 
  24885.  
  24886. PMERR_INV_3DCOORD                               An order specifying 
  24887.                                                 3-dimensional coordinates has 
  24888.                                                 been found in the input PIF. 
  24889.  
  24890. PMERR_INVALID_ARRAY_COUNT                       An array has an invalid count, 
  24891.                                                 that is, less than or equal to 
  24892.                                                 zero. 
  24893.  
  24894. PMERR_INVALID_APPL                              Attempted to start an 
  24895.                                                 application whose type is not 
  24896.                                                 recognized by OS/2. 
  24897.  
  24898. PMERR_INVALID_ARRAY_SIZE                        A control data type array size 
  24899.                                                 is invalid. 
  24900.  
  24901. PMERR_INVALID_ASCIIZ                            The profile string is not a 
  24902.                                                 valid zero-terminated string. 
  24903.  
  24904. PMERR_INVALID_ATOM                              The specified atom does not 
  24905.                                                 exist in the atom table. 
  24906.  
  24907. PMERR_INVALID_ATOM_NAME                         An invalid atom name string was 
  24908.                                                 passed. 
  24909.  
  24910. PMERR_INVALID_BUNDLE_TYPE                       An invalid bundle type was 
  24911.                                                 passed. 
  24912.  
  24913. PMERR_INVALID_CHARACTER_INDEX                   On WinNextChar or WinPrevChar, 
  24914.                                                 a character index is invalid, 
  24915.                                                 that is, it is less than 1 or 
  24916.                                                 is greater than the string 
  24917.                                                 length+1. 
  24918.  
  24919. PMERR_INVALID_CONTROL_DATATYPE                  An invalid control data type 
  24920.                                                 was specified. 
  24921.  
  24922. PMERR_INVALID_CONTROL_SEQ_INDEX                 There is an invalid index in a 
  24923.                                                 control data type sequence (for 
  24924.                                                 array, length, offset or 
  24925.                                                 MPARAM) that is, the index is 
  24926.                                                 to a non-existent or 
  24927.                                                 non-numeric entry. 
  24928.  
  24929. PMERR_INVALID_DATATYPE                          An invalid data type was 
  24930.                                                 specified. 
  24931.  
  24932. PMERR_INVALID_DST_CODEPAGE                      The destination code page 
  24933.                                                 parameter is invalid. 
  24934.  
  24935. PMERR_INVALID_FLAG                              An invalid bit was set for a 
  24936.                                                 parameter. Use constants 
  24937.                                                 defined by PM for options, and 
  24938.                                                 do not set any reserved bits. 
  24939.  
  24940. PMERR_INVALID_ERRORINFO_HANDLE                  On WinFreeErrorInfo, the 
  24941.                                                 ERRINFO is not the handle of an 
  24942.                                                 ERRINFO structure, that is, it 
  24943.                                                 was not created by 
  24944.                                                 WinGetErrorInfo. 
  24945.  
  24946. PMERR_INVALID_FREE_MESSAGE_ID                   An invalid message identifier 
  24947.                                                 was specified. The call has 
  24948.                                                 completed by assuming the 
  24949.                                                 message parameter and reply 
  24950.                                                 data types to be ULONG. 
  24951.  
  24952. PMERR_INVALID_GROUP_HANDLE                      An invalid program-group handle 
  24953.                                                 was specified. 
  24954.  
  24955. PMERR_INVALID_HACCEL                            An invalid accelerator-table 
  24956.                                                 handle was specified. 
  24957.  
  24958. PMERR_INVALID_HANDLE                            An invalid handle was 
  24959.                                                 specified. 
  24960.  
  24961. PMERR_INVALID_HAPP                              The application handle passed 
  24962.                                                 to WinTerminateApp does not 
  24963.                                                 correspond to a valid session. 
  24964.  
  24965. PMERR_INVALID_HATOMTBL                          An invalid atom-table handle 
  24966.                                                 was specified. 
  24967.  
  24968. PMERR_INVALID_HEAP_POINTER                      An invalid pointer was found 
  24969.                                                 within the heap. 
  24970.  
  24971. PMERR_INVALID_HEAP_SIZE_PARM                    Invalid data was found within 
  24972.                                                 the heap. 
  24973.  
  24974. PMERR_INVALID_HEAP_SIZE_WORD                    Invalid data was found within 
  24975.                                                 the heap. 
  24976.  
  24977. PMERR_INVALID_HENUM                             An invalid enumeration handle 
  24978.                                                 was specified. 
  24979.  
  24980. PMERR_INVALID_HHEAP                             An invalid heap handle was 
  24981.                                                 specified. 
  24982.  
  24983. PMERR_INVALID_HMQ                               An invalid message-queue handle 
  24984.                                                 was specified. 
  24985.  
  24986. PMERR_INVALID_HPTR                              An invalid pointer handle was 
  24987.                                                 specified. 
  24988.  
  24989. PMERR_INVALID_HSTRUCT                           An invalid (null) structure 
  24990.                                                 handle was specified. 
  24991.  
  24992. PMERR_INVALID_HWND                              An invalid window handle was 
  24993.                                                 specified. 
  24994.  
  24995. PMERR_INVALID_INI_FILE_HANDLE                   An invalid initialization-file 
  24996.                                                 handle was specified. 
  24997.  
  24998. PMERR_INVALID_INTEGER_ATOM                      The specified atom is not a 
  24999.                                                 valid integer atom. 
  25000.  
  25001. PMERR_INVALID_MESSAGE_ID                        A message identifier is 
  25002.                                                 invalid. 
  25003.  
  25004. PMERR_INVALID_NUMBER_OF_PARMS                   The number of parameters is 
  25005.                                                 invalid. 
  25006.  
  25007. PMERR_INVALID_NUMBER_OF_TYPES                   The function call has an 
  25008.                                                 invalid number (zero) of types. 
  25009.  
  25010. PMERR_INVALID_PARAMETERS                        An application parameter value 
  25011.                                                 is invalid for its converted PM 
  25012.                                                 type. For example: a 4-byte 
  25013.                                                 value outside the range - 
  25014.                                                 32,768 to +32,767 cannot be 
  25015.                                                 converted to a SHORT, and a 
  25016.                                                 negative number cannot be 
  25017.                                                 converted to a ULONG or USHORT. 
  25018.  
  25019. PMERR_INVALID_PARAMETER_TYPE                    A parameter type is invalid for 
  25020.                                                 a bundle mask. 
  25021.  
  25022. PMERR_INVALID_PARM                              A parameter to the function 
  25023.                                                 contained invalid data. 
  25024.  
  25025. PMERR_INVALID_PROGRAM_HANDLE                    An invalid program handle was 
  25026.                                                 specified. 
  25027.  
  25028. PMERR_INVALID_SESSION_ID                        The specified session 
  25029.                                                 identifier is invalid.  Either 
  25030.                                                 zero (for the application's own 
  25031.                                                 session) or a valid identifier 
  25032.                                                 must be specified. 
  25033.  
  25034. PMERR_INVALID_SRC_CODEPAGE                      The source code page parameter 
  25035.                                                 is invalid. 
  25036.  
  25037. PMERR_INVALID_STRING_PARM                       The specified string parameter 
  25038.                                                 is invalid. 
  25039.  
  25040. PMERR_INVALID_SWITCH_HANDLE                     An invalid Window List entry 
  25041.                                                 handle was specified. 
  25042.  
  25043. PMERR_INVALID_TARGET_HANDLE                     An invalid target program-group 
  25044.                                                 handle was specified. 
  25045.  
  25046. PMERR_INVALID_TITLE                             The specified program or group 
  25047.                                                 title is too long or contains 
  25048.                                                 invalid characters. 
  25049.  
  25050. PMERR_INVALID_TYPE_FOR_LENGTH                   The data type for a control 
  25051.                                                 length is invalid. 
  25052.  
  25053. PMERR_INVALID_TYPE_FOR_MPARAM                   The message parameter type for 
  25054.                                                 a control MPARAM is invalid, 
  25055.                                                 that is, not mparam1, mparam2 
  25056.                                                 or mreply. 
  25057.  
  25058. PMERR_INVALID_TYPE_FOR_OFFSET                   The data type for a control 
  25059.                                                 offset is invalid. 
  25060.  
  25061. PMERR_INVALID_WINDOW                            The window specified with a 
  25062.                                                 Window List call is not a valid 
  25063.                                                 frame window. 
  25064.  
  25065. PMERR_KERNING_NOT_SUPPORTED                     Kerning was requested on 
  25066.                                                 GpiCreateLogFont call to a 
  25067.                                                 presentation space associated 
  25068.                                                 with a device context that does 
  25069.                                                 not support kerning. 
  25070.  
  25071. PMERR_LABEL_NOT_FOUND                           The specified element label did 
  25072.                                                 not exist. 
  25073.  
  25074. PMERR_MATRIX_OVERFLOW                           An internal overflow error 
  25075.                                                 occurred during matrix 
  25076.                                                 multiplication. This can occur 
  25077.                                                 if coordinates or matrix 
  25078.                                                 transformation elements (or 
  25079.                                                 both) are invalid or too large. 
  25080.  
  25081. PMERR_MEMORY_ALLOC                              An error occurred during memory 
  25082.                                                 management. 
  25083.  
  25084. PMERR_MEMORY_ALLOCATION_ERR                     An error occurred during memory 
  25085.                                                 management. 
  25086.  
  25087. PMERR_MEMORY_DEALLOCATION_ERR                   An error occurred during memory 
  25088.                                                 management. 
  25089.  
  25090. PMERR_METAFILE_INTERNAL_ERROR                   An internal inconsistency has 
  25091.                                                 been detected during metafile 
  25092.                                                 unlock processing. 
  25093.  
  25094. PMERR_METAFILE_IN_USE                           An attempt has been made to 
  25095.                                                 access a metafile that is in 
  25096.                                                 use by another thread. 
  25097.  
  25098. PMERR_METAFILE_LIMIT_EXCEEDED                   The maximum permitted metafile 
  25099.                                                 size limit was exceeded during 
  25100.                                                 metafile recording. 
  25101.  
  25102. PMERR_MSGID_TOO_SMALL                           The message identifier 
  25103.                                                 specified is too small. 
  25104.  
  25105. PMERR_NEGATIVE_STRCOND_DIM                      A negative array dimension was 
  25106.                                                 passed for a data type length. 
  25107.  
  25108. PMERR_NO_BITMAP_SELECTED                        An attempt has been made to 
  25109.                                                 operate on a memory device 
  25110.                                                 context that has no bit map 
  25111.                                                 selected. 
  25112.  
  25113. PMERR_NO_CURRENT_ELEMENT                        An attempt has been made to 
  25114.                                                 issue GpiQueryElementType or 
  25115.                                                 GpiQueryElement while there is 
  25116.                                                 no currently open element. 
  25117.  
  25118. PMERR_NO_CURRENT_SEG                            An attempt has been made to 
  25119.                                                 issue GpiQueryElementType or 
  25120.                                                 GpiQueryElement while there is 
  25121.                                                 no currently open segment. 
  25122.  
  25123. PMERR_NO_FILL                                   No flood fill occurred because 
  25124.                                                 either the starting point color 
  25125.                                                 was the same as the input color 
  25126.                                                 when a boundary fill was 
  25127.                                                 requested, or the starting 
  25128.                                                 point color was not the same as 
  25129.                                                 the input color when a surface 
  25130.                                                 fill was requested. 
  25131.  
  25132. PMERR_NO_METAFILE_RECORD_HANDLE                 The metafile record handle was 
  25133.                                                 not found during metafile 
  25134.                                                 recording, or DevEscape 
  25135.                                                 (DEVESC_STARTDOC) was not 
  25136.                                                 issued when drawing to a 
  25137.                                                 OD_QUEUED device context with a 
  25138.                                                 pszDataType field of PM_Q_STD. 
  25139.  
  25140. PMERR_NO_PALETTE_SELECTED                       An attempt to realize a palette 
  25141.                                                 failed because no palette was 
  25142.                                                 previously selected into the 
  25143.                                                 Presentation Space. 
  25144.  
  25145. PMERR_NO_SPACE                                  The limit on the number of 
  25146.                                                 Window List entries has been 
  25147.                                                 reached with WinAddSwitchEntry. 
  25148.  
  25149. PMERR_NOT_CREATED_BY_DEVOPENDC                  An attempt has been made to 
  25150.                                                 destroy a device context using 
  25151.                                                 DevCloseDC that was not created 
  25152.                                                 using DevOpenDC. 
  25153.  
  25154. PMERR_NOT_CURRENT_PL_VERSION                    An unexpected data format was 
  25155.                                                 found in the initialization 
  25156.                                                 file. 
  25157.  
  25158. PMERR_NOT_DRAGGING                              A drag operation is not in 
  25159.                                                 progress at this time. 
  25160.  
  25161. PMERR_NOT_IN_A_PM_SESSION                       An attempt was made to access 
  25162.                                                 function that is only available 
  25163.                                                 from PM programs from a non-PM 
  25164.                                                 session. 
  25165.  
  25166. PMERR_NOT_IN_AREA                               An attempt was made to end an 
  25167.                                                 area using GpiEndArea or during 
  25168.                                                 segment drawing while not in an 
  25169.                                                 area bracket. 
  25170.  
  25171. PMERR_NOT_IN_DRAW_MODE                          An attempt was made to issue 
  25172.                                                 GpiSavePS or GpiRestorePS while 
  25173.                                                 the drawing mode was not set to 
  25174.                                                 DM_DRAW. 
  25175.  
  25176. PMERR_NOT_IN_ELEMENT                            An attempt was made to end an 
  25177.                                                 element using GpiEndElement or 
  25178.                                                 during segment drawing while 
  25179.                                                 not in an element bracket. 
  25180.  
  25181. PMERR_NOT_IN_IDX                                The application name, key-name 
  25182.                                                 or program handle was not 
  25183.                                                 found. 
  25184.  
  25185. PMERR_NOT_IN_IMAGE                              An attempt was made to end an 
  25186.                                                 image during segment drawing 
  25187.                                                 while not in an image bracket. 
  25188.  
  25189. PMERR_NOT_IN_PATH                               An attempt was made to end a 
  25190.                                                 path using GpiEndPath or during 
  25191.                                                 segment drawing while not in a 
  25192.                                                 path bracket. 
  25193.  
  25194. PMERR_NOT_IN_RETAIN_MODE                        An attempt was made to issue a 
  25195.                                                 segment editing element 
  25196.                                                 function that is invalid when 
  25197.                                                 the actual drawing mode is not 
  25198.                                                 set to retain. 
  25199.  
  25200. PMERR_NOT_IN_SEG                                An attempt was made to end a 
  25201.                                                 segment using GpiCloseSegment 
  25202.                                                 while not in a segment bracket. 
  25203.  
  25204. PMERR_NOT_SELF_DESCRIBING_DTYP                  A data type is not 
  25205.                                                 self-describing. 
  25206.  
  25207. PMERR_OPENING_INI_FILE                          Unable to open initialization 
  25208.                                                 file (due to lack of disk space 
  25209.                                                 for example). 
  25210.  
  25211. PMERR_ORDER_TOO_BIG                             An internal size limit was 
  25212.                                                 exceeded while converting 
  25213.                                                 orders from short to long 
  25214.                                                 format during GpiPutData 
  25215.                                                 processing. An order was too 
  25216.                                                 long to convert. 
  25217.  
  25218. PMERR_OWN_SET_ID_REFS                           An attempt to unload a font 
  25219.                                                 failed because the setid is 
  25220.                                                 still being referenced. 
  25221.  
  25222. PMERR_PALETTE_BUSY                              An attempt has been made to 
  25223.                                                 reset the owner of a palette 
  25224.                                                 when it was busy. 
  25225.  
  25226. PMERR_PALETTE_SELECTED                          Color palette operations cannot 
  25227.                                                 be performed on a presentation 
  25228.                                                 space while a palette is 
  25229.                                                 selected. 
  25230.  
  25231. PMERR_PARAMETER_OUT_OF_RANGE                    The value of a parameter was 
  25232.                                                 not within the defined valid 
  25233.                                                 range for that parameter. 
  25234.  
  25235. PMERR_PATH_INCOMPLETE                           An attempt was made to open or 
  25236.                                                 close a segment either directly 
  25237.                                                 or during segment drawing, or 
  25238.                                                 to issue GpiAssociate while 
  25239.                                                 there is an open path bracket. 
  25240.  
  25241. PMERR_PATH_LIMIT_EXCEEDED                       An internal size limit was 
  25242.                                                 exceeded during path or area 
  25243.                                                 processing. 
  25244.  
  25245. PMERR_PATH_UNKNOWN                              An attempt was made to perform 
  25246.                                                 a path function on a path that 
  25247.                                                 did not exist. 
  25248.  
  25249. PMERR_PEL_IS_CLIPPED                            An attempt was made to query a 
  25250.                                                 pel that had been clipped using 
  25251.                                                 GpiQueryPel. 
  25252.  
  25253. PMERR_PEL_NOT_AVAILABLE                         An attempt was made to query a 
  25254.                                                 pel that did not exist in 
  25255.                                                 GpiQueryPel (for example, a 
  25256.                                                 memory device context with no 
  25257.                                                 selected bit map). 
  25258.  
  25259. PMERR_PROLOG_ERROR                              A prolog error was detected 
  25260.                                                 during drawing.  Segment 
  25261.                                                 prologs are used internally 
  25262.                                                 within retained segments and 
  25263.                                                 also appear in metafiles. This 
  25264.                                                 error can also arise from an 
  25265.                                                 End Prolog order that is 
  25266.                                                 outside a prolog. 
  25267.  
  25268. PMERR_PRINTER_DD_NOT_DEFINED                    The Presentation Manager device 
  25269.                                                 driver has not been defined. 
  25270.  
  25271. PMERR_PRINTER_QUEUE_NOT_DEFINED                 The spooler queue for the 
  25272.                                                 printer has not been defined. 
  25273.  
  25274. PMERR_PRN_ADDR_IN_USE                           A printer is already defined on 
  25275.                                                 the port. 
  25276.  
  25277. PMERR_PRN_ADDR_NOT_DEFINED                      The printer port has not been 
  25278.                                                 defined. 
  25279.  
  25280. PMERR_PRN_NAME_NOT_DEFINED                      The printer has not been 
  25281.                                                 defined. 
  25282.  
  25283. PMERR_PS_BUSY                                   An attempt was made to access 
  25284.                                                 the presentation space from 
  25285.                                                 more than one thread 
  25286.                                                 simultaneously. 
  25287.  
  25288. PMERR_PS_IS_ASSOCIATED                          An attempt was made to destroy 
  25289.                                                 a presentation or associate a 
  25290.                                                 presentation space that is 
  25291.                                                 still associated with a device 
  25292.                                                 context. 
  25293.  
  25294. PMERR_PS_NOT_ASSOCIATED                         An attempt was made to access a 
  25295.                                                 presentation space that is not 
  25296.                                                 associated with a device 
  25297.                                                 context. 
  25298.  
  25299. PMERR_QUEUE_ALREADY_EXISTS                      An attempt to create a message 
  25300.                                                 queue for a thread failed 
  25301.                                                 because one already exists for 
  25302.                                                 the calling thread. 
  25303.  
  25304. PMERR_RASTER_FONT                               A request was made for the 
  25305.                                                 outline of a bit-map font. 
  25306.                                                 Outlines can only be returned 
  25307.                                                 for vector font characters. 
  25308.  
  25309. PMERR_REALIZE_NOT_SUPPORTED                     An attempt was made to create a 
  25310.                                                 realizable logical color table 
  25311.                                                 on a device driver that does 
  25312.                                                 not support this function. 
  25313.  
  25314. PMERR_REGION_IS_CLIP_REGION                     An attempt was made to perform 
  25315.                                                 a region operation on a region 
  25316.                                                 that is selected as a clip 
  25317.                                                 region. 
  25318.  
  25319. PMERR_RESOURCE_DEPLETION                        An internal resource depletion 
  25320.                                                 error has occurred. 
  25321.  
  25322. PMERR_RESOURCE_NOT_FOUND                        The specified resource identity 
  25323.                                                 could not be found. 
  25324.  
  25325. PMERR_SEG_AND_REFSEG_ARE_SAME                   The segid and refsegid 
  25326.                                                 specified with 
  25327.                                                 GpiSetSegmentPriority were the 
  25328.                                                 same. 
  25329.  
  25330. PMERR_SEG_CALL_STACK_EMPTY                      A call stack empty condition 
  25331.                                                 was detected when attempting a 
  25332.                                                 pop function during GpiPop or 
  25333.                                                 segment drawing. 
  25334.  
  25335. PMERR_SEG_CALL_STACK_FULL                       A call stack full condition was 
  25336.                                                 detected when attempting to 
  25337.                                                 call a segment using 
  25338.                                                 GpiCallSegmentMatrix, 
  25339.                                                 attempting to preserve an 
  25340.                                                 attribute, or during segment 
  25341.                                                 drawing. 
  25342.  
  25343. PMERR_SEG_IS_CURRENT                            An attempt was made to issue 
  25344.                                                 GpiGetData to a segment that 
  25345.                                                 was currently open. 
  25346.  
  25347. PMERR_SEG_NOT_CHAINED                           An attempt was made to issue 
  25348.                                                 GpiDrawFrom, GpiCorrelateFrom 
  25349.                                                 or GpiQuerySegmentPriority for 
  25350.                                                 a segment that was not chained. 
  25351.  
  25352. PMERR_SEG_NOT_FOUND                             The specified segment 
  25353.                                                 identifier did not exist. 
  25354.  
  25355. PMERR_SEG_OVFLOW                                The input PIF has more than 
  25356.                                                 1000 called segments. This has 
  25357.                                                 overflowed an internal buffer. 
  25358.  
  25359. PMERR_SEG_STORE_LIMIT_EXCEEDED                  The maximum permitted retained 
  25360.                                                 segment store size limit was 
  25361.                                                 exceeded. 
  25362.  
  25363. PMERR_SET_ID_REFS                               An attempt to unload a font 
  25364.                                                 failed because the setid is 
  25365.                                                 still being referenced. 
  25366.  
  25367. PMERR_SETID_IN_USE                              An attempt was made to specify 
  25368.                                                 a setid that was already in use 
  25369.                                                 as the currently selected 
  25370.                                                 character, marker or pattern 
  25371.                                                 set. 
  25372.  
  25373. PMERR_SETID_NOT_FOUND                           An attempt was made to delete a 
  25374.                                                 setid that did not exist. 
  25375.  
  25376. PMERR_SMB_OVFLOW                                The input PIF has more than 100 
  25377.                                                 symbol sets defined. This has 
  25378.                                                 overflowed an internal buffer. 
  25379.  
  25380. PMERR_SOURCE_SAME_AS_TARGET                     The direct manipulation source 
  25381.                                                 and target process are the 
  25382.                                                 same. 
  25383.  
  25384. PMERR_SPL_CANNOT_OPEN_FILE                      Unable to open the file. 
  25385.  
  25386. PMERR_SPL_DD_NOT_FOUND                          The Presentation Manager device 
  25387.                                                 driver definition could not be 
  25388.                                                 found. 
  25389.  
  25390. PMERR_SPL_DEVICE_ALREADY_EXISTS                 The device already exists. 
  25391.  
  25392. PMERR_SPL_DEVICE_LIMIT_REACHED                  The limit on the number of 
  25393.                                                 devices has been reached. 
  25394.  
  25395. PMERR_SPL_DEVICE_NOT_INSTALLED                  The device has not been 
  25396.                                                 installed. 
  25397.  
  25398. PMERR_SPL_DRIVER_ERROR                          No Presentation Manager device 
  25399.                                                 driver supplied or found. 
  25400.  
  25401. PMERR_SPL_DRIVER_NOT_INSTALLED                  The Presentation Manager device 
  25402.                                                 driver has not been installed. 
  25403.  
  25404. PMERR_SPL_FILE_NOT_FOUND                        Unable to find the file. 
  25405.  
  25406. PMERR_SPL_HARD_NETWORK_ERROR                    Hard network error. 
  25407.  
  25408. PMERR_SPL_INI_FILE_ERROR                        Error accessing the 
  25409.                                                 initialization file. 
  25410.  
  25411. PMERR_SPL_INV_DATATYPE                          The spool file data type is 
  25412.                                                 invalid. 
  25413.  
  25414. PMERR_SPL_INV_DRIVER_DATATYPE                   The data type is invalid for 
  25415.                                                 the Presentation Manager device 
  25416.                                                 driver. 
  25417.  
  25418. PMERR_SPL_INV_FORMS_CODE                        The forms code for the job is 
  25419.                                                 invalid. 
  25420.  
  25421. PMERR_SPL_INV_HSPL                              The spooler handle is invalid. 
  25422.  
  25423. PMERR_SPL_INV_JOB_ID                            The job id is invalid. 
  25424.  
  25425. PMERR_SPL_INV_LENGTH_OR_COUNT                   The length or count is invalid. 
  25426.  
  25427. PMERR_SPL_INV_PRIORITY                          The priority for the job is 
  25428.                                                 invalid. 
  25429.  
  25430. PMERR_SPL_INV_PROCESSOR_DATTYPE                 The data type is invalid for 
  25431.                                                 the spooler queue processor. 
  25432.  
  25433. PMERR_SPL_INV_QUEUE_NAME                        The spooler queue name is 
  25434.                                                 invalid. 
  25435.  
  25436. PMERR_SPL_INV_TOKEN                             The token is invalid. 
  25437.  
  25438. PMERR_SPL_JOB_NOT_PRINTING                      The print job is not printing. 
  25439.  
  25440. PMERR_SPL_JOB_PRINTING                          The print job is already 
  25441.                                                 printing. 
  25442.  
  25443. PMERR_SPL_MANY_QUEUES_ASSOC                     More than one queue has been 
  25444.                                                 associated with the printer. 
  25445.  
  25446. PMERR_SPL_NO_CURRENT_FORMS_CODE                 There is no current forms code 
  25447.                                                 defined to the Presentation 
  25448.                                                 Manager device driver. 
  25449.  
  25450. PMERR_SPL_NO_DATA                               No data supplied or found. 
  25451.  
  25452. PMERR_SPL_NO_DEFAULT_QUEUE                      There is no default spooler 
  25453.                                                 queue for the printer. 
  25454.  
  25455. PMERR_SPL_NO_DISK_SPACE                         There is not enough free disk 
  25456.                                                 space. 
  25457.  
  25458. PMERR_SPL_NO_FREE_JOB_ID                        There is no free job id 
  25459.                                                 available. 
  25460.  
  25461. PMERR_SPL_NO_MEMORY                             There is not enough free 
  25462.                                                 memory. 
  25463.  
  25464. PMERR_SPL_NO_QUEUES_ASSOCIATED                  A queue has not been associated 
  25465.                                                 with the printer. 
  25466.  
  25467. PMERR_SPL_NO_SUCH_LOG_ADDRESS                   The logical address does not 
  25468.                                                 exist (that is, it is not 
  25469.                                                 defined in the initialization 
  25470.                                                 file). 
  25471.  
  25472. PMERR_SPL_NOT_AUTHORISED                        Not authorized to perform the 
  25473.                                                 operation. 
  25474.  
  25475. PMERR_SPL_PRINT_ABORT                           The job has already been 
  25476.                                                 aborted. 
  25477.  
  25478. PMERR_SPL_PRINTER_NOT_FOUND                     The printer definition could 
  25479.                                                 not be found. 
  25480.  
  25481. PMERR_SPL_PROCESSOR_ERROR                       No spooler queue processor 
  25482.                                                 supplied or found. 
  25483.  
  25484. PMERR_SPL_PROCESSOR_NOT_INST                    The spooler queue processor has 
  25485.                                                 not been installed. 
  25486.  
  25487. PMERR_SPL_QUEUE_ALREADY_EXISTS                  The spooler queue already 
  25488.                                                 exists. 
  25489.  
  25490. PMERR_SPL_QUEUE_ERROR                           No spooler queue supplied or 
  25491.                                                 found. 
  25492.  
  25493. PMERR_SPL_QUEUE_NOT_EMPTY                       The spooler queue contains 
  25494.                                                 print jobs. 
  25495.  
  25496. PMERR_SPL_QUEUE_NOT_FOUND                       The spooler queue definition 
  25497.                                                 could not be found. 
  25498.  
  25499. PMERR_SPL_SPOOLER_NOT_INSTALLED                 The spooler is not installed. 
  25500.  
  25501. PMERR_SPL_STATUS_STRING_TRUNC                   The print job status string has 
  25502.                                                 been truncated. 
  25503.  
  25504. PMERR_SPL_TEMP_NETWORK_ERROR                    Temporary network error. 
  25505.  
  25506. PMERR_SPL_TOO_MANY_OPEN_FILES                   Too many open files. 
  25507.  
  25508. PMERR_SPOOLER_QP_NOT_DEFINED                    The spooler queue processor has 
  25509.                                                 not been defined. 
  25510.  
  25511. PMERR_START_POINT_CLIPPED                       The starting point specified 
  25512.                                                 for flood fill is outside the 
  25513.                                                 current clipping path or 
  25514.                                                 region. 
  25515.  
  25516. PMERR_STARTDOC_NOT_ISSUED                       A request to write spooled 
  25517.                                                 output without first issuing a 
  25518.                                                 STARTDOC was attempted. 
  25519.  
  25520. PMERR_STARTED_IN_BACKGROUND                     The application started a new 
  25521.                                                 session in the background. 
  25522.  
  25523. PMERR_STOP_DRAW_OCCURRED                        Segment drawing or 
  25524.                                                 GpiPlayMetaFile was stopped 
  25525.                                                 prematurely in response to a 
  25526.                                                 GpiSetStopDraw request. 
  25527.  
  25528. PMERR_TOO_MANY_METAFILES_IN_USE                 The maximum number of metafiles 
  25529.                                                 allowed for a given process was 
  25530.                                                 exceeded. 
  25531.  
  25532. PMERR_TRUNCATED_ORDER                           An incomplete order was 
  25533.                                                 detected during segment 
  25534.                                                 processing. 
  25535.  
  25536. PMERR_UNABLE_TO_CLOSE_DEVICE                    Unable to close the print 
  25537.                                                 device (for example, powered 
  25538.                                                 off or offline). 
  25539.  
  25540. PMERR_UNCHAINED_SEG_ZERO_INV                    An attempt was made to open 
  25541.                                                 segment with segment identifier 
  25542.                                                 zero and the ATTR_CHAINED 
  25543.                                                 segment attribute not 
  25544.                                                 specified. 
  25545.  
  25546. PMERR_UNKNOWN_BUNDLE_TYPE                       Unknown bundle-type primitive. 
  25547.  
  25548. PMERR_UNSUPPORTED_ATTR                          An unsupported attribute was 
  25549.                                                 specified in the attrmask with 
  25550.                                                 GpiSetAttrs or GpiQueryAttrs. 
  25551.  
  25552. PMERR_UNSUPPORTED_ATTR_VALUE                    An attribute value was 
  25553.                                                 specified with GpiSetAttrs that 
  25554.                                                 is not supported. 
  25555.  
  25556. PMERR_WIN_DEBUGMSG                              Ignore this error. It is 
  25557.                                                 reserved for system use. 
  25558.  
  25559. PMERR_WINDOW_LOCK_OVERFLOW                      An overflow occurred for the 
  25560.                                                 use count of a window. 
  25561.  
  25562. PMERR_WINDOW_LOCK_UNDERFLOW                     An attempt was made to 
  25563.                                                 decrement the use count of a 
  25564.                                                 window below zero. 
  25565.  
  25566. PMERR_WINDOW_NOT_LOCKED                         The window specified in 
  25567.                                                 WinSendMsg was not locked. 
  25568.