home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / cset21v5.zip / TOOLKT21 / BOOK / PMREL.INF (.txt) < prev    next >
OS/2 Help File  |  1993-04-22  |  304KB  |  13,048 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Profile Functions ΓòÉΓòÉΓòÉ
  3.  
  4. This section describes functions that an application would use to query or 
  5. write user-specific initialization files. 
  6.  
  7.  
  8. ΓòÉΓòÉΓòÉ 1.1. PrfCloseProfile ΓòÉΓòÉΓòÉ
  9.  
  10.  
  11. ΓòÉΓòÉΓòÉ <hidden> Topics - PrfCloseProfile ΓòÉΓòÉΓòÉ
  12.  
  13. Select an item: 
  14.  
  15. Function Syntax 
  16. Parameters 
  17. Return Values 
  18. Errors 
  19. Notes 
  20. Example 
  21. Related Functions 
  22. Glossary 
  23.  
  24.  
  25. ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfCloseProfile ΓòÉΓòÉΓòÉ
  26.  
  27. hini (HINI) - input 
  28.    Initialization-file handle. After this function, the handle is no longer 
  29.    valid. 
  30.  
  31.  
  32. ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfCloseProfile ΓòÉΓòÉΓòÉ
  33.  
  34. fSuccess (BOOL) - return 
  35.    Success indicator: 
  36.  
  37.    TRUE 
  38.       Successful completion. 
  39.  
  40.    FALSE 
  41.       Error occurred. 
  42.  
  43.  
  44. ΓòÉΓòÉΓòÉ <hidden> Errors - PrfCloseProfile ΓòÉΓòÉΓòÉ
  45.  
  46. Possible returns from WinGetLastError 
  47.  
  48. PMERR_INI_FILE_IS_SYS_OR_USER 
  49.    User or system initialization file cannot be closed. 
  50.  
  51. PMERR_INVALID_INI_FILE_HANDLE 
  52.    An invalid initialization-file handle was specified. 
  53.  
  54.  
  55. ΓòÉΓòÉΓòÉ <hidden> Notes - PrfCloseProfile ΓòÉΓòÉΓòÉ
  56.  
  57. This function cannot be used to close the current user or system initialization 
  58. files. 
  59.  
  60.  
  61. ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfCloseProfile ΓòÉΓòÉΓòÉ
  62.  
  63. /*******************************************/
  64. /* This function indicates that a profile  */
  65. /* is no longer available for use.         */
  66. /*******************************************/
  67.  
  68. #define INCL_WINSHELLDATA   /* Or use INCL_WIN or INCL_PM */
  69. #include <os2.h>
  70.  
  71. HINI  hini;     /* Initialization-file handle */
  72. BOOL  fSuccess; /* Success indicator */
  73.  
  74. fSuccess = PrfCloseProfile(hini);
  75.  
  76.  
  77. ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfCloseProfile ΓòÉΓòÉΓòÉ
  78.  
  79. Related Functions 
  80.  
  81. o PrfOpenProfile 
  82.  
  83.  
  84. ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfCloseProfile ΓòÉΓòÉΓòÉ
  85.  
  86.  This example calls PrfCloseProfile to close a profile and makes it unavailable 
  87. for use. 
  88.  
  89.  
  90. #define INCL_WINSHELLDATA       /* Window Shell functions       */
  91. #include <os2.h>
  92.  
  93. BOOL  fSuccess;         /* success indicator                    */
  94. HINI  hini;             /* initialization-file handle           */
  95.  
  96. fSuccess = PrfCloseProfile(hini);
  97.  
  98.  
  99. ΓòÉΓòÉΓòÉ 1.2. PrfOpenProfile ΓòÉΓòÉΓòÉ
  100.  
  101.  
  102. ΓòÉΓòÉΓòÉ <hidden> Topics - PrfOpenProfile ΓòÉΓòÉΓòÉ
  103.  
  104. Select an item: 
  105.  
  106. Function Syntax 
  107. Parameters 
  108. Return Values 
  109. Errors 
  110. Notes 
  111. Example 
  112. Related Functions 
  113. Glossary 
  114.  
  115.  
  116. ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfOpenProfile ΓòÉΓòÉΓòÉ
  117.  
  118. hab (HAB) - input 
  119.    Anchor-block handle. 
  120.  
  121. pszFileName (PSZ) - input 
  122.    User-profile file name. This must not be the same as the current user or 
  123.    system initialization file name. 
  124.  
  125.  
  126. ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfOpenProfile ΓòÉΓòÉΓòÉ
  127.  
  128. hini (HINI) - return 
  129.    Initialization-file handle. This handle is used on other calls to manipulate 
  130.    the profile file. 
  131.  
  132.    NULLHANDLE 
  133.       Error occurred 
  134.  
  135.    Other 
  136.       Initialization-file handle. 
  137.  
  138.  
  139. ΓòÉΓòÉΓòÉ <hidden> Errors - PrfOpenProfile ΓòÉΓòÉΓòÉ
  140.  
  141. Possible returns from WinGetLastError 
  142.  
  143. PMERR_OPENING_INI_FILE 
  144.    Unable to open initialization file (due to lack of disk space for example). 
  145.  
  146. PMERR_MEMORY_ALLOC 
  147.    An error occurred during memory management. 
  148.  
  149. PMERR_INI_FILE_IS_SYS_OR_USER 
  150.    User or system initialization file cannot be closed. 
  151.  
  152.  
  153. ΓòÉΓòÉΓòÉ <hidden> Notes - PrfOpenProfile ΓòÉΓòÉΓòÉ
  154.  
  155. A user profile and a system profile are opened by the system, either at 
  156. start-up time, or (in the case of the user profile) as a result of a PrfReset 
  157. function, and are always available.  Their handles are HINI_USERPROFILE and 
  158. HINI_SYSTEMPROFILE. Applications do not have to open or close the user profile 
  159. or the system profile. 
  160.  
  161. The handle returned is only valid for the process issuing the PrfOpenProfile 
  162. function. 
  163.  
  164. The PrfOpenProfile function can be used by an administrator's application that 
  165. is creating or modifying a profile for a user. 
  166.  
  167. It can also be used to create a back-up profile as follows: 
  168.  
  169. o Use the enumerate form of PrfQueryProfileData to obtain a list of application 
  170.   names in the profile being backed up. 
  171.  
  172. o Use the enumerate form of PrfQueryProfileData to obtain a list of key names 
  173.   for each of the application names. 
  174.  
  175. o Use PrfQueryProfileData for each application-name or key-name pair to read 
  176.   the appropriate data. 
  177.  
  178. o Use PrfWriteProfileData to write the data into the back-up profile. 
  179.  
  180.  
  181. ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfOpenProfile ΓòÉΓòÉΓòÉ
  182.  
  183. /*******************************************/
  184. /* This function indicates that a file is  */
  185. /* available for use as a profile.         */
  186. /*******************************************/
  187.  
  188. #define INCL_WINSHELLDATA   /* Or use INCL_WIN or INCL_PM */
  189. #include <os2.h>
  190.  
  191. HAB   hab;         /* Anchor-block handle */
  192. PSZ   pszFileName; /* User-profile file name */
  193. HINI  hini;        /* Initialization-file handle */
  194.  
  195. hini = PrfOpenProfile(hab, pszFileName);
  196.  
  197.  
  198. ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfOpenProfile ΓòÉΓòÉΓòÉ
  199.  
  200. Related Functions 
  201.  
  202. o PrfCloseProfile 
  203. o PrfQueryProfileData 
  204.  
  205.  
  206. ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfOpenProfile ΓòÉΓòÉΓòÉ
  207.  
  208.  This example uses PrfOpenProfile to open and make available a profile for the 
  209. file 'PROFILE.INI'. 
  210.  
  211.  
  212. #define INCL_WINSHELLDATA       /* Window Shell functions       */
  213. #include <os2.h>
  214.  
  215. HINI  hini;             /* initialization-file handle           */
  216. HAB   hab;              /* anchor-block handle                  */
  217. char  pszFileName[13];  /* user-profile file name               */
  218.  
  219. strcpy(pszFileName,"PROFILE.INI");
  220.  
  221. hini = PrfOpenProfile(hab,pszFileName);
  222.  
  223.  
  224. ΓòÉΓòÉΓòÉ 1.3. PrfQueryProfile ΓòÉΓòÉΓòÉ
  225.  
  226.  
  227. ΓòÉΓòÉΓòÉ <hidden> Topics - PrfQueryProfile ΓòÉΓòÉΓòÉ
  228.  
  229. Select an item: 
  230.  
  231. Function Syntax 
  232. Parameters 
  233. Return Values 
  234. Example 
  235. Related Functions 
  236. Glossary 
  237.  
  238.  
  239. ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfQueryProfile ΓòÉΓòÉΓòÉ
  240.  
  241. hab (HAB) - input 
  242.    Anchor-block handle. 
  243.  
  244. pprfproProfile (PRFPROFILE) - input/output 
  245.    Profile names structure. The cchUserName and the cchSysName parameters of 
  246.    the PRFPROFILE data structure are set to the lengths of the respective file 
  247.    names, even if truncation occurs. If these fields are initialized to 0 by 
  248.    the application, then the pszUserName and pszSysName parameters are not 
  249.    inspected, and the application can then determine the sizes of the buffers 
  250.    required to hold the names on a second call. Otherwise, the pszUserName and 
  251.    pszSysName parameters must point to reserved areas of memory, and the 
  252.    cchUserName and cchSysName parameters must indicate the sizes of those 
  253.    areas. 
  254.  
  255.    If the pszUserName or the pszSysName parameter is NULL, then there is no 
  256.    defined user or system profile, respectively. 
  257.  
  258.  
  259. ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfQueryProfile ΓòÉΓòÉΓòÉ
  260.  
  261. fSuccess (BOOL) - return 
  262.    Success indicator: 
  263.  
  264.    TRUE 
  265.       Successful completion. 
  266.  
  267.    FALSE 
  268.       Error occurred, or there was insufficient space to record the names, 
  269.       which have been truncated. 
  270.  
  271.  
  272. ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfQueryProfile ΓòÉΓòÉΓòÉ
  273.  
  274. /*******************************************/
  275. /* This function returns a description of  */
  276. /* the current user and system profiles.   */
  277. /*******************************************/
  278.  
  279. #define INCL_WINSHELLDATA   /* Or use INCL_WIN or INCL_PM */
  280. #include <os2.h>
  281.  
  282. HAB          hab;                   /* Anchor-block handle */
  283. PPRFPROFILE  pprfproProfile;        /* Profile names structure */
  284. BOOL         fSuccess;              /* Success indicator */
  285.  
  286. fSuccess = PrfQueryProfile(hab,
  287.              pprfproProfile);
  288.  
  289.  
  290. ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfQueryProfile ΓòÉΓòÉΓòÉ
  291.  
  292. Related Functions 
  293.  
  294. o PrfReset 
  295.  
  296.  
  297. ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfQueryProfile ΓòÉΓòÉΓòÉ
  298.  
  299.  This example calls PrfQueryProfile to obtain a description of the current user 
  300. and system profiles, in this case querying the lengths of the user and system 
  301. profile file names and placing the values in variables. 
  302.  
  303.  
  304. #define INCL_WINSHELLDATA       /* Window Shell functions       */
  305. #include <os2.h>
  306.  
  307. BOOL  fSuccess;         /* success indicator                    */
  308. HAB   hab;              /* anchor-block handle                  */
  309. PRFPROFILE  pprfproProfile; /* Profile names structure          */
  310. ULONG ulUserNameLen;    /* length of user file name             */
  311. ULONG ulSysNameLen;     /* length of system file name           */
  312.  
  313. /* initialize lengths so that query will return the buffer sizes*/
  314. pprfproProfile.cchUserName = 0L;
  315. pprfproProfile.cchSysName = 0L;
  316.  
  317. fSuccess = PrfQueryProfile(hab, &pprfproProfile);
  318.  
  319. if (fSuccess == TRUE)
  320.    {
  321.    ulUserNameLen = pprfproProfile.cchUserName;
  322.    ulSysNameLen  = pprfproProfile.cchSysName;
  323.    }
  324.  
  325.  
  326. ΓòÉΓòÉΓòÉ 1.4. PrfQueryProfileData ΓòÉΓòÉΓòÉ
  327.  
  328.  
  329. ΓòÉΓòÉΓòÉ <hidden> Topics - PrfQueryProfileData ΓòÉΓòÉΓòÉ
  330.  
  331. Select an item: 
  332.  
  333. Function Syntax 
  334. Parameters 
  335. Return Values 
  336. Errors 
  337. Notes 
  338. Example 
  339. Related Functions 
  340. Glossary 
  341.  
  342.  
  343. ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfQueryProfileData ΓòÉΓòÉΓòÉ
  344.  
  345. hini (HINI) - input 
  346.    Initialization-file handle. 
  347.  
  348.    HINI_PROFILE 
  349.       Both the user profile and system profile are searched 
  350.  
  351.    HINI_USERPROFILE 
  352.       The user profile is searched 
  353.  
  354.    HINI_SYSTEMPROFILE 
  355.       The system profile is searched 
  356.  
  357.    Other 
  358.       Initialization-file handle. 
  359.  
  360. pszApp (PSZ) - input 
  361.    Application name. The name of the application for which the profile data is 
  362.    required. The name must match exactly with the name stored in the profile. 
  363.    There is no case-independent searching. 
  364.  
  365.    If this parameter is NULL, this function enumerates all the application 
  366.    names present in the profile and returns the names as a list in the pBuffer 
  367.    parameter. Each application name is terminated with a NULL character and the 
  368.    last name is terminated with two successive NULL characters. In this case, 
  369.    the pulBufferMax parameter contains the total length of the list excluding 
  370.    the final NULL character. 
  371.  
  372. pszKey (PSZ) - input 
  373.    Key name. The name of the key for which the profile data is required. The 
  374.    name must match exactly with the name stored in the profile. There is no 
  375.    case-independent searching. 
  376.  
  377.    If this parameter is NULL, and if pszApp is not equal to NULL, this call 
  378.    enumerates all key names associated with the named application and returns 
  379.    the key names, but not their values, as a list in the pBuffer parameter. 
  380.    Each key name is terminated with a NULL character and the last name is 
  381.    terminated with two successive NULL characters. In this case, the 
  382.    pulBufferMax parameter contains the total length of the list excluding the 
  383.    final NULL character. 
  384.  
  385. pBuffer (PVOID) - output 
  386.    Value data. A buffer in which the value corresponding to the key name is 
  387.    returned. The returned data is not null terminated, unless the value data is 
  388.    explicitly null terminated within the file. This function handles binary 
  389.    data. 
  390.  
  391. pulBufferMax (PULONG) - input/output 
  392.    Size of value data. This is the size of the buffer specified by the pBuffer 
  393.    parameter. If the call is successful, this is overwritten with the number of 
  394.    bytes copied into the buffer. 
  395.  
  396.  
  397. ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfQueryProfileData ΓòÉΓòÉΓòÉ
  398.  
  399. fSuccess (BOOL) - return 
  400.    Success indicator: 
  401.  
  402.    TRUE 
  403.       Successful completion 
  404.  
  405.    FALSE 
  406.       Error occurred. 
  407.  
  408.  
  409. ΓòÉΓòÉΓòÉ <hidden> Errors - PrfQueryProfileData ΓòÉΓòÉΓòÉ
  410.  
  411. Possible returns from WinGetLastError 
  412.  
  413. PMERR_INVALID_PARM 
  414.    A parameter to the function contained invalid data. 
  415.  
  416. PMERR_NOT_IN_IDX 
  417.    The application name, key-name or program handle was not found. 
  418.  
  419. PMERR_CAN_NOT_CALL_SPOOLER 
  420.    An error occurred attempting to call the spooler validation routine.  This 
  421.    error is not raised if the spooler is not installed. 
  422.  
  423.  
  424. ΓòÉΓòÉΓòÉ <hidden> Notes - PrfQueryProfileData ΓòÉΓòÉΓòÉ
  425.  
  426. This function returns a string of binary data from the profile. The call 
  427. searches the file for a key matching the name specified by the pszKey 
  428. parameter, under the application heading specified by the pszApp parameter. 
  429.  
  430. Enumeration can be performed in exactly the same way as in the 
  431. PrfQueryProfileString function. The enumeration returns application or key 
  432. names irrespective of whether the data concerned is written with the 
  433. PrfWriteProfileString function or the PrfWriteProfileData function. 
  434.  
  435. This function returns data that is written to the file using either the 
  436. PrfWriteProfileString function or the PrfWriteProfileData function. 
  437.  
  438. If the pszApp parameter is NULL, this call enumerates all application names and 
  439. constructs in the pBuffer parameter a list of application names. Each 
  440. application name in the list is terminated with a null character. The last 
  441. string in the list is terminated with two null characters. This function 
  442. returns the length of the list, up to, but not including, the final null. If 
  443. the enumerated application names exceed the available buffer space, the 
  444. enumerated names are truncated, the enumerated list is not terminated with 2 
  445. bytes of zeros, and the fSuccess parameter is set to FALSE. In this case, 
  446. pszKey is ignored. 
  447.  
  448. If the pszApp parameter is valid and if the pszKey is NULL, this function 
  449. enumerates all key names associated with the pszApp parameter by constructing 
  450. in the pBuffer parameter a list of key names. Each key name in the list is 
  451. terminated with a null character. The last string in the list is terminated 
  452. with two null characters. This function returns the length of the list, up to, 
  453. but not including, the final null. If the enumerated key names exceed the 
  454. available buffer space, the enumerated names are truncated, the enumerated list 
  455. is not terminated with 2 bytes of zeros, and the fSuccess parameter is set to 
  456. FALSE. 
  457.  
  458.  
  459. ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfQueryProfileData ΓòÉΓòÉΓòÉ
  460.  
  461. /*******************************************/
  462. /* This function returns a string of       */
  463. /* binary data from the specified profile. */
  464. /*******************************************/
  465.  
  466. #define INCL_WINSHELLDATA   /* Or use INCL_WIN or INCL_PM */
  467. #include <os2.h>
  468.  
  469. HINI    hini;           /* Initialization-file handle */
  470. PSZ     pszApp;         /* Application name */
  471. PSZ     pszKey;         /* Key name */
  472. PVOID   pBuffer;        /* Value data */
  473. PULONG  pulBufferMax;   /* Size of value data */
  474. BOOL    fSuccess;       /* Success indicator */
  475.  
  476. fSuccess = PrfQueryProfileData(hini, pszApp,
  477.              pszKey, pBuffer, pulBufferMax);
  478.  
  479.  
  480. ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfQueryProfileData ΓòÉΓòÉΓòÉ
  481.  
  482. Related Functions 
  483.  
  484. o PrfQueryProfileSize 
  485. o PrfWriteProfileData 
  486.  
  487.  
  488. ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfQueryProfileData ΓòÉΓòÉΓòÉ
  489.  
  490.  This example calls PrfQueryProfileData to search the user and system profiles 
  491. for the value of key 'KEY' within the application 'APP' and return the value if 
  492. found. 
  493.  
  494.  
  495. #define INCL_WINSHELLDATA       /* Window Shell functions       */
  496. #include <os2.h>
  497.  
  498. BOOL  fSuccess;         /* success indicator                    */
  499. HINI  hini;             /* initialization-file handle           */
  500. char  pszApp[10];       /* application name                     */
  501. char  pszKey[10];       /* key name                             */
  502. PVOID pBuffer;          /* Value data                           */
  503. ULONG pulBufferMax;     /* Size of value data                   */
  504.  
  505. /* Both the user profile and system profile are searched */
  506. hini = HINI_PROFILE;
  507.  
  508. /* specify application and key names */
  509. strcpy(pszApp,"APP");
  510. strcpy(pszKey,"KEY");
  511.  
  512. fSuccess = PrfQueryProfileData(hini, pszApp, pszKey, pBuffer,
  513.                                &pulBufferMax);
  514.  
  515.  
  516. ΓòÉΓòÉΓòÉ 1.5. PrfQueryProfileInt ΓòÉΓòÉΓòÉ
  517.  
  518.  
  519. ΓòÉΓòÉΓòÉ <hidden> Topics - PrfQueryProfileInt ΓòÉΓòÉΓòÉ
  520.  
  521. Select an item: 
  522.  
  523. Function Syntax 
  524. Parameters 
  525. Return Values 
  526. Errors 
  527. Notes 
  528. Example 
  529. Related Functions 
  530. Glossary 
  531.  
  532.  
  533. ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfQueryProfileInt ΓòÉΓòÉΓòÉ
  534.  
  535. hini (HINI) - input 
  536.    Initialization-file handle. 
  537.  
  538.    HINI_PROFILE 
  539.       Both the user profile and system profile are searched 
  540.  
  541.    HINI_USERPROFILE 
  542.       The user profile is searched 
  543.  
  544.    HINI_SYSTEMPROFILE 
  545.       The system profile is searched 
  546.  
  547.    Other 
  548.       Initialization-file handle. 
  549.  
  550. pszApp (PSZ) - input 
  551.    Application name. The name of the application for which the profile data is 
  552.    required. The name must match exactly with the name stored in the profile. 
  553.    There is no case-independent searching. 
  554.  
  555. pszKey (PSZ) - input 
  556.    Key name. The name of the key for which the profile data is required. The 
  557.    name must match exactly with the name stored in the profile. There is no 
  558.    case-independent searching. 
  559.  
  560. lDefault (LONG) - input 
  561.    Default value. This value is returned in lResult, if the key defined by 
  562.    pszKey cannot be found in the initialization file. 
  563.  
  564.  
  565. ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfQueryProfileInt ΓòÉΓòÉΓòÉ
  566.  
  567. lResult (LONG) - return 
  568.    Key value specified in the initialization file. The value of the key 
  569.    specified by pszKey in the initialization file. 
  570.  
  571.    If the value corresponding to the key is not an integer, lResult is 0. 
  572.  
  573.    If the key-name value is a series of digits followed by non-numeric 
  574.    characters, lResult contains the value of the digits only. For example, 
  575.    "KeyName=102abc" causes the value 102 to appear in lResult. 
  576.  
  577.  
  578. ΓòÉΓòÉΓòÉ <hidden> Errors - PrfQueryProfileInt ΓòÉΓòÉΓòÉ
  579.  
  580. Possible returns from WinGetLastError 
  581.  
  582. PMERR_INVALID_PARM 
  583.    A parameter to the function contained invalid data. 
  584.  
  585. PMERR_NOT_IN_IDX 
  586.    The application name, key-name or program handle was not found. 
  587.  
  588. PMERR_CAN_NOT_CALL_SPOOLER 
  589.    An error occurred attempting to call the spooler validation routine.  This 
  590.    error is not raised if the spooler is not installed. 
  591.  
  592.  
  593. ΓòÉΓòÉΓòÉ <hidden> Notes - PrfQueryProfileInt ΓòÉΓòÉΓòÉ
  594.  
  595. This function returns an integer value from the profile. The call searches the 
  596. file for a key matching the name specified by the pszKey parameter, under the 
  597. application heading specified by the pszApp parameter. When an integer is 
  598. stored as a text string using the PrfWriteProfileString function, for example, 
  599. "123", the returned value is the number, 123. The call returns lDefault if the 
  600. application-name or key-name pair cannot be found. 
  601.  
  602. Note:  The search is case-dependent. 
  603.  
  604.  
  605. ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfQueryProfileInt ΓòÉΓòÉΓòÉ
  606.  
  607. /*******************************************/
  608. /* This function returns an integer value  */
  609. /* from the specified profile.             */
  610. /*******************************************/
  611.  
  612. #define INCL_WINSHELLDATA   /* Or use INCL_WIN or INCL_PM */
  613. #include <os2.h>
  614.  
  615. HINI  hini;     /* Initialization-file handle */
  616. PSZ   pszApp;   /* Application name */
  617. PSZ   pszKey;   /* Key name */
  618. LONG  lDefault; /* Default value */
  619. LONG  lResult;  /* Key value specified in the initialization file */
  620.  
  621. lResult = PrfQueryProfileInt(hini, pszApp,
  622.             pszKey, lDefault);
  623.  
  624.  
  625. ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfQueryProfileInt ΓòÉΓòÉΓòÉ
  626.  
  627. Related Functions 
  628.  
  629. o PrfQueryProfileData 
  630. o PrfWriteProfileString 
  631.  
  632.  
  633. ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfQueryProfileInt ΓòÉΓòÉΓòÉ
  634.  
  635.  This example calls  to search the user and system profiles for the integer 
  636. value of key 'KEY' within the application 'APP' and return the value if found; 
  637. if not found, 0 is returned. 
  638.  
  639.  
  640. #define INCL_WINSHELLDATA       /* Window Shell functions       */
  641. #include <os2.h>
  642.  
  643. LONG  lResult;          /* key value                            */
  644. HINI  hini;             /* initialization-file handle           */
  645. char  pszApp[10];       /* application name                     */
  646. char  pszKey[10];       /* key name                             */
  647. LONG  lDefault;         /* default return value                 */
  648.  
  649. /* Both the user profile and system profile are searched */
  650. hini = HINI_PROFILE;
  651.  
  652. /* specify application and key names */
  653. strcpy(pszApp,"APP");
  654. strcpy(pszKey,"KEY");
  655.  
  656. /* set default to 0 */
  657. lDefault = 0;
  658.  
  659. lResult = PrfQueryProfileInt(hini, pszApp, pszKey, lDefault);
  660.  
  661.  
  662. ΓòÉΓòÉΓòÉ 1.6. PrfQueryProfileSize ΓòÉΓòÉΓòÉ
  663.  
  664.  
  665. ΓòÉΓòÉΓòÉ <hidden> Topics - PrfQueryProfileSize ΓòÉΓòÉΓòÉ
  666.  
  667. Select an item: 
  668.  
  669. Function Syntax 
  670. Parameters 
  671. Return Values 
  672. Errors 
  673. Notes 
  674. Example 
  675. Related Functions 
  676. Glossary 
  677.  
  678.  
  679. ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfQueryProfileSize ΓòÉΓòÉΓòÉ
  680.  
  681. hini (HINI) - input 
  682.    Initialization-file handle. 
  683.  
  684.    HINI_PROFILE 
  685.       Both the user profile and system profile are searched 
  686.  
  687.    HINI_USERPROFILE 
  688.       The user profile is searched 
  689.  
  690.    HINI_SYSTEMPROFILE 
  691.       The system profile is searched 
  692.  
  693.    Other 
  694.       Initialization-file handle. 
  695.  
  696. pszApp (PSZ) - input 
  697.    Application name. The name of the application for which the profile data is 
  698.    required. 
  699.  
  700.    If the pszApp parameter is NULL, then the pDataLen parameter returns the 
  701.    length of the buffer required to hold the enumerated list of application 
  702.    names, as returned by the PrfQueryProfileString function when its pszApp 
  703.    parameter is NULL. In this case, the pszKey parameter is ignored. 
  704.  
  705. pszKey (PSZ) - input 
  706.    Key name. The name of the key for which the size of the data is to be 
  707.    returned. 
  708.  
  709.    If the pszKey parameter is NULL, and if the pszApp parameter is not NULL, 
  710.    the pDataLen returns the length of the buffer required to hold the 
  711.    enumerated list of key names for that application name, as returned by the 
  712.    PrfQueryProfileString function when its pszKey parameter is NULL, and its 
  713.    pszApp parameter is not NULL. 
  714.  
  715. pDataLen (PULONG) - output 
  716.    Data length. This parameter is the length of the value data related to the 
  717.    pszKey parameter. If an error occurs, this parameter is undefined. 
  718.  
  719.  
  720. ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfQueryProfileSize ΓòÉΓòÉΓòÉ
  721.  
  722. fSuccess (BOOL) - return 
  723.    Success indicator: 
  724.  
  725.    TRUE 
  726.       Successful completion 
  727.  
  728.    FALSE 
  729.       Error occurred. 
  730.  
  731.  
  732. ΓòÉΓòÉΓòÉ <hidden> Errors - PrfQueryProfileSize ΓòÉΓòÉΓòÉ
  733.  
  734. Possible returns from WinGetLastError 
  735.  
  736. PMERR_INVALID_PARM 
  737.    A parameter to the function contained invalid data. 
  738.  
  739. PMERR_NOT_IN_IDX 
  740.    The application name, key-name or program handle was not found. 
  741.  
  742. PMERR_CAN_NOT_CALL_SPOOLER 
  743.    An error occurred attempting to call the spooler validation routine.  This 
  744.    error is not raised if the spooler is not installed. 
  745.  
  746.  
  747. ΓòÉΓòÉΓòÉ <hidden> Notes - PrfQueryProfileSize ΓòÉΓòÉΓòÉ
  748.  
  749. The pszApp parameter and pszKey parameter are case sensitive and must match the 
  750. names stored in the file exactly. There is no case-independent searching. 
  751.  
  752. This function can be used before using the PrfQueryProfileString call or the 
  753. PrfQueryProfileData call, to allocate space for the returned data. 
  754.  
  755. No distinction is made between data that is written using the 
  756. PrfWriteProfileData function and the PrfWriteProfileString function. 
  757.  
  758.  
  759. ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfQueryProfileSize ΓòÉΓòÉΓòÉ
  760.  
  761. /*******************************************/
  762. /* This function obtains the size in bytes */
  763. /* of the value of a specified key for a   */
  764. /* specified application in the profile.   */
  765. /*******************************************/
  766.  
  767. #define INCL_WINSHELLDATA   /* Or use INCL_WIN or INCL_PM */
  768. #include <os2.h>
  769.  
  770. HINI    hini;       /* Initialization-file handle */
  771. PSZ     pszApp;     /* Application name */
  772. PSZ     pszKey;     /* Key name */
  773. PULONG  pDataLen;   /* Data length */
  774. BOOL    fSuccess;   /* Success indicator */
  775.  
  776. fSuccess = PrfQueryProfileSize(hini, pszApp,
  777.              pszKey, pDataLen);
  778.  
  779.  
  780. ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfQueryProfileSize ΓòÉΓòÉΓòÉ
  781.  
  782. Related Functions 
  783.  
  784. o PrfQueryProfileData 
  785. o PrfQueryProfileString 
  786.  
  787.  
  788. ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfQueryProfileSize ΓòÉΓòÉΓòÉ
  789.  
  790.  This example calls PrfQueryProfileSize to search the user and system profiles 
  791. for the value of key 'KEY' within the application 'APP' and return the byte 
  792. size of the value if found. 
  793.  
  794.  
  795. #define INCL_WINSHELLDATA       /* Window Shell functions       */
  796. #include <os2.h>
  797.  
  798. BOOL  fSuccess;         /* success indicator                    */
  799. HINI  hini;             /* initialization-file handle           */
  800. char  pszApp[10];       /* application name                     */
  801. char  pszKey[10];       /* key name                             */
  802. ULONG pDataLen;         /* data length                          */
  803.  
  804. /* Both the user profile and system profile are searched */
  805. hini = HINI_PROFILE;
  806.  
  807. /* specify application and key names */
  808. strcpy(pszApp,"APP");
  809. strcpy(pszKey,"KEY");
  810.  
  811. fSuccess = PrfQueryProfileSize(hini, pszApp, pszKey, &pDataLen);
  812.  
  813.  
  814. ΓòÉΓòÉΓòÉ 1.7. PrfQueryProfileString ΓòÉΓòÉΓòÉ
  815.  
  816.  
  817. ΓòÉΓòÉΓòÉ <hidden> Topics - PrfQueryProfileString ΓòÉΓòÉΓòÉ
  818.  
  819. Select an item: 
  820.  
  821. Function Syntax 
  822. Parameters 
  823. Return Values 
  824. Errors 
  825. Notes 
  826. Example 
  827. Related Functions 
  828. Glossary 
  829.  
  830.  
  831. ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfQueryProfileString ΓòÉΓòÉΓòÉ
  832.  
  833. hini (HINI) - input 
  834.    Initialization-file handle. 
  835.  
  836.    HINI_PROFILE 
  837.       Both the user profile and system profile are searched 
  838.  
  839.    HINI_USERPROFILE 
  840.       The user profile is searched 
  841.  
  842.    HINI_SYSTEMPROFILE 
  843.       The system profile is searched 
  844.  
  845.    Other 
  846.       Initialization-file handle. 
  847.  
  848. pszApp (PSZ) - input 
  849.    Application name. The name of the application for which the profile data is 
  850.    required. 
  851.  
  852.    The search performed on the application name is always case-dependent. Names 
  853.    starting with the characters "PM_" are reserved for system use. 
  854.  
  855.    If this parameter is NULL, this function enumerates all the application 
  856.    names present in the profile and returns the names as a list in the pBuffer 
  857.    parameter. Each application name is terminated with a NULL character and the 
  858.    last name is terminated with two successive NULL characters. In this 
  859.    instance, the pulLength parameter contains the total length of the list 
  860.    excluding the final NULL character. 
  861.  
  862. pszKey (PSZ) - input 
  863.    Key name. The name of the key for which the profile data is returned. 
  864.  
  865.    The search on key name is always case-dependent. 
  866.  
  867.    If this parameter equals NULL, and if the pszApp parameter is not equal to 
  868.    NULL, this function enumerates all key names associated with the named 
  869.    application and returns the key names (not their values) as a list in the 
  870.    pBuffer parameter. Each key name is terminated with a NULL character and the 
  871.    last name is terminated with two successive NULL characters. In this 
  872.    instance, the pulLength parameter contains the total length of the list 
  873.    excluding the final NULL character. 
  874.  
  875. pszDefault (PSZ) - input 
  876.    Default string. The string that is returned in the pBuffer parameter, if the 
  877.    key defined by the pszKey parameter cannot be found in the profile. 
  878.  
  879.    If the pointer to this parameter is passed as NULL, then nothing is copied 
  880.    into the pszKey parameter if the key cannot be found. pulLength is returned 
  881.    as 0 in this case. 
  882.  
  883. pBuffer (PVOID) - output 
  884.    Profile string. The text string obtained from the profile for the key 
  885.    defined by the pszKey parameter. 
  886.  
  887. cchBufferMax (ULONG) - input 
  888.    Maximum string length. The maximum number of characters that can be put into 
  889.    the pBuffer parameter, in bytes. If the data from the profile is longer than 
  890.    this, it is truncated. 
  891.  
  892.  
  893. ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfQueryProfileString ΓòÉΓòÉΓòÉ
  894.  
  895. pulLength (ULONG) - return 
  896.    String length returned. The actual number of characters (including the null 
  897.    termination character) returned in the pBuffer parameter, in bytes. 
  898.  
  899.  
  900. ΓòÉΓòÉΓòÉ <hidden> Errors - PrfQueryProfileString ΓòÉΓòÉΓòÉ
  901.  
  902. Possible returns from WinGetLastError 
  903.  
  904. PMERR_INVALID_PARM 
  905.    A parameter to the function contained invalid data. 
  906.  
  907. PMERR_BUFFER_TOO_SMALL 
  908.    The supplied buffer was not large enough for the data to be returned. 
  909.  
  910. PMERR_NOT_IN_IDX 
  911.    The application name, key-name or program handle was not found. 
  912.  
  913. PMERR_CAN_NOT_CALL_SPOOLER 
  914.    An error occurred attempting to call the spooler validation routine.  This 
  915.    error is not raised if the spooler is not installed. 
  916.  
  917. PMERR_INVALID_ASCIIZ 
  918.    The profile string is not a valid zero-terminated string. 
  919.  
  920.  
  921. ΓòÉΓòÉΓòÉ <hidden> Notes - PrfQueryProfileString ΓòÉΓòÉΓòÉ
  922.  
  923. The call searches the profile for a key matching the name specified by the 
  924. pszKey parameter under the application heading specified by the pszApp 
  925. parameter. If the key is found, the corresponding string is copied. If the key 
  926. does not exist, the default character string, specified by the pszDefault 
  927. parameter, is copied. 
  928.  
  929. If the enumerated application names exceed the available buffer space, the 
  930. enumerated names are truncated, the enumerated list is not terminated with 2 
  931. bytes of zeros, and the pulLength parameter is set to the number of bytes 
  932. copied into the pBuffer parameter. In this instance, the pszKey parameter is 
  933. ignored. 
  934.  
  935. Note:  If the enumeration cannot be performed for any reason, the default 
  936.        character string is not copied. 
  937.  
  938. This function returns the length of the list, up to, but not including, the 
  939. final null. If the enumerated key names exceed the available buffer space, the 
  940. enumerated names are truncated, the enumerated list is not terminated with 2 
  941. bytes of zeros, and the pulLength parameter is set to the number of bytes 
  942. copied into the pBuffer parameter. 
  943.  
  944. This function is case-dependent; thus the strings in the pszApp parameter and 
  945. the pszKey parameter must match exactly. This avoids any code-page dependency. 
  946. The application storing the data must do any case-independent matching. 
  947.  
  948. The enumeration call does not distinguish between data written with the 
  949. PrfWriteProfileString function and the PrfWriteProfileData function. 
  950.  
  951.  
  952. ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfQueryProfileString ΓòÉΓòÉΓòÉ
  953.  
  954. /*******************************************/
  955. /* This function retrieves a string from   */
  956. /* the specified profile.                  */
  957. /*******************************************/
  958.  
  959. #define INCL_WINSHELLDATA   /* Or use INCL_WIN or INCL_PM */
  960. #include <os2.h>
  961.  
  962. HINI   hini;          /* Initialization-file handle */
  963. PSZ    pszApp;        /* Application name */
  964. PSZ    pszKey;        /* Key name */
  965. PSZ    pszDefault;    /* Default string */
  966. PVOID  pBuffer;       /* Profile string */
  967. ULONG  cchBufferMax;  /* Maximum string length */
  968. ULONG  pulLength;     /* String length returned */
  969.  
  970. pulLength = PrfQueryProfileString(hini,
  971.               pszApp, pszKey, pszDefault,
  972.               pBuffer, cchBufferMax);
  973.  
  974.  
  975. ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfQueryProfileString ΓòÉΓòÉΓòÉ
  976.  
  977. Related Functions 
  978.  
  979. o PrfWriteProfileString 
  980.  
  981.  
  982. ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfQueryProfileString ΓòÉΓòÉΓòÉ
  983.  
  984. PrfQueryProfileString is issued twice to obtain the names of the default 
  985. printer, the default presentation driver, and the queue associated with the 
  986. printer. If any of these requests fails, the default values already defined in 
  987. DEVOPENSTRUC are used. 
  988.  
  989. #define INCL_WINSHELLDATA
  990. #include <OS2.H>
  991. char szTemp[80];
  992. char szBuff[257];
  993. PCH ptscan;
  994.  
  995. DEVOPENSTRUC dopPrinter = {"LPT1Q",
  996.                           (PSZ)"IBM4201",
  997.                            0L,
  998.                           (PSZ)"PM_Q_STD",
  999.                            0L, 0L, 0L, 0L, 0L};
  1000.  
  1001.   if (PrfQueryProfileString(HINI_PROFILE,
  1002.                            (PSZ)"PM_SPOOLER",
  1003.                            (PSZ)"PRINTER",
  1004.                             NULL,
  1005.                            (PVOID)szTemp,
  1006.                            (LONG)sizeof(szTemp)
  1007.                            )){
  1008.       szTemp[strlen(szTemp)-1] = 0;
  1009.       if (PrfQueryProfileString(HINI_PROFILE,
  1010.                                (PSZ)"PM_SPOOLER_PRINTER",
  1011.                                (PSZ)szTemp,
  1012.                                 NULL,
  1013.                                (PVOID)szBuff,
  1014.                                (LONG)sizeof(szBuff)
  1015.                                )){
  1016.  
  1017.           ptscan = (PCH)strchr(szBuff, ';');
  1018.           ptscan++;
  1019.           ptscan = (PCH)strchr(ptscan, (INT)';');
  1020.           ptscan++;
  1021.           *(ptscan + strcspn(ptscan, ".,;")) = 0;
  1022.           dopPrinter.pszLogAddress =  ptscan;
  1023.  
  1024.           ptscan = (PCH)strchr(szBuff, (INT)';');
  1025.           ptscan++;
  1026.           *(ptscan + strcspn(ptscan, ".,;")) = 0;
  1027.           dopPrinter.pszDriverName = ptscan;
  1028.  
  1029.       }
  1030.   }
  1031.  
  1032.  
  1033. ΓòÉΓòÉΓòÉ 1.8. PrfReset ΓòÉΓòÉΓòÉ
  1034.  
  1035.  
  1036. ΓòÉΓòÉΓòÉ <hidden> Topics - PrfReset ΓòÉΓòÉΓòÉ
  1037.  
  1038. Select an item: 
  1039.  
  1040. Function Syntax 
  1041. Parameters 
  1042. Return Values 
  1043. Errors 
  1044. Notes 
  1045. Example 
  1046. Related Functions 
  1047. Related Messages 
  1048. Glossary 
  1049.  
  1050.  
  1051. ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfReset ΓòÉΓòÉΓòÉ
  1052.  
  1053. hab (HAB) - input 
  1054.    Anchor-block handle. 
  1055.  
  1056. pprfproProfile (PRFPROFILE) - input 
  1057.    Profile-names structure. This contains the names of the files to be used as 
  1058.    the new Presentation Manager* (PM) profile files. Any valid file names can 
  1059.    be used. A name that is not already fully qualified is taken to refer to the 
  1060.    current directory. 
  1061.  
  1062.    If the user profile file does not exist, a new file is created. 
  1063.  
  1064.    The name of the system profile cannot be changed.  It must be the name of 
  1065.    the current system profile as returned by PrfQueryProfile. 
  1066.  
  1067.  
  1068. ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfReset ΓòÉΓòÉΓòÉ
  1069.  
  1070. fSuccess (BOOL) - return 
  1071.    Success indicator: 
  1072.  
  1073.    TRUE 
  1074.       Successful completion 
  1075.  
  1076.    FALSE 
  1077.       Error occurred. 
  1078.  
  1079.  
  1080. ΓòÉΓòÉΓòÉ <hidden> Errors - PrfReset ΓòÉΓòÉΓòÉ
  1081.  
  1082. Possible returns from WinGetLastError 
  1083.  
  1084. PMERR_OPENING_INI_FILE 
  1085.    Unable to open initialization file (due to lack of disk space for example). 
  1086.  
  1087.  
  1088. ΓòÉΓòÉΓòÉ <hidden> Notes - PrfReset ΓòÉΓòÉΓòÉ
  1089.  
  1090. This function causes the workstation to use different profiles. When the 
  1091. workstation is initialized, the names of the user and system profiles are taken 
  1092. from the PROTSHELL statement specified in CONFIG.SYS. PrfReset allows the 
  1093. profiles to be changed during operation of the workstation, for example by a 
  1094. logon application controlling multiple consecutive users of the system. 
  1095.  
  1096. After the PrfReset function completes, the system has a new set of preferences 
  1097. (for example screen colors), a new start-up list, and new spooler parameters. 
  1098.  
  1099. The PrfReset function broadcasts the PL_ALTERED message, which must be 
  1100. processed by all applications that read their default settings from the user or 
  1101. system profiles. 
  1102.  
  1103. Note:  This will only change the default system values in the ini file. It is 
  1104.        up to the applications to read the new default settings and reset them 
  1105.        to their new values. 
  1106.  
  1107. For example, consider logon applications. On receipt of a PL_ALTERED message, 
  1108. they should carry out the following: 
  1109.  
  1110. o Read the new color settings from the new profiles, and set the new screen 
  1111.   colors (and palettes) which should be refreshed. 
  1112.  
  1113. o Set the country information, for example the date and time format, which is 
  1114.   read from the new profiles. 
  1115.  
  1116. o Other preferences, for example, those that affect the operations of the alarm 
  1117.   and the mouse, should also update with the new settings held in the new 
  1118.   profiles. 
  1119.  
  1120. This function requires the existence of a message queue. 
  1121.  
  1122.  
  1123. ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfReset ΓòÉΓòÉΓòÉ
  1124.  
  1125. /*******************************************/
  1126. /* This function defines which files are   */
  1127. /* to be used as the user and system       */
  1128. /* profiles.                               */
  1129. /*******************************************/
  1130.  
  1131. #define INCL_WINSHELLDATA   /* Or use INCL_WIN or INCL_PM */
  1132. #include <os2.h>
  1133.  
  1134. HAB          hab;                   /* Anchor-block handle */
  1135. PPRFPROFILE  pprfproProfile;        /* Profile-names structure */
  1136. BOOL         fSuccess;              /* Success indicator */
  1137.  
  1138. fSuccess = PrfReset(hab, pprfproProfile);
  1139.  
  1140.  
  1141. ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfReset ΓòÉΓòÉΓòÉ
  1142.  
  1143. Related Functions 
  1144.  
  1145. o PrfQueryProfile 
  1146.  
  1147.  
  1148. ΓòÉΓòÉΓòÉ <hidden> Related Messages - PrfReset ΓòÉΓòÉΓòÉ
  1149.  
  1150. o PL_ALTERED 
  1151.  
  1152.  
  1153. ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfReset ΓòÉΓòÉΓòÉ
  1154.  
  1155. This function defines which files are to be used as the user and system 
  1156. profiles. 
  1157.  
  1158.  
  1159. #define INCL_WINSHELLDATA
  1160. #include <OS2.H>
  1161. HAB hab;
  1162. char userpro[] = "profile.ini";
  1163. PRFPROFILE profile;
  1164.  
  1165. PrfQueryProfile(hab, &profile); /* get the system profile name */
  1166.  
  1167. profile.pszUserName = userpro;
  1168. profile.cchUserName = sizeof(userpro);
  1169.  
  1170. PrfReset (hab, &profile);
  1171.  
  1172.  
  1173. ΓòÉΓòÉΓòÉ 1.9. PrfWriteProfileData ΓòÉΓòÉΓòÉ
  1174.  
  1175.  
  1176. ΓòÉΓòÉΓòÉ <hidden> Topics - PrfWriteProfileData ΓòÉΓòÉΓòÉ
  1177.  
  1178. Select an item: 
  1179.  
  1180. Function Syntax 
  1181. Parameters 
  1182. Return Values 
  1183. Errors 
  1184. Notes 
  1185. Example 
  1186. Related Functions 
  1187. Glossary 
  1188.  
  1189.  
  1190. ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfWriteProfileData ΓòÉΓòÉΓòÉ
  1191.  
  1192. hini (HINI) - input 
  1193.    Initialization-file handle. 
  1194.  
  1195.    HINI_PROFILE 
  1196.       User profile 
  1197.  
  1198.    HINI_USERPROFILE 
  1199.       User profile 
  1200.  
  1201.    HINI_SYSTEMPROFILE 
  1202.       System profile 
  1203.  
  1204.    Other 
  1205.       Initialization-file handle. 
  1206.  
  1207. pszApp (PSZ) - input 
  1208.    Application name. The case-dependent name of the application for which 
  1209.    profile data is to be written. Names starting with the characters "PM_" are 
  1210.    reserved for system use. 
  1211.  
  1212. pszKey (PSZ) - input 
  1213.    Key name. The case-dependent name of the key for which profile data is to be 
  1214.    written. 
  1215.  
  1216.    This parameter can be NULL in which case all the pszKey or pData pairs 
  1217.    associated with pszApp are deleted. 
  1218.  
  1219. pData (PVOID) - input 
  1220.    Value data. This is the value of the pszKey or pData pair that is written to 
  1221.    the profile. It is not zero-terminated, and its length is given by the 
  1222.    cchDataLen parameter. 
  1223.  
  1224.    If this parameter is NULL, the string associated with the pszKey parameter 
  1225.    is deleted. 
  1226.  
  1227. cchDataLen (ULONG) - input 
  1228.    Size of value data. 
  1229.  
  1230.  
  1231. ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfWriteProfileData ΓòÉΓòÉΓòÉ
  1232.  
  1233. fSuccess (BOOL) - return 
  1234.    Success indicator: 
  1235.  
  1236.    TRUE 
  1237.       Successful completion 
  1238.  
  1239.    FALSE 
  1240.       Error occurred. 
  1241.  
  1242.  
  1243. ΓòÉΓòÉΓòÉ <hidden> Errors - PrfWriteProfileData ΓòÉΓòÉΓòÉ
  1244.  
  1245. Possible returns from WinGetLastError 
  1246.  
  1247. PMERR_INVALID_PARM 
  1248.    A parameter to the function contained invalid data. 
  1249.  
  1250. PMERR_CAN_NOT_CALL_SPOOLER 
  1251.    An error occurred attempting to call the spooler validation routine.  This 
  1252.    error is not raised if the spooler is not installed. 
  1253.  
  1254.  
  1255. ΓòÉΓòÉΓòÉ <hidden> Notes - PrfWriteProfileData ΓòÉΓòÉΓòÉ
  1256.  
  1257. Because of the binary nature of the data, the input data is not 
  1258. zero-terminated. The length provided is the only way to identify the length of 
  1259. the data. 
  1260.  
  1261.  
  1262. ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfWriteProfileData ΓòÉΓòÉΓòÉ
  1263.  
  1264. /*******************************************/
  1265. /* This function writes a string of binary */
  1266. /* data into the specified profile.        */
  1267. /*******************************************/
  1268.  
  1269. #define INCL_WINSHELLDATA   /* Or use INCL_WIN or INCL_PM */
  1270. #include <os2.h>
  1271.  
  1272. HINI   hini;        /* Initialization-file handle */
  1273. PSZ    pszApp;      /* Application name */
  1274. PSZ    pszKey;      /* Key name */
  1275. PVOID  pData;       /* Value data */
  1276. ULONG  cchDataLen;  /* Size of value data */
  1277. BOOL   fSuccess;    /* Success indicator */
  1278.  
  1279. fSuccess = PrfWriteProfileData(hini, pszApp,
  1280.              pszKey, pData, cchDataLen);
  1281.  
  1282.  
  1283. ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfWriteProfileData ΓòÉΓòÉΓòÉ
  1284.  
  1285. Related Functions 
  1286.  
  1287. o PrfQueryProfileSize 
  1288.  
  1289.  
  1290. ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfWriteProfileData ΓòÉΓòÉΓòÉ
  1291.  
  1292. This function deletes the profile data associated with application sample.exe 
  1293.  
  1294.  
  1295. #define INCL_WINSHELLDATA
  1296. #include <OS2.H>
  1297. HAB hab;
  1298.  
  1299.  
  1300. PrfWriteProfileData(HINI_USERPROFILE,
  1301.                     "sample",         /* application. */
  1302.                     NULL,
  1303.                     NULL,
  1304.                     0L);
  1305.  
  1306.  
  1307. ΓòÉΓòÉΓòÉ 1.10. PrfWriteProfileString ΓòÉΓòÉΓòÉ
  1308.  
  1309.  
  1310. ΓòÉΓòÉΓòÉ <hidden> Topics - PrfWriteProfileString ΓòÉΓòÉΓòÉ
  1311.  
  1312. Select an item: 
  1313.  
  1314. Function Syntax 
  1315. Parameters 
  1316. Return Values 
  1317. Errors 
  1318. Notes 
  1319. Example 
  1320. Related Functions 
  1321. Glossary 
  1322.  
  1323.  
  1324. ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfWriteProfileString ΓòÉΓòÉΓòÉ
  1325.  
  1326. hini (HINI) - input 
  1327.    Initialization-file handle. 
  1328.  
  1329.    HINI_PROFILE 
  1330.       User profile 
  1331.  
  1332.    HINI_USERPROFILE 
  1333.       User profile 
  1334.  
  1335.    HINI_SYSTEMPROFILE 
  1336.       System profile 
  1337.  
  1338.    Other 
  1339.       Initialization-file handle. 
  1340.  
  1341. pszApp (PSZ) - input 
  1342.    Application name. The case-dependent name of the application for which 
  1343.    profile data is to be written. Names starting with the characters "PM_" are 
  1344.    reserved for system use. 
  1345.  
  1346. pszKey (PSZ) - input 
  1347.    Key name. The case-dependent name of the key for which profile data is to be 
  1348.    written. 
  1349.  
  1350.    This parameter can be NULL, in which case all the pszKey or pszData pairs 
  1351.    associated with the pszApp parameter are deleted. 
  1352.  
  1353. pszData (PSZ) - input 
  1354.    Text string. This is the value of the pszKey or pszData pair that is written 
  1355.    to the profile. 
  1356.  
  1357.    If this parameter is NULL, the string associated with the pszKey is deleted 
  1358.    (that is, the entry is deleted). 
  1359.  
  1360.    If this parameter is not NULL, the string is used as the value of the pszKey 
  1361.    or pszData pair, even if the string has zero length. 
  1362.  
  1363.  
  1364. ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfWriteProfileString ΓòÉΓòÉΓòÉ
  1365.  
  1366. fSuccess (BOOL) - return 
  1367.    Success indicator: 
  1368.  
  1369.    TRUE 
  1370.       Successful completion 
  1371.  
  1372.    FALSE 
  1373.       Error occurred. 
  1374.  
  1375.  
  1376. ΓòÉΓòÉΓòÉ <hidden> Errors - PrfWriteProfileString ΓòÉΓòÉΓòÉ
  1377.  
  1378. Possible returns from WinGetLastError 
  1379.  
  1380. PMERR_INVALID_PARM 
  1381.    A parameter to the function contained invalid data. 
  1382.  
  1383. PMERR_CAN_NOT_CALL_SPOOLER 
  1384.    An error occurred attempting to call the spooler validation routine.  This 
  1385.    error is not raised if the spooler is not installed. 
  1386.  
  1387.  
  1388. ΓòÉΓòÉΓòÉ <hidden> Notes - PrfWriteProfileString ΓòÉΓòÉΓòÉ
  1389.  
  1390. If there is no application field in the file that matches the pszApp, a new 
  1391. application field is created before the pszKey or pszData entry is made. 
  1392.  
  1393. If the key name does not exist for the application, a new pszKey or pszData 
  1394. entry is created for that application. If the pszKey already exists in the 
  1395. file, the existing value is overwritten. 
  1396.  
  1397.  
  1398. ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfWriteProfileString ΓòÉΓòÉΓòÉ
  1399.  
  1400. /*******************************************/
  1401. /* This function writes a string of        */
  1402. /* character data into the specified       */
  1403. /* profile.                                */
  1404. /*******************************************/
  1405.  
  1406. #define INCL_WINSHELLDATA   /* Or use INCL_WIN or INCL_PM */
  1407. #include <os2.h>
  1408.  
  1409. HINI  hini;     /* Initialization-file handle */
  1410. PSZ   pszApp;   /* Application name */
  1411. PSZ   pszKey;   /* Key name */
  1412. PSZ   pszData;  /* Text string */
  1413. BOOL  fSuccess; /* Success indicator */
  1414.  
  1415. fSuccess = PrfWriteProfileString(hini,
  1416.              pszApp, pszKey, pszData);
  1417.  
  1418.  
  1419. ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfWriteProfileString ΓòÉΓòÉΓòÉ
  1420.  
  1421. Related Functions 
  1422.  
  1423. o PrfQueryProfileString 
  1424.  
  1425.  
  1426. ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfWriteProfileString ΓòÉΓòÉΓòÉ
  1427.  
  1428. This function deletes the profile string associated with application sample.exe 
  1429.  
  1430.  
  1431. #define INCL_WINSHELLDATA
  1432. #include <OS2.H>
  1433. HAB hab;
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439. PrfWriteProfileString(HINI_USERPROFILE,
  1440.                     "sample",         /* application. */
  1441.                     NULL,
  1442.                     NULL);
  1443.  
  1444.  
  1445. ΓòÉΓòÉΓòÉ 2. Related Information ΓòÉΓòÉΓòÉ
  1446.  
  1447. This section contains several topics related to Presentation Manager 
  1448. programming. 
  1449.  
  1450.  
  1451. ΓòÉΓòÉΓòÉ 2.1. Bit-Map Formats ΓòÉΓòÉΓòÉ
  1452.  
  1453. There are four standard bit-map formats.  All device drivers have to be able to 
  1454. translate between any of these formats and their own internal formats.  The 
  1455. standard formats are: 
  1456.  
  1457. Bitcount        Planes 
  1458. 1               1 
  1459. 4               1 
  1460. 8               1 
  1461. 24              1 
  1462.  
  1463. These formats are chosen because they are identical or similar to all formats 
  1464. commonly used by raster devices.  Only single-plane formats are standard, but 
  1465. it is very easy to convert these to any multiple-plane format used internally 
  1466. by a device. 
  1467.  
  1468.  
  1469. ΓòÉΓòÉΓòÉ 2.1.1. Bit-Map Data ΓòÉΓòÉΓòÉ
  1470.  
  1471. The pel data is stored in the bit map in the order that the coordinates appear 
  1472. on a display screen. That is, the pel in the lower-left corner is the first in 
  1473. the bit map. Pels are scanned to the right, and upward, from that position. The 
  1474. bits of the first pel are stored, beginning with the most significant bits of 
  1475. the first byte. The data for pels in each scan line is packed together tightly, 
  1476. but all scan lines are padded at the end, so that each one begins on a ULONG 
  1477. boundary. 
  1478.  
  1479.  
  1480. ΓòÉΓòÉΓòÉ 2.1.2. Bit-Map Information Tables ΓòÉΓòÉΓòÉ
  1481.  
  1482. Each standard-format bit map must be accompanied by a bit-map information 
  1483. table. Because the standard-format bit maps are intended to be traded between 
  1484. devices, the color indexes in the bit map are meaningless without more 
  1485. information; for a description of this structure, see BITMAPINFO2. 
  1486.  
  1487. Some calls use a structure that is similar to BITMAPINFO2 but does not have the 
  1488. color table array; for a description of this structure, see BITMAPINFOHEADER2. 
  1489. Wherever BITMAPINFO2 is shown, BITMAPINFO is also allowed. Similarly, wherever 
  1490. BITMAPINFOHEADER2 is shown, BITMAPINFOHEADER is also allowed. 
  1491.  
  1492.  
  1493. ΓòÉΓòÉΓòÉ 2.1.3. Bit-Map Example ΓòÉΓòÉΓòÉ
  1494.  
  1495. To make the ordering of all the bytes clear, consider this simple example of a 
  1496. 5-by-3 array of colored pels: 
  1497.  
  1498. Red   Green Blue  Red   Green
  1499. Blue  Red   Green Blue  Red
  1500. Green Blue  Red   Green Blue
  1501.  
  1502. ULONG ExampleBitmap[]  {
  1503.     0x23,0x12,0x30,0x00                 /* bottom line */
  1504.     0x31,0x23,0x10,0x00                 /* middle line */
  1505.     0x12,0x31,0x20,0x00                 /* top line    */
  1506. };
  1507.  
  1508. #define BLACK  0x00000000L
  1509. #define RED    0x00FF0000L
  1510. #define GREEN  0x0000FF00L
  1511. #define BLUE   0x000000FFL
  1512.  
  1513. struct BitmapInfoTable ExampleInfo = {
  1514.        5,                               /* width       */
  1515.        3,                               /* height      */
  1516.        1,                               /* planes      */
  1517.        4,                               /* bitcount    */
  1518.        BLACK,RED,GREEN,BLUE,            /* color table */
  1519.        BLACK,BLACK,BLACK,BLACK,
  1520.        BLACK,BLACK,BLACK,BLACK,
  1521.        BLACK,BLACK,BLACK,BLACK
  1522. };
  1523.  
  1524.  
  1525. ΓòÉΓòÉΓòÉ 2.1.4. Bit-Map File Format ΓòÉΓòÉΓòÉ
  1526.  
  1527. The operating system uses the same file format for bit maps, icons, and 
  1528. pointers in resource files.  In the following description, "bit map" refers to 
  1529. bit maps, icons, and pointers unless otherwise specified. 
  1530.  
  1531. Two formats are supported. In the first, a single-size version of the bit map 
  1532. is defined. This is used whatever the target device. 
  1533.  
  1534. The second format allows multiple versions of the bit map to be defined, 
  1535. including one or more device-independent versions, and a number of 
  1536. device-dependent versions, each intended for use with a particular device. 
  1537.  
  1538. In the case of icons and pointers, when more than one version of the bit map 
  1539. exists, the preferred version is one that matches the device size of icon or 
  1540. pointer.  Otherwise the device-independent version is used to scale a bit map 
  1541. to the required size. 
  1542.  
  1543. The operating system provides pointers that match the requirements of the 
  1544. display device in use, typically pointers are 32x32 pels, one bit per plane. 
  1545.  
  1546. Icons provided with the operating system are designed to match the requirements 
  1547. of the most common display devices.  The following versions of each icon are 
  1548. included in each file: 
  1549.  
  1550. 32x32 4 bpp (16 color) 
  1551. 40x40 4 bpp (16 color) 
  1552. 32x32 1 bpp (black and white) 
  1553. 20x20 1 bpp (black and white) 
  1554. 16x16 1 bpp (black and white) 
  1555.  
  1556. The 32x32 versions are designed for VGA displays and for device-independent 
  1557. use. 
  1558.  
  1559. The 40x40 version is for 8514/A and XGA displays. 
  1560.  
  1561. The 20x20 and 16x16 are half-size icons designed for use as mini-icons. 
  1562.  
  1563. For general bit maps, which may be of arbitrary size, the preferred version is 
  1564. one matching the requested bit map size; otherwise one matching the display 
  1565. size is selected.  If neither is available, the device-independent version is 
  1566. used from which to scale a bit map. 
  1567.  
  1568. For both formats, the definition consists of two sections.  The first section 
  1569. contains general information about the type, dimensions, and other attributes 
  1570. of the resource.  The second section contains data describing the pels that 
  1571. make up the bit map(s), and is in the format specified in Bit-Map Data. 
  1572.  
  1573. In the multiple-version format, the first section contains an array of 
  1574. BITMAPARRAYFILEHEADER structures. or BITMAPARRAYFILEHEADER2 structures. The 
  1575. format of these is as follows: 
  1576.  
  1577. typedef struct _BITMAPARRAYFILEHEADER {    /* bafh */
  1578.     USHORT            usType;
  1579.     ULONG             cbSize;
  1580.     ULONG             offNext;
  1581.     USHORT            cxDisplay;
  1582.     USHORT            cyDisplay;
  1583.     BITMAPFILEHEADER  bfh;
  1584. } BITMAPARRAYFILEHEADER;
  1585. typedef BITMAPARRAYFILEHEADER *PBITMAPARRAYFILEHEADER;
  1586.  
  1587. typedef struct _BITMAPARRAYFILEHEADER2 {    /* bafh */
  1588.     USHORT            usType;
  1589.     ULONG             cbSize;
  1590.     ULONG             offNext;
  1591.     USHORT            cxDisplay;
  1592.     USHORT            cyDisplay;
  1593.     BITMAPFILEHEADER2 bfh2;
  1594. } BITMAPARRAYFILEHEADER2;
  1595. typedef BITMAPARRAYFILEHEADER2 *PBITMAPARRAYFILEHEADER2;
  1596.  
  1597. The fields in BITMAPARRAYFILEHEADER and BITMAPARRAYFILEHEADER2 have these 
  1598. meanings: 
  1599.  
  1600. usType 
  1601.    Type of structure. This is: 
  1602.  
  1603.    BFT_BITMAPARRAY (X'4142' - 'BA' for BITMAPARRAYFILEHEADER or 
  1604.    BITMAPARRAYFILEHEADER2) 
  1605.  
  1606. cbSize 
  1607.    Size of the BITMAPARRAYFILEHEADER or BITMAPARRAYFILEHEADER2 structure in 
  1608.    bytes. 
  1609.  
  1610. offNext 
  1611.    Offset of the next BITMAPARRAYFILEHEADER or BITMAPARRAYFILEHEADER2 structure 
  1612.    from the start of the file 
  1613.  
  1614. cxDisplay, cyDisplay 
  1615.    pel dimensions of the device for which this version is intended (for 
  1616.    example, 640 x 480 for VGA). 
  1617.  
  1618. The device-independent version must be the first BITMAPARRAYFILEHEADER or 
  1619. BITMAPARRAYFILEHEADER2 defined. 
  1620.  
  1621. In the single-size format, the BITMAPARRAYFILEHEADER or BITMAPARRAYFILEHEADER2 
  1622. structure is not present. The definition consists of one or two 
  1623. BITMAPFILEHEADER or BITMAPFILEHEADER2 structures. 
  1624.  
  1625. The format of the BITMAPFILEHEADER and BITMAPFILEHEADER2 structure is : 
  1626.  
  1627. typedef struct _BITMAPFILEHEADER {    /* bfh */
  1628.     USHORT            usType;
  1629.     ULONG             cbSize;
  1630.     SHORT             xHotspot;
  1631.     SHORT             yHotspot;
  1632.     ULONG             offBits;
  1633.     BITMAPINFOHEADER  bmp;
  1634. } BITMAPFILEHEADER;
  1635. typedef BITMAPFILEHEADER *PBITMAPFILEHEADER;
  1636.  
  1637. typedef struct _BITMAPFILEHEADER2 {    /* bfh2 */
  1638.     USHORT            usType;
  1639.     ULONG             cbSize;
  1640.     SHORT             xHotspot;
  1641.     SHORT             yHotspot;
  1642.     ULONG             offBits;
  1643.     BITMAPINFOHEADER2 bmp2;
  1644. } BITMAPFILEHEADER2;
  1645. typedef BITMAPFILEHEADER2 *PBITMAPFILEHEADER2;
  1646.  
  1647. BITMAPINFOHEADER2 is a standard data type (see above, and also 
  1648. BITMAPINFOHEADER2). 
  1649.  
  1650. The fields in BITMAPFILEHEADER and BITMAPFILEHEADER2 have these meanings: 
  1651.  
  1652. usType 
  1653.    Type of resource the file contains. The valid values are: 
  1654.  
  1655.    BFT_BMAP (X'4D42' - 'BM' for bit maps) 
  1656.    BFT_ICON (X'4349' - 'IC' for icons) 
  1657.    BFT_POINTER (X'5450' - 'PT' for pointers). 
  1658.    BFT_COLORICON (X'4943' - 'CI' for color icons). 
  1659.    BFT_COLORPOINTER (X'5043' - 'CP' for color pointers). 
  1660.  
  1661. cbSize 
  1662.    Size of the BITMAPFILEHEADER or BITMAPFILEHEADER2 structure in bytes. 
  1663.  
  1664. xHotspot, yHotspot 
  1665.    Coordinates of the hotspot for icons and pointers. This field is ignored for 
  1666.    bit maps. 
  1667.  
  1668. offBits 
  1669.    Offset in bytes to the beginning of the bit-map pel data in the file, from 
  1670.    the start of the definition. 
  1671.  
  1672. For icons and pointers, the cy field in bmp is actually twice the pel height of 
  1673. the image that appears on the screen.  This is because these types actually 
  1674. contain two full bit-map pel definitions. The first bit-map definition is the 
  1675. XOR mask, which contains invert information (0 = no invert, 1 = invert) for the 
  1676. pointer or icon.  The second is the AND mask, which determines whether the 
  1677. pointer or the screen is shown (0 = black/white, 1 = screen/inverse screen). 
  1678.  
  1679. For color icons or pointers, there are two bit-maps involved: one that is black 
  1680. and white and consists of an AND and an XOR mask, and one that is color that 
  1681. defines the color content. 
  1682.  
  1683. The cy field in the BITMAPINFOHEADER2 structure for the color bit-map must be 
  1684. the real height, that is, half the value specified for the black and white 
  1685. bit-map. The cx fields must be the same. 
  1686.  
  1687. The following table shows how these two bit-maps are used for a color icon or 
  1688. pointer: 
  1689.  
  1690.    XOR     AND     COLOR
  1691.     1       1        x       Invert screen
  1692.     0       0        x       Use color x
  1693.     0       1        x       Transparency
  1694.     1       0        x       Use color x
  1695.  
  1696. For color icons or pointers, two BITMAPFILEHEADER or BITMAPFILEHEADER2 
  1697. structures are therefore required: 
  1698.  
  1699. BITMAPFILEHEADER2    with usType BFT_COLORICON or BFT_COLORPOINTER
  1700.    BITMAPINFOHEADER2 (part of BITMAPFILEHEADER2)
  1701.    Color table
  1702. BITMAPFILEHEADER2    with same usType
  1703.    BITMAPINFOHEADER2 (part of BITMAPFILEHEADER2)
  1704.    Color table
  1705. **
  1706. bits for one bit-map
  1707. **
  1708. **
  1709. bits for other bit-map
  1710. **
  1711.  
  1712. The usType for the first BITMAPFILEHEADER2 is either BFT_COLORICON or 
  1713. BFT_COLORPOINTER. This means that a second BITMAPFILEHEADER2 is present as part 
  1714. of the definition of a color icon or pointer. The first BITMAPFILEHEADER2 
  1715. structure contains the information for the black and white AND and XOR masks, 
  1716. while the second BITMAPFILEHEADER2 structure contains the information for the 
  1717. color part of the pointer or icon. 
  1718.  
  1719. BITMAPFILEHEADER and BITMAPINFOHEADER can occur in place of BITMAPFILEHEADER2 
  1720. and BITMAPINFOHEADER2 in this example. 
  1721.  
  1722. For the multiple version format, the file is as follows: 
  1723.  
  1724. BITMAPARRAYFILEHEADER2   for device-independent version
  1725.    BITMAPFILEHEADER2     (part of BITMAPARRAYFILEHEADER2)
  1726.       BITMAPINFOHEADER2  (part of BITMAPFILEHEADER2)
  1727.       Color table
  1728.  
  1729.    BITMAPFILEHEADER2     )
  1730.       BITMAPINFOHEADER2  )  only if this is a color icon or pointer
  1731.       Color table        )
  1732.  
  1733. BITMAPARRAYFILEHEADER2   for first device-dependent version
  1734.    BITMAPFILEHEADER2     (part of BITMAPARRAYFILEHEADER2)
  1735.       BITMAPINFOHEADER2  (part of BITMAPFILEHEADER2)
  1736.       Color table
  1737.  
  1738.    BITMAPFILEHEADER2     )
  1739.       BITMAPINFOHEADER2  )  only if this is a color icon or pointer
  1740.       Color table        )
  1741.  
  1742. Further BITMAPARRAYFILEHEADER2 groups occur here as required
  1743. for additional device-dependent versions
  1744.  
  1745. **
  1746. bits for one bit-map
  1747. **
  1748. **
  1749. bits for next bit-map
  1750. **
  1751.  
  1752. And so on for as many bit-maps as necessary.
  1753.  
  1754. As before, BITMAPARRAYFILEHEADER, BITMAPFILEHEADER and BITMAPINFOHEADER can 
  1755. occur in place of BITMAPARRAYFILEHEADER2, BITMAPFILEHEADER2 and 
  1756. BITMAPINFOHEADER2. 
  1757.  
  1758.  
  1759. ΓòÉΓòÉΓòÉ 2.2. Code Pages ΓòÉΓòÉΓòÉ
  1760.  
  1761. The initialization file contains country information relating to date, time, 
  1762. and numeric formats.  It does not contain code-page information; this is 
  1763. obtained from the CONFIG.SYS file. 
  1764.  
  1765. Applications start with the default code page. The default code page is set 
  1766. when the operating system is installed. It can be changed subsequently either 
  1767. by reinstalling the operating system or by editing the COUNTRY statement in the 
  1768. CONFIG.SYS file. 
  1769.  
  1770. A GPI presentation space inherits the code page of the process that created it. 
  1771. The code page changes only when the process issues a GpiSetCp function. 
  1772.  
  1773. See the printed version of the Presentation Manager Programming Reference for 
  1774. the ASCII and EBCDIC versions of the code pages. 
  1775.  
  1776.  
  1777. ΓòÉΓòÉΓòÉ 2.2.1. Windowed PM Applications ΓòÉΓòÉΓòÉ
  1778.  
  1779. Windowed PM applications allow the code-page calls to use any of the supported 
  1780. ASCII code pages. These are: 
  1781.  
  1782. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1783. Γöé                       Char. Set   Code Page  Γöé
  1784. Γöé                                              Γöé
  1785. ΓöéCanadian-French        993         863        Γöé
  1786. Γöé                                              Γöé
  1787. ΓöéDesktop Publishing     1146        1004       Γöé
  1788. Γöé                                              Γöé
  1789. ΓöéIceland                991         861        Γöé
  1790. Γöé                                              Γöé
  1791. ΓöéLatin 1 Multilingual   980         850        Γöé
  1792. Γöé                                              Γöé
  1793. ΓöéLatin 2 Multilingual   982         852        Γöé
  1794. Γöé                                              Γöé
  1795. ΓöéNordic                 995         865        Γöé
  1796. Γöé                                              Γöé
  1797. ΓöéPortuguese             990         860        Γöé
  1798. Γöé                                              Γöé
  1799. ΓöéTurkey                 987         857        Γöé
  1800. Γöé                                              Γöé
  1801. ΓöéU.S. (IBM PC)          919         437        Γöé
  1802. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1803.  
  1804. Code page 1004 is compatible with Microsoft** Windows** 
  1805.  
  1806. The following EBCDIC code pages, based on character set 697, are also available 
  1807. for output: 
  1808.  
  1809. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1810. Γöé                       Char. Set   Code Page  Γöé
  1811. Γöé                                              Γöé
  1812. ΓöéAustrian/German        697         273        Γöé
  1813. Γöé                                              Γöé
  1814. ΓöéBelgian                697         500        Γöé
  1815. Γöé                                              Γöé
  1816. ΓöéBrazil                 697         037        Γöé
  1817. Γöé                                              Γöé
  1818. ΓöéCzechoslovakia         959         870        Γöé
  1819. Γöé                                              Γöé
  1820. ΓöéDanish/Norwegian       697         277        Γöé
  1821. Γöé                                              Γöé
  1822. ΓöéFinnish/Swedish        697         278        Γöé
  1823. Γöé                                              Γöé
  1824. ΓöéFrench                 697         297        Γöé
  1825. Γöé                                              Γöé
  1826. ΓöéHungary                959         870        Γöé
  1827. Γöé                                              Γöé
  1828. ΓöéIceland                697         871        Γöé
  1829. Γöé                                              Γöé
  1830. ΓöéInternational          697         500        Γöé
  1831. Γöé                                              Γöé
  1832. ΓöéItalian                697         280        Γöé
  1833. Γöé                                              Γöé
  1834. ΓöéPoland                 959         870        Γöé
  1835. Γöé                                              Γöé
  1836. ΓöéPortuguese             697         037        Γöé
  1837. Γöé                                              Γöé
  1838. ΓöéSpanish                697         284        Γöé
  1839. Γöé                                              Γöé
  1840. ΓöéTurkey                 1152        1026       Γöé
  1841. Γöé                                              Γöé
  1842. ΓöéU.K.-English           697         285        Γöé
  1843. Γöé                                              Γöé
  1844. ΓöéU.S.-English           697         037        Γöé
  1845. Γöé                                              Γöé
  1846. ΓöéYugoslavia             959         870        Γöé
  1847. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1848.  
  1849. Note:  Code pages 274 (Belgian) and 282 (Portuguese) can be used to provide 
  1850.        access to old data. 
  1851.  
  1852. The operating system provides the following additional code-page setting and 
  1853. query calls for the supported ASCII and EBCDIC code pages. These calls work 
  1854. independently of the CONFIG.SYS file. 
  1855.  
  1856. GpiSetCp                  Sets the code page for GPI. 
  1857. GpiQueryCp                Queries the code page for GPI. 
  1858. GpiCreateLogFont          Creates fonts in a code page. 
  1859. WinSetCp                  Sets the code page for a message queue. 
  1860. WinQueryCp                Queries the code page for a message queue. 
  1861.  
  1862. WinQueryCpList creates a list of code pages supported by the operating system. 
  1863.  
  1864. Text entered in a dialog box is supplied to the application in the code page of 
  1865. the queue ("queue code page"). If possible, the code page of a resource (for 
  1866. example, a menu or dialog box) should match the code page of the queue. In 
  1867. general, code page 850 is the best choice for both an application and its 
  1868. resources. 
  1869.  
  1870. Applications should be able to process data from a variety of sources. Because 
  1871. code page 850 contains most of the characters in other supported code pages, 
  1872. this is usually the best choice for the queue code page. 
  1873.  
  1874.  
  1875. ΓòÉΓòÉΓòÉ 2.2.2. OS/2 Code Page Options for PM Applications ΓòÉΓòÉΓòÉ
  1876.  
  1877.  
  1878. ΓöîΓöÇΓöÇΓöÇApplicationΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ    ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1879. Γöé                                         ΓöéΓöÇΓöÇΓöÇΓöñ CONFIG.SYS   Γöé
  1880. Γöé ΓöîΓöÇDosSetProcessCp (see note 1)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé    Γöé contains the Γöé
  1881. Γöé Γöé Set code page for this process      Γöé Γöé    Γöé default code Γöé
  1882. Γöé Γöé (keyboard/display not changed).     Γöé Γöé    Γöé page set by  Γöé
  1883. Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé    Γöé CODEPAGE=    Γöé
  1884. Γöé                                         Γöé    ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1885. Γöé ΓöîΓöÇWinQueryCpList (see note 2)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé
  1886. Γöé Γöé Query list of supported code pages. Γöé Γöé
  1887. Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé
  1888. Γöé                                         Γöé
  1889. Γöé ΓöîΓöÇWinSetCp, WinQueryCp (see note 1)ΓöÇΓöÇΓöÇΓöÉ Γöé
  1890. Γöé Γöé Set or query code page for          ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇKeyboard
  1891. Γöé Γöé translating incoming messages       Γöé Γöé    Γö¼   Γö¼
  1892. Γöé Γöé (keystrokes).                       Γöé Γöé    ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöé
  1893. Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé    ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöé  Message
  1894. Γöé                                         Γöé    ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöé  queue
  1895. Γöé ΓöîΓöÇGpiSetCp, GpiQueryCp (see note 2)ΓöÇΓöÇΓöÇΓöÉ Γöé    ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1896. Γöé Γöé Set or query default GPI code page. Γöé Γöé
  1897. Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé
  1898. Γöé                                         Γöé
  1899. Γöé ΓöîΓöÇGpiCreateLogFont (see note 2)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé
  1900. Γöé Γöé Create font in a code page.         ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇDisplay
  1901. Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé
  1902. Γöé                                         Γöé
  1903. Γöé ΓöîΓöÇWinCpTranslateChar (see note 2)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé
  1904. Γöé Γö£ΓöÇWinCpTranslateString (see note 2)ΓöÇΓöÇΓöÇΓöñ Γöé
  1905. Γöé Γöé Convert character or string from    ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇDisk
  1906. Γöé Γöé one code page to another.           Γöé Γöé
  1907. Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé
  1908. Γöé                                        Γöé
  1909. Γöé                    ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇLAN or host
  1910. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1911.  
  1912. Note 1:  Either of the two ASCII code pages specified in CONFIG.SYS.
  1913.          Code page 1004 is also supported.
  1914. Note 2:  Any supported ASCII or EBCDIC code page as reported by
  1915.          WinQueryCpList.
  1916.          Code page 1004 is also supported.
  1917.  
  1918.  
  1919. ΓòÉΓòÉΓòÉ 2.2.3. OS/2 Font Support for Multiple Code Pages ΓòÉΓòÉΓòÉ
  1920.  
  1921. The operating system supports multiple code pages for text input and output. A 
  1922. single font resource is used to support all the code pages. This section 
  1923. describes the font resource format. 
  1924.  
  1925.  
  1926. ΓòÉΓòÉΓòÉ 2.2.3.1. Font Code-Page Functions ΓòÉΓòÉΓòÉ
  1927.  
  1928. Many of the characters required by each code page are common; for example, the 
  1929. first 128 characters of all the ASCII code pages are identical. This set of 
  1930. characters is called the Universal Glyph List (UGL). A code page is simply a 
  1931. set of pointers into the UGL. 
  1932.  
  1933. As the characters in every font are in the same order, only one set of 
  1934. code-page translation tables is necessary. 
  1935.  
  1936. Note:  The fonts of Microsoft** Windows** support only code page 1004. 
  1937.  
  1938.  
  1939. ΓòÉΓòÉΓòÉ 2.2.3.2. Font Layout ΓòÉΓòÉΓòÉ
  1940.  
  1941. The following table lists the full character set in the order in which the 
  1942. characters occur in the multi-code-page font. Characters are listed in order of 
  1943. their universal glyph list (UGL) number; the graphic character global 
  1944. identifier (GCGID) and a description of each character are also given. 
  1945.  
  1946. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1947. ΓöéUGL  ΓöéGCGID     ΓöéDescription                             Γöé
  1948. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1949. Γöé1    ΓöéSS000000  ΓöéSmiling face                            Γöé
  1950. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1951. Γöé2    ΓöéSS010000  ΓöéSmiling face, reverse image             Γöé
  1952. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1953. Γöé3    ΓöéSS020000  ΓöéHeart suit symbol                       Γöé
  1954. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1955. Γöé4    ΓöéSS030000  ΓöéDiamond suit symbol                     Γöé
  1956. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1957. Γöé5    ΓöéSS040000  ΓöéClub suit symbol                        Γöé
  1958. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1959. Γöé6    ΓöéSS050000  ΓöéSpade suit symbol                       Γöé
  1960. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1961. Γöé7    ΓöéSM570000  ΓöéBullet                                  Γöé
  1962. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1963. Γöé8    ΓöéSM570001  ΓöéBullet, reverse image                   Γöé
  1964. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1965. Γöé9    ΓöéSM750000  ΓöéOpen circle                             Γöé
  1966. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1967. Γöé10   ΓöéSM750002  ΓöéOpen circle, reverse image              Γöé
  1968. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1969. Γöé11   ΓöéSM280000  ΓöéMale symbol                             Γöé
  1970. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1971. Γöé12   ΓöéSM290000  ΓöéFemale symbol                           Γöé
  1972. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1973. Γöé13   ΓöéSM930000  ΓöéMusical note                            Γöé
  1974. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1975. Γöé14   ΓöéSM910000  ΓöéTwo musical notes                       Γöé
  1976. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1977. Γöé15   ΓöéSM690000  ΓöéSun symbol                              Γöé
  1978. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1979. Γöé16   ΓöéSM590000  ΓöéForward arrow indicator                 Γöé
  1980. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1981. Γöé17   ΓöéSM630000  ΓöéBack arrow indicator                    Γöé
  1982. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1983. Γöé18   ΓöéSM760000  ΓöéUp-down arrow                           Γöé
  1984. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1985. Γöé19   ΓöéSP330000  ΓöéDouble exclamation point                Γöé
  1986. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1987. Γöé20   ΓöéSM250000  ΓöéParagraph symbol (USA)                  Γöé
  1988. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1989. Γöé21   ΓöéSM240000  ΓöéSection symbol (USA), paragraph (Europe)Γöé
  1990. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1991. Γöé22   ΓöéSM700000  ΓöéSolid horizontal rectangle              Γöé
  1992. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1993. Γöé23   ΓöéSM770000  ΓöéUp-down arrow, perpendicular            Γöé
  1994. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1995. Γöé24   ΓöéSM320000  ΓöéUp arrow                                Γöé
  1996. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1997. Γöé25   ΓöéSM330000  ΓöéDown arrow                              Γöé
  1998. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1999. Γöé26   ΓöéSM310000  ΓöéRight arrow                             Γöé
  2000. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2001. Γöé27   ΓöéSM300000  ΓöéLeft arrow                              Γöé
  2002. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2003. Γöé28   ΓöéSA420000  ΓöéRight angle symbol                      Γöé
  2004. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2005. Γöé29   ΓöéSM780000  ΓöéLeft-right arrow                        Γöé
  2006. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2007. Γöé30   ΓöéSM600000  ΓöéSolid triangle                          Γöé
  2008. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2009. Γöé31   ΓöéSV040000  ΓöéSolid triangle, inverted                Γöé
  2010. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2011. Γöé32   ΓöéSP010000  ΓöéSpace                                   Γöé
  2012. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2013. Γöé33   ΓöéSP020000  ΓöéExclamation point                       Γöé
  2014. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2015. Γöé34   ΓöéSP040000  ΓöéQuotation marks                         Γöé
  2016. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2017. Γöé35   ΓöéSM010000  ΓöéNumber sign                             Γöé
  2018. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2019. Γöé36   ΓöéSC030000  ΓöéDollar sign                             Γöé
  2020. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2021. Γöé37   ΓöéSM020000  ΓöéPercent sign                            Γöé
  2022. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2023. Γöé38   ΓöéSM030000  ΓöéAmpersand                               Γöé
  2024. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2025. Γöé39   ΓöéSP050000  ΓöéApostrophe                              Γöé
  2026. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2027. Γöé40   ΓöéSP060000  ΓöéLeft parenthesis                        Γöé
  2028. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2029. Γöé41   ΓöéSP070000  ΓöéRight parenthesis                       Γöé
  2030. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2031. Γöé42   ΓöéSM040000  ΓöéAsterisk                                Γöé
  2032. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2033. Γöé43   ΓöéSA010000  ΓöéPlus sign                               Γöé
  2034. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2035. Γöé44   ΓöéSP080000  ΓöéComma                                   Γöé
  2036. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2037. Γöé45   ΓöéSP100000  ΓöéHyphen/minus sign                       Γöé
  2038. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2039. Γöé46   ΓöéSP110000  ΓöéPeriod/full stop                        Γöé
  2040. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2041. Γöé47   ΓöéSP120000  ΓöéSlash                                   Γöé
  2042. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2043. Γöé48   ΓöéND100000  ΓöéZero                                    Γöé
  2044. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2045. Γöé49   ΓöéND010000  ΓöéOne                                     Γöé
  2046. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2047. Γöé50   ΓöéND020000  ΓöéTwo                                     Γöé
  2048. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2049. Γöé51   ΓöéND030000  ΓöéThree                                   Γöé
  2050. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2051. Γöé52   ΓöéND040000  ΓöéFour                                    Γöé
  2052. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2053. Γöé53   ΓöéND050000  ΓöéFive                                    Γöé
  2054. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2055. Γöé54   ΓöéND060000  ΓöéSix                                     Γöé
  2056. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2057. Γöé55   ΓöéND070000  ΓöéSeven                                   Γöé
  2058. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2059. Γöé56   ΓöéND080000  ΓöéEight                                   Γöé
  2060. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2061. Γöé57   ΓöéND090000  ΓöéNine                                    Γöé
  2062. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2063. Γöé58   ΓöéSP130000  ΓöéColon                                   Γöé
  2064. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2065. Γöé59   ΓöéSP140000  ΓöéSemicolon                               Γöé
  2066. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2067. Γöé60   ΓöéSA030000  ΓöéLess than sign/greater than (arabic)    Γöé
  2068. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2069. Γöé61   ΓöéSA040000  ΓöéEqual Sign                              Γöé
  2070. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2071. Γöé62   ΓöéSA050000  ΓöéGreater than sign/less than (arabic)    Γöé
  2072. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2073. Γöé63   ΓöéSP150000  ΓöéQuestion mark                           Γöé
  2074. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2075. Γöé64   ΓöéSM050000  ΓöéAt sign                                 Γöé
  2076. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2077. Γöé65   ΓöéLA020000  ΓöéA capital                               Γöé
  2078. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2079. Γöé66   ΓöéLB020000  ΓöéB capital                               Γöé
  2080. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2081. Γöé67   ΓöéLC020000  ΓöéC capital                               Γöé
  2082. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2083. Γöé68   ΓöéLD020000  ΓöéD capital                               Γöé
  2084. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2085. Γöé69   ΓöéLE020000  ΓöéE capital                               Γöé
  2086. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2087. Γöé70   ΓöéLF020000  ΓöéF capital                               Γöé
  2088. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2089. Γöé71   ΓöéLG020000  ΓöéG capital                               Γöé
  2090. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2091. Γöé72   ΓöéLH020000  ΓöéH capital                               Γöé
  2092. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2093. Γöé73   ΓöéLI020000  ΓöéI capital                               Γöé
  2094. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2095. Γöé74   ΓöéLJ020000  ΓöéJ capital                               Γöé
  2096. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2097. Γöé75   ΓöéLK020000  ΓöéK capital                               Γöé
  2098. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2099. Γöé76   ΓöéLL020000  ΓöéL capital                               Γöé
  2100. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2101. Γöé77   ΓöéLM020000  ΓöéM capital                               Γöé
  2102. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2103. Γöé78   ΓöéLN020000  ΓöéN capital                               Γöé
  2104. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2105. Γöé79   ΓöéLO020000  ΓöéO capital                               Γöé
  2106. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2107. Γöé80   ΓöéLP020000  ΓöéP capital                               Γöé
  2108. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2109. Γöé81   ΓöéLQ020000  ΓöéQ capital                               Γöé
  2110. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2111. Γöé82   ΓöéLR020000  ΓöéR capital                               Γöé
  2112. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2113. Γöé83   ΓöéLS020000  ΓöéS capital                               Γöé
  2114. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2115. Γöé84   ΓöéLT020000  ΓöéT capital                               Γöé
  2116. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2117. Γöé85   ΓöéLU020000  ΓöéU capital                               Γöé
  2118. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2119. Γöé86   ΓöéLV020000  ΓöéV capital                               Γöé
  2120. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2121. Γöé87   ΓöéLW020000  ΓöéW capital                               Γöé
  2122. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2123. Γöé88   ΓöéLX020000  ΓöéX capital                               Γöé
  2124. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2125. Γöé89   ΓöéLY020000  ΓöéY capital                               Γöé
  2126. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2127. Γöé90   ΓöéLZ020000  ΓöéZ capital                               Γöé
  2128. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2129. Γöé91   ΓöéSM060000  ΓöéLeft bracket                            Γöé
  2130. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2131. Γöé92   ΓöéSM070000  ΓöéBackslash                               Γöé
  2132. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2133. Γöé93   ΓöéSM080000  ΓöéRight bracket                           Γöé
  2134. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2135. Γöé94   ΓöéSD150000  ΓöéCircumflex Accent                       Γöé
  2136. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2137. Γöé95   ΓöéSP090000  ΓöéUnderline, continuous underscore        Γöé
  2138. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2139. Γöé96   ΓöéSD130000  ΓöéGrave accent                            Γöé
  2140. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2141. Γöé97   ΓöéLA010000  Γöéa small                                 Γöé
  2142. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2143. Γöé98   ΓöéLB010000  Γöéb small                                 Γöé
  2144. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2145. Γöé99   ΓöéLC010000  Γöéc small                                 Γöé
  2146. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2147. Γöé100  ΓöéLD010000  Γöéd small                                 Γöé
  2148. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2149. Γöé101  ΓöéLE010000  Γöée small                                 Γöé
  2150. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2151. Γöé102  ΓöéLF010000  Γöéf small                                 Γöé
  2152. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2153. Γöé103  ΓöéLG010000  Γöég small                                 Γöé
  2154. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2155. Γöé104  ΓöéLH010000  Γöéh small                                 Γöé
  2156. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2157. Γöé105  ΓöéLI010000  Γöéi small                                 Γöé
  2158. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2159. Γöé106  ΓöéLJ010000  Γöéj small                                 Γöé
  2160. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2161. Γöé107  ΓöéLK010000  Γöék small                                 Γöé
  2162. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2163. Γöé108  ΓöéLL010000  Γöél small                                 Γöé
  2164. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2165. Γöé109  ΓöéLM010000  Γöém small                                 Γöé
  2166. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2167. Γöé110  ΓöéLN010000  Γöén small                                 Γöé
  2168. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2169. Γöé111  ΓöéLO010000  Γöéo small                                 Γöé
  2170. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2171. Γöé112  ΓöéLP010000  Γöép small                                 Γöé
  2172. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2173. Γöé113  ΓöéLQ010000  Γöéq small                                 Γöé
  2174. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2175. Γöé114  ΓöéLR010000  Γöér small                                 Γöé
  2176. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2177. Γöé115  ΓöéLS010000  Γöés small                                 Γöé
  2178. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2179. Γöé116  ΓöéLT010000  Γöét small                                 Γöé
  2180. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2181. Γöé117  ΓöéLU010000  Γöéu small                                 Γöé
  2182. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2183. Γöé118  ΓöéLV010000  Γöév small                                 Γöé
  2184. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2185. Γöé119  ΓöéLW010000  Γöéw small                                 Γöé
  2186. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2187. Γöé120  ΓöéLX010000  Γöéx small                                 Γöé
  2188. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2189. Γöé121  ΓöéLY010000  Γöéy small                                 Γöé
  2190. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2191. Γöé122  ΓöéLZ010000  Γöéz small                                 Γöé
  2192. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2193. Γöé123  ΓöéSM110000  ΓöéLeft brace                              Γöé
  2194. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2195. Γöé124  ΓöéSM130000  ΓöéVertical line, logical OR               Γöé
  2196. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2197. Γöé125  ΓöéSM140000  ΓöéRight brace                             Γöé
  2198. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2199. Γöé126  ΓöéSD190000  ΓöéTilde                                   Γöé
  2200. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2201. Γöé127  ΓöéSM790000  ΓöéHouse                                   Γöé
  2202. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2203. Γöé128  ΓöéLC420000  ΓöéC cedilla capital                       Γöé
  2204. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2205. Γöé129  ΓöéLU170000  ΓöéU diaeresis small                       Γöé
  2206. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2207. Γöé130  ΓöéLE110000  ΓöéE acute small                           Γöé
  2208. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2209. Γöé131  ΓöéLA150000  ΓöéA circumflex small                      Γöé
  2210. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2211. Γöé132  ΓöéLA170000  ΓöéA diaeresis small                       Γöé
  2212. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2213. Γöé133  ΓöéLA130000  ΓöéA grave small                           Γöé
  2214. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2215. Γöé134  ΓöéLA270000  ΓöéA overcircle small                      Γöé
  2216. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2217. Γöé135  ΓöéLC410000  ΓöéC cedilla small                         Γöé
  2218. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2219. Γöé136  ΓöéLE150000  ΓöéE circumflex small                      Γöé
  2220. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2221. Γöé137  ΓöéLE170000  ΓöéE diaeresis small                       Γöé
  2222. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2223. Γöé138  ΓöéLE130000  ΓöéE grave small                           Γöé
  2224. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2225. Γöé139  ΓöéLI170000  ΓöéI diaeresis small                       Γöé
  2226. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2227. Γöé140  ΓöéLI150000  ΓöéI circumflex small                      Γöé
  2228. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2229. Γöé141  ΓöéLI130000  ΓöéI grave small                           Γöé
  2230. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2231. Γöé142  ΓöéLA180000  ΓöéA diaeresis capital                     Γöé
  2232. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2233. Γöé143  ΓöéLA280000  ΓöéA overcircle capital                    Γöé
  2234. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2235. Γöé144  ΓöéLE120000  ΓöéE acute capital                         Γöé
  2236. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2237. Γöé145  ΓöéLA510000  ΓöéAE diphthong small                      Γöé
  2238. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2239. Γöé146  ΓöéLA520000  ΓöéAE diphthong capital                    Γöé
  2240. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2241. Γöé147  ΓöéLO150000  ΓöéO circumflex small                      Γöé
  2242. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2243. Γöé148  ΓöéLO170000  ΓöéO diaeresis small                       Γöé
  2244. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2245. Γöé149  ΓöéLO130000  ΓöéO grave small                           Γöé
  2246. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2247. Γöé150  ΓöéLU150000  ΓöéU circumflex small                      Γöé
  2248. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2249. Γöé151  ΓöéLU130000  ΓöéU grave small                           Γöé
  2250. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2251. Γöé152  ΓöéLY170000  ΓöéY diaeresis small                       Γöé
  2252. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2253. Γöé153  ΓöéLO180000  ΓöéO diaeresis capital                     Γöé
  2254. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2255. Γöé154  ΓöéLU180000  ΓöéU diaeresis capital                     Γöé
  2256. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2257. Γöé155  ΓöéLO610000  ΓöéO slash small                           Γöé
  2258. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2259. Γöé156  ΓöéSC020000  ΓöéPound sterling sign                     Γöé
  2260. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2261. Γöé157  ΓöéLO620000  ΓöéO slash capital                         Γöé
  2262. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2263. Γöé158  ΓöéSA070000  ΓöéMultiply sign                           Γöé
  2264. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2265. Γöé159  ΓöéSC070000  ΓöéFlorin sign                             Γöé
  2266. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2267. Γöé160  ΓöéLA110000  ΓöéA acute small                           Γöé
  2268. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2269. Γöé161  ΓöéLI110000  ΓöéI acute small                           Γöé
  2270. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2271. Γöé162  ΓöéLO110000  ΓöéO acute small                           Γöé
  2272. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2273. Γöé163  ΓöéLU110000  ΓöéU acute small                           Γöé
  2274. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2275. Γöé164  ΓöéLN190000  ΓöéN tilde small                           Γöé
  2276. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2277. Γöé165  ΓöéLN200000  ΓöéN tilde capital                         Γöé
  2278. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2279. Γöé166  ΓöéSM210000  ΓöéOrdinal indicator, feminine             Γöé
  2280. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2281. Γöé167  ΓöéSM200000  ΓöéOrdinal indicator, masculine            Γöé
  2282. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2283. Γöé168  ΓöéSP160000  ΓöéQuestion mark, inverted                 Γöé
  2284. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2285. Γöé169  ΓöéSM530000  ΓöéRegistered trademark symbol             Γöé
  2286. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2287. Γöé170  ΓöéSM660000  ΓöéLogical NOT, end of line symbol         Γöé
  2288. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2289. Γöé171  ΓöéNF010000  ΓöéOne-half                                Γöé
  2290. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2291. Γöé172  ΓöéNF040000  ΓöéOne-quarter                             Γöé
  2292. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2293. Γöé173  ΓöéSP030000  ΓöéExclamation point, inverted             Γöé
  2294. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2295. Γöé174  ΓöéSP170000  ΓöéLeft angled quotes                      Γöé
  2296. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2297. Γöé175  ΓöéSP180000  ΓöéRight angled quotes                     Γöé
  2298. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2299. Γöé176  ΓöéSF140000  ΓöéFill character, light                   Γöé
  2300. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2301. Γöé177  ΓöéSF150000  ΓöéFill character, medium                  Γöé
  2302. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2303. Γöé178  ΓöéSF160000  ΓöéFill character, heavy                   Γöé
  2304. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2305. Γöé179  ΓöéSF110000  ΓöéCenter box bar vertical                 Γöé
  2306. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2307. Γöé180  ΓöéSF090000  ΓöéRight middle box side                   Γöé
  2308. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2309. Γöé181  ΓöéLA120000  ΓöéA acute capital                         Γöé
  2310. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2311. Γöé182  ΓöéLA160000  ΓöéA circumflex capital                    Γöé
  2312. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2313. Γöé183  ΓöéLA140000  ΓöéA grave capital                         Γöé
  2314. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2315. Γöé184  ΓöéSM520000  ΓöéCopyright symbol                        Γöé
  2316. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2317. Γöé185  ΓöéSF230000  ΓöéRight box side double                   Γöé
  2318. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2319. Γöé186  ΓöéSF240000  ΓöéCenter box bar vertical double          Γöé
  2320. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2321. Γöé187  ΓöéSF250000  ΓöéUpper right box corner double           Γöé
  2322. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2323. Γöé188  ΓöéSF260000  ΓöéLower right box corner double           Γöé
  2324. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2325. Γöé189  ΓöéSC040000  ΓöéCent sign                               Γöé
  2326. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2327. Γöé190  ΓöéSC050000  ΓöéYen sign                                Γöé
  2328. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2329. Γöé191  ΓöéSF030000  ΓöéUpper right box corner                  Γöé
  2330. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2331. Γöé192  ΓöéSF020000  ΓöéLower left box corner                   Γöé
  2332. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2333. Γöé193  ΓöéSF070000  ΓöéMiddle box bottom                       Γöé
  2334. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2335. Γöé194  ΓöéSF060000  ΓöéMiddle box top                          Γöé
  2336. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2337. Γöé195  ΓöéSF080000  ΓöéLeft middle box side                    Γöé
  2338. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2339. Γöé196  ΓöéSF100000  ΓöéCenter box bar horizontal               Γöé
  2340. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2341. Γöé197  ΓöéSF050000  ΓöéBox intersection                        Γöé
  2342. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2343. Γöé198  ΓöéLA190000  ΓöéA tilde small                           Γöé
  2344. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2345. Γöé199  ΓöéLA200000  ΓöéA tilde capital                         Γöé
  2346. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2347. Γöé200  ΓöéSF380000  ΓöéLower left box corner double            Γöé
  2348. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2349. Γöé201  ΓöéSF390000  ΓöéUpper left box corner double            Γöé
  2350. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2351. Γöé202  ΓöéSF400000  ΓöéMiddle box bottom double                Γöé
  2352. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2353. Γöé203  ΓöéSF410000  ΓöéMiddle box top double                   Γöé
  2354. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2355. Γöé204  ΓöéSF420000  ΓöéLeft box side double                    Γöé
  2356. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2357. Γöé205  ΓöéSF430000  ΓöéCenter box bar horizontal double        Γöé
  2358. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2359. Γöé206  ΓöéSF440000  ΓöéBox intersection double                 Γöé
  2360. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2361. Γöé207  ΓöéSC010000  ΓöéInternational currency symbol           Γöé
  2362. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2363. Γöé208  ΓöéLD630000  Γöéeth Icelandic small                     Γöé
  2364. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2365. Γöé209  ΓöéLD620000  ΓöéD stroke capital, Eth Icelandic capital Γöé
  2366. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2367. Γöé210  ΓöéLE160000  ΓöéE circumflex capital                    Γöé
  2368. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2369. Γöé211  ΓöéLE180000  ΓöéE diaeresis capital                     Γöé
  2370. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2371. Γöé212  ΓöéLE140000  ΓöéE grave capital                         Γöé
  2372. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2373. Γöé213  ΓöéLI610000  ΓöéI dotless small                         Γöé
  2374. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2375. Γöé214  ΓöéLI120000  ΓöéI acute capital                         Γöé
  2376. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2377. Γöé215  ΓöéLI160000  ΓöéI circumflex capital                    Γöé
  2378. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2379. Γöé216  ΓöéLI180000  ΓöéI diaeresis capital                     Γöé
  2380. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2381. Γöé217  ΓöéSF040000  ΓöéLower right box corner                  Γöé
  2382. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2383. Γöé218  ΓöéSF010000  ΓöéUpper left box corner                   Γöé
  2384. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2385. Γöé219  ΓöéSF610000  ΓöéSolid fill character                    Γöé
  2386. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2387. Γöé220  ΓöéSF570000  ΓöéSolid fill character, bottom half       Γöé
  2388. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2389. Γöé221  ΓöéSM650000  ΓöéVertical line, broken                   Γöé
  2390. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2391. Γöé222  ΓöéLI140000  ΓöéI grave capital                         Γöé
  2392. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2393. Γöé223  ΓöéSF600000  ΓöéSolid fill character, top half          Γöé
  2394. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2395. Γöé224  ΓöéLO120000  ΓöéO acute capital                         Γöé
  2396. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2397. Γöé225  ΓöéLS610000  ΓöéSharp s small                           Γöé
  2398. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2399. Γöé226  ΓöéLO160000  ΓöéO circumflex capital                    Γöé
  2400. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2401. Γöé227  ΓöéLO140000  ΓöéO grave capital                         Γöé
  2402. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2403. Γöé228  ΓöéLO190000  ΓöéO tilde small                           Γöé
  2404. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2405. Γöé229  ΓöéLO200000  ΓöéO tilde capital                         Γöé
  2406. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2407. Γöé230  ΓöéSM170000  ΓöéMicro symbol                            Γöé
  2408. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2409. Γöé231  ΓöéLT630000  ΓöéThorn Icelandic small                   Γöé
  2410. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2411. Γöé232  ΓöéLT640000  ΓöéThorn Icelandic capital                 Γöé
  2412. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2413. Γöé233  ΓöéLU120000  ΓöéU acute capital                         Γöé
  2414. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2415. Γöé234  ΓöéLU160000  ΓöéU circumflex capital                    Γöé
  2416. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2417. Γöé235  ΓöéLU140000  ΓöéU grave capital                         Γöé
  2418. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2419. Γöé236  ΓöéLY110000  Γöéy acute small                           Γöé
  2420. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2421. Γöé237  ΓöéLY120000  ΓöéY acute capital                         Γöé
  2422. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2423. Γöé238  ΓöéSM150000  ΓöéOverline                                Γöé
  2424. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2425. Γöé239  ΓöéSD110000  ΓöéAcute accent                            Γöé
  2426. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2427. Γöé240  ΓöéSP320000  ΓöéSyllable hyphen                         Γöé
  2428. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2429. Γöé241  ΓöéSA020000  ΓöéPlus or minus sign                      Γöé
  2430. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2431. Γöé242  ΓöéSM100000  ΓöéDouble underscore                       Γöé
  2432. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2433. Γöé243  ΓöéNF050000  ΓöéThree-quarters                          Γöé
  2434. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2435. Γöé244  ΓöéSM250000  ΓöéParagraph symbol (USA)                  Γöé
  2436. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2437. Γöé245  ΓöéSM240000  ΓöéSection symbol (USA), paragraph (Europe)Γöé
  2438. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2439. Γöé246  ΓöéSA060000  ΓöéDivide sign                             Γöé
  2440. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2441. Γöé247  ΓöéSD410000  ΓöéCedilla (or sedila) accent              Γöé
  2442. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2443. Γöé248  ΓöéSM190000  ΓöéDegree symbol                           Γöé
  2444. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2445. Γöé249  ΓöéSD170000  ΓöéDiaeresis, umlaut accent                Γöé
  2446. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2447. Γöé250  ΓöéSD630000  ΓöéMiddle dot                              Γöé
  2448. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2449. Γöé251  ΓöéND011000  ΓöéOne superscript                         Γöé
  2450. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2451. Γöé252  ΓöéND031000  ΓöéThree superscript                       Γöé
  2452. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2453. Γöé253  ΓöéND021000  ΓöéTwo superscript                         Γöé
  2454. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2455. Γöé254  ΓöéSM470000  ΓöéSolid square, histogram, square bullet  Γöé
  2456. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2457. Γöé255  ΓöéSP300000  ΓöéRequired space                          Γöé
  2458. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2459. Γöé256  ΓöéSC060000  ΓöéPeseta sign                             Γöé
  2460. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2461. Γöé257  ΓöéSM680000  ΓöéStart of line symbol                    Γöé
  2462. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2463. Γöé258  ΓöéSF190000  ΓöéRight box side double to single         Γöé
  2464. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2465. Γöé259  ΓöéSF200000  ΓöéRight box side single to double         Γöé
  2466. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2467. Γöé260  ΓöéSF210000  ΓöéUpper right box corner single to double Γöé
  2468. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2469. Γöé261  ΓöéSF220000  ΓöéUpper right box corner double to single Γöé
  2470. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2471. Γöé262  ΓöéSF270000  ΓöéLower right box corner single to double Γöé
  2472. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2473. Γöé263  ΓöéSF280000  ΓöéLower right box corner double to single Γöé
  2474. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2475. Γöé264  ΓöéSF360000  ΓöéLeft box side single to double          Γöé
  2476. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2477. Γöé265  ΓöéSF370000  ΓöéLeft box side double to single          Γöé
  2478. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2479. Γöé266  ΓöéSF450000  ΓöéMiddle box bottom single to double      Γöé
  2480. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2481. Γöé267  ΓöéSF460000  ΓöéMiddle box bottom double to single      Γöé
  2482. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2483. Γöé268  ΓöéSF470000  ΓöéMiddle box top double to single         Γöé
  2484. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2485. Γöé269  ΓöéSF480000  ΓöéMiddle box top single to double         Γöé
  2486. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2487. Γöé270  ΓöéSF490000  ΓöéLower left box corner double to single  Γöé
  2488. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2489. Γöé271  ΓöéSF500000  ΓöéLower left box corner single to double  Γöé
  2490. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2491. Γöé272  ΓöéSF510000  ΓöéUpper left box corner single to double  Γöé
  2492. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2493. Γöé273  ΓöéSF520000  ΓöéUpper left box corner double to single  Γöé
  2494. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2495. Γöé274  ΓöéSF530000  ΓöéBox intersection single to double       Γöé
  2496. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2497. Γöé275  ΓöéSF540000  ΓöéBox intersection double to single       Γöé
  2498. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2499. Γöé276  ΓöéSF580000  ΓöéSolid fill character, left half         Γöé
  2500. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2501. Γöé277  ΓöéSF590000  ΓöéSolid fill character, right half        Γöé
  2502. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2503. Γöé278  ΓöéGA010000  ΓöéAlpha small                             Γöé
  2504. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2505. Γöé279  ΓöéGG020000  ΓöéGamma capital                           Γöé
  2506. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2507. Γöé280  ΓöéGP010000  ΓöéPi small                                Γöé
  2508. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2509. Γöé281  ΓöéGS020000  ΓöéSigma capital                           Γöé
  2510. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2511. Γöé282  ΓöéGS010000  ΓöéSigma small                             Γöé
  2512. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2513. Γöé283  ΓöéGT010000  ΓöéTau small                               Γöé
  2514. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2515. Γöé284  ΓöéGF020000  ΓöéPhi capital                             Γöé
  2516. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2517. Γöé285  ΓöéGT620000  ΓöéTheta capital                           Γöé
  2518. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2519. Γöé286  ΓöéGO320000  ΓöéOmega capital                           Γöé
  2520. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2521. Γöé287  ΓöéGD010000  ΓöéDelta small                             Γöé
  2522. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2523. Γöé288  ΓöéSA450000  ΓöéInfinity symbol                         Γöé
  2524. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2525. Γöé289  ΓöéGF010000  ΓöéPhi small                               Γöé
  2526. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2527. Γöé290  ΓöéGE010000  ΓöéEpsilon small                           Γöé
  2528. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2529. Γöé291  ΓöéSA380000  ΓöéIntersection, logical product           Γöé
  2530. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2531. Γöé292  ΓöéSA480000  ΓöéIndentity symbol, almost equal          Γöé
  2532. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2533. Γöé293  ΓöéSA530000  ΓöéGreater than or equal sign              Γöé
  2534. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2535. Γöé294  ΓöéSA520000  ΓöéLess than or equal sign                 Γöé
  2536. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2537. Γöé295  ΓöéSS260000  ΓöéUpper integral symbol section           Γöé
  2538. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2539. Γöé296  ΓöéSS270000  ΓöéLower integral symbol section           Γöé
  2540. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2541. Γöé297  ΓöéSA700000  ΓöéNearly equals symbol                    Γöé
  2542. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2543. Γöé298  ΓöéSA790000  ΓöéProduct dot                             Γöé
  2544. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2545. Γöé299  ΓöéSA800000  ΓöéRadical symbol                          Γöé
  2546. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2547. Γöé300  ΓöéLN011000  ΓöéN small superscript                     Γöé
  2548. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2549. Γöé301  ΓöéSD310000  ΓöéMacron accent                           Γöé
  2550. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2551. Γöé302  ΓöéSD230000  ΓöéBreve accent                            Γöé
  2552. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2553. Γöé303  ΓöéSD290000  ΓöéOverdot accent (over small Alpha)       Γöé
  2554. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2555. Γöé304  ΓöéSD270000  ΓöéOvercircle accent                       Γöé
  2556. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2557. Γöé305  ΓöéSD250000  ΓöéDouble acute accent                     Γöé
  2558. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2559. Γöé306  ΓöéSD430000  ΓöéOgonek accent                           Γöé
  2560. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2561. Γöé307  ΓöéSD210000  ΓöéCaron accent                            Γöé
  2562. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2563. Γöé308  ΓöéSP190000  ΓöéLeft single quote                       Γöé
  2564. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2565. Γöé309  ΓöéSP200000  ΓöéRight single quote                      Γöé
  2566. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2567. Γöé310  ΓöéSP210000  ΓöéLeft double quotes                      Γöé
  2568. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2569. Γöé311  ΓöéSP220000  ΓöéRight double quotes                     Γöé
  2570. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2571. Γöé312  ΓöéSS680000  ΓöéEndash                                  Γöé
  2572. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2573. Γöé313  ΓöéSM900000  ΓöéEmdash                                  Γöé
  2574. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2575. Γöé314  ΓöéSD150000  ΓöéCircumflex accent                       Γöé
  2576. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2577. Γöé315  ΓöéSD190000  ΓöéTilde accent                            Γöé
  2578. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2579. Γöé316  ΓöéSP260000  ΓöéSingle quote on baseline (German lower) Γöé
  2580. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2581. Γöé317  ΓöéSP230000  ΓöéLeft lower double quotes                Γöé
  2582. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2583. Γöé318  ΓöéSV520000  ΓöéEllipsis                                Γöé
  2584. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2585. Γöé319  ΓöéSM340000  ΓöéDagger footnote indicator               Γöé
  2586. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2587. Γöé320  ΓöéSM350000  ΓöéDouble dagger footnote indicator        Γöé
  2588. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2589. Γöé321  ΓöéSD150100  ΓöéCircumflex accent (over small alpha)    Γöé
  2590. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2591. Γöé322  ΓöéSM560000  ΓöéPermille symbol                         Γöé
  2592. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2593. Γöé323  ΓöéLS220000  ΓöéS caron capital                         Γöé
  2594. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2595. Γöé324  ΓöéSP270000  ΓöéFrench single open quote                Γöé
  2596. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2597. Γöé325  ΓöéLO520000  ΓöéOE ligature capital                     Γöé
  2598. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2599. Γöé326  ΓöéSD190100  ΓöéTilde accent (over small alpha)         Γöé
  2600. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2601. Γöé327  ΓöéSM540000  ΓöéTrademark symbol                        Γöé
  2602. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2603. Γöé328  ΓöéLS210000  Γöés caron small                           Γöé
  2604. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2605. Γöé329  ΓöéSP280000  ΓöéFrench single close quote               Γöé
  2606. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2607. Γöé330  ΓöéLO510000  Γöéoe ligature small                       Γöé
  2608. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2609. Γöé331  ΓöéLY180000  ΓöéY diaeresis capital                     Γöé
  2610. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2611. Γöé332  ΓöéLG230000  Γöég Breve Small                           Γöé
  2612. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2613. Γöé333  ΓöéLG240000  ΓöéG Breve Capital                         Γöé
  2614. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2615. Γöé334  ΓöéLI300000  ΓöéI Overdot Capital                       Γöé
  2616. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2617. Γöé335  ΓöéLS410000  Γöés Cedilla Small                         Γöé
  2618. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2619. Γöé336  ΓöéLS420000  ΓöéS Cedilla Capital                       Γöé
  2620. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2621. Γöé337  ΓöéLA230000  Γöéa Breve Small                           Γöé
  2622. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2623. Γöé338  ΓöéLA240000  ΓöéA Breve Capital                         Γöé
  2624. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2625. Γöé339  ΓöéLA430000  Γöéa Ogonek Small                          Γöé
  2626. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2627. Γöé340  ΓöéLA440000  ΓöéA Ogonek Capital                        Γöé
  2628. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2629. Γöé341  ΓöéLC110000  Γöéc Acute Small                           Γöé
  2630. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2631. Γöé342  ΓöéLC120000  ΓöéC Acute Capital                         Γöé
  2632. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2633. Γöé343  ΓöéLC210000  Γöéc Caron Small                           Γöé
  2634. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2635. Γöé344  ΓöéLC220000  ΓöéC Caron Capital                         Γöé
  2636. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2637. Γöé345  ΓöéLD210000  Γöéd Caron Small                           Γöé
  2638. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2639. Γöé346  ΓöéLD220000  ΓöéD Caron Capital                         Γöé
  2640. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2641. Γöé347  ΓöéLD610000  Γöéd Stroke Small                          Γöé
  2642. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2643. Γöé348  ΓöéLE210000  Γöée Caron Small                           Γöé
  2644. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2645. Γöé349  ΓöéLE220000  ΓöéE Caron Capital                         Γöé
  2646. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2647. Γöé350  ΓöéLE430000  Γöée Ogenek Small                          Γöé
  2648. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2649. Γöé351  ΓöéLE440000  ΓöéE Ogonek Capital                        Γöé
  2650. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2651. Γöé352  ΓöéLL110000  Γöél Acute Small                           Γöé
  2652. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2653. Γöé353  ΓöéLL120000  ΓöéL Acute Capital                         Γöé
  2654. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2655. Γöé354  ΓöéLL210000  Γöél Caron Small                           Γöé
  2656. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2657. Γöé355  ΓöéLL220000  ΓöéL Caron Capital                         Γöé
  2658. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2659. Γöé356  ΓöéLL610000  Γöél Stroke Small                          Γöé
  2660. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2661. Γöé357  ΓöéLL620000  ΓöéL Stroke Capital                        Γöé
  2662. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2663. Γöé358  ΓöéLN110000  Γöén Acute Small                           Γöé
  2664. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2665. Γöé359  ΓöéLN120000  ΓöéN Acute Capital                         Γöé
  2666. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2667. Γöé360  ΓöéLN210000  Γöén Caron Small                           Γöé
  2668. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2669. Γöé361  ΓöéLN220000  ΓöéN Caron Capital                         Γöé
  2670. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2671. Γöé362  ΓöéLO250000  Γöéo Double Acute Small                    Γöé
  2672. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2673. Γöé363  ΓöéLO260000  ΓöéO Double Acute Capital                  Γöé
  2674. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2675. Γöé364  ΓöéLR110000  Γöér Acute Small                           Γöé
  2676. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2677. Γöé365  ΓöéLR120000  ΓöéR Acute Capital                         Γöé
  2678. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2679. Γöé366  ΓöéLR210000  Γöér Caron Small                           Γöé
  2680. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2681. Γöé367  ΓöéLR220000  ΓöéR Caron Capital                         Γöé
  2682. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2683. Γöé368  ΓöéLS110000  Γöés Acute Small                           Γöé
  2684. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2685. Γöé369  ΓöéLS120000  ΓöéS Acute Capital                         Γöé
  2686. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2687. Γöé370  ΓöéLT210000  Γöét Caron Small                           Γöé
  2688. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2689. Γöé371  ΓöéLT220000  ΓöéT Caron Capital                         Γöé
  2690. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2691. Γöé372  ΓöéLT410000  Γöét Cedilla Small                         Γöé
  2692. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2693. Γöé373  ΓöéLT420000  ΓöéT Cedilla Capital                       Γöé
  2694. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2695. Γöé374  ΓöéLU250000  Γöéu Double Acute Small                    Γöé
  2696. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2697. Γöé375  ΓöéLU260000  ΓöéU Double Acute Capital                  Γöé
  2698. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2699. Γöé376  ΓöéLU270000  Γöéu Overcircle Small                      Γöé
  2700. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2701. Γöé377  ΓöéLU280000  Γöéu Overcircle Capital                    Γöé
  2702. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2703. Γöé378  ΓöéLZ110000  Γöéz Acute Small                           Γöé
  2704. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2705. Γöé379  ΓöéLZ120000  ΓöéZ Acute Capital                         Γöé
  2706. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2707. Γöé380  ΓöéLZ210000  Γöéz Caron Small                           Γöé
  2708. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2709. Γöé381  ΓöéLZ220000  ΓöéZ Caron Capital                         Γöé
  2710. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2711. Γöé382  ΓöéLZ290000  Γöéz Overdot Small                         Γöé
  2712. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2713. Γöé383  ΓöéLZ300000  ΓöéZ Overdot Capital                       Γöé
  2714. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2715.  
  2716.  
  2717. ΓòÉΓòÉΓòÉ 2.3. C++ Considerations ΓòÉΓòÉΓòÉ
  2718.  
  2719. This section contains several topics you should take into consideration if you 
  2720. are using C++. 
  2721.  
  2722.  
  2723. ΓòÉΓòÉΓòÉ 2.3.1. C++ Header Files ΓòÉΓòÉΓòÉ
  2724.  
  2725. The OS/2 2.1 Toolkit now provides a subset of the regular headers that have 
  2726. been enabled to work with C++. The following items should be evaluated to 
  2727. determine whether the developer should use these header files or the regular C 
  2728. header files that are shipped with the toolkit. 
  2729.  
  2730. OS/2 functions that used to take a PSZ, and that do not modify the contents of 
  2731. the passed string, have been updated in the C++ header files to take a PCSZ 
  2732. Data Type parameter. This will allow for better optimization by the compiler 
  2733. and is more semantically compatible with C++. Existing code that calls one of 
  2734. these functions still works correctly. 
  2735.  
  2736. Several of the typedefs have been changed in the C++ header files. 
  2737.  
  2738. The existing samples that are shipped with the OS/2 Toolkit can be used with 
  2739. either set of the header files. 
  2740.  
  2741.  
  2742. ΓòÉΓòÉΓòÉ 2.3.2. PCSZ Data Type ΓòÉΓòÉΓòÉ
  2743.  
  2744. If a function takes as a parameter a string that is not changed by the 
  2745. function, the string parameter can be declared as a "const" string, or a PCSZ. 
  2746. PCSZ is defined in the C++ header files as a "const" pointer to a 
  2747. NULL-delimited string. The "const" means that the function will not change the 
  2748. contents of the string. 
  2749.  
  2750. Declaring the parameter as PCSZ informs the C++ compiler that the function will 
  2751. not change the string. Therefore, the compiler simply passes a pointer to the 
  2752. string in the function parameter list. If the parameter is declared as a normal 
  2753. PSZ (not "const"), the compiler assumes that the function might change the 
  2754. string. Under these circumstances the compiler will add code to make a copy of 
  2755. the string then pass a pointer to the copy, rather than passing a pointer to 
  2756. the original string. 
  2757.  
  2758. A smaller, faster executeable is often produced if the data item passed in a 
  2759. parameter list is declared as "const". 
  2760.  
  2761. If the data item is declared as "const" then it must not be changed by the 
  2762. function. 
  2763.  
  2764. This information is included here because the PCSZ data type is defined in the 
  2765. C++ header files included with this product. The use of the "const" keyword is 
  2766. not necessarily specific to C++.  Certain C compilers support it as well. 
  2767.  
  2768.  
  2769. ΓòÉΓòÉΓòÉ 2.3.3. LINK386 ΓòÉΓòÉΓòÉ
  2770.  
  2771. The C++ compiler will provide a dynamic link library which is be used by 
  2772. LINK386 when generating error messages. This DLL will convert a compiler 
  2773. generated mangled name into the function prototype. If the DLL is not present, 
  2774. an error message will be displayed and LINK386 will display the 
  2775. compiler-generated mangled name in error messages. 
  2776.  
  2777.  
  2778. ΓòÉΓòÉΓòÉ 2.4. DBCS Support ΓòÉΓòÉΓòÉ
  2779.  
  2780. The Presentation Interface supports double-byte character sets (DBCS) by means 
  2781. of three kinds of character-encoding schemes: 
  2782.  
  2783. SBCS only 
  2784.           Single-byte code pages; for example, U.S.-English. 
  2785.  
  2786.           Both ASCII and EBCDIC SBCS code pages have similar representations. 
  2787.  
  2788. DBCS only 
  2789.           Double-byte code pages; for example, Kanji. 
  2790.  
  2791.           Both ASCII and EBCDIC DBCS code pages have similar representations. 
  2792.  
  2793. MIXED 
  2794.           Code pages that incorporate a combination of single-byte and 
  2795.           double-byte characters. 
  2796.  
  2797.           The internal representations of EBCDIC MIXED and ASCII MIXED code 
  2798.           pages differ: 
  2799.  
  2800.    o ASCII MIXED: the encoding scheme allows single-byte characters to be 
  2801.      distinguished from double-byte characters algorithmically. With this 
  2802.      scheme the number of characters entered or displayed is the same as the 
  2803.      number of characters in a field. 
  2804.  
  2805.    o EBCDIC MIXED: the encoding scheme requires that control characters within 
  2806.      the string switch from single to double byte encoding (and from double to 
  2807.      single byte encoding).  These control characters are the shift-out (SO) 
  2808.      and shift-in (SI) characters. 
  2809.  
  2810.      With this encoding scheme there may be many more characters in the input 
  2811.      or data field than characters displayed or printed. 
  2812.  
  2813. All MIXED strings are displayed without a space between sequences of 
  2814. single-byte and double-byte characters (unless spaces are explicitly included 
  2815. in these positions within the string). 
  2816.  
  2817. For graphics, selection of a local identifier (lcid) identifies the code page 
  2818. in force, and therefore whether subsequent character strings are to be 
  2819. interpreted as SBCS, DBCS, ASCII MIXED, or EBCDIC MIXED. 
  2820.  
  2821.  
  2822. ΓòÉΓòÉΓòÉ 2.5. Font-File Format ΓòÉΓòÉΓòÉ
  2823.  
  2824. The OS/2 font-file format consists of two sections.  The first section contains 
  2825. the general attributes of the font, and describes features such as its 
  2826. typeface, style, and nominal size.  The second section contains the actual 
  2827. definitions of the characters belonging to the font. 
  2828.  
  2829. The font resource is a set of self-defining records of the form: 
  2830.  
  2831. typedef struct _RECORD {
  2832.         ULONG   ulIdentity;    /* structure identity code */
  2833.         ULONG   ulSize;        /* structure size in bytes */
  2834.          .                     /* data */
  2835.          .
  2836.          .
  2837.         } RECORD;
  2838.  
  2839. A font starts with a special font-signature structure and ends with an ending 
  2840. structure.  The font signature has the form: 
  2841.  
  2842. typedef struct _FONTSIGNATURE {
  2843.         ULONG   ulIdentity;
  2844.         ULONG   ulSize;
  2845.         CHAR    achSignature [12]
  2846.         } FONTSIGNATURE;
  2847.  
  2848. where: 
  2849.  
  2850. ulIdentity   = X'FFFFFFFE'
  2851. ulSize       = 20
  2852. achSignature = "OS/2 FONT"   for an OS/2 1.x format font, or
  2853.              = "OS/2 FONT 2" for an OS/2 2.x format font.
  2854.  
  2855. A 2.x format font includes additional font description information in the 
  2856. PANOSE structure. This structure will be added to the end of the .FNT file 
  2857. (prior to the ENDFONT record). 
  2858.  
  2859. The font end structure has the form: 
  2860.  
  2861. typedef struct _ENDFONT{
  2862.         ULONG   ulIdentity;
  2863.         ULONG   ulSize;
  2864.         }ENDFONT
  2865.  
  2866. where: 
  2867.  
  2868. ulIdentity   = X'FFFFFFFF'
  2869. ulSize       = 8
  2870.  
  2871. All records should be in the order of their identity fields. 
  2872.  
  2873. There are three or four records in a font resource between the font signature 
  2874. and the font end: 
  2875.  
  2876. o The font metrics 
  2877. o The font character definitions 
  2878. o The pair kerning table. 
  2879. o The PANOSE description (for "OS/2 FONT 2" fonts). 
  2880.  
  2881. Following compilation, the records in the resource are in the order defined 
  2882. above. 
  2883.  
  2884.  
  2885. ΓòÉΓòÉΓòÉ 2.5.1. Metric Information Contained in Fonts ΓòÉΓòÉΓòÉ
  2886.  
  2887. This section gives an explanation of how to set the fields of the FOCAMETRICS 
  2888. structure when developing: 
  2889.  
  2890. o A bit map or outline font for general use by PM graphics applications 
  2891.  
  2892. o A description of a bit map or outline device font that is built in to a 
  2893.   device or can be downloaded to a device. 
  2894.  
  2895. The following structure contains the physical font metrics used when creating 
  2896. fonts.  It is defined in the file \INCLUDE\PMFONT.H. 
  2897.  
  2898. typedef struct _FOCAMETRICS {
  2899.     ULONG   ulIdentity;
  2900.     ULONG   ulSize;
  2901.     CHAR    szFamilyname[32];
  2902.     CHAR    szFacename[32];
  2903.     SHORT   usRegistryId;
  2904.     SHORT   usCodePage;
  2905.     SHORT   yEmHeight;
  2906.     SHORT   yXHeight;
  2907.     SHORT   yMaxAscender;
  2908.     SHORT   yMaxDescender;
  2909.     SHORT   yLowerCaseAscent;
  2910.     SHORT   yLowerCaseDescent;
  2911.     SHORT   yInternalLeading;
  2912.     SHORT   yExternalLeading;
  2913.     SHORT   xAveCharWidth;
  2914.     SHORT   xMaxCharInc;
  2915.     SHORT   xEmInc;
  2916.     SHORT   yMaxBaselineExt;
  2917.     SHORT   sCharSlope;
  2918.     SHORT   sInlineDir;
  2919.     SHORT   sCharRot;
  2920.     USHORT  usWeightClass;
  2921.     USHORT  usWidthClass;
  2922.     SHORT   xDeviceRes;
  2923.     SHORT   yDeviceRes;
  2924.     SHORT   usFirstChar;
  2925.     SHORT   usLastChar;
  2926.     SHORT   usDefaultChar;
  2927.     SHORT   usBreakChar;
  2928.     SHORT   usNominalPointSize;
  2929.     SHORT   usMinimumPointSize;
  2930.     SHORT   usMaximumPointSize;
  2931.     SHORT   fsTypeFlags;
  2932.     SHORT   fsDefn;
  2933.     SHORT   fsSelectionFlags;
  2934.     SHORT   fsCapabilities;
  2935.     SHORT   ySubscriptXSize;
  2936.     SHORT   ySubscriptYSize;
  2937.     SHORT   ySubscriptXOffset;
  2938.     SHORT   ySubscriptYOffset;
  2939.     SHORT   ySuperscriptXSize;
  2940.     SHORT   ySuperscriptYSize;
  2941.     SHORT   ySuperscriptXOffset;
  2942.     SHORT   ySuperscriptYOffset;
  2943.     SHORT   yUnderscoreSize;
  2944.     SHORT   yUnderscorePosition;
  2945.     SHORT   yStrikeoutSize;
  2946.     SHORT   yStrikeoutPosition;
  2947.     SHORT   usKerningPairs;
  2948.     SHORT   sFamilyClass;
  2949.     PSZ     pszDeviceNameOffset;
  2950.   } FOCAMETRICS;
  2951.  
  2952. Note:  FOCAMETRICS is a parallel structure with FONTMETRICS as returned to 
  2953.        applications in the GpiQueryFonts and GpiQueryFontMetrics function 
  2954.        calls. 
  2955.  
  2956. The FONTMETRICS fields are derived from FOCAMETRICS by the Presentation Manager 
  2957. graphics engine. Most values are passed though unchanged.  The exceptions are: 
  2958.  
  2959. o The Identity field.  This must be 1. This field is not a part of the 
  2960.   FONTMETRICS structure. 
  2961.  
  2962. o The Size field.  This must be set to the size of the FOCAMETRICS structure. 
  2963.   This field is not a part of the FONTMETRICS structure. 
  2964.  
  2965. o The Codepage field.  Ignore the description in FONTMETRICS, and use the 
  2966.   following: 
  2967.  
  2968.    Place 850 in this field if the font is intended to support any PM supported 
  2969.    code page. See Code Pages for the list of code pages supported by the 
  2970.    Presentation Manager. 
  2971.  
  2972.    Place 65400 in this field if the font has special glyphs, for example if it 
  2973.    is a Symbol font. 
  2974.  
  2975.    Place other valid code pages in this field if the font is specific to this 
  2976.    code page. 
  2977.  
  2978.    Do not place other values in this field. 
  2979.  
  2980. o FONTMETRICS fields which contain values in world coordinates.  The 
  2981.   corresponding field in FOCAMETRICS should contain pel values for bit-map 
  2982.   fonts, and notional units for outline fonts. 
  2983.  
  2984. See FONTMETRICS for a detailed explanation of the fields. 
  2985.  
  2986.  
  2987. ΓòÉΓòÉΓòÉ 2.5.2. Font Character Definitions ΓòÉΓòÉΓòÉ
  2988.  
  2989. Two formats of font character definition are supported.  These are: 
  2990.  
  2991. Image format 
  2992.    The character glyphs are represented as pel images. 
  2993.  
  2994. Outline format 
  2995.    The character glyphs are represented by vector data that traces the outline 
  2996.    of the character. 
  2997.  
  2998.    Note:  Intelligent Font Technology fonts (such as ATM Type-1 fonts) may be 
  2999.           stored in a technology specific format, and thus will not conform to 
  3000.           this definition for outline fonts. 
  3001.  
  3002.  
  3003. The definition consists of a header portion and a portion carrying the 
  3004. characters themselves. 
  3005.  
  3006. The header portion contains information about the format of the character 
  3007. definitions and data about each character including width data and the offset 
  3008. into the definition section at which the character definition begins. (See 
  3009. Definitions of Terms Used When Describing Fonts.) 
  3010.  
  3011.  1. Proportional characters (a+b+c = character increment) for each character: 
  3012.  
  3013.         a,b,c >= 0
  3014.  
  3015.  2. Characters where a, b, and c are definitions for all characters: 
  3016.  
  3017.         b >= 0
  3018.         a, c any integer
  3019.  
  3020. Raster fonts contain a "null character". The character definition record for 
  3021. this occurs after the one for the last character.  Thus the format has 
  3022. usLastChar+2 characters, although the null character is not counted in the 
  3023. range returned. The null character is composed of zeros and is always eight 
  3024. pels wide. 
  3025.  
  3026.  
  3027. ΓòÉΓòÉΓòÉ 2.5.2.1. Font Definition Header ΓòÉΓòÉΓòÉ
  3028.  
  3029. This structure defines the format or the character definition records that 
  3030. follow it: 
  3031.  
  3032.  typedef struct_FONTDEFINITIONHEADER {
  3033.   ULONG        ulIdentity;
  3034.   ULONG        ulSize;
  3035.   SHORT        fsFontdef;
  3036.   SHORT        fsChardef;
  3037.   SHORT        usCellSize;
  3038.   SHORT        xCellWidth;
  3039.   SHORT        yCellHeight;
  3040.   SHORT        xCellIncrement;
  3041.   SHORT        xCellA;
  3042.   SHORT        xCellB;
  3043.   SHORT        xCellC;
  3044.   SHORT        pCellBaseOffset;
  3045.   } FONTDEFINITIONHEADER;
  3046. typedef FONTDEFINITIONHEADER FAR *PFONTDEFINITIONHEADER;
  3047.  
  3048. ulIdentity 4 bytes. 
  3049.  
  3050.      Must be equal to 2. 
  3051.  
  3052. ulSize 4 bytes. 
  3053.  
  3054.      Size of this structure in bytes. 
  3055.  
  3056. fsFontdef 2 bytes of flags. 
  3057.  
  3058.      Indicates which fields are present in the font definition data in the 
  3059.      header. 
  3060.  
  3061.      Type 1 
  3062.  
  3063.    Bit 0      1 = width defined in header 
  3064.    Bit 1      1 = height defined in header 
  3065.    Bit 2      1 = char increment same as width, so that it is defined for the 
  3066.               whole font 
  3067.    Bit 3      0 = a-space not defined 
  3068.    Bit 4      0 = b-space not defined 
  3069.    Bit 5      0 = c-space not defined 
  3070.    Bit 6      1 = base offset same for all characters. 
  3071.  
  3072.      Type 2 
  3073.  
  3074.    Bit 0      0 = width for each character unique 
  3075.    Bit 1      1 = height defined in header 
  3076.    Bit 2      0 = char increment same as width, so that it is unique for each 
  3077.               character 
  3078.    Bit 3      0 = a-space not defined 
  3079.    Bit 4      0 = b-space not defined 
  3080.    Bit 5      0 = c-space not defined 
  3081.    Bit 6      1 = base offset same for all characters. 
  3082.  
  3083.      Type 3 
  3084.  
  3085.    Bit 0      0 = width for each character unique 
  3086.    Bit 1      1 = height defined in header 
  3087.    Bit 2      0 = char increment same as width, so that it is unique 
  3088.    Bit 3      0 = a-space not defined 
  3089.    Bit 4      0 = b-space not defined 
  3090.    Bit 5      0 = c-space not defined 
  3091.    Bit 6      1 = base offset same for all characters. 
  3092.  
  3093. FsChardef 2 bytes of flags. 
  3094.  
  3095.      Indicates which fields are present on a per character basis. 
  3096.  
  3097.      Type 1 
  3098.  
  3099.    Bit 0      1 = width defined for each character (performance op) 
  3100.    Bit 1      0 = height is in header 
  3101.    Bit 2      0 = char increment is in header 
  3102.    Bit 3      0 = a-space not defined 
  3103.    Bit 4      0 = b-space not defined 
  3104.    Bit 5      0 = c-space not defined 
  3105.    Bit 6      0 = base offset defined in header 
  3106.    Bit 7      1 = offset to glyph defined. 
  3107.  
  3108.      Type 2 
  3109.  
  3110.    Bit 0      1 = width defined for each character 
  3111.    Bit 1      0 = height is in header 
  3112.    Bit 2      0 = char increment same as width 
  3113.    Bit 3      0 = a-space not defined 
  3114.    Bit 4      0 = b-space not defined 
  3115.    Bit 5      0 = c-space not defined 
  3116.    Bit 6      0 = base offset defined in header 
  3117.    Bit 7      1 = offset to glyph defined. 
  3118.  
  3119.      Type 3 
  3120.  
  3121.    Bit 0      1 = width not defined, use a, b, c 
  3122.    Bit 1      0 = height is in header 
  3123.    Bit 2      0 = char increment same as width 
  3124.    Bit 3      1 = a-space defined 
  3125.    Bit 4      1 = b-space defined 
  3126.    Bit 5      1 = c-space defined 
  3127.    Bit 6      0 = base offset defined in header 
  3128.    Bit 7      1 = offset to glyph defined. 
  3129.  
  3130. usCellSize 2-byte integer. 
  3131.  
  3132.      Indicates the length in bytes of each character definition record (the per 
  3133.      character data). 
  3134.  
  3135.    Type 1     6 bytes 
  3136.    Type 2     6 bytes 
  3137.    Type 3     10 bytes. 
  3138.  
  3139. xCellWidth 2-byte integer 
  3140.  
  3141.      The width of the characters, in pels for image fonts, and relative units 
  3142.      for outline fonts. 
  3143.  
  3144.    Type 1     Width of the characters 
  3145.    Type 2     Zero 
  3146.    Type 3     Zero. 
  3147.  
  3148. yCellHeight 2-byte integer. 
  3149.  
  3150.      The height of the characters, in pels for image fonts, and relative units 
  3151.      for outline fonts. 
  3152.  
  3153.    Type 1     Height of the characters 
  3154.    Type 2     Height of the characters 
  3155.    Type 3     Height of the characters. 
  3156.  
  3157. xCellIncrement 2-byte integer. 
  3158.  
  3159.      The distance along the character baseline required to step from one 
  3160.      character to the next (when forming a character string). 
  3161.  
  3162.    Type 1     Width of the characters 
  3163.    Type 2     Zero 
  3164.    Type 3     Zero. 
  3165.  
  3166. xCellA 2-byte signed integer. 
  3167.  
  3168.      The width of the space before a character in the inline direction (the 
  3169.      a-space). 
  3170.  
  3171.    Type 1     Zero 
  3172.    Type 2     Zero 
  3173.    Type 3     a-space for all characters. 
  3174.  
  3175. xCellB 2-byte integer. 
  3176.  
  3177.      The width of a character (inline direction).  The b-space. 
  3178.  
  3179.    Type 1     Zero 
  3180.    Type 2     Zero 
  3181.    Type 3     b-space for all characters. 
  3182.  
  3183. xCellC 2-byte signed integer. 
  3184.  
  3185.      The width of the space after a character in the inline direction (the 
  3186.      c-space). 
  3187.  
  3188.    Type 1     Zero 
  3189.    Type 2     Zero 
  3190.    Type 3     c-space for all characters. 
  3191.  
  3192. pCellBaseOffset 2-byte signed integer. 
  3193.  
  3194.      The position of the top of a character definition relative to the baseline 
  3195.      in the direction perpendicular to the baseline. 
  3196.  
  3197.    Type 1     Baseline offset for all characters 
  3198.    Type 2     Baseline offset for all characters 
  3199.    Type 3     Baseline offset for all characters. 
  3200.  
  3201. Character Definition Record xCellSize bytes per record. 
  3202.  
  3203.      The following fields may or may not be present, according to the font 
  3204.      character definition fields flags. If a field is present, it is present 
  3205.      for each character and the value applies to that character only. 
  3206.  
  3207.      There are usLastChar+2 such records for raster fonts.  The final one is 
  3208.      for the null character. 
  3209.  
  3210.    o Character Definition Offset: 4-byte integer. 
  3211.  
  3212.      The offset into the Font File at which the character definition begins. 
  3213.  
  3214.      Data for a single character raster or vector should not span two segments; 
  3215.      that is, if a character is too big to fit into a segment it should be put 
  3216.      in the next segment. 
  3217.  
  3218.      This field should be set to zero if the character being defined is a blank 
  3219.      character. 
  3220.  
  3221.    o Character Cell Width: 2-byte integer. 
  3222.  
  3223.      The width of the character definition in pels. 
  3224.  
  3225.    o Character Cell Height: 2-byte integer. 
  3226.  
  3227.      The height of the character definition in pels. 
  3228.  
  3229.    o Character Increment: 2-byte integer. 
  3230.  
  3231.      The length along the character baseline required to step from this 
  3232.      character to the next (when forming a character string). 
  3233.  
  3234.    o Character a-space: 2-byte signed integer. 
  3235.  
  3236.      The width of the space before the character in the inline direction. 
  3237.  
  3238.    o Character b-space: 2-byte integer. 
  3239.  
  3240.      The width of the character shape (inline direction). 
  3241.  
  3242.    o Character c-space: 2-byte signed integer. 
  3243.  
  3244.      The width of the space after the character in the inline direction. 
  3245.  
  3246.    o Character Baseline Offset: 2-byte signed integer. 
  3247.  
  3248.      The position of the top of a character definition relative to the baseline 
  3249.      in the direction perpendicular to the baseline. 
  3250.  
  3251. Note:  Type 1 fonts have offset/width pairs (like type 2); however, the 
  3252.        usCellSize and xCellIncrement are nonzero. In the fsType field of the 
  3253.        font metrics, the proportional-space flag, bit 0, is set. 
  3254.  
  3255.  
  3256. ΓòÉΓòÉΓòÉ 2.5.2.2. Image Data Format ΓòÉΓòÉΓòÉ
  3257.  
  3258. The bits for each character are stored separately, and start on a byte 
  3259. boundary.  Sequential bytes represent vertical pieces of the character image. 
  3260. For example, a 15-bit-wide H is stored as follows: 
  3261.  
  3262.  
  3263. byte                   byte
  3264.     ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3265.   1 Γöé00000000Γöé0000000-Γöé 13      Bytes 1 through 12 are composed of
  3266.   2 Γöé01100000Γöé0000110-Γöé 14      whole bytes of data stored row by row.
  3267.   3 Γöé01100000Γöé0000110-Γöé 15
  3268.   4 Γöé01100000Γöé0000110-Γöé 16      Bytes 13 through 24 are composed of
  3269.   5 Γöé01100000Γöé0000110-Γöé 17      bytes stored row by row, where each
  3270.   6 Γöé01111111Γöé1111110-Γöé 18      byte contains 7 bits of information
  3271.   7 Γöé01111111Γöé1111110-Γöé 19      and the last bit is unused.
  3272.   8 Γöé01100000Γöé0000110-Γöé 20
  3273.   9 Γöé01100000Γöé0000110-Γöé 21      Thus the character is laid down in
  3274.  10 Γöé01100000Γöé0000110-Γöé 22      byte-wide columns.
  3275.  11 Γöé01100000Γöé0000110-Γöé 23
  3276.  12 Γöé00000000Γöé0000000-Γöé 24
  3277.     ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3278.  
  3279. Notes: 
  3280.  
  3281.  1. There is always an additional (null) character defined in an Image Font 
  3282.     (defined at character position LastChar+2) which is 8 bits wide, the height 
  3283.     of the font character, and set to all zeros. 
  3284.  
  3285.  2. The maximum size of each individual Image Font must not exceed 64KB. 
  3286.  
  3287.  
  3288. ΓòÉΓòÉΓòÉ 2.5.3. The Kerning Pair Table ΓòÉΓòÉΓòÉ
  3289.  
  3290. The kerning pair table record is not present if the _KerningPairs record in the 
  3291. metrics is zero. If it is present, the code points are words, not bytes. This 
  3292. table should be sorted by kpChar1 and kpChar2 order to allow binary searches. 
  3293.  
  3294. typedef struct _KERNPAIRTABLE {
  3295.         ULONG   ulIdentity;
  3296.         ULONG   ulSize;
  3297.         CHAR    cFirstpair;
  3298. }KERNPAIRTABLE;
  3299.  
  3300. typedef struct _KERNPAIRS {
  3301.         SHORT   sFirstChar;
  3302.         SHORT   sSecondChar;
  3303.         SHORT   sKerningAmount;
  3304. }KERNINGPAIRS;
  3305.  
  3306. where: 
  3307.  
  3308.   ulIdentity      = 3
  3309.   ulSize          = 10
  3310.   sFirstChar      = First character of the kerning pair
  3311.   sSecondChar     = Second character of the kerning pair
  3312.   sKerningAmount  = Kerning value.  Positive values increase the
  3313.                     inter-character spacing while negative values
  3314.                     bring the characters closer together.
  3315.  
  3316. Outline Data Format 
  3317.  
  3318. Fonts defined by outlines (vectors) may contain any of these graphics orders: 
  3319.  
  3320.    o Line at given position (GLINE) 
  3321.    o Line at current position (GCLINE) 
  3322.    o Relative line at given position (GRLINE) 
  3323.    o Relative line at current position (GCRLINE) 
  3324.    o Fillet at given position (GFLT) 
  3325.    o Fillet at current position (GCFLT) 
  3326.    o Sharp fillet at given position (GSFLT) 
  3327.    o Sharp fillet at current position (GCSFLT) 
  3328.    o Bezier curve at given position (GBEZ) 
  3329.    o Bezier curve at current position (GCBEZ) 
  3330.    o No operation (GNOP1) 
  3331.    o Comment (GCOMT) 
  3332.    o End of symbol definition (GESD). 
  3333.  
  3334. The maximum length of the data in these orders is 255 bytes.  The drawing order 
  3335. code and the length fields are not included in the length count. 
  3336.  
  3337. The size of each outline font definition must not be longer than 64KB. 
  3338.  
  3339.  
  3340. ΓòÉΓòÉΓòÉ 2.5.4. Additional Metrics ΓòÉΓòÉΓòÉ
  3341.  
  3342. The additional metrics structure extends the metrics describing the font to 
  3343. include the PANOSE fields.  The fields allow for quantitative descriptions of 
  3344. the visual properties of font faces. The format of the ADDITIONALMETRICS 
  3345. structure is: 
  3346.  
  3347. typedef struct {
  3348.    ULONG       ulIdentity;
  3349.    ULONG       ulSize;
  3350.    PANOSE      panose;
  3351. } ADDITIONALMETRICS;
  3352.  
  3353. where:
  3354.  
  3355.   ulIdentity      = 4
  3356.   ulSize          = 20
  3357.   panose          = The ten digit PANOSE number with two bytes
  3358.                     of padding.
  3359.  
  3360. The PANOSE definition consists of ten digits, each of which describes one of up 
  3361. to sixteen variations. The current digits are: 
  3362.  
  3363.  1. Family Kind (6 variations) 
  3364.  
  3365.    0    = Any 
  3366.    1    = No Fit 
  3367.    2    = Text and Display 
  3368.    3    = Script 
  3369.    4    = Decorative 
  3370.    5    = Pictorial 
  3371.  
  3372.  2. Serif Style (16 variations) 
  3373.  
  3374.    0    = Any 
  3375.    1    = No Fit 
  3376.    2    = Cove 
  3377.    3    = Obtuse Cove 
  3378.    4    = Square Cove 
  3379.    5    = Obtuse Square Cove 
  3380.    6    = Square 
  3381.    7    = Thin 
  3382.    8    = Bone 
  3383.    9    = Exaggerated 
  3384.    10   = Triangle 
  3385.    11   = Normal Sans 
  3386.    12   = Obtuse Sans 
  3387.    13   = Perp Sans 
  3388.    14   = Flared 
  3389.    15   = Rounded 
  3390.  
  3391.  3. Weight (12 variations) 
  3392.  
  3393.    0    = Any 
  3394.    1    = No Fit 
  3395.    2    = Very Light 
  3396.    3    = Light 
  3397.    4    = Thin 
  3398.    5    = Book 
  3399.    6    = Medium 
  3400.    7    = Demi 
  3401.    8    = Bold 
  3402.    9    = Heavy 
  3403.    10   = Black 
  3404.    11   = Nord 
  3405.  
  3406.  4. Proportion (10 variations) 
  3407.  
  3408.    0    = Any 
  3409.    1    = No Fit 
  3410.    2    = Old Style 
  3411.    3    = Modern 
  3412.    4    = Even Width 
  3413.    5    = Expanded 
  3414.    6    = Condensed 
  3415.    7    = Very Expanded 
  3416.    8    = Very Condensed 
  3417.    9    = Monospaced 
  3418.  
  3419.  5. Contrast (10 variations) 
  3420.  
  3421.    0    = Any 
  3422.    1    = No Fit 
  3423.    2    = None 
  3424.    3    = Very Low 
  3425.    4    = Low 
  3426.    5    = Medium Low 
  3427.    6    = Medium 
  3428.    7    = Medium High 
  3429.    8    = High 
  3430.    9    = Very High 
  3431.  
  3432.  6. Stroke Variation (9 variations) 
  3433.  
  3434.    0    = Any 
  3435.    1    = No Fit 
  3436.    2    = Gradual/Diagonal 
  3437.    3    = Gradual/Transitional 
  3438.    4    = Gradual/Vertical 
  3439.    5    = Gradual/Horizontal 
  3440.    6    = Rapid/Vertical 
  3441.    7    = Rapid/Horizontal 
  3442.    8    = Instant/Vertical 
  3443.  
  3444.  7. Arm Style (12 variations) 
  3445.  
  3446.    0    = Any 
  3447.    1    = No Fit 
  3448.    2    = Straight Arms/Horizontal 
  3449.    3    = Straight Arms/Wedge 
  3450.    4    = Straight Arms/Vertical 
  3451.    5    = Straight Arms/Single Serif 
  3452.    6    = Straight Arms/Double Serif 
  3453.    7    = Non-Straight Arms/Horizontal 
  3454.    8    = Non-Straight Arms/Wedge 
  3455.    9    = Non-Straight Arms/Vertical 
  3456.    10   = Non-Straight Arms/Single Serif 
  3457.    11   = Non-Straight Arms/Double Serif 
  3458.  
  3459.  8. Letterform (16 variations) 
  3460.  
  3461.    0    = Any 
  3462.    1    = No Fit 
  3463.    2    = Normal/Contact 
  3464.    3    = Normal/Weighted 
  3465.    4    = Normal/Boxed 
  3466.    5    = Normal/Flattened 
  3467.    6    = Normal/Rounded 
  3468.    7    = Normal/Off Center 
  3469.    8    = Normal/Square 
  3470.    9    = Oblique/Contact 
  3471.    10   = Oblique/Weighted 
  3472.    11   = Oblique/Boxed 
  3473.    12   = Oblique/Flattened 
  3474.    13   = Oblique/Rounded 
  3475.    14   = Oblique/Off Center 
  3476.    15   = Oblique/Square 
  3477.  
  3478.  9. Midline (14 variations) 
  3479.  
  3480.    0    = Any 
  3481.    1    = No Fit 
  3482.    2    = Standard/Trimmed 
  3483.    3    = Standard/Pointed 
  3484.    4    = Standard/Serifed 
  3485.    5    = High/Trimmed 
  3486.    6    = High/Pointed 
  3487.    7    = High/Serifed 
  3488.    8    = Constant/Trimmed 
  3489.    9    = Constant/Pointed 
  3490.    10   = Constant/Serifed 
  3491.    11   = Low/Trimmed 
  3492.    12   = Low/Pointed 
  3493.    13   = Low/Serifed 
  3494.  
  3495. 10. X-height (8 variations) 
  3496.  
  3497.    0    = Any 
  3498.    1    = No Fit 
  3499.    2    = Constant/Small 
  3500.    3    = Constant/Standard 
  3501.    4    = Constant/Large 
  3502.    5    = Ducking/Small 
  3503.    6    = Ducking/Standard 
  3504.    7    = Ducking/Large 
  3505.  
  3506. When using the PANOSE number to match fonts, the ordering of the PANOSE digit 
  3507. is the key to finding the closest match.  The most significant digit is the 
  3508. first digit, and the least significant digit is number ten.  To find matches, 
  3509. the digits need to be compared, in the order given.  A font mapper may want to 
  3510. change the precedence of the digits, to give higher weightings to other font 
  3511. features. 
  3512.  
  3513.  
  3514. ΓòÉΓòÉΓòÉ 2.5.5. Font Directory ΓòÉΓòÉΓòÉ
  3515.  
  3516. This section describes the directory section of a font resource. A font 
  3517. resource contains a directory consisting of a set of structures each containing 
  3518. the metrics of a font and a pointer to the font itself. This font directory is 
  3519. generated by the resource compiler. 
  3520.  
  3521. The format of the font directory is: 
  3522.  
  3523. typedef struct {
  3524.    USHORT      usHeaderSize;
  3525.    USHORT      usnFonts;
  3526.    USHORT      usiMETRICS;
  3527.    FONTENTRY   fntEntry[1];
  3528. } FONTDIRECTORY;
  3529.  
  3530. typedef struct {
  3531.    USHORT          usIndex;
  3532.    FONTFILEMETRICS metrics;
  3533. } FONTENTRY;
  3534.  
  3535. Where: 
  3536.  
  3537. usHeaderSize The size of the header, in bytes. 
  3538.  
  3539. usnFonts The number of fonts in the resource. 
  3540.  
  3541. usiMetrics The size of the FOCAMETRICS structures that follow the header. Note 
  3542.      that the set of metrics for all the fonts in the resource follow the 
  3543.      header. 
  3544.  
  3545. usIndex The index of a particular font; an identifier assigned to the font when 
  3546.      the resource was created (defined in the .RC file). 
  3547.  
  3548. metrics The font metrics structure for the font. This is identical to a 
  3549.      FOCAMETRICS structure with the addition of the PANOSE fields to the end. 
  3550.  
  3551.  
  3552. ΓòÉΓòÉΓòÉ 2.5.6. Definitions of Terms Used When Describing Fonts ΓòÉΓòÉΓòÉ
  3553.  
  3554. a-space, b-space, c-space 
  3555.      The a-space is the distance from the left of the character frame to the 
  3556.      left edge of the character.  The b-space is the width of the character. 
  3557.      The c-space is the distance from the right edge of the character to the 
  3558.      right of the character frame.  Negative values of a and c allow adjacent 
  3559.      character frames to overlap. See also character increment, and space 
  3560.      default values. 
  3561.  
  3562. average char width 
  3563.      The average horizontal distance from the left edge of one character to the 
  3564.      left edge of the next. Contrast with max char increment. 
  3565.  
  3566. baseline 
  3567.      The line on which the bottom of a character rests, and below which a 
  3568.      descender extends. 
  3569.  
  3570. break char code point 
  3571.      The code point of the space or break character. Contrast with default char 
  3572.      code point, first char code point, and last char code point. 
  3573.  
  3574. character increment 
  3575.      A set of three values (a-space, b-space, and c-space) that define the 
  3576.      proportions of a character. The sum of the three values (a+b+c) specifies 
  3577.      only one value for the entire character increment. See also font width and 
  3578.      space default values. 
  3579.  
  3580. character rotation 
  3581.      The angle by which each character is rotated around its own center, 
  3582.      increasing clockwise from vertical. Contrast with character slope and 
  3583.      inline direction. 
  3584.  
  3585. character slope 
  3586.      The angle by which a character is slanted, increasing clockwise from 
  3587.      vertical. Contrast with character rotation and inline direction. 
  3588.  
  3589. default char code point 
  3590.      The code point of the character to be used if a code point outside the 
  3591.      range of a font is passed to an application using that font. Contrast with 
  3592.      break char code point, first char code point, and last char code point. 
  3593.  
  3594. em height 
  3595.      The maximum distance above the baseline reached by an uppercase symbol. 
  3596.      Contrast with x height. 
  3597.  
  3598. external leading 
  3599.      The vertical distance from the bottom of one character to the top of the 
  3600.      character below it. Contrast with internal leading and max baseline 
  3601.      extent. 
  3602.  
  3603. first char code point 
  3604.      The code point of the first character.  All numbers between the first char 
  3605.      code point and the last char code point must represent a character in the 
  3606.      font. Contrast with break char code point, default char code point, and 
  3607.      last char code point. 
  3608.  
  3609. fixed spacing 
  3610.      The same amount of space separates each character. Contrast with 
  3611.      proportional spacing. 
  3612.  
  3613. font weight 
  3614.      The line-thickness of a character relative to its size. Contrast with font 
  3615.      width. 
  3616.  
  3617. font width 
  3618.      The relative width of a character to its height; condensed fonts are very 
  3619.      narrow while expanded fonts are very wide. See also character increment. 
  3620.      Contrast with font weight. 
  3621.  
  3622. inline direction 
  3623.      The angle of a line of type, increasing clockwise from horizontal. 
  3624.      Contrast with character rotation and character slope. 
  3625.  
  3626. internal leading 
  3627.      The vertical distance from the top or bottom of a character to any accent 
  3628.      marks that may appear with it. Contrast with external leading. 
  3629.  
  3630. last char code point 
  3631.      The code point of the last character.  All numbers between the first char 
  3632.      code point and the last char code point must represent a character in the 
  3633.      font. Contrast with break char code point, default char code point, and 
  3634.      first char code point. 
  3635.  
  3636. lowercase ascent 
  3637.      The maximum distance above the baseline reached by any part of any 
  3638.      lowercase character. Contrast with maximum ascender and x height. 
  3639.  
  3640. lowercase descent 
  3641.      The maximum distance below the baseline reached by any part of any 
  3642.      lowercase character. Contrast with maximum descender. 
  3643.  
  3644. max baseline extent 
  3645.      The maximum space occupied by the font (typically, the sum of the maximum 
  3646.      ascender and maximum descender). Contrast with external leading and max 
  3647.      char increment. 
  3648.  
  3649. max char increment 
  3650.      The maximum horizontal distance from the left edge of one character to the 
  3651.      left edge of the next character to the right. Contrast with average char 
  3652.      width and max baseline extent. 
  3653.  
  3654. maximum ascender 
  3655.      The maximum distance that any part of any character may extend above the x 
  3656.      height of a font. Contrast with lowercase ascent and maximum descender. 
  3657.  
  3658. maximum descender 
  3659.      The maximum distance that any part of any character may extend below the x 
  3660.      height of a font. Contrast with lowercase descent and maximum ascender. 
  3661.  
  3662. maximum vert point size 
  3663.      The maximum vertical dimensions to which a font can be resized. Contrast 
  3664.      with minimum vert point size and nominal vert point size. 
  3665.  
  3666. minimum vert point size 
  3667.      The minimum vertical dimensions to which a font can be resized. Contrast 
  3668.      with maximum vert point size and nominal vert point size. 
  3669.  
  3670. nominal vert point size 
  3671.      The normal display size of a font. Contrast with maximum vert point size 
  3672.      and minimum vert point size. 
  3673.  
  3674. pel 
  3675.      The smallest element of a display surface that can be independently 
  3676.      assigned color and density. 
  3677.  
  3678. point 
  3679.      Printer's unit of measurement.  There are 72 points to an inch 
  3680.      (approximately 3.5 points to a millimeter). 
  3681.  
  3682. proportional spacing 
  3683.      The space that each character occupies is in proportion to its width. See 
  3684.      also font width. Contrast with fixed spacing. 
  3685.  
  3686. Registry ID 
  3687.      A code number that Presentation Manager uses to register a font file as a 
  3688.      resource. 
  3689.  
  3690. space default values 
  3691.      Values that specify the space to be left between characters.  Once 
  3692.      defined, they are used for the entire font, and do not have to be 
  3693.      specified for each character.  However, they can be changed for characters 
  3694.      that require more or less spacing than the defaults provide, by giving 
  3695.      values for the a Space and the c Space. See also character increment. 
  3696.  
  3697. strikeout position 
  3698.      The distance of the strikeout character above the baseline (in pels). See 
  3699.      also strikeout size and underscore position. 
  3700.  
  3701. strikeout size 
  3702.      The size of the strikeout character (in points). See also strikeout 
  3703.      position and underscore size. 
  3704.  
  3705. subscript position 
  3706.      The distance of a subscript character of a font below the baseline (in 
  3707.      pels). See also subscript size and superscript position. 
  3708.  
  3709. subscript size 
  3710.      The size of a subscript character (in points). See also subscript position 
  3711.      and superscript size. 
  3712.  
  3713. superscript position 
  3714.      The distance of a superscript character above the baseline (in pels). See 
  3715.      also subscript position and superscript size. 
  3716.  
  3717. superscript size 
  3718.      The size of a superscript character (in points). See also subscript size 
  3719.      and superscript position. 
  3720.  
  3721. target dev resolution X 
  3722.      The number of pels per inch in the horizontal axis of a display device on 
  3723.      which a font is to be displayed. Contrast with target dev resolution Y. 
  3724.  
  3725. target dev resolution Y 
  3726.      The number of pels per inch in the vertical axis of a display device on 
  3727.      which a font is to be displayed. Contrast with target dev resolution X. 
  3728.  
  3729. underscore position 
  3730.      The distance in pels of the first underscore stroke from the baseline of a 
  3731.      font.  Successive strokes below this create a heavier underscore. See also 
  3732.      strikeout position and underscore size. 
  3733.  
  3734. underscore size 
  3735.      The size of the underscore character measured in single strikeout strokes. 
  3736.      See also strikeout size and underscore position. 
  3737.  
  3738. x height 
  3739.      The maximum distance above the baseline reached by a lowercase character. 
  3740.      Contrast with em height and lowercase ascent. 
  3741.  
  3742.  
  3743. ΓòÉΓòÉΓòÉ 2.6. Fonts Supplied with OS/2 ΓòÉΓòÉΓòÉ
  3744.  
  3745. OS/2 outline fonts and Presentation Manager bit map fonts are supplied by the 
  3746. operating system. 
  3747.  
  3748. OS/2 Outline Fonts 
  3749.  
  3750. The following Adobe** Type 1 fonts are supplied with OS/2: 
  3751.  
  3752. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3753. ΓöéFamily Name                   ΓöéFace Name                     Γöé
  3754. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3755. ΓöéTimes New Roman               ΓöéTimes New Roman               Γöé
  3756. Γöé                              ΓöéTimes New Roman Bold          Γöé
  3757. Γöé                              ΓöéTimes New Roman Bold Italic   Γöé
  3758. Γöé                              ΓöéTimes New Roman Italic        Γöé
  3759. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3760. ΓöéHelvetica**                   ΓöéHelvetica                     Γöé
  3761. Γöé                              ΓöéHelvetica Bold                Γöé
  3762. Γöé                              ΓöéHelvetica Bold Italic         Γöé
  3763. Γöé                              ΓöéHelvetica Italic              Γöé
  3764. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3765. ΓöéCourier                       ΓöéCourier                       Γöé
  3766. Γöé                              ΓöéCourier Bold                  Γöé
  3767. Γöé                              ΓöéCourier Bold Italic           Γöé
  3768. Γöé                              ΓöéCourier Italic                Γöé
  3769. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3770. ΓöéSymbol                        ΓöéSymbol                        Γöé
  3771. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3772.  
  3773. The Courier, Tms Rmn, and Swiss family fonts that were supplied with OS/2 
  3774. release 1.1 and 1.2 are no longer supplied.  Using one of the old names results 
  3775. in one of the new fonts listed above being used, as follows: 
  3776.  
  3777. Old Family/ 
  3778. Face Name                     Font Used 
  3779. Roman/Tms Rmn                 Times New Roman 
  3780. Swiss/Helv                    Helvetica 
  3781.  
  3782. These fonts are provided in an efficient binary format for use by the OS/2 
  3783. Adobe Type Manager.  They are also provided in standard Type 1 format (PFB and 
  3784. AFM) for use with the OS/2 Postscript** printer device driver. 
  3785.  
  3786. Presentation Manager Bit Map Fonts 
  3787.  
  3788. The following tables list all system bit map fonts available using the Graphics 
  3789. Programming Interface. The first table applies to hardware that does not 
  3790. conform to the International Standards Organization (ISO) 9241. (See 
  3791. International Standards Organization (ISO) 9241 for more information on ISO 
  3792. 9241.) The second table lists the fonts supplied with OS/2 for IBM hardware 
  3793. that does conform to ISO 9241. 
  3794.  
  3795. During system installation, the operating system determines the type of display 
  3796. adapter available on your computer and installs only the fonts which match the 
  3797. device resolution. Since additional device bit map fonts may be available on 
  3798. specific devices, you may have to install the correct bit map fonts if you 
  3799. change your display device after the operating system is installed. 
  3800.  
  3801. Fonts Supplied for ISO 9241 Non-Conforming Hardware 
  3802.  
  3803. The following information for each font is included in the table: 
  3804.  
  3805. Points 
  3806.    This is the point size of the font, on a device whose resolution matches 
  3807.    that of the font, (see "Device" below). 
  3808.  
  3809. Ave Wid 
  3810.    This is the average width in pels of alphabetic characters weighted 
  3811.    according to US English letter frequencies. 
  3812.  
  3813. Max Wid 
  3814.    This is the maximum width in pels of all characters in the font. This field 
  3815.    is not necessarily the maximum width of any character in the code page.  It 
  3816.    could be used to ensure that the horizontal space allocated on a display or 
  3817.    printer is big enough to handle any character. 
  3818.  
  3819. Height 
  3820.    This is the height in pels of the font.  This is the minimum number of rows 
  3821.    of pels needed to output any character of the font on a given baseline. 
  3822.    This field may be larger than necessary for a given code page.  It could be 
  3823.    used to ensure that the vertical space allocated on a display or printer is 
  3824.    big enough to handle any character. 
  3825.  
  3826. Device 
  3827.    This is the X and Y resolution in pels per inch at which the font is 
  3828.    intended to be used.  Only those fonts which match the device resolution of 
  3829.    the installed display driver are available on the system.  If the installed 
  3830.    display is changed, the install process will reinstall the proper font sets 
  3831.    for the new adapter. The IBM devices whose device drivers report these 
  3832.    resolutions are: 
  3833.  
  3834.    96 x 48         CGA 
  3835.    96 x 72         EGA 
  3836.    96 x 96         VGA and XGA (in 640 x 480 mode) 
  3837.    120 x 120       8514/A and XGA (in 1024 x 768 mode) 
  3838.  
  3839.    Note:  These values are approximate representations of the actual 
  3840.           resolution, which in the case of displays depends on which monitor is 
  3841.           attached.  Consequently the point size of characters on the screen is 
  3842.           also approximate. 
  3843.  
  3844.  
  3845. The following table applies to hardware that does not conform to ISO 9241. 
  3846.  
  3847. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3848. ΓöéFamily ΓöéFace Name      ΓöéPoints ΓöéAve WidΓöéMax WidΓöéHeightΓöéDevice Γöé
  3849. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3850. ΓöéCourierΓöéCourier        Γöé8      Γöé8      Γöé8      Γöé7     Γöé96x48  Γöé
  3851. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3852. Γöé       Γöé               Γöé       Γöé8      Γöé8      Γöé10    Γöé96x72  Γöé
  3853. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3854. Γöé       Γöé               Γöé       Γöé8      Γöé8      Γöé13    Γöé96x96  Γöé
  3855. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3856. Γöé       Γöé               Γöé       Γöé9      Γöé9      Γöé16    Γöé120x120Γöé
  3857. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3858. Γöé       Γöé               Γöé10     Γöé9      Γöé9      Γöé8     Γöé96x48  Γöé
  3859. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3860. Γöé       Γöé               Γöé       Γöé9      Γöé9      Γöé12    Γöé96x72  Γöé
  3861. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3862. Γöé       Γöé               Γöé       Γöé9      Γöé9      Γöé16    Γöé96x96  Γöé
  3863. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3864. Γöé       Γöé               Γöé       Γöé12     Γöé12     Γöé20    Γöé120x120Γöé
  3865. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3866. Γöé       Γöé               Γöé12     Γöé12     Γöé12     Γöé10    Γöé96x48  Γöé
  3867. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3868. Γöé       Γöé               Γöé       Γöé12     Γöé12     Γöé15    Γöé96x72  Γöé
  3869. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3870. Γöé       Γöé               Γöé       Γöé12     Γöé12     Γöé20    Γöé96x96  Γöé
  3871. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3872. Γöé       Γöé               Γöé       Γöé15     Γöé15     Γöé25    Γöé120x120Γöé
  3873. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3874. ΓöéSystem ΓöéSystem         Γöé8      Γöé6      Γöé20     Γöé8     Γöé96x48  Γöé
  3875. ΓöéPro-   ΓöéProportional   Γöé       Γöé       Γöé       Γöé      Γöé       Γöé
  3876. ΓöéportionΓöé               Γöé       Γöé       Γöé       Γöé      Γöé       Γöé
  3877. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3878. Γöé       Γöé               Γöé10     Γöé6      Γöé20     Γöé12    Γöé96x96  Γöé
  3879. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3880. Γöé       Γöé               Γöé10     Γöé6      Γöé20     Γöé16    Γöé96x96  Γöé
  3881. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3882. Γöé       Γöé               Γöé10     Γöé8      Γöé23     Γöé20    Γöé120x120Γöé
  3883. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3884. Γöé       Γöé               Γöé11     Γöé10     Γöé23     Γöé23    Γöé120x120Γöé
  3885. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3886. ΓöéSystem ΓöéSystem         Γöé8      Γöé8      Γöé8      Γöé8     Γöé96x48  Γöé
  3887. ΓöéMono-  ΓöéMonospaced     Γöé       Γöé       Γöé       Γöé      Γöé       Γöé
  3888. Γöéspaced Γöé               Γöé       Γöé       Γöé       Γöé      Γöé       Γöé
  3889. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3890. Γöé       Γöé               Γöé10     Γöé8      Γöé8      Γöé12    Γöé96x72  Γöé
  3891. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3892. Γöé       Γöé               Γöé10     Γöé8      Γöé8      Γöé16    Γöé96x96  Γöé
  3893. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3894. Γöé       Γöé               Γöé10     Γöé9      Γöé9      Γöé20    Γöé120x120Γöé
  3895. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3896. ΓöéHelv   ΓöéHelv           Γöé8      Γöé5      Γöé13     Γöé6     Γöé96x48  Γöé
  3897. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3898. Γöé       Γöé               Γöé       Γöé5      Γöé13     Γöé10    Γöé96x72  Γöé
  3899. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3900. Γöé       Γöé               Γöé       Γöé5      Γöé13     Γöé13    Γöé96x96  Γöé
  3901. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3902. Γöé       Γöé               Γöé       Γöé6      Γöé14     Γöé16    Γöé120x120Γöé
  3903. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3904. Γöé       Γöé               Γöé10     Γöé6      Γöé15     Γöé8     Γöé96x48  Γöé
  3905. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3906. Γöé       Γöé               Γöé       Γöé6      Γöé14     Γöé12    Γöé96x72  Γöé
  3907. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3908. Γöé       Γöé               Γöé       Γöé6      Γöé14     Γöé16    Γöé96x96  Γöé
  3909. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3910. Γöé       Γöé               Γöé       Γöé7      Γöé20     Γöé20    Γöé120x120Γöé
  3911. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3912. Γöé       Γöé               Γöé12     Γöé7      Γöé17     Γöé10    Γöé96x48  Γöé
  3913. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3914. Γöé       Γöé               Γöé       Γöé7      Γöé17     Γöé15    Γöé96x72  Γöé
  3915. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3916. Γöé       Γöé               Γöé       Γöé7      Γöé17     Γöé20    Γöé96x96  Γöé
  3917. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3918. Γöé       Γöé               Γöé       Γöé9      Γöé21     Γöé25    Γöé120x120Γöé
  3919. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3920. Γöé       Γöé               Γöé14     Γöé8      Γöé21     Γöé12    Γöé96x48  Γöé
  3921. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3922. Γöé       Γöé               Γöé       Γöé8      Γöé21     Γöé18    Γöé96x72  Γöé
  3923. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3924. Γöé       Γöé               Γöé       Γöé8      Γöé21     Γöé24    Γöé96x96  Γöé
  3925. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3926. Γöé       Γöé               Γöé       Γöé11     Γöé26     Γöé29    Γöé120x120Γöé
  3927. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3928. Γöé       Γöé               Γöé18     Γöé11     Γöé26     Γöé15    Γöé96x48  Γöé
  3929. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3930. Γöé       Γöé               Γöé       Γöé10     Γöé26     Γöé22    Γöé96x72  Γöé
  3931. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3932. Γöé       Γöé               Γöé       Γöé11     Γöé26     Γöé29    Γöé96x96  Γöé
  3933. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3934. Γöé       Γöé               Γöé       Γöé13     Γöé34     Γöé36    Γöé120x120Γöé
  3935. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3936. Γöé       Γöé               Γöé24     Γöé14     Γöé35     Γöé19    Γöé96x48  Γöé
  3937. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3938. Γöé       Γöé               Γöé       Γöé14     Γöé35     Γöé28    Γöé96x72  Γöé
  3939. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3940. Γöé       Γöé               Γöé       Γöé14     Γöé35     Γöé37    Γöé96x96  Γöé
  3941. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3942. Γöé       Γöé               Γöé       Γöé18     Γöé45     Γöé46    Γöé120x120Γöé
  3943. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3944. ΓöéTms RmnΓöéTms Rmn        Γöé8      Γöé4      Γöé12     Γöé6     Γöé96x48  Γöé
  3945. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3946. Γöé       Γöé               Γöé       Γöé4      Γöé13     Γöé10    Γöé96x72  Γöé
  3947. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3948. Γöé       Γöé               Γöé       Γöé4      Γöé12     Γöé13    Γöé96x96  Γöé
  3949. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3950. Γöé       Γöé               Γöé       Γöé5      Γöé14     Γöé16    Γöé120x120Γöé
  3951. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3952. Γöé       Γöé               Γöé10     Γöé6      Γöé15     Γöé8     Γöé96x48  Γöé
  3953. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3954. Γöé       Γöé               Γöé       Γöé5      Γöé14     Γöé12    Γöé96x72  Γöé
  3955. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3956. Γöé       Γöé               Γöé       Γöé5      Γöé14     Γöé16    Γöé96x96  Γöé
  3957. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3958. Γöé       Γöé               Γöé       Γöé7      Γöé19     Γöé20    Γöé120x120Γöé
  3959. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3960. Γöé       Γöé               Γöé12     Γöé7      Γöé18     Γöé10    Γöé96x48  Γöé
  3961. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3962. Γöé       Γöé               Γöé       Γöé6      Γöé18     Γöé15    Γöé96x72  Γöé
  3963. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3964. Γöé       Γöé               Γöé       Γöé6      Γöé16     Γöé19    Γöé96x96  Γöé
  3965. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3966. Γöé       Γöé               Γöé       Γöé8      Γöé23     Γöé23    Γöé120x120Γöé
  3967. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3968. Γöé       Γöé               Γöé14     Γöé7      Γöé21     Γöé11    Γöé96x48  Γöé
  3969. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3970. Γöé       Γöé               Γöé       Γöé7      Γöé21     Γöé16    Γöé96x72  Γöé
  3971. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3972. Γöé       Γöé               Γöé       Γöé7      Γöé20     Γöé21    Γöé96x96  Γöé
  3973. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3974. Γöé       Γöé               Γöé       Γöé10     Γöé26     Γöé27    Γöé120x120Γöé
  3975. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3976. Γöé       Γöé               Γöé18     Γöé10     Γöé26     Γöé14    Γöé96x48  Γöé
  3977. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3978. Γöé       Γöé               Γöé       Γöé10     Γöé26     Γöé20    Γöé96x72  Γöé
  3979. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3980. Γöé       Γöé               Γöé       Γöé10     Γöé26     Γöé27    Γöé96x96  Γöé
  3981. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3982. Γöé       Γöé               Γöé       Γöé12     Γöé34     Γöé33    Γöé120x120Γöé
  3983. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3984. Γöé       Γöé               Γöé24     Γöé14     Γöé35     Γöé18    Γöé96x48  Γöé
  3985. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3986. Γöé       Γöé               Γöé       Γöé13     Γöé35     Γöé26    Γöé96x72  Γöé
  3987. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3988. Γöé       Γöé               Γöé       Γöé13     Γöé35     Γöé35    Γöé96x96  Γöé
  3989. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3990. Γöé       Γöé               Γöé       Γöé16     Γöé46     Γöé43    Γöé120x120Γöé
  3991. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3992.  
  3993. Fonts Supplied for ISO 9241 Conforming Hardware 
  3994.  
  3995. The following table lists the fonts and sizes that have been tested and 
  3996. certified as passing the ISO 9241 black text on white background criteria for 
  3997. the three IBM displays that conform to the standard.  These displays are: 
  3998.  
  3999. o 9515 - A 14 inch XGA display. 
  4000. o 9517 - A 17 inch XGA display. 
  4001. o 9518 - A 14 inch VGA display. 
  4002.  
  4003. See International Standards Organization (ISO) 9241 for information on ISO 
  4004. 9241. 
  4005.  
  4006. The following information about each font is also included in the table: 
  4007.  
  4008.    The point size of the font. 
  4009.  
  4010. AW 
  4011.    The average character width in pels in the font. 
  4012.  
  4013. MW 
  4014.    The maximum character width in pels in the font. 
  4015.  
  4016. HE 
  4017.    The height in pels of the font (maximum baseline extent). 
  4018.  
  4019. Device 
  4020.    The X and Y resolution in pels per inch on the device the font is intended 
  4021.    to be used. The IBM devices whose device drivers report these resolutions 
  4022.    are: 
  4023.  
  4024.    96 x 96         VGA and XGA (in 640 x 480 mode) 
  4025.    120 x 120       XGA (in 1024 x 768 mode) 
  4026.  
  4027. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4028. ΓöéFamily  ΓöéFace NamΓöéP   AW  MW  HE  ΓöéDevice   Γöé9515  9517  9518 Γöé
  4029. ΓöéName    Γöé        Γöé                Γöé         Γöé                 Γöé
  4030. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4031. ΓöéCourier ΓöéCourier Γöé 8   8   8  13  Γöé 96   96 ΓöéNo    No    No   Γöé
  4032. Γöé        ΓöéISO     Γöé 8  10  10  16  Γöé120  120 ΓöéNo    No    n/a  Γöé
  4033. Γöé        Γöé        Γöé 9   8   8  15  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4034. Γöé        Γöé        Γöé10  10  10  16  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4035. Γöé        Γöé        Γöé10  12  12  20  Γöé120  120 ΓöéNo    No    n/a  Γöé
  4036. Γöé        Γöé        Γöé12  12  12  20  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4037. Γöé        Γöé        Γöé12  15  15  25  Γöé120  120 ΓöéYes   Yes   n/a  Γöé
  4038. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4039. ΓöéHelv    ΓöéHelv ISOΓöé 8   5  13  13  Γöé 96   96 ΓöéNo    No    No   Γöé
  4040. Γöé        Γöé        Γöé 8   7  14  16  Γöé120  120 ΓöéNo    No    n/a  Γöé
  4041. Γöé        Γöé        Γöé 9   6  13  15  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4042. Γöé        Γöé        Γöé 9   8  20  21  Γöé120  120 ΓöéYes   Yes   n/a  Γöé
  4043. Γöé        Γöé        Γöé10   7  14  16  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4044. Γöé        Γöé        Γöé10   9  20  21  Γöé120  120 ΓöéYes   Yes   n/a  Γöé
  4045. Γöé        Γöé        Γöé12   9  17  20  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4046. Γöé        Γöé        Γöé12  10  21  25  Γöé120  120 ΓöéYes   Yes   n/a  Γöé
  4047. Γöé        Γöé        Γöé14  10  21  24  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4048. Γöé        Γöé        Γöé14  12  26  29  Γöé120  120 ΓöéYes   Yes   n/a  Γöé
  4049. Γöé        Γöé        Γöé18  12  26  29  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4050. Γöé        Γöé        Γöé18  15  34  36  Γöé120  120 ΓöéYes   Yes   n/a  Γöé
  4051. Γöé        Γöé        Γöé24  14  34  36  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4052. Γöé        Γöé        Γöé24  19  45  46  Γöé120  120 ΓöéYes   Yes   n/a  Γöé
  4053. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4054. ΓöéTms Rmn ΓöéTms Rmn Γöé 8   5  12  13  Γöé 96   96 ΓöéNo    No    No   Γöé
  4055. Γöé        ΓöéISO     Γöé 8   7  15  16  Γöé120  120 ΓöéNo    No    n/a  Γöé
  4056. Γöé        Γöé        Γöé 9   6  12  15  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4057. Γöé        Γöé        Γöé10   7  14  16  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4058. Γöé        Γöé        Γöé10   8  17  19  Γöé120  120 ΓöéNo    Yes   n/a  Γöé
  4059. Γöé        Γöé        Γöé12   8  16  19  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4060. Γöé        Γöé        Γöé12  10  23  22  Γöé120  120 ΓöéYes   Yes   n/a  Γöé
  4061. Γöé        Γöé        Γöé14   9  23  22  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4062. Γöé        Γöé        Γöé14  11  26  27  Γöé120  120 ΓöéYes   Yes   n/a  Γöé
  4063. Γöé        Γöé        Γöé18  11  26  27  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4064. Γöé        Γöé        Γöé18  14  34  34  Γöé120  120 ΓöéYes   Yes   n/a  Γöé
  4065. Γöé        Γöé        Γöé24  14  34  34  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4066. Γöé        Γöé        Γöé24  17  46  43  Γöé120  120 ΓöéYes   Yes   n/a  Γöé
  4067. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4068. ΓöéSystem  ΓöéSystem  Γöé 9   6  13  15  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4069. ΓöéPropor- ΓöéPropor- Γöé10   6  20  16  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4070. Γöétional  Γöétional  Γöé10   8  23  20  Γöé120  120 ΓöéNo    Yes   n/a  Γöé
  4071. Γöé        Γöé        Γöé12  10  23  22  Γöé120  120 ΓöéYes   Yes   n/a  Γöé
  4072. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4073. ΓöéSystem  ΓöéSystem  Γöé10   8   8  16  Γöé 96   96 ΓöéYes   Yes   Yes  Γöé
  4074. ΓöéMono-   ΓöéMono-   Γöé10  10  10  21  Γöé120  120 ΓöéYes   Yes   n/a  Γöé
  4075. Γöéspaced  Γöéspaced  Γöé                Γöé         Γöé                 Γöé
  4076. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4077.  
  4078. See International Standards Organization (ISO) 9241 for more information on ISO 
  4079. 9241. 
  4080.  
  4081.  
  4082. ΓòÉΓòÉΓòÉ 2.6.1. International Standards Organization (ISO) 9241 ΓòÉΓòÉΓòÉ
  4083.  
  4084. ISO 9241 is an international standard covering health and safety in the work 
  4085. place for users of visual display terminals. Part 3 of this standard covers 
  4086. clarity and legibility of text displayed on computer screens; it places 
  4087. requirements on minimum sizes and luminance contrast.  The presence of the 
  4088. FM_SEL_ISO9241_TESTED flag in the FONTMETRICS structure indicates that the font 
  4089. has been tested for ISO compliance. 
  4090.  
  4091. Note:  While the fonts were primarily tested for meeting the ISO standard, they 
  4092.        have also been designed to meet the German standard DIN 66 234. Where 
  4093.        the two standards differ, the fonts have been designed to meet the 
  4094.        stricter requirement. 
  4095.  
  4096. The FM_ISO_xxx flags indicate the results of the test on the three IBM displays 
  4097. that conform to the standard. These are the IBM 9515, 9517, and 9518 color 
  4098. displays at the supported resolutions of 640 x 480 and 1024 x 768. To determine 
  4099. whether a non-IBM display complies with ISO 9241, contact the manufacturer. The 
  4100. current display type can be established using VioGetConfig. 
  4101.  
  4102. In order for applications to meet the standard, they have to ensure that they 
  4103. use only fonts that have been tested and passed.  You can determine this by 
  4104. examining the new FM_SEL_ISO9241_TESTED flag in the usSelection parameter in 
  4105. the FONTMETRICS structure, the FM_ISO_xxx flags and the sXDeviceRes and 
  4106. sYDevicesRes fields in the structure. 
  4107.  
  4108. See Fonts Supplied with OS/2 for the table describing ISO 9241 compliant fonts. 
  4109.  
  4110.  
  4111. ΓòÉΓòÉΓòÉ 2.7. Initialization File Information ΓòÉΓòÉΓòÉ
  4112.  
  4113. Initialization files include information about printers, queues, and system 
  4114. preferences set by the user from the control panel.  Applications can query 
  4115. this information by using the PrfQueryProfileData, PrfQueryProfileInt, 
  4116. PrfQueryProfileSize, and PrfQueryProfileString functions. 
  4117.  
  4118. All data in initialization files is accessed by a two-level hierarchy of 
  4119. application name, and key name within an application.  Presentation Manager 
  4120. system data is keyed off "applications" that have names starting with PM_. 
  4121.  
  4122. The application name/key name combinations that applications may need to use 
  4123. are listed below, together with the definition of the corresponding data. 
  4124.  
  4125. Note:  Information that is prefixed with PM_SPOOLERxxxx can not always be 
  4126.        modified directly:  The spooler validates all attempts to write 
  4127.        information to the INI file that it depends on. 
  4128.  
  4129. Application name      "PM_ControlPanel" 
  4130. Key name              "Beep" 
  4131. Type                  integer 
  4132. Content/value         1 or 0. 
  4133.  
  4134. Application name      "PM_ControlPanel" 
  4135. Key name              "LogoDisplayTime" 
  4136. Type                  integer 
  4137. Content/value         -1 <= time <= 32767 milliseconds. 
  4138.  
  4139.      Indefinite display   -1 
  4140.      No display           0 
  4141.      Timed display        >0 
  4142.  
  4143. Application name      "PM_ControlPanel" 
  4144. Key name              "cxDoubleClick" 
  4145. Type                  integer 
  4146. Content/value         SV_CXDBLCLK size in pels. 
  4147.  
  4148. Application name      "PM_ControlPanel" 
  4149. Key name              "cyDoubleClick" 
  4150. Type                  integer 
  4151. Content/value         SV_CYDBLCLK size in pels. 
  4152.  
  4153. Application name      "PM_ControlPanel" 
  4154. Key name              "cxMotionStart" 
  4155. Type                  integer 
  4156. Content/value         SV_CXMOTIONSTART size in pels. 
  4157.  
  4158. Application name      "PM_ControlPanel" 
  4159. Key name              "cyMotionStart" 
  4160. Type                  integer 
  4161. Content/value         SV_CYMOTIONSTART size in pels. 
  4162.  
  4163. Application name      "PM_National" 
  4164. Key name              "iCountry" 
  4165. Type                  integer 
  4166. Content/value         country code: 
  4167.  
  4168.      Arabic              785 
  4169.      Australian           61 
  4170.      Belgian              32 
  4171.      Canadian-French      2 
  4172.      Danish               45 
  4173.      Finnish             358 
  4174.      French               33 
  4175.      German               49 
  4176.      Hebrew              972 
  4177.      Italian              39 
  4178.      Japanese             81 
  4179.      Korean               82 
  4180.      Latin-American       3 
  4181.      Netherlands          31 
  4182.      Norwegian            47 
  4183.      Portuguese          351 
  4184.      Simpl. Chinese       86 
  4185.      Spanish              34 
  4186.      Swedish              46 
  4187.      Swiss                41 
  4188.      Trad. Chinese        88 
  4189.      UK-English           44 
  4190.      US-English           1 
  4191.      Other country        0. 
  4192.  
  4193. Application name      "PM_National" 
  4194. Key name              "iDate" 
  4195. Type                  integer 
  4196. Content/value         0=MDY; 1=DMY; 2=YMD. 
  4197.  
  4198. Application name      "PM_National" 
  4199. Key name              "iCurrency" 
  4200. Type                  integer 
  4201. Content/value         Values have the following meanings: 
  4202.  
  4203.      0    Prefix, no separator 
  4204.      1    Suffix, no separator 
  4205.      2    Prefix, 1 character separator 
  4206.      3    Suffix, 1 character separator. 
  4207.  
  4208. Application name      "PM_National" 
  4209. Key name              "iDigits" 
  4210. Type                  integer 
  4211. Content/value         n = number of decimal digits. 
  4212.  
  4213. Application name      "PM_National" 
  4214. Key name              "iTime" 
  4215. Type                  integer 
  4216. Content/value         0 = 12-hour clock; 1 = 24-hour clock. 
  4217.  
  4218. Application name      "PM_National" 
  4219. Key name              "iLzero" 
  4220. Type                  integer 
  4221. Content/value         0 = no leading zero; 1 = leading zero. 
  4222.  
  4223. Application name      "PM_National" 
  4224. Key name              "s1159" 
  4225. Type                  string 
  4226. Content/value         "am" for example. 3 chars max. 
  4227.  
  4228. Application name      "PM_National" 
  4229. Key name              "s2359" 
  4230. Type                  string 
  4231. Content/value         "pm" for example. 3 chars max. 
  4232.  
  4233. Application name      "PM_National" 
  4234. Key name              "sCurrency" 
  4235. Type                  string 
  4236. Content/value         "$" for example. 3 chars max. 
  4237.  
  4238. Application name      "PM_National" 
  4239. Key name              "sThousand" 
  4240. Type                  string 
  4241. Content/value         "," for example. 1 char max. 
  4242.  
  4243. Application name      "PM_National" 
  4244. Key name              "sDecimal" 
  4245. Type                  string 
  4246. Content/value         "." for example. 1 char max. 
  4247.  
  4248. Application name      "PM_National" 
  4249. Key name              "sDate" 
  4250. Type                  string 
  4251. Content/value         "/" for example. 1 char max. 
  4252.  
  4253. Application name      "PM_National" 
  4254. Key name              "sTime" 
  4255. Type                  string 
  4256. Content/value         ":" for example. 1 char max. 
  4257.  
  4258. Application name      "PM_National" 
  4259. Key name              "sList" 
  4260. Type                  string 
  4261. Content/value         "," for example. 1 char max. 
  4262.  
  4263. Application name      PM_Fonts 
  4264. Key name              <Font module name> 
  4265. Type                  string 
  4266. Content/value         fully-qualified drive:\path\filename.ext. 
  4267.  
  4268. Application name      "PM_SPOOLER" 
  4269. Key name              "QUEUE" 
  4270. Type                  string 
  4271. Content/value         <Queue name>; 
  4272.  
  4273.                       where: 
  4274.  
  4275.    o <Queue name> is the name of the default queue (might be NULL). This must 
  4276.      be a key name for the PM_SPOOLER_QUEUE application. 
  4277.  
  4278. Application name      "PM_SPOOLER" 
  4279. Key name              " PRINTER" 
  4280. Type                  string 
  4281. Content/value         <Printer name>; 
  4282.  
  4283.                       where: 
  4284.  
  4285.    o <Printer name> is the name of the default printer (might be NULL). 
  4286.  
  4287. Note:  Use the SplQueryDevice and SplQueryQueue functions to retrieve the 
  4288.        spooler configuration data. 
  4289.  
  4290.  
  4291. ΓòÉΓòÉΓòÉ 2.8. Interchange File Format ΓòÉΓòÉΓòÉ
  4292.  
  4293. A metafile is a file in which graphics are stored.  The file is 
  4294. application-created, and it contains the graphics orders generated from those 
  4295. GPI calls that are valid in a metafile.  Metafiled graphics can be reused by 
  4296. the application that created them.  They can also be made available to other 
  4297. applications at the same, or at a different, workstation. 
  4298.  
  4299. This section describes the restrictions which apply when generating the 
  4300. metafile and gives detail of the overall structure.  For the graphics orders 
  4301. descriptions, see Graphics Orders. 
  4302.  
  4303.  
  4304. ΓòÉΓòÉΓòÉ 2.8.1. Metafile Restrictions ΓòÉΓòÉΓòÉ
  4305.  
  4306. The following restrictions apply to the generation of all metafiles, and also 
  4307. to the generation of a PM_Q_STD print file to a OD_QUEUED device: 
  4308.  
  4309. o If GpiWCBitBlt or GpiBitBlt is used to copy a bit map to a device context in 
  4310.   an application, the application should not delete that bit map handle with 
  4311.   GpiDeleteBitmap before the device context is closed (metafile is closed). 
  4312.  
  4313. o GpiSetPS must not be used. 
  4314.  
  4315. o GpiSetPageViewport is ignored. 
  4316.  
  4317. The following section lists some general rules that must be followed when 
  4318. creating a metafile that is to be acceptable to SAA-conforming implementations, 
  4319. or replayed into a presentation space that is in draw-and-retain or retain mode 
  4320. (see GpiSetDrawingMode). 
  4321.  
  4322. o These items must be established or defaulted before any drawing occurs to the 
  4323.   graphics presentation space, and not changed subsequently: 
  4324.  
  4325.    - The graphics field (GpiSetGraphicsField). For an SAA-conforming metafile, 
  4326.      the graphics field must be defaulted or set to no clipping. 
  4327.    - The code page for the default character set (GpiSetCp). 
  4328.    - The color table or palette (GpiCreateLogColorTable or GpiCreatePalette). 
  4329.      The size of the color table must not exceed 31KB (KB equals 1024 bytes). 
  4330.    - The default viewing transform (GpiSetDefaultViewMatrix). 
  4331.    - The setting of the draw controls (GpiSetDrawControl). DCTL_DISPLAY must be 
  4332.      defaulted or set ON. 
  4333.    - The default values of attributes (see GpiSetDefAttrs), viewing limits (see 
  4334.      GpiSetDefViewingLimits), primitive tag (see GpiSetDefTag) and arc 
  4335.      parameters (see GpiSetDefArcParams). 
  4336.  
  4337. o These calls should not be used: 
  4338.  
  4339.    - GpiBitBlt 
  4340.    - GpiDeleteSetId (note that this means that local identifiers cannot be used 
  4341.      again within the picture) 
  4342.    - GpiErase 
  4343.    - GpiExcludeClipRectangle 
  4344.    - GpiIntersectClipRectangle 
  4345.    - GpiOffsetClipRegion 
  4346.    - GpiPaintRegion 
  4347.    - GpiResetPS 
  4348.    - GpiSetClipRegion 
  4349.    - GpiSetPel 
  4350.    - GpiSetPS 
  4351.    - DevEscape (for an escape which is metafiled). 
  4352.  
  4353. o GpiCreateLogFont must not redefine a local identifier that has previously 
  4354.   been used within the picture. 
  4355.  
  4356. o The metafile context must not be reassociated. 
  4357.  
  4358. o If a bit map is used as the source of a GpiWCBitBlt operation, or as an 
  4359.   area-fill pattern, it must not be modified or deleted (GpiDeleteBitmap) 
  4360.   before the metafile is closed. 
  4361.  
  4362. o Only these foreground mixes must be used (see GpiSetMix): 
  4363.  
  4364.    - FM_DEFAULT 
  4365.    - FM_OR 
  4366.    - FM_OVERPAINT 
  4367.    - FM_LEAVEALONE. 
  4368.  
  4369. o Only these background mixes must be used (see GpiSetBackMix): 
  4370.  
  4371.    - BM_DEFAULT 
  4372.    - BM_OVERPAINT 
  4373.    - BM_LEAVEALONE. 
  4374.  
  4375. o If palettes are used (see GpiCreatePalette), the palette that is metafiled is 
  4376.   the one in force when the metafile device context is dissociated from the 
  4377.   (final) presentation space. If the palette is changed during the course of 
  4378.   the picture (using GpiSetPaletteEntries), it must therefore only be with 
  4379.   incremental additions. 
  4380.  
  4381. Note:  There is no restriction concerning the use of primitives outside 
  4382.        segments. These are metafiled in segment(s) with zero identifier. 
  4383.  
  4384.  
  4385. ΓòÉΓòÉΓòÉ 2.8.2. Metafile Data Format ΓòÉΓòÉΓòÉ
  4386.  
  4387. This section describes the format of the data in a metafile, as it would be 
  4388. stored in an OS/2 disk file. 
  4389.  
  4390. Metafile data is stored as a sequence of structured fields.  Each structured 
  4391. field starts with an eight-byte header consisting of a two-byte length field 
  4392. and a three-byte identifier field. These are followed by a one-byte flags field 
  4393. and a two-byte segment sequence number field. 
  4394.  
  4395. The length field contains a count of the total number of bytes in the 
  4396. structured field, including the length field. The identifier field uniquely 
  4397. identifies the type of the structured field. 
  4398.  
  4399. The flags and segment sequence number fields are always zero. 
  4400.  
  4401. Following the header are positional parameters that are optional and dependent 
  4402. on the particular structured field. 
  4403.  
  4404. Following the positional parameters are non-positional parameters called 
  4405. triplets. These are self-defining parameters and consist of a one-byte length 
  4406. field, followed by a one-byte identifier field, followed by the data of the 
  4407. parameter. 
  4408.  
  4409. The length field contains a count of the total number of bytes in the triplet, 
  4410. including the length and identifier fields. The identifier field identifies 
  4411. uniquely the type of the triplet. 
  4412.  
  4413. A metafile is structured into a number of different functional components; for 
  4414. example, document and graphics object. Each component comprises a number of 
  4415. structured fields, and is delimited by "begin-component" and "end-component" 
  4416. structured fields. Structured fields marked as required, inside an optional 
  4417. structured field bracket, are required if the containing bracket is present. 
  4418.  
  4419. The graphics orders that describe a picture occur in the graphics data 
  4420. structured field. See Structured Field Formats. 
  4421.  
  4422.  
  4423. ΓòÉΓòÉΓòÉ 2.8.3. Structured Field Formats ΓòÉΓòÉΓòÉ
  4424.  
  4425. Following is the format of the various structured fields: 
  4426.  
  4427. Begin Document
  4428.  
  4429. Structured Field Introducer (BDT): required
  4430. 0-1   Length X'n+1E'
  4431. 2-4   BDT X'D3A8A8'
  4432. 5     Flags X'00'
  4433. 6-7   Segment sequence number X'0000'
  4434.  
  4435. Parameters
  4436. 0-7   Document name   C'0000 0001'
  4437. 8     Architecture version X'00'
  4438. 9     Document security X'00'
  4439.  
  4440. Triplets (all required)
  4441. 0     Length X'05'
  4442. 1     Triplet Id X'18'
  4443. 2     Interchange set type X'03' (resource document)
  4444. 3-4   Base set definition X'0C00' (level 12, version 0)
  4445.  
  4446. 0     Length X'06'
  4447. 1     Triplet Id X'01'
  4448. 2-5   GCID
  4449.  
  4450. 0     Length X'n+1'
  4451. 1     Triplet Id X'65'
  4452. 2-n   Comment, used for metafile description of
  4453.       up to 252 bytes.
  4454.  
  4455. Begin Resource Group (BRG): required 
  4456.  
  4457.       Structured Field Introducer
  4458.       0-1   Length X'0010'
  4459.       2-4   BRG X'D3A8C6'
  4460.       5     Flags X'00'
  4461.       6-7   Segment sequence number X'0000'
  4462.  
  4463.       Parameters
  4464.       0-7   Resource group name   C'0000 0002'
  4465.  
  4466. Begin Color Attribute (BCA) Table: required 
  4467.  
  4468.             Structured Field Introducer
  4469.             0-1   Length X'0010'
  4470.             2-4   BCA X'D3A877'
  4471.             5     Flags X'00'
  4472.             6-7   Segment sequence number X'0000'
  4473.  
  4474.             Parameters
  4475.             0-7   Color table name C'0000 0004'
  4476.  
  4477. Color Attribute Table (CAT): required 
  4478.  
  4479.                     Structured Field Introducer
  4480.                     0-1   Length X'n+8'
  4481.                     2-4   CAT X'D3B077'
  4482.                     5     Flags X'00'
  4483.                     6-7   Segment sequence number X'0000'
  4484.  
  4485.                     Parameters
  4486.  
  4487.                     Base Part (required)
  4488.                     0  Flags
  4489.                        0   Reserved B'0'
  4490.                        1   Reset
  4491.                            B'0' Do not reset to default
  4492.                            B'1' Do reset to default
  4493.                        2-7 Reserved B'000000'
  4494.                     1  Reserved X'00'
  4495.                     2  LCTID X'00'
  4496.  
  4497.                     Element list(s) (triple generating) are
  4498.                     mutually-exclusive.  One or other is required.
  4499.  
  4500.                     Element List (repeating)
  4501.                     0     Length of this parameter
  4502.                     1     Type X'01': element list
  4503.                     2     Flags X'00': reserved
  4504.                     3     Format
  4505.                           X'01' RGB
  4506.                     4-6   Starting Index
  4507.                           (Top Byte Truncated)
  4508.                     7     Size of RGB component1 X'08'
  4509.                     8     Size of RGB component2 X'08'
  4510.                     9     Size of RGB component3 X'08'
  4511.                     10    Number of bytes in each
  4512.                           following color triple X'04'
  4513.                     11-m  Color triples
  4514.  
  4515.                     Triple Generating
  4516.                     0     Length of this parameter X'0A'
  4517.                     1     Type X'02': bit generator
  4518.                     2     Flags
  4519.                           0 ABFlag
  4520.                             B'0' Normal
  4521.                           1-7 Reserved B'0000000'
  4522.                     3     Format
  4523.                           X'01' RGB
  4524.                     4-6   Starting index (top byte truncated)
  4525.                     7     Size of RGB component1 X'08'
  4526.                     8     Size of RGB component2 X'08'
  4527.                     9     Size of RGB component3 X'08'
  4528.  
  4529. End Color Attribute (ECA) Table: required 
  4530.  
  4531.             Structured Field Introducer
  4532.             0-1   Length X'0010'
  4533.             2-4   ECA X'D3A977'
  4534.             5     Flags X'00'
  4535.             6-7   Segment sequence number X'0000'
  4536.  
  4537.             Parameters
  4538.             0-7   Color table name C'0000 0004'
  4539.  
  4540. Begin Image Object (BIM): optional, repeating 
  4541.  
  4542.                   Structured Field Introducer
  4543.                   0-1   Length X'0010'
  4544.                   2-4   BIM X'D3A8FB'
  4545.                   5     Flags X'00'
  4546.                   6-7   Segment sequence number X'0000'
  4547.  
  4548.                   Parameters
  4549.                   0-7   Image name C'xxxx xxxx'
  4550.  
  4551. Begin Resource Group (BRG): optional 
  4552.  
  4553.                         Structured Field Introducer
  4554.                         0-1   Length X'0010'
  4555.                         2-4   BRG X'D3A8C6'
  4556.                         5     Flags X'00'
  4557.                         6-7   Segment sequence number X'0000'
  4558.  
  4559.                         Parameters
  4560.                         0-7   Resource group name C'xxxx xxxx'
  4561.  
  4562. Color Attribute Table (BCA): optional 
  4563.  
  4564.                               Structured Field Introducer
  4565.                               0-1   Length X'0010'
  4566.                               2-4   BCA X'D3A877'
  4567.                               5     Flags X'00'
  4568.                               6-7   Segment sequence number X'0000'
  4569.  
  4570.                               Parameters
  4571.                               0-7   Color table name C'xxxx xxxx'
  4572.  
  4573. Color Attribute Table (CAT): required 
  4574.  
  4575.                                     Structured Field Introducer
  4576.                                     0-1   Length
  4577.                                     2-4   CAT X'D3B077'
  4578.                                     5     Flags X'00'
  4579.                                     6-7   Segment sequence number X'0000'
  4580.  
  4581.                                     Parameters
  4582.  
  4583.                                     Base Part
  4584.                                     0  Flags X'00'
  4585.                                     1  Reserved X'00'
  4586.                                     2  LUTID
  4587.  
  4588.                                     Element List (repeating)
  4589.                                     0     Length of this parameter
  4590.                                     1     Type X'01': element list
  4591.                                     2     Flags X'00': reserved
  4592.                                     3     Format X'01': RGB
  4593.                                     4-6   Starting index
  4594.                                           (top byte truncated)
  4595.                                     7     Size of RGB component1 X'08'
  4596.                                     8     Size of RGB component2 X'08'
  4597.                                     9     Size of RGB component3 X'08'
  4598.                                     10    Number of bytes in each
  4599.                                           following color triple X'03'
  4600.                                     11-n  Color triples
  4601.  
  4602. End Color Attribute Table (ECA): required if BCA present 
  4603.  
  4604.                               Structured Field Introducer
  4605.                               0-1   Length X'0010'
  4606.                               2-4   ECA X'D3A977'
  4607.                               5     Flags X'00'
  4608.                               6-7   Segment sequence number X'0000'
  4609.  
  4610.                               Parameters
  4611.                               0-7   Color Table name C'xxxx xxxx'
  4612.  
  4613. End Resource Group (ERG): required if BRG present 
  4614.  
  4615.                         Structured Field Introducer
  4616.                         0-1   Length X'0010'
  4617.                         2-4   ERG X'D3A9C6'
  4618.                         5     Flags X'00'
  4619.                         6-7   Segment sequence number X'0000'
  4620.  
  4621.                         Parameters
  4622.                         0-7 Resource Group name C'xxxx xxxx'
  4623.  
  4624. Begin Object Environment Group (BOG): optional 
  4625.  
  4626.                   Structured Field Introducer
  4627.                   0-1   Length X'0010'
  4628.                   2-4   BOG X'D3A8C7'
  4629.                   5     Flags X'00'
  4630.                   6-7   Segment sequence number X'0000'
  4631.  
  4632.                   Parameters
  4633.                   0-7   Object environment group
  4634.                         name C'xxxx xxxx'
  4635.  
  4636. Map Color Attribute (MCA) Table: required 
  4637.  
  4638.                         Structured Field Introducer
  4639.                         0-1   Length X'001A'
  4640.                         2-4   MCA X'D3AB77'
  4641.                         5     Flags X'00'
  4642.                         6-7   Segment sequence number X'0000'
  4643.  
  4644.                         Parameters
  4645.                         0-1 Length
  4646.  
  4647.                         Triplet (required)
  4648.                         0     Length X'0C'
  4649.                         1     Triplet type:
  4650.                               fully qualified name X'02'
  4651.                         2     Type: ref to
  4652.                               Begin Resource Object X'84'
  4653.                         3     ID    X'00'
  4654.                         4-11  Color table name C'xxxx xxxx'
  4655.  
  4656.                         lcid (required)
  4657.                         0     Length X'04'
  4658.                         1     Triplet type:
  4659.                               resource local ID X'24'
  4660.                         2     Type color table resource X'07'
  4661.                         3     Local identifier (LUT-ID) X'01'
  4662.  
  4663. End Object Environment Group (EOG): required if BOG present 
  4664.  
  4665.                   Structured Field Introducer
  4666.                   0-1   Length X'0010'
  4667.                   2-4   EOG X'D3A9C7'
  4668.                   5     Flags X'00'
  4669.                   6-7   Segment sequence number X'0000'
  4670.  
  4671.                   Parameters
  4672.                   0-7   Object Environment Group
  4673.                         name C'xxxx xxxx'
  4674.  
  4675. Image Data Descriptor (IDD): required 
  4676.  
  4677.                         Structured Field Introducer
  4678.                         0-1   Length X'0011'
  4679.                         2-4   IDD X'D3A6FB'
  4680.                         5     Flags X'00'
  4681.                         6-7   Segment sequence number X'0000'
  4682.  
  4683.                         Parameters
  4684.                         0     Unit of measure:
  4685.                               X'00' tens of inches
  4686.                               X'01' tens of centimeters
  4687.                         1-2   X resolution image points / UOM
  4688.                         3-4   Y resolution image points / UOM
  4689.                         5-6   X extent of image PS
  4690.                         7-8   Y extent of image PS
  4691.  
  4692. Image Picture Data (IPD): required 
  4693.  
  4694.                         Structured Field Introducer
  4695.                         0-1   Length
  4696.                         2-4   IPD X'D3EEFB'
  4697.                         5     Flags X'00'
  4698.                         6-7   Segment sequence number X'0000'
  4699.  
  4700.             Parameters (all required and in this order, except that only one of 
  4701.             Image LUT-ID and IDE structure is present) 
  4702.  
  4703.                         Begin Segment
  4704.                         0     Type X'70': begin segment
  4705.                         1     Length of following X'00'
  4706.  
  4707.                         Begin Image Content
  4708.                         0     Type X'91': Begin Image Content
  4709.                         1     Length of following X'01'
  4710.                         2     Format X'FF'
  4711.  
  4712.                         Image Size
  4713.                         0     Type X'94': image size
  4714.                         1     Length of following X'09'
  4715.                         2     Units of measure X'02': logical
  4716.                         3-4   Horizontal resolution
  4717.                         5-6   Vertical resolution
  4718.                         7-8   Height in pels
  4719.                         9-10  Width in pels
  4720.  
  4721.                         Image Encoding
  4722.                         0     Type X'95': image encoding
  4723.                         1     Length of following X'02'
  4724.                         2     Compression algorithm X'03': none
  4725.                         3     Recording algorithm X'03':
  4726.                               bottom-to-top
  4727.  
  4728.                         Image IDE-Size
  4729.                         0     Type X'96': image IDE-Size
  4730.                         1     Length of following X'01'
  4731.                         2     Number of bits per element
  4732.  
  4733.                         Image LUT-ID
  4734.                               (For bit maps with other than
  4735.                                24 bits per pel)
  4736.                         0     Type X'97' Image LUT-ID
  4737.                         1     Length of following X'01'
  4738.                         2     LUT-ID
  4739.  
  4740.                         IDE Structure
  4741.                               (For bit maps with 24 bits per pel)
  4742.                         0     Type X'9B': IDE structure
  4743.                         1     Length of following X'08'
  4744.                         2     Flags:
  4745.                               0 ABFlag
  4746.                                 B'0' Normal (Additive)
  4747.                               1-7 Reserved B'0000000'
  4748.                         3     Format
  4749.                               X'01' RGB
  4750.                         4-6   Reserved X'000000'
  4751.                         7     Size of element 1
  4752.                         8     Size of element 2
  4753.                         9     Size of element 3
  4754.  
  4755. Image Picture Data (IPD): required, repeating 
  4756.  
  4757.                         Structured Field Introducer
  4758.                         0-1   Length
  4759.                         2-4   IPD X'D3EEFB'
  4760.                         5     Flags X'00'
  4761.                         6-7   Segment sequence number X'0000'
  4762.  
  4763.                         Parameters
  4764.  
  4765.                         Image Data
  4766.                         0-1   Type X'FE92': image data
  4767.                         2-3   Length of following
  4768.                         4-n   Image data (scan lines of bit maps)
  4769.  
  4770.                         End Image Content
  4771.                               (required, only present in last
  4772.                               Image Picture Data)
  4773.                         0     Type X'93': End Image Content
  4774.                         1     Length of following X'00'
  4775.  
  4776.                         End Segment
  4777.                               (required, only present in last
  4778.                               Image Picture Data)
  4779.                         0     Type X'71': end segment
  4780.                         1     Length of following X'00'
  4781.  
  4782. End Image Object (EIM): required if BIM present 
  4783.  
  4784.                   Structured Field Introducer
  4785.                   0-1   Length X'0010'
  4786.                   2-4   EIM X'D3A9FB'
  4787.                   5     Flags X'00'
  4788.                   6-7   Segment sequence number X'0000'
  4789.  
  4790.                   Parameters
  4791.                   0-7 Image name C'xxxx xxxx'
  4792.  
  4793. Begin Graphics Object (BGR): required 
  4794.  
  4795.             Structured Field Introducer
  4796.             0-1   Length X'0010'
  4797.             2-4   BGR X'D3A8BB'
  4798.             5     Flags X'00'
  4799.             6-7   Segment sequence number X'0000'
  4800.  
  4801.             Parameters
  4802.             0-7 Graphics object name C'0000 0007'
  4803.  
  4804. Begin Object Environment Group (BOG): optional 
  4805.  
  4806.                   Structured Field Introducer
  4807.                   0-1   Length X'0010'
  4808.                   2-4   BOG X'D3A8C7'
  4809.                   5     Flags X'00'
  4810.                   6-7   Segment sequence number X'0000'
  4811.  
  4812.                   Parameters
  4813.                   0-7 Object Environment Group
  4814.                       name C'0000 0007'
  4815.  
  4816. Map Color Attribute Table (MCA): required 
  4817.  
  4818.                         Structured Field Introducer
  4819.                         0-1   Length X'0016'
  4820.                         2-4   MCA X'D3AB77'
  4821.                         5     Flags X'00'
  4822.                         6-7   Segment sequence number X'0000'
  4823.  
  4824.                         Parameters
  4825.                         0-1 Length
  4826.  
  4827.                         Triplet (required)
  4828.                         0     Length X'0C'
  4829.                         1     Triplet type:
  4830.                               fully qualified name X'02'
  4831.                         2     Type: ref to
  4832.                               Begin Resource Object X'84'
  4833.                         3     ID    X'00'
  4834.                         4-11  Color table name C'0000 0004'
  4835.  
  4836. Map Coded Font (MCF): required, for default font 
  4837.  
  4838.                         Structured Field Introducer
  4839.                         0-1   Length X'20'
  4840.                         2-4   MCF X'D3AB8A'
  4841.                         5     Flags X'00'
  4842.                         6-7   Segment sequence number X'0000'
  4843.  
  4844.                         Parameters
  4845.                         0-1 Length
  4846.  
  4847.                         Triplets (required)
  4848.  
  4849.                         Font name
  4850.                         0     Length X'0C'
  4851.                         1     Triplet type:
  4852.                               fully qualified name X'02'
  4853.                         2     Type: ref to coded font X'84'
  4854.                         3     ID    X'00'
  4855.                         4-11  Coded font name: C'nnxx xxxx'
  4856.                               where n is X'FF'
  4857.  
  4858.                         lcid
  4859.                         0     Length X'04'
  4860.                         1     Triplet type:
  4861.                               Resource Local ID X'24'
  4862.                         2     Type: Coded Font Resource X'05'
  4863.                         3     Local identifier (LCID) X'00'
  4864.  
  4865.                         Font Binary GCID
  4866.                         0     Length X'06'
  4867.                         1     Triplet type: Font Binary GCID X'20'
  4868.                         2-5   GCID
  4869.  
  4870. Map Coded Font (MCF): optional, repeating, for loaded fonts 
  4871.  
  4872.                         Structured Field Introducer
  4873.                         0-1   Length X'58'
  4874.                         2-4   MCF X'D3AB8A'
  4875.                         5     Flags X'00'
  4876.                         6-7   Segment sequence number X'0000'
  4877.  
  4878.                         Parameters
  4879.                         0-1 Length
  4880.  
  4881.                         Triplets (required)
  4882.  
  4883.                         Font name
  4884.                         0     Length X'0C'
  4885.                         1     Triplet type:
  4886.                               fully qualified name X'02'
  4887.                         2     Type: ref to coded font X'84'
  4888.                         3     ID X'00'
  4889.                         4-11  Coded font name
  4890.  
  4891.                         lcid
  4892.                         0     Length X'04'
  4893.                         1     Triplet type:
  4894.                               Resource Local ID X'24'
  4895.                         2     Type: coded font resource X'05'
  4896.                         3     Local identifier (LCID)
  4897.  
  4898.                         Font Attributes
  4899.                         0     Length X'14'
  4900.                         1     Triplet type:
  4901.                               Font Descriptor X'1F'
  4902.                         2     Weight Class
  4903.                         3     Width Class
  4904.                         4-5   Font Height
  4905.                         6-7   Char Width
  4906.                         8     Descript Flags
  4907.                         9     Usage Codes
  4908.                         10    Family
  4909.                         11    Activity Class
  4910.                         12    Font Quality
  4911.                         13-14 CAP Height
  4912.                         15-16 X Height
  4913.                         17-18 Line Density
  4914.                         19    Use Flags
  4915.  
  4916.                         Font Binary GCID
  4917.                         0     Length X'06'
  4918.                         1     Triplet type:
  4919.                               Font Binary GCID X'20'
  4920.                         2-5   GCID
  4921.  
  4922.                         Font Typeface
  4923.                         0     Length X'24'
  4924.                         1     Triplet type:
  4925.                               fully qualified name X'02'
  4926.                         2     Type: ref to font typeface X'08'
  4927.                         3     ID X'00'
  4928.                         4-35  Font typeface C'xxx..xxx'
  4929.  
  4930. Map Data Resource (MDR): optional, repeating 
  4931.  
  4932.                         Structured Field Introducer
  4933.                         0-1   Length X'1D'
  4934.                         2-4   MDR X'D3ABC3'
  4935.                         5     Flags X'00'
  4936.                         6-7   Segment sequence number X'0000'
  4937.  
  4938.                         Parameters
  4939.                         0-1 Length
  4940.  
  4941.                         Triplets (required)
  4942.  
  4943.                         Bit-map Name
  4944.                         0     Length X'0C'
  4945.                         1     Triplet type:
  4946.                               fully qualified name X'02'
  4947.                         2     Type: ref to Image Object X'84'
  4948.                         3     ID X'00'
  4949.                         4-11  Image name C'xxxx xxxx'
  4950.  
  4951.                         Extended Resource lcid
  4952.                         0     Length X'07'
  4953.                         1     Triplet type:
  4954.                               Extended Resource Local ID X'22'
  4955.                         2     Type: Image Resource X'10'
  4956.                         3-6   Bit-map handle
  4957.  
  4958. End Object Environment Group (EOG): required if BOG present 
  4959.  
  4960.                   Structured Field Introducer
  4961.                   0-1   Length X'0010'
  4962.                   2-4   EOG X'D3A9C7'
  4963.                   5     Flags X'00'
  4964.                   6-7   Segment sequence number X'0000'
  4965.  
  4966.                   Parameters
  4967.                   0-7 Object Environment Group name C'0000 0007'
  4968.  
  4969. Graphics Data Descriptor (GDD): required 
  4970.  
  4971.                         Structured Field Introducer
  4972.                         0-1   Length X'nnnn'
  4973.                         2-4   GDD X'D3A6BB'
  4974.                         5     Flags X'00'
  4975.                         6-7   Segment sequence number X'0000'
  4976.  
  4977.                         Parameters (all required and in this order)
  4978.  
  4979.                         0   X'F7' Specify GVM Subset
  4980.                         1   Length of following data X'07'
  4981.                         2   X'B0' drawing order subset
  4982.                         3-4 X'0000'
  4983.                         5   X'23' Level 3.2
  4984.                         6   X'01' Version 1
  4985.                         7   Length of following field X'01'
  4986.                         8   Coordinate types in data
  4987.                             X'04' Intel16
  4988.                             X'05' Intel32
  4989.  
  4990.                         0   X'F6' Set Picture Descriptor
  4991.                         1   Length of following data
  4992.                         2   Flags
  4993.                             0 B'0' Picture in 2D
  4994.                             1 Picture Dimensions
  4995.                               B'0' Not absolute (PU_ARBITRARY PS)
  4996.                               B'1' Absolute (example: PU_TWIPS PS)
  4997.                             2 Picture Elements
  4998.                               B'0' Not pels
  4999.                               B'1' pels (PU_PELS PS)
  5000.                                    (Bit 1 must also be set)
  5001.                             3-7 B'00000'
  5002.                         3   X'00' Reserved
  5003.                         4   Picture frame size coordinate type
  5004.                             X'04' Intel16
  5005.                             X'05' Intel32
  5006.                         5   UnitsOfMeasure
  5007.                             X'00' Ten inches
  5008.                             X'01' Decimeter
  5009.                         6-11 or 6-17 (2 or 4 bytes) Resolution.
  5010.                             GPS Units / UOM on x axis
  5011.                             GPS Units / UOM on y axis
  5012.                             GPS Units / UOM on z axis
  5013.                         12-23 or 18-41 (2 or 4 bytes) Window Size.
  5014.                             GPS X left, X right
  5015.                             GPS Y bottom, Y top
  5016.                             GPS Z near, Z far
  5017.  
  5018.                         0   X'21' Set Current Defaults
  5019.                         1   Length of following data
  5020.                         2   Set Default Parameter Format X'08'
  5021.                         3-4 Mask X'E000'
  5022.                         5   Names X'8F'
  5023.                         6   Coordinates
  5024.                             X'00' Picture in 2D
  5025.                         7   Transforms
  5026.                             X'04' Intel16
  5027.                             X'05' Intel32
  5028.                         8   Geometrics
  5029.                             X'04' Intel16
  5030.                             X'05' Intel32
  5031.  
  5032.                         0   X'21' Set Current Defaults
  5033.                         1   Length of following data
  5034.                         2   Set default viewing transform X'07'
  5035.                         3-4 Mask X'CC0C'
  5036.                         5   Names X'8F'
  5037.                         6-n M11, M12, M21, M22, M41, M42   Matrix
  5038.                                                            elements
  5039.  
  5040.  
  5041.                         0   X'21' Set Current Defaults
  5042.                         1   Length of following data
  5043.                         2   Set default line attributes X'01'
  5044.                         3-4 Mask - OR of as many of the following
  5045.                             bits as are required:
  5046.                             X'8000'  Line type
  5047.                             X'4000'  Line width
  5048.                             X'2000'  Line end
  5049.                             X'1000'  Line join
  5050.                             X'0800'  Stroke width
  5051.                             X'0008'  Line color
  5052.                             X'0002'  Line mix
  5053.                         5   Flags
  5054.                             X'0F'    Set indicated default attributes
  5055.                                      to initial values.
  5056.                                      (Data field is not present in this instance).
  5057.                             X'8F'    Set indicated default attributes
  5058.                                      to specified values.
  5059.                         6-n Data  -  Data values as required, in the
  5060.                                      following order if present.
  5061.                             No space is reserved for attributes for
  5062.                             which the corresponding mask flag was not set.
  5063.                             (1 byte)  - Line type
  5064.                             (1 byte)  - Line width
  5065.                             (1 byte)  - Line end
  5066.                             (1 byte)  - Line join
  5067.                             (G bytes) - Stroke width
  5068.                             (4 bytes) - Line color
  5069.                             (1 byte)  - Line mix
  5070.                                        (G=2 or 4 depending on the Geometrics
  5071.                                         parameter of Set Default Parameter Format)
  5072.  
  5073.                         0   X'21' Set Current Defaults
  5074.                         1   Length of following data
  5075.                         2   Set Default Character Attributes X'02'
  5076.                         3-4 Mask - OR of as many of the following
  5077.                             bits as are required:
  5078.                             X'8000'  Character angle
  5079.                             X'4000'  Character box
  5080.                             X'2000'  Character direction
  5081.                             X'1000'  Character precision
  5082.                             X'0800'  Character set
  5083.                             X'0400'  Character shear
  5084.                             X'0040'  Character break extra
  5085.                             X'0020'  Character extra
  5086.                             X'0008'  Character color
  5087.                             X'0004'  Character background color
  5088.                             X'0002'  Character mix
  5089.                             X'0001'  Character background mix
  5090.                         5   Flags
  5091.                             X'0F'    Set indicated default attributes
  5092.                                      to initial values.
  5093.                                      (Data field is not present in this case).
  5094.                             X'8F'    Set indicated default attributes
  5095.                                      to specified values.
  5096.                         6-n Data  -  Data values as required, in the
  5097.                                      following order if present.
  5098.                             No space is reserved for attributes for which
  5099.                             the corresponding Mask flag was not set.
  5100.                             (2*G bytes) - Character angle
  5101.                             (2*G + 4 bytes) - Character box
  5102.                             (1 byte)    - Character direction
  5103.                             (1 byte)    - Character precision
  5104.                             (1 byte)    - Character set
  5105.                             (2*G bytes) - Character shear
  5106.                             (4 bytes)   - Character break extra
  5107.                             (4 bytes)   - Character extra
  5108.                             (4 bytes)   - Character color
  5109.                             (4 bytes)   - Character background color
  5110.                             (1 byte)    - Character mix
  5111.                             (1 byte)    - Character background mix
  5112.                                 (G=2 or 4 depending on the Geometrics parameter
  5113.                                  of Set Default Parameter Format)
  5114.  
  5115.  
  5116.                         0   X'21' Set Current Defaults
  5117.                         1   Length of following data
  5118.                         2   Set Default Marker Attributes X'03'
  5119.                         3-4 Mask - OR of as many of the following bits
  5120.                                    as are required:
  5121.                             X'4000'  Marker box
  5122.                             X'1000'  Marker precision
  5123.                             X'0800'  Marker set
  5124.                             X'0100'  Marker symbol
  5125.                             X'0008'  Marker color
  5126.                             X'0004'  Marker background color
  5127.                             X'0002'  Marker mix
  5128.                             X'0001'  Marker background mix
  5129.                         5   Flags
  5130.                             X'0F'    Set indicated default attributes
  5131.                                      to initial values.
  5132.                                      (Data field is not present in this instance)
  5133.                             X'8F'    Set indicated default attributes
  5134.                                      to specified values.
  5135.                         6-n Data  -  Data values as required, in this
  5136.                                      order if present.
  5137.                             No space is reserved for attributes for which the
  5138.                             corresponding Mask flag was not set.
  5139.                             (2*G bytes) - Marker box
  5140.                             (1 byte)    - Marker precision
  5141.                             (1 byte)    - Marker set
  5142.                             (1 byte)    - Marker symbol
  5143.                             (4 bytes)   - Marker color
  5144.                             (4 bytes)   - Marker background color
  5145.                             (1 byte)    - Marker mix
  5146.                             (1 byte)    - Marker background mix
  5147.                                 (G=2 or 4 depending on the Geometrics
  5148.                                  parameter of Set Default Parameter Format)
  5149.  
  5150.                         0   X'21' Set Current Defaults
  5151.                         1   Length of following data
  5152.                         2   Set Default Pattern Attributes X'04'
  5153.                         3-4 Mask - OR of as many of the following bits
  5154.                                    as are required:
  5155.                             X'0800'  Pattern set
  5156.                             X'0100'  Pattern symbol
  5157.                             X'0080'  Pattern reference point
  5158.                             X'0008'  Pattern color
  5159.                             X'0004'  Pattern background color
  5160.                             X'0002'  Pattern mix
  5161.                             X'0001'  Pattern background mix
  5162.                         5   Flags
  5163.                             X'0F'    Set indicated default attributes
  5164.                                      to initial values.
  5165.                                      (Data field is not present in this instance)
  5166.                             X'8F'    Set indicated default attributes
  5167.                                      to specified values.
  5168.                         6-n Data  -  Data values as required, in this
  5169.                                      order if present.
  5170.                             No space is reserved for attributes for which the
  5171.                             corresponding Mask flag was not set.
  5172.                             (1 byte)    - Pattern set
  5173.                             (1 byte)    - Pattern symbol
  5174.                             (2*G bytes) - Pattern reference point
  5175.                             (4 bytes)   - Pattern color
  5176.                             (4 bytes)   - Pattern background color
  5177.                             (1 byte)    - Pattern mix
  5178.                             (1 byte)    - Pattern background mix
  5179.                                 (G=2 or 4 depending on the Geometrics parameter
  5180.                                  of Set Default Parameter Format)
  5181.  
  5182.                         0   X'21' Set Current Defaults
  5183.                         1   Length of following data
  5184.                         2   Set Default Image Attributes X'06'
  5185.                         3-4 Mask - OR of as many of these bits as are required:
  5186.                             X'0008'  Image color
  5187.                             X'0004'  Image background color
  5188.                             X'0002'  Image mix
  5189.                             X'0001'  Image background mix
  5190.                         5   Flags
  5191.                             X'0F'    Set indicated default attributes
  5192.                                      to initial values.
  5193.                                      (Data field is not present in this instance)
  5194.                             X'8F'    Set indicated default attributes
  5195.                                      to specified values.
  5196.                         6-n Data  -  Data values as required, in this
  5197.                                      order if present.
  5198.                             No space is reserved for attributes for which the
  5199.                             corresponding Mask flag was not set.
  5200.                             (4 bytes)   - Image color
  5201.                             (4 bytes)   - Image background color
  5202.                             (1 byte)    - Image mix
  5203.                             (1 byte)    - Image background mix
  5204.  
  5205.                         0   X'21' Set Current Defaults
  5206.                         1   Length of following data
  5207.                         2   Set Default Viewing Window X'05'
  5208.                         3-4 Mask - OR of as many of the following bits as
  5209.                             are required:
  5210.                             X'8000'  x left limit
  5211.                             X'4000'  x right limit
  5212.                             X'2000'  y bottom limit
  5213.                             X'1000'  y top limit
  5214.                         5   Flags
  5215.                             X'0F'    Set indicated default attributes
  5216.                                      to initial values.
  5217.                                      (Data field is not present in this case).
  5218.                             X'8F'    Set indicated default attributes
  5219.                                      to specified values.
  5220.                         6-n Data  -  Data values as required, in the
  5221.                                      following order if present.
  5222.                             No space is reserved for attributes for which the
  5223.                             corresponding Mask flag was not set.
  5224.                             (2*G bytes) - x left limit
  5225.                             (2*G bytes) - x right limit
  5226.                             (2*G bytes) - y bottom limit
  5227.                             (2*G bytes) - y top limit
  5228.                                   (G=2 or 4 depending on the Geometrics parameter of Set
  5229.                                    Default Parameter Format)
  5230.  
  5231.                         0   X'21' Set Current Defaults
  5232.                         1   Length of following data
  5233.                         2   Set Default Arc Parameters X'0B'
  5234.                         3-4 Mask - OR of as many of the following bits as are required:
  5235.                             X'8000'  P value
  5236.                             X'4000'  Q value
  5237.                             X'2000'  R value
  5238.                             X'1000'  S value
  5239.                         5   Flags
  5240.                             X'0F'    Set indicated default attributes
  5241.                                      to initial values.
  5242.                                      (Data field is not present in this case).
  5243.                             X'8F'    Set indicated default attributes
  5244.                                      to specified values.
  5245.                         6-n Data  -  Data values as required, in the
  5246.                                      following order if present.
  5247.                             No space is reserved for attributes for which the corresponding Mask
  5248.                             flag was not set.
  5249.                             (G bytes)   - P value
  5250.                             (G bytes)   - Q value
  5251.                             (G bytes)   - R value
  5252.                             (G bytes)   - S value
  5253.                                 (G=2 or 4 depending on the Geometrics parameter of Set
  5254.                                  Default Parameter Format)
  5255.  
  5256.                         0   X'21' Set Current Defaults
  5257.                         1   Length of following data
  5258.                         2   Set Default Pick Identifier X'0C'
  5259.                         3-4 Mask - OR of as many of the following bits as are required:
  5260.                             X'8000'  Pick identifier
  5261.                         5   Flags
  5262.                             X'0F'    Set indicated default attributes
  5263.                                      to initial values.
  5264.                                      (Data field is not present in this case).
  5265.                             X'8F'    Set indicated default attributes
  5266.                                      to specified values.
  5267.                         6-n Data  -  Data values as required, in the
  5268.                                      following order if present.
  5269.                             No space is reserved for attributes for which the corresponding Mask
  5270.                             flag was not set.
  5271.                             (4 bytes)   - Pick identifier
  5272.  
  5273.                         0   X'E7' Set Bit-map Identifier
  5274.                         1   Length of following data X'07'
  5275.                         2-3 Usage Flags X'8000'
  5276.                         4-7 Bit-map handle
  5277.                         8   Lcid
  5278.  
  5279. Graphics Data (GAD): optional, repeating 
  5280.  
  5281.                   Structured Field Introducer
  5282.                   0-1   Length X'n+9'
  5283.                   2-4   GAD X'D3EEBB'
  5284.                   5     Flags X'00'
  5285.                   6-7   Segment sequence number X'0000'
  5286.  
  5287.                   Parameters (maximum length in one structured
  5288.                               field is 32759)
  5289.  
  5290.                   Graphics Segment (optional, repeating)
  5291.                   Segment data (including the Begin Segment
  5292.                   parameter) can be split at any point between
  5293.                   successive Graphics Data structured fields.
  5294.                   0     X'70' Begin Segment
  5295.                   1     Length of following data X'0E'
  5296.                   2-5   Segment identifier
  5297.                   6     Segment attributes (1)
  5298.                         0 B'1' Invisible
  5299.                         1 B'1' Propagate invisibility
  5300.                         2 B'1' Detectable
  5301.                         3 B'1' Propagate detectability
  5302.                         6 B'1' Dynamic
  5303.                         7 B'1' Fast chaining
  5304.                   7     Segment attributes (2)
  5305.                         0 B'1' Non-chained
  5306.                         3 B'1' Prolog
  5307.                   8-9   Segment data length (low-order 2 bytes)
  5308.                   10-13 Reserved
  5309.                   14-15 Segment data length (high-order 2 bytes)
  5310.                   16-n  Graphics orders (see Graphics Orders)
  5311.  
  5312.  
  5313. End Graphics Object (EGR) 
  5314.  
  5315.             Structured Field Introducer
  5316.             0-1   Length X'0010'
  5317.             2-4   EGR X'D3A9BB'
  5318.             5     Flags X'00'
  5319.             6-7   Segment sequence number X'0000'
  5320.  
  5321.             Parameters
  5322.             0-7 Graphics object name C'0000 0007'
  5323.  
  5324. End Resource Group (ERG): required 
  5325.  
  5326.       Structured Field Introducer
  5327.       0-1   Length X'0010'
  5328.       2-4   ERG X'D3A9C6'
  5329.       5     Flags X'00'
  5330.       6-7   Segment sequence number X'0000'
  5331.  
  5332.       Parameters
  5333.       0-7 Resource Group name   C'0000 0002'
  5334.  
  5335. End Document (EDT): required
  5336.  
  5337. Structured Field Introducer
  5338. 0-1   Length X'0010'
  5339. 2-4   EDT X'D3A9A8'
  5340. 5     Flags X'00'
  5341. 6-7   Segment sequence number X'0000'
  5342.  
  5343. Parameters
  5344. 0-7   Document name   C'0000 0001'
  5345.  
  5346.  
  5347. ΓòÉΓòÉΓòÉ 2.9. Resource Files ΓòÉΓòÉΓòÉ
  5348.  
  5349. This section describes the syntax for the resource language using railroad 
  5350. syntax, and describes the formats used. 
  5351.  
  5352. Resource files are used to build dialog templates, menu templates, accelerator 
  5353. tables, extended attribute association tables, keyboard scancode mapping 
  5354. tables, keyboard names and fonts. The files must be compiled before they can be 
  5355. used by application programs. 
  5356.  
  5357. How to Read the Syntax Definitions 
  5358.  
  5359. Throughout this reference, syntax is described using the following structure. 
  5360.  
  5361. o Read the syntax diagrams from left to right, from top to bottom, following 
  5362.   the path of the line. 
  5363.  
  5364.   The ΓöÇΓöÇΓöÇ symbol indicates the beginning of a statement. 
  5365.  
  5366.   The ΓöÇΓöÇΓöÇ symbol indicates that the statement syntax is continued on the next 
  5367.   line. 
  5368.  
  5369.   The ΓöÇΓöÇΓöÇ symbol indicates that a statement is continued from the previous 
  5370.   line. 
  5371.  
  5372.   The ΓöÇΓöÇΓöÇ symbol indicates the end of a statement. 
  5373.  
  5374.   Diagrams of syntactical units other than complete statements start with the 
  5375.   ΓöÇΓöÇΓöÇ symbol and end with the ΓöÇΓöÇΓöÇ symbol. 
  5376.  
  5377. o Required items appear on the horizontal line (the main path). 
  5378.  
  5379.  
  5380.     ΓöÇΓöÇΓöÇSTATEMENTΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇrequired_itemΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5381.  
  5382. o Optional items appear below the main path. 
  5383.  
  5384.  
  5385.     ΓöÇΓöÇΓöÇSTATEMENTΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5386.                        ΓööΓöÇoptional_itemΓöÇΓöÿ
  5387.  
  5388. o If a choice can be made from two or more items, they appear vertically, in a 
  5389.   stack. 
  5390.  
  5391.   If one of the items must be chosen, one item of the stack appears on the main 
  5392.   path. 
  5393.  
  5394.  
  5395.     ΓöÇΓöÇΓöÇSTATEMENTΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇrequired_choice1ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5396.                      ΓööΓöÇΓöÇrequired_choice2ΓöÇΓöÇΓöÿ
  5397.  
  5398.   If choosing one of the items is optional, the entire stack appears below the 
  5399.   main path. 
  5400.  
  5401.  
  5402.     ΓöÇΓöÇΓöÇSTATEMENTΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5403.                      Γö£ΓöÇΓöÇoptional_choice1ΓöÇΓöÇΓöñ
  5404.                      ΓööΓöÇΓöÇoptional_choice2ΓöÇΓöÇΓöÿ
  5405.  
  5406. o An arrow returning to the left above the main path indicates an item that can 
  5407.   be repeated. 
  5408.  
  5409.                      ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5410.                                        Γöé
  5411.     ΓöÇΓöÇΓöÇSTATEMENTΓöÇΓöÇΓöÇΓöÇΓöÇrepeatable_itemΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5412.  
  5413.   A repeat arrow above a stack indicates that a choice can be made from the 
  5414.   stacked items, or a single choice can be repeated. 
  5415.  
  5416. o Keywords appear in uppercase, for example: 
  5417.  
  5418.        PARM1
  5419.   They must be spelled exactly as shown. Variables appear in all lowercase 
  5420.   letters, for example: 
  5421.  
  5422.        parmx
  5423.   They represent user-supplied names or values. 
  5424.  
  5425. o If punctuation marks, parentheses, arithmetic operators, or such symbols are 
  5426.   shown, they must be entered as part of the syntax. 
  5427.  
  5428.  
  5429. ΓòÉΓòÉΓòÉ 2.9.1. Definitions Used in all Resources ΓòÉΓòÉΓòÉ
  5430.  
  5431. The definitions used in all resources are defined in below in Specification of 
  5432. Values and Resource and Load Memory Options. 
  5433.  
  5434. Specification of Values 
  5435.  
  5436. These rules apply to values specified in resources: 
  5437.  
  5438. o Coordinates must be integers. There must be no space between the sign of the 
  5439.   value and the value itself. For example, "-1" is allowed but "- 1" is not. 
  5440.  
  5441. o Resource identifiers must be positive integers or names that resolve to 
  5442.   positive integers. 
  5443.  
  5444. o Real values, containing a decimal point, cannot be used. 
  5445.  
  5446. Resource Load and Memory Options 
  5447.  
  5448. The following options define when each resource is loaded and how memory is 
  5449. allocated for each resource. 
  5450.  
  5451. LOADOPTION          Resource loading options. 
  5452.  
  5453.    PRELOAD                  Resource is loaded immediately. 
  5454.    LOADONCALL               Resource is loaded when called. 
  5455.  
  5456. MEMOPTION           Resource memory options. 
  5457.  
  5458.    FIXED                    Resource remains at a fixed memory location. 
  5459.    MOVEABLE                 Resource can be moved if necessary to compact. 
  5460.    DISCARDABLE              Resource can be discarded if no longer needed. 
  5461.    SEGALIGN                 Resources are aligned on 64K byte boundaries. 
  5462.  
  5463.  
  5464. ΓòÉΓòÉΓòÉ 2.9.1.1. LOADOPTION ΓòÉΓòÉΓòÉ
  5465.  
  5466. LOADOPTION Resource loading options 
  5467.  
  5468. PRELOAD                  Resource is loaded immediately. 
  5469. LOADONCALL               Resource is loaded when called. 
  5470.  
  5471.  
  5472. ΓòÉΓòÉΓòÉ 2.9.1.2. MEMOPTION ΓòÉΓòÉΓòÉ
  5473.  
  5474. MEMOPTION Resource memory options. 
  5475.  
  5476. FIXED                    Resource remains at a fixed memory location. 
  5477. MOVEABLE                 Resource can be moved if necessary to compact memory. 
  5478. DISCARDABLE              Resource can be discarded if no longer needed. 
  5479. SEGALIGN                 Resources are aligned on 64K byte boundaries. 
  5480.  
  5481.  
  5482. ΓòÉΓòÉΓòÉ 2.9.2. Resource Script File Specification ΓòÉΓòÉΓòÉ
  5483.  
  5484. The resource script file defines the names and attributes of the resources to 
  5485. be added to the executable file of the application. The file consists of one or 
  5486. more resource statements that define the resource type and original file, if 
  5487. any. See the following for a description of the resource statements: 
  5488.  
  5489. o Single-Line Statements 
  5490. o User-Defined Resources 
  5491. o Directives 
  5492. o Multiple-Line Statements. 
  5493.  
  5494.  
  5495. ΓòÉΓòÉΓòÉ 2.9.2.1. Single-Line Statements ΓòÉΓòÉΓòÉ
  5496.  
  5497. The general form for all single-line statements is: 
  5498.  
  5499.  ΓöÇΓöÇresourcetypeΓöÇΓöÇnameidΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇ
  5500.                            ΓööΓöÇloadoptionΓöÇΓöÿ
  5501.  
  5502.  ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇfilenameΓöÇΓöÇ
  5503.     ΓööΓöÇmemoptionΓöÇΓöÿ
  5504.  
  5505. resourcetype (USHORT) 
  5506.    One of the following keywords, specifying the type of resource to be loaded: 
  5507.  
  5508.    Keyword             Resource type 
  5509.  
  5510.    BITMAP              A bit-map resource is a custom bit map that an 
  5511.                        application intends to use in its screen display or as 
  5512.                        an item in a menu. 
  5513.  
  5514.    DEFAULTICON         This keyword installs the filename.ico icon definition 
  5515.                        under the ICON EA of the program file. 
  5516.  
  5517.                        Example 
  5518.  
  5519.                                                DEFAULTICON <filename.ico>
  5520.  
  5521.    DLGINCLUDE          This statement tells the dialog editor which file to use 
  5522.                        as an include file for the dialogs in the resource file. 
  5523.                        The nameid is not applicable. 
  5524.  
  5525.    FONT                A font resource is a file containing a font. 
  5526.  
  5527.    ICON                An icon resource is a bit map defining the shape of the 
  5528.                        icon to be used for a given application. 
  5529.  
  5530.    POINTER             A pointer resource is a bit map defining the shape of 
  5531.                        the pointing device pointer on the display screen. 
  5532.  
  5533. nameid (USHORT) 
  5534.    is either a unique name or an integer number identifying the resource.  For 
  5535.    a FONT resource, the nameid must be a number; it cannot be a name. 
  5536.  
  5537. loadoption (LOADOPTION) 
  5538.    The default is LOADONCALL. 
  5539.  
  5540. memoption (MEMOPTION) 
  5541.    The default is MOVEABLE and DISCARDABLE for POINTER, ICON, and FONT 
  5542.    resources.  The default for BITMAP resources is MOVEABLE. The FIXED option 
  5543.    overrides both MOVEABLE and DISCARDABLE. The SEGALIGN option can be 
  5544.    specified independently of other options, if it is not present the default 
  5545.    (for all resources) is that the resource is not aligned on a 64KB boundary. 
  5546.  
  5547. filename (STR) 
  5548.    An ASCII string specifying the OS/2 name of the file containing the 
  5549.    resource. A full path name must be given if the file is not in the current 
  5550.    working directory. 
  5551.  
  5552. Example 
  5553.  
  5554. POINTER pointer point.cur
  5555. POINTER pointer DISCARDABLE point.cur
  5556. POINTER 10 custom.cur
  5557.  
  5558. ICON desk desk.ico
  5559. ICON desk DISCARDABLE desk.ico
  5560. ICON 11 custom.ico
  5561.  
  5562. BITMAP disk disk.bmp
  5563. BITMAP disk DISCARDABLE disk.bmp
  5564. BITMAP 12 custom.bmp
  5565.  
  5566. FONT 5 CMROMAN.FNT
  5567.  
  5568.  
  5569. ΓòÉΓòÉΓòÉ 2.9.2.2. User-Defined Resources ΓòÉΓòÉΓòÉ
  5570.  
  5571. An application can also define its own resource. The resource can be any data 
  5572. that the application intends to use. A user-defined resource statement has the 
  5573. form: 
  5574.  
  5575.  ΓöÇΓöÇΓöÇresource-typeΓöÇΓöÇΓöÇtypeIDΓöÇΓöÇΓöÇnameIDΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5576.  
  5577.  ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇfilenameΓöÇΓöÇΓöÇΓöÇ
  5578.       ΓööΓöÇΓöÇloadoptionΓöÇΓöÇΓöÿ   ΓööΓöÇΓöÇmemoptionΓöÇΓöÇΓöÿ
  5579.  
  5580. typeID 
  5581.    Either a unique name or an integer number identifying the resource type.  If 
  5582.    a number is given, it must be greater than 255. The type numbers 1 through 
  5583.    255 are reserved for existing and future predefined resource types. 
  5584.  
  5585. nameID 
  5586.    Either a unique name or an integer number identifying the resource. 
  5587.  
  5588. loadoption (LOADOPTION) 
  5589.    The default is LOADONCALL. 
  5590.  
  5591. memoption (MEMOPTION) 
  5592.    The default is MOVEABLE. 
  5593.  
  5594. filename 
  5595.    An ASCII string specifying the OS/2 name of the file containing the cursor 
  5596.    bit map. A full path name must be given if the file is not in the current 
  5597.    working directory. 
  5598.  
  5599. Example 
  5600.  
  5601. RESOURCE MYRES   array   DATA.RES
  5602. RESOURCE 300     14      CUSTOM.RES
  5603.  
  5604.  
  5605. ΓòÉΓòÉΓòÉ 2.9.2.2.1. RCDATA statement ΓòÉΓòÉΓòÉ
  5606.  
  5607. The RCDATA statement is provided to allow an application to define a simple 
  5608. data resource. 
  5609.  
  5610.  
  5611.  ΓöÇRCDATAΓöÇΓöÇΓöÇidΓöÇΓöÇΓöÇΓöÇloadoptionΓöÇΓöÇΓöÇΓöÇΓöÇmemoptionΓöÇΓöÇΓöÇ
  5612.  
  5613.              ΓöîΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÉ
  5614.               ΓööΓöÇnewlineΓöÇΓöÿ Γöé
  5615.  ΓöÇΓöÇΓöÇBEGINΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇdataΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇENDΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5616.  
  5617. id 
  5618.    Either a unique name or an integer number identifying the resource. 
  5619.  
  5620. loadoption (LOADOPTION) 
  5621.    The default is LOADONCALL. 
  5622.  
  5623. memoption (MEMOPTION) 
  5624.    The default is MOVEABLE. 
  5625.  
  5626. data 
  5627.    A number or string. 
  5628.  
  5629. Example: 
  5630.  
  5631. RCDATA 4
  5632. BEGIN
  5633.  "Sample string."
  5634.  "TEST DATA."
  5635.  "A message."
  5636. END
  5637.  
  5638.  
  5639. ΓòÉΓòÉΓòÉ 2.9.2.3. Directives ΓòÉΓòÉΓòÉ
  5640.  
  5641. The resource directives are special statements that define actions to perform 
  5642. on the file before it is compiled. The directives can assign values to names, 
  5643. include the contents of files, and control compilation of the file. 
  5644.  
  5645. #include filename 
  5646.  
  5647. rcinclude filename 
  5648.  
  5649.    These directives copy the contents of the file specified by filename into 
  5650.    the resource before it is compiled. If rcinclude is used, the entire file is 
  5651.    copied. If #include is used, only #define statements are copied. 
  5652.  
  5653.    Note:  If an rcinclude is to be commented out, the open comment (/*) must 
  5654.           appear on the same line as the directive. 
  5655.  
  5656.    Filename is an ASCII string. A full path name must be given if the file is 
  5657.    not in the current directory or in the directory specified by the INCLUDE 
  5658.    environment variable. The file extensions .I and .TMP must not be used as 
  5659.    these are reserved for system use. 
  5660.  
  5661.    The filename parameter is handled as a C string, and two back-slashes must 
  5662.    be given wherever one is expected in the path name (for example, root\\sub.) 
  5663.    Or, a single forward slash (/) can be used instead of double back-slashes 
  5664.    (for example, root/sub.) 
  5665.  
  5666.    Example 
  5667.  
  5668.       #include "wincalls.h"
  5669.  
  5670.       MENU PenSelect
  5671.       BEGIN
  5672.              MENUITEM "black pen", BLACK_PEN
  5673.       END
  5674.  
  5675.    Files included in resource script files constants that use #define 
  5676.    statements may not include any casting of those constants that are used in 
  5677.    the resource script.  The resource compiler does not parse this casting 
  5678.    syntax.  For example, the following statement may not be included: 
  5679.  
  5680.       #define IDBUTTON1  (USHORT) 3
  5681.  
  5682.    If casting is required for C source compilation, you may use two statements 
  5683.    such as: 
  5684.  
  5685.       #define IDBUTTON1    3
  5686.       #define CSRC_IDBUTTON1    ((USHORT)IDBUTTON1)
  5687.  
  5688. #define name value 
  5689.  
  5690.    This directive assigns the given value to name. All subsequent occurrences 
  5691.    of name are replaced by the value. 
  5692.  
  5693.    name is any combination of letters, digits, or punctuation. 
  5694.  
  5695.    value is any integer, character string, or line of text. 
  5696.  
  5697.    Example 
  5698.  
  5699.       #define     nonzero        1
  5700.       #define     USERCLASS   "MyControlClass"
  5701.  
  5702. #undef name 
  5703.  
  5704.    This directive removes the current definition of name. All subsequent 
  5705.    occurrences of name are processed without replacement. 
  5706.  
  5707.    name is any combination of letters, digits, or punctuation. 
  5708.  
  5709.    Example: 
  5710.  
  5711.       #undef     nonzero
  5712.       #undef     USERCLASS
  5713.  
  5714. #ifdef name 
  5715.  
  5716.    This directive performs a conditional compilation of the resource file by 
  5717.    checking the specified name.  If the name has been defined using a #define 
  5718.    directive, #ifdef directs the resource compiler to continue with the 
  5719.    statement immediately after it.  If the name has not been defined, #ifdef 
  5720.    directs the compiler to skip all statements up to the next #endif directive. 
  5721.  
  5722.    name is the name to be checked by the directive. 
  5723.  
  5724.    Example: 
  5725.  
  5726.       #ifdef Debug
  5727.       FONT 4 errfont.fnt
  5728.       #endif
  5729.  
  5730. #ifndef name 
  5731.  
  5732.    This directive performs a conditional compilation of the resource file by 
  5733.    checking the specified name.  If the name has not been defined or if its 
  5734.    definition has been removed using the #undef directive, #ifndef directs the 
  5735.    resource compiler to continue processing statements up to the next #endif, 
  5736.    #else, or #elif directive, then skip to the statement after the #endif.  If 
  5737.    the name is defined, #ifndef directs the compiler to skip to the next 
  5738.    #endif, #else, or #elif directive. 
  5739.  
  5740.    name is the name to be checked by the directive. 
  5741.  
  5742.    Example: 
  5743.  
  5744.       #ifndef Optimize
  5745.       FONT 4 errfont.fnt
  5746.       #endif
  5747.  
  5748. #if constant expression 
  5749.  
  5750.    This directive performs a conditional compilation of the resource file by 
  5751.    checking the specified constant-expression.  If the constant-expression is 
  5752.    nonzero, #if directs the resource compiler to continue processing statements 
  5753.    up to the next #endif, #else, or #elif directive, then skip to the statement 
  5754.    after the #endif.  If the constant-expression is zero, #if directs the 
  5755.    compiler to skip to the next #endif, #else, or #elif directive. 
  5756.  
  5757.    constant expression is a defined name, an integer constant, or an expression 
  5758.    consisting of names, integers, and arithmetic and relational operators. 
  5759.  
  5760.    Example 
  5761.  
  5762.       #if Version<3
  5763.       FONT 4 errfont.fnt
  5764.       #endif
  5765.  
  5766. #elif constant expression 
  5767.  
  5768.    This directive marks an optional clause of a conditional compilation block 
  5769.    defined by an #ifdef, #ifndef, or #if directive.  The directive carries out 
  5770.    conditional compilation of the resource file by checking the specified 
  5771.    constant-expression.  If the constant-expression is nonzero, #elif directs 
  5772.    the resource compiler to continue processing statements up to the next 
  5773.    #endif, #else, or #elif directive, then skip to the statement after the 
  5774.    #endif.  If the constant-expression is zero, #elif directs the compiler to 
  5775.    skip to the next #endif, #else, or #elif directive.  Any number of #elif 
  5776.    directives can be used in a conditional block. 
  5777.  
  5778.    constant expression Is a defined name, an integer constant, or an expression 
  5779.    consisting of names, integers, and arithmetic and relational operators. 
  5780.  
  5781.    Example: 
  5782.  
  5783.       #if Version<3
  5784.       FONT 4 italic.fnt
  5785.       #elif Version<7
  5786.       FONT 4 bold.fnt
  5787.       #endif
  5788.  
  5789. #else 
  5790.  
  5791.    This directive marks an optional clause of a conditional compilation block 
  5792.    defined by an #ifdef, #ifndef, or #if directive.  The #else directive must 
  5793.    be the last directive before #endif. 
  5794.  
  5795.    Example: 
  5796.  
  5797.       #ifdef Debug
  5798.       FONT 4 italic.fnt
  5799.       #else
  5800.       FONT 4 bold.fnt
  5801.       #endif
  5802.  
  5803. #endif 
  5804.  
  5805.    This directive marks the end of a conditional compilation block defined by 
  5806.    an #ifdef, #ifndef, or #if directive. One #endif is required for each 
  5807.    #ifdef, #ifndef, and #if directive. 
  5808.  
  5809.  
  5810. ΓòÉΓòÉΓòÉ 2.9.2.4. Multiple-Line Statements ΓòÉΓòÉΓòÉ
  5811.  
  5812. This sections covers Code Page Flagging, Keyboard Resources, and the following 
  5813. multiple-line statements: 
  5814.  
  5815. o ACCELTABLE Statement 
  5816. o ASSOCTABLE Statement 
  5817. o MENU Statement 
  5818. o STRINGTABLE Statement 
  5819. o Dialog and Window Template Statements 
  5820.  
  5821.  
  5822. ΓòÉΓòÉΓòÉ 2.9.2.4.1. Code Page Flagging ΓòÉΓòÉΓòÉ
  5823.  
  5824. The CODEPAGE statement may be placed within the source, to set the code page 
  5825. used for these resources: 
  5826.  
  5827. ACCELTABLE 
  5828. MENU 
  5829. STRINGTABLE 
  5830. DIALOGTEMPLATE and WINDOWTEMPLATE. 
  5831.  
  5832. The CODEPAGE statement cannot be encoded within any other statement. All items 
  5833. following a CODEPAGE statement are assumed to be in that code page. The code 
  5834. page is encoded in the resource, and the data in the resource is assumed to be 
  5835. in the specified code page.  However, no checking is performed. 
  5836.  
  5837. These code pages can be specified: 
  5838.  
  5839. 437 
  5840. 850 
  5841. 860 
  5842. 863 
  5843. 865. 
  5844.  
  5845. If the code page is not specified, code page 850 is assumed. 
  5846.  
  5847.  
  5848. ΓòÉΓòÉΓòÉ 2.9.2.4.2. Keyboard Resources ΓòÉΓòÉΓòÉ
  5849.  
  5850. RT_FKALONG (=17), is defined in BSEDOS.H, and the resource compiler (RC.EXE) 
  5851. recognizes FKALONG. This type identifies a 256-byte table, that can be used for 
  5852. either primary or secondary scan-code mapping. 
  5853.  
  5854. The resource ID contains three bytes, the least significant byte identifying 
  5855. the type of scan-code mapping table as follows: 
  5856.  
  5857. 0    Primary scan-code mapping 
  5858. 1    Secondary scan-code mapping. 
  5859.  
  5860. The other two bytes are 0 for the primary mapping table, and the keyboard ID 
  5861. (as defined in PMWINP.H) for secondary mapping tables. This is to enable simple 
  5862. support to be provided for future keyboards with conflicting scan codes. 
  5863.  
  5864. The primary scan-code mapping table in the interrupt handler is stored as a 
  5865. resource of this type. The secondary scan-code mapping table in the interrupt 
  5866. handler is also stored as a resource of this type. 
  5867.  
  5868. Depending on which keyboard is attached, the resources are loaded when the 
  5869. system is initialized, and transferred to RING-0 byte arrays, where they can be 
  5870. accessed by the interrupt handler as necessary. A default primary scan-code 
  5871. mapping table is transferred if the resource cannot be loaded. 
  5872.  
  5873.  
  5874. ΓòÉΓòÉΓòÉ 2.9.2.4.3. ACCELTABLE Statement ΓòÉΓòÉΓòÉ
  5875.  
  5876. The ACCELTABLE statement defines a table of accelerator keys for an 
  5877. application. 
  5878.  
  5879. An accelerator is a keystroke defined by the application to give the user a 
  5880. quick way to perform a task. The WinGetMsg function automatically translates 
  5881. accelerator messages from the application queue into WM_COMMAND, WM_HELP, or 
  5882. WM_SYSCOMMAND messages. 
  5883.  
  5884. The ACCELTABLE statement has the form: 
  5885.  
  5886.  
  5887.  ΓöÇΓöÇΓöÇACCELTABLEΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇ
  5888.                   ΓööΓöÇΓöÇidΓöÇΓöÇΓöÿ    ΓööΓöÇmemoptionΓöÇΓöÿ
  5889.  
  5890.  ΓöÇΓöÇΓöÇΓöÇBEGINΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5891.  
  5892.    ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5893.    Γöé                        ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉΓöé
  5894.                                          ΓöéΓöé
  5895.  ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇacceloptionΓöÇΓöÇΓö┤Γö┤ΓöÇ
  5896.     ΓöökeyvalΓöÇΓöÿ   ΓööΓöÇcmdΓöÇΓöÿ
  5897.  
  5898.  ΓöÇΓöÇΓöÇΓöÇENDΓöÇΓöÇΓöÇ
  5899.  
  5900. id (USHORT) 
  5901.    The resource identifier. 
  5902.  
  5903. memoption 
  5904.    Optional.  It consists of the following keyword or keywords, specifying 
  5905.    whether the resource is fixed or movable, and whether it can be discarded: 
  5906.  
  5907.    FIXED             Resource remains at a fixed memory location. 
  5908.  
  5909.    MOVEABLE          Resource can be moved if necessary to compact memory. 
  5910.  
  5911.    DISCARDABLE       Resource can be discarded if no longer needed. 
  5912.  
  5913. keyval (USHORT) 
  5914.    The accelerator character code.  This can be either a constant or a quoted 
  5915.    character. If it is a quoted character, the CHAR acceloption is assumed.  If 
  5916.    the quoted character is preceded with a caret character (^), a control 
  5917.    character is specified as if the CONTROL acceloption had been used. 
  5918.  
  5919. cmd (USHORT) 
  5920.    The value of the WM_COMMAND, WM_HELP, or WM_SYSCOMMAND message generated 
  5921.    from the accelerator for the indicated key. 
  5922.  
  5923. acceloption (BIT_16) 
  5924.    Defines the kind of accelerator. 
  5925.  
  5926.    The following options are available: 
  5927.  
  5928.       ALT 
  5929.       CHAR 
  5930.       CONTROL 
  5931.       HELP 
  5932.       LONEKEY 
  5933.       SCANCODE 
  5934.       SHIFT 
  5935.       SYSCOMMAND 
  5936.       VIRTUALKEY. 
  5937.  
  5938. The VIRTUALKEY, SCANCODE, LONEKEY, and CHAR acceloptions specify the type of 
  5939. message that matches the accelerator.  Only one of these options can be 
  5940. specified for each accelerator. For information on the corresponding KC_* 
  5941. values, see WM_CHAR. 
  5942.  
  5943. The acceloptions SHIFT, CONTROL, and ALT, cause a match of the accelerator only 
  5944. if the corresponding key is down. 
  5945.  
  5946. If there are two accelerators that use the same key with different SHIFT, 
  5947. CONTROL, or ALT options, the more restrictive accelerator should be specified 
  5948. first in the table.  For example, Shift-Enter should be placed before Enter. 
  5949.  
  5950. The SYSCOMMAND acceloption causes the keystroke to be passed to the application 
  5951. as a WM_SYSCOMMAND message. The HELP acceloption causes the keystroke to be 
  5952. passed to the application as a WM_HELP message. If neither is specified, a 
  5953. WM_COMMAND message is used. 
  5954.  
  5955. Example: 
  5956.  
  5957. ACCELTABLE MainAcc
  5958. BEGIN
  5959.      VK_F1,101,HELP
  5960.      VK_F3,102,SYSCOMMAND
  5961. END
  5962.  
  5963. This generates a WM_HELP with value 101 from VIRTUALKEY accelerator F1 and a 
  5964. WM_SYSCOMMAND with value 102 from VIRTUALKEY accelerator F3. 
  5965.  
  5966.  
  5967. ΓòÉΓòÉΓòÉ 2.9.2.4.4. ASSOCTABLE Statement ΓòÉΓòÉΓòÉ
  5968.  
  5969. The ASSOCTABLE statement defines the extended attributes (EA) for an 
  5970. application. 
  5971.  
  5972. The ASSOCTABLE statement has the form: 
  5973.  
  5974.  
  5975.  ΓöÇΓöÇΓöÇΓöÇASSOCTABLEΓöÇΓöÇassoctableidΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5976.  
  5977.  
  5978.  ΓöÇΓöÇΓöÇΓöÇBEGINΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5979.  
  5980.  
  5981.     ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5982.                                            Γöé
  5983.  ΓöÇΓöÇΓöÇassocname,extensionsΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓö¼Γö┤ΓöÇ
  5984.                           ΓööΓöÇflagsΓöÿ    ΓööiconΓöÿ
  5985.  
  5986.  ΓöÇΓöÇΓöÇΓöÇENDΓöÇΓöÇΓöÇ
  5987.  
  5988. The source for the ASSOCTABLE description is contained in the resource file for 
  5989. a particular project: 
  5990.  
  5991. ASSOCTABLE assoctableid
  5992. BEGIN
  5993. "association name", "extension", flags, icon filename
  5994. "association name", "extension", flags, icon filename
  5995. ...
  5996. END
  5997.  
  5998. association name 
  5999.    Program recognizes data files of this EA TYPE. This is the same name found 
  6000.    in the TYPE field of data files. 
  6001.  
  6002. assoctableid 
  6003.    A name or number used to identify the assoctable resource. 
  6004.  
  6005. extension 
  6006.    3 letter file extension that is used to identify files of this type if they 
  6007.    have no EA TYPE entry. (This may be empty.) 
  6008.  
  6009. flags 
  6010.  
  6011.    EAF_DEFAULTOWNER 
  6012.       The default application for the file. 
  6013.  
  6014.    EAF_UNCHANGEABLE 
  6015.       This flag is set if the entry in the ASSOCTABLE is not to be edited. 
  6016.  
  6017.    EAF_REUSEICON 
  6018.       This flag is specified if a previously defined icon in the ASSOCTABLE is 
  6019.       to be reused. Entries with this flag set have no icon data defined. The 
  6020.       icon used for this entry is the icon used for the previous entry (see 
  6021.       below). Note that EAF_* flags may be ORed together when specified in the 
  6022.       ASSOCTABLE. 
  6023.  
  6024. icon filename 
  6025.    Filename of the icon used to represent this file type. (This may be empty.) 
  6026.  
  6027. Example 
  6028.  
  6029. ASSOCTABLE 3000
  6030. BEGIN
  6031. "Product XYZ Spreadsheet", "xys", EAF_DEFAULTOWNER,
  6032.                                           xyzspr.ico
  6033. "Product XYZ Chart", "xyc", EAF_DEFAULTOWNER |
  6034.                                      EAF_REUSEICON
  6035. END
  6036.  
  6037.  
  6038. ΓòÉΓòÉΓòÉ 2.9.2.4.5. Dialog and Window Template Statements ΓòÉΓòÉΓòÉ
  6039.  
  6040. This section describes how to define dialog and window templates. 
  6041.  
  6042. It also describes the control data and presentation parameter structures that 
  6043. the application needs to create windows and define dialog templates. 
  6044.  
  6045. DLGTEMPLATE and WINDOWTEMPLATE statements are used by an application to create 
  6046. predefined window and dialog resource templates. These statements are treated 
  6047. identically by the resource compiler and have the following format: 
  6048.  
  6049.  ΓöÇΓöÇΓöÇΓö¼ΓöÇDLGTEMPLATEΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇresourceidΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6050.       ΓööΓöÇWINDOWTEMPLATEΓöÇΓöÇΓöÿ
  6051.  
  6052.  ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ
  6053.       ΓööloadoptionΓöÇΓöÿΓööΓöÇmemoptionΓöÇΓöÿΓööΓöÇcodepageΓöÇΓöÿ
  6054.  
  6055.  ΓöÇΓöÇΓöÇBEGINΓöÇΓöÇΓö¼ΓöÇΓöÇDIALOG statementΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇENDΓöÇΓöÇΓöÇ
  6056.             Γö£ΓöÇΓöÇCONTROL statementΓöÇΓöÇΓöñ
  6057.             ΓööΓöÇΓöÇWINDOW statementΓöÇΓöÇΓöÇΓöÿ
  6058.  
  6059. In the following description of the parts of the DLGTEMPLATE and WINDOWTEMPLATE 
  6060. statements, data types are shown after each parameter or option. These are the 
  6061. data types that the parameter or option is converted to when it is compiled. 
  6062.  
  6063. Purpose 
  6064.    The DLGTEMPLATE or WINDOWTEMPLATE statement marks the beginning of a window 
  6065.    template. It defines the name of the window, and its memory and load 
  6066.    options. 
  6067.  
  6068. resourceid (USHORT) 
  6069.    Either a unique name or an integer number identifying the resource. 
  6070.  
  6071. loadoption (LOADOPTION) 
  6072.    The default is LOADONCALL. 
  6073.  
  6074. memoption (MEMOPTION) 
  6075.    The default is MOVEABLE. 
  6076.  
  6077. code page (USHORT) 
  6078.    The code page of the text in the template. 
  6079.  
  6080. Alternatively, ({( can be used in place of BEGIN and (}) in place of END. 
  6081.  
  6082. The DLGTEMPLATE and WINDOWTEMPLATE keywords are synonymous. 
  6083.  
  6084. The DIALOG statement defines a dialog-box window that can be created by an 
  6085. application and has the following format: 
  6086.  
  6087.  ΓöÇΓöÇΓöÇDIALOGΓöÇΓöÇΓöÇtextΓöÇ,ΓöÇidΓöÇ,ΓöÇxΓöÇ,ΓöÇyΓöÇ,ΓöÇcxΓöÇ,ΓöÇcyΓöÇΓöÇΓöÇΓöÇ
  6088.  
  6089.  ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6090.          ΓööΓöÇ,styleΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6091.                   ΓööΓöÇ,controlΓöÇΓöÿ
  6092.  
  6093.  ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼
  6094.   Γöé                 ΓöéΓöéΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉΓöé
  6095.   Γöé                 ΓöéΓöé                     ΓöéΓöé
  6096.   ΓööCTLDATAΓöÇstatementΓöÿΓööΓöÇPRESPARAMSΓöÇstatementΓöÇΓö┤Γöÿ
  6097.  
  6098.            ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6099.                                    Γöé
  6100.  ΓöÇBEGINΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇDIALOGΓöÇstatementΓöÇΓöÇΓö¼ΓöÇΓö┤ΓöÇΓöÇENDΓöÇΓöÇΓöÇ
  6101.              Γö£ΓöÇΓöÇCONTROLΓöÇstatementΓöÇΓöñ
  6102.              ΓööΓöÇΓöÇWINDOWΓöÇstatementΓöÇΓöÇΓöÿ
  6103.  
  6104. Control Data Statement 
  6105. Presentation Parameters Statement 
  6106.  
  6107. The WINDOW and CONTROL statements have the format: 
  6108.  
  6109.  ΓöÇΓö¼ΓöÇWINDOWΓöÇΓö¼ΓöÇtext,ΓöÇid,ΓöÇx,ΓöÇy,ΓöÇcx,ΓöÇcy,ΓöÇclassΓöÇΓöÇ
  6110.     ΓööΓöÇCONTROLΓöÿ
  6111.  
  6112.  ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇ
  6113.     ΓööΓöÇΓöÇΓöÇ,styleΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6114.                  ΓööΓöÇΓöÇ,controlΓöÇΓöÇΓöÇΓöÿ
  6115.  
  6116.  
  6117.  ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼
  6118.   Γöé                 ΓöéΓöéΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉΓöé
  6119.   Γöé                 ΓöéΓöé                     ΓöéΓöé
  6120.   ΓööCTLDATAΓöÇstatementΓöÿΓööΓöÇPRESPARAMSΓöÇstatementΓöÇΓö┤Γöÿ
  6121.  
  6122.            ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6123.                                    Γöé
  6124.  ΓöÇBEGINΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇDIALOGΓöÇstatementΓöÇΓöÇΓö¼ΓöÇΓö┤ΓöÇΓöÇENDΓöÇΓöÇΓöÇ
  6125.              Γö£ΓöÇΓöÇCONTROLΓöÇstatementΓöÇΓöñ
  6126.              ΓööΓöÇΓöÇWINDOWΓöÇstatementΓöÇΓöÇΓöÿ
  6127.  
  6128. Control Data Statement 
  6129. Presentation Parameters Statement 
  6130.  
  6131. Note:  The WINDOW and CONTROL keywords are synonymous. 
  6132.  
  6133. The DIALOG, CONTROL, and WINDOW statements between the BEGIN and END statements 
  6134. are defined as child windows. Presentation parameters always apply to the whole 
  6135. control. They can not be changed for the individual items within the control. 
  6136.  
  6137. Following is the description of the parameters for these statements. 
  6138.  
  6139. Purpose. 
  6140.    These statements mark the beginning of a window. They define the starting 
  6141.    location on the display screen, its width, its height, and other details 
  6142.    such as style. 
  6143.  
  6144.    Note:  Not all values may be specified for each statement type. For details, 
  6145.           see the call syntax diagrams. 
  6146.  
  6147. text (STR) 
  6148.    A string, enclosed in double quotes, that is displayed in the title-bar 
  6149.    control, if it exists. To insert a double-quote character (") in the text, 
  6150.    use two double-quote characters (""). 
  6151.  
  6152. id (USHORT) 
  6153.    Item identifier. 
  6154.  
  6155. x,y (SHORT) 
  6156.    Integer numbers specifying the x- and y-coordinates on the display screen of 
  6157.    the lower left corner of the dialog. X and y are in dialog coordinates. The 
  6158.    exact meaning of the coordinates depends on the style defined by the style 
  6159.    argument.  For normal dialogs, the coordinates are relative to the origin of 
  6160.    the parent window.  For FCF_SCREENALIGN style boxes, the coordinates are 
  6161.    relative to the origin of the display screen.  With FCF_MOUSEALIGN, the 
  6162.    coordinates are relative to the position of the pointer at the time the 
  6163.    dialog is created. 
  6164.  
  6165. cx,cy (SHORT) 
  6166.    Integer numbers specifying the width and height of the window. 
  6167.  
  6168. class (STR) 
  6169.    The class of the window or control to be created. 
  6170.  
  6171.    Note:  For a DIALOG statement the class is fixed as WC_FRAME and cannot be 
  6172.           specified. 
  6173.  
  6174. style (BIT32) 
  6175.    Any additional window style, frame style, or other class-specific style. 
  6176.  
  6177.    The default style is WS_SYNCPAINT | WS_CLIPSIBLINGS | WS_SAVEBITS | 
  6178.    FS_DLGBORDER . If the FS_DLGBORDER or WS_SAVEBITS styles are not required, 
  6179.    they should be preceded by the keyword 'NOT'. For example: 
  6180.  
  6181.           NOT FS_DLGBORDER | FS_BORDER | NOT WS_SAVEBITS
  6182.  
  6183.    replaces the FS_DLGBORDER default style by the FS_BORDER style and removes 
  6184.    the WS_SAVEBITS style. Note that the logic of the NOT keyword is different 
  6185.    from the corresponding operator in the C language. 
  6186.  
  6187.    It is not possible to remove the default WS_SYNCPAINT and WS_CLIPSIBLINGS 
  6188.    styles. 
  6189.  
  6190. control (BIT32) 
  6191.    Frame Creation Flags (FCF_*) for the window. 
  6192.  
  6193.    This data is placed in the control data field in the correct format for a 
  6194.    window of class WC_FRAME. 
  6195.  
  6196.    Note:  FCF_SHELLPOSITION has no effect if specified in a template. 
  6197.  
  6198. CTLDATA Statement 
  6199.    A staterment used to define control data for the control. For more 
  6200.    information on this statement, see Control Data Statement 
  6201.  
  6202. PRESPARAMS 
  6203.    A statement used to define presentation parameters. For more information on 
  6204.    this statement, see Presentation Parameters Statement 
  6205.  
  6206.  
  6207. ΓòÉΓòÉΓòÉ 2.9.2.4.6. MENU Statement ΓòÉΓòÉΓòÉ
  6208.  
  6209. The MENU statement defines the contents of a menu resource.  A menu resource is 
  6210. a collection of information that defines the appearance and function of an 
  6211. application menu.  A menu can be used to create an action bar. 
  6212.  
  6213. The MENU statement has the form: 
  6214.  
  6215.  ΓöÇMENU-menuidΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ
  6216.                  ΓööΓöÇloadoptionΓöÇΓöÿΓööΓöÇmemoptionΓöÇΓöÿ
  6217.  
  6218.  ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6219.       ΓööΓöÇΓöÇcodepageΓöÇΓöÇΓöÿ
  6220.  
  6221.                ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6222.                                     Γöé
  6223.              ΓöîΓöÇΓöÇPRESPARAMSΓöÇstatementΓöÇΓö┤ΓöÉ
  6224.  ΓöÇΓöÇΓöÇΓöÇBEGINΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6225.           ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6226.                                   Γöé
  6227.  ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇMENUITEMΓöÇstatementΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇENDΓöÇΓöÇΓöÇΓöÇ
  6228.           Γöé                        Γöé
  6229.           ΓööΓöÇΓöÇΓöÇSUBMENUΓöÇstatementΓöÇΓöÇΓöÇΓöÇΓöÿ
  6230.  
  6231. Menu Item Statements 
  6232. Submenu Statements 
  6233. Presentation Parameters Statement. 
  6234.  
  6235. menuid (USHORT) 
  6236.    A name or number used to identify the menu resource. 
  6237.  
  6238. loadoption (LOADOPTION) 
  6239.    The default is LOADONCALL. 
  6240.  
  6241. memoption (MEMOPTION) 
  6242.    The default is MOVEABLE. 
  6243.  
  6244. codepage (USHORT) 
  6245.    The code page of the text. 
  6246.  
  6247. PRESPARAMS statement 
  6248.    A special resource statement used to define presentation parameters. These 
  6249.    are discussed in more detail in Presentation Parameters Statement. 
  6250.  
  6251. MENUITEM statement 
  6252.    A special resource statement used to define the items in the menu. These are 
  6253.    discussed in more detail in Menu Item Statements. 
  6254.  
  6255. SUBMENU statement 
  6256.    A special resource statement used to define a submen. SUBMENU statements are 
  6257.    discussed in more detail in Submenu Statements. 
  6258.  
  6259. Example 
  6260.  
  6261. Following is an example of a complete MENU statement: 
  6262.  
  6263. MENU sample
  6264. BEGIN
  6265.  MENUITEM "~Alpha", 100, MIS_TEXT
  6266.  SUBMENU  "~Beta", 101, MIS_TEXT
  6267.  BEGIN
  6268.      MENUITEM "~Green", 200, MIS_TEXT
  6269.      MENUITEM "~Blue", 201, MIS_TEXT,MIA_CHECKED
  6270.  END
  6271. END
  6272.  
  6273. Menu Item Statements 
  6274.  
  6275. MENUITEM statements are used in the item-definition section of a MENU statement 
  6276. to define the names and attributes of the actual menu items. Any number of 
  6277. statements can be given; each defines a unique item. The order of the 
  6278. statements defines the order of the menu items. 
  6279.  
  6280. Note:  The MENUITEM statements can only be used within an item-definition 
  6281.        section of a MENU statement. 
  6282.  
  6283.  ΓöÇΓöÇMENUITEMΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6284.  
  6285.  ΓöÇΓö¼ΓöÇ"string"ΓöÇ,Γö¼ΓöÇΓöÇΓöÇΓöÇΓö¼,Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼
  6286.    Γöé           ΓööcmdΓöÇΓöÿ ΓööstylesΓöÿ  ΓööattributesΓöÿΓöé
  6287.    Γöé                                        Γöé
  6288.    ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇSEPARATORΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6289.  
  6290. string (STR) 
  6291.    A string, enclosed in double quotation marks, specifying the text of the 
  6292.    menu item. 
  6293.  
  6294.    To insert a double-quote character (") in the text, use two double-quote 
  6295.    characters (""). 
  6296.  
  6297.    If the styles parameter does not contain MIS_TEXT, the string is ignored but 
  6298.    must still be specified. An empty string ("") should be specified in this 
  6299.    instance. 
  6300.  
  6301.    To indicate the mnemonic for each item, insert the tilde character (~) in 
  6302.    the string preceding the mnemonic character. 
  6303.  
  6304.    For MENUITEM statements within a SUBMENU (that is, pull-down menus) text may 
  6305.    be split into a second column with an alignment substring. To right-align 
  6306.    items insert "\a" in the text where alignment should begin. To left-align a 
  6307.    second column of text insert "\t" in the text where alignment should begin. 
  6308.    For each SUBMENU the longest item in the second column determines the width 
  6309.    of that column. Only one alignment substring should be used in a menu item. 
  6310.  
  6311. cmd (USHORT) 
  6312.    The value of the WM_COMMAND, WM_HELP, or WM_SYSCOMMAND message generated by 
  6313.    the item when it is selected. It identifies the selection made and should be 
  6314.    unique within one menu definition. 
  6315.  
  6316. styles (BIT_16) 
  6317.    One or more menu options defined by the MIS_* constants, ORed together with 
  6318.    the | operator. For definitions of the MIS_* constants, see Menu Item 
  6319.    Styles. 
  6320.  
  6321. attributes (BIT_16) 
  6322.    One or more menu options defined by the MIA_* constants, ORed together with 
  6323.    the | operator. For definitions of the MIA_* constants, see Menu Item 
  6324.    Attributes. 
  6325.  
  6326.    The style MIS_SUBMENU must not be used with this statement. See Submenu 
  6327.    Statements for the SUBMENU statement. 
  6328.  
  6329. Examples: 
  6330.  
  6331. MENUITEM  "Alpha", 1, MIS_TEXT,MIA_ENABLED|MIA_CHECKED,'A'
  6332. MENUITEM  "Beta", 2, MIS_TEXT,,'B'
  6333.  
  6334. Submenu Statements 
  6335.  
  6336. In addition to simple items, a menu definition can contain the definition of a 
  6337. submenu. A submenu can itself invoke a lower level submenu. 
  6338.  
  6339.  ΓöÇΓöÇSUBMENUΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6340.  
  6341.  ΓöÇΓöÇΓöÇ"string"ΓöÇ,Γö¼ΓöÇΓöÇΓöÇΓöÇΓö¼,Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ
  6342.                ΓööcmdΓöÇΓöÿ ΓööstylesΓöÿ  ΓööattributesΓöÿ
  6343.  
  6344.  
  6345.                ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6346.                                     Γöé
  6347.              ΓöîΓöÇΓöÇPRESPARAMSΓöÇstatementΓöÇΓö┤ΓöÉ
  6348.  ΓöÇΓöÇΓöÇΓöÇBEGINΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6349.           ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6350.                                   Γöé
  6351.  ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇMENUITEMΓöÇstatementΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇENDΓöÇΓöÇΓöÇΓöÇ
  6352.           Γöé                        Γöé
  6353.           ΓööΓöÇΓöÇΓöÇSUBMENUΓöÇstatementΓöÇΓöÇΓöÇΓöÇΓöÿ
  6354.  
  6355. string (STR) 
  6356.    A string, enclosed in double quotation marks, specifying the text of the 
  6357.    menu item. 
  6358.  
  6359.    To insert a double-quote character (") in the text, use two double-quote 
  6360.    characters (""). 
  6361.  
  6362.    If the styles parameter does not contain MIS_TEXT, the string is ignored but 
  6363.    must still be specified. An empty string ("") should be specified in this 
  6364.    instance. 
  6365.  
  6366. cmd (USHORT) 
  6367.    The value of the WM_COMMAND, WM_HELP, or WM_SYSCOMMAND message generated by 
  6368.    the item when it is selected. It identifies the selection made and should be 
  6369.    unique within one menu definition. 
  6370.  
  6371. styles (BIT_16) 
  6372.    One or more menu options defined by the MIS_ constants, ORed together with 
  6373.    the | operator. 
  6374.  
  6375.    In the SUBMENU statement, the style MIS_SUBMENU is always ORed with the 
  6376.    styles given. If no value is supplied, the default value of MIS_TEXT and 
  6377.    MIS_SUBMENU is used. 
  6378.  
  6379. attributes (BIT_16) 
  6380.    One or more menu options defined by the MIA_ constants, ORed together with 
  6381.    the | operator. 
  6382.  
  6383. Example: 
  6384.  
  6385. MENU chem
  6386. BEGIN
  6387.  
  6388. SUBMENU  "~Elements", 2, MIS_TEXT
  6389. BEGIN
  6390.      MENUITEM "~Oxygen", 200, MIS_TEXT
  6391.      MENUITEM "~Carbon", 201, MIS_TEXT,MIA_CHECKED
  6392.      MENUITEM "~Hydrogen", 202, MIS_TEXT
  6393. END
  6394.  
  6395. SUBMENU  "~Compounds", 3, MIS_TEXT
  6396. BEGIN
  6397.      MENUITEM "~Glucose", 301, MIS_TEXT
  6398.      MENUITEM "~Sucrose", 302, MIS_TEXT,MIA_CHECKED
  6399.      MENUITEM "~Lactose", 303, MIS_TEXT|MIS_BREAK
  6400.      MENUITEM "~Fructose", 304, MIS_TEXT
  6401. END
  6402.  
  6403. END
  6404.  
  6405. SEPARATOR Menu Item 
  6406.  
  6407. There is a special form of the MENUITEM statement that is used to create a 
  6408. horizontal dividing bar between two active menu items in a pull-down menu.  The 
  6409. SEPARATOR menu item is itself inactive and has no text associated with it nor a 
  6410. cmd value. 
  6411.  
  6412. Example 
  6413.  
  6414. MENUITEM  "~Roman", 206, MIS_TEXT
  6415. MENUITEM  SEPARATOR
  6416. MENUITEM  "20 ~Point", 301, MIS_TEXT
  6417.  
  6418. Menu Template 
  6419.  
  6420. Menu templates are data structures used to define menus.  Menu templates can be 
  6421. loaded as resources or created dynamically, or embedded in dialog templates, 
  6422. which in turn can be loaded as resources or created dynamically. Templates 
  6423. loaded as resources cannot contain references to bit maps or owner-drawn items. 
  6424. A menu template consists of a sequence of variable-length records. Each record 
  6425. in a menu template defines a menu item. If a menu item contains a reference to 
  6426. a submenu, the menu template that defines that submenu is placed after the 
  6427. definition of that particular menu item. 
  6428.  
  6429. Template Format 
  6430.  
  6431. A menu template has the following format: 
  6432.  
  6433. Length (USHORT) 
  6434.    The length of the menu template. 
  6435.  
  6436. Version (USHORT) 
  6437.    The template version. Versions 0 and 1 are valid. 
  6438.  
  6439. Code page (USHORT) 
  6440.    The identifier of the code page used for the text items within the menu (but 
  6441.    not any submenus, which each have their own code pages). 
  6442.  
  6443. Item offset (USHORT) 
  6444.    The offset of the items from the start of the template, in bytes. 
  6445.  
  6446. Count (USHORT) 
  6447.    The count of menu items. 
  6448.  
  6449. Presentation parameters offset (USHORT) 
  6450.    Offset of presentation parameters from the start of the template, in bytes. 
  6451.    This field is only present for version 1 of the template. 
  6452.  
  6453. Menu Items 
  6454.    A variable-sized array of menu items as follows: 
  6455.  
  6456.    Style (USHORT) 
  6457.       Menu item styles (MIS_*; see Menu Item Styles) combined with the 
  6458.       logical-OR operator. 
  6459.  
  6460.    Attributes (USHORT) 
  6461.       Menu item attributes (MIA_*; see Menu Item Attributes) combined with the 
  6462.       logical-OR operator. 
  6463.  
  6464.    Item (IDENTITY) 
  6465.       An application-provided identifier for the menu item. 
  6466.  
  6467.    Variable data 
  6468.       Following the identifier is a variable data structure whose format 
  6469.       depends upon the value of Style: 
  6470.  
  6471.       MIS_TEXT 
  6472.  
  6473.          Text (STRL) 
  6474.             Null-terminated text string. 
  6475.  
  6476.       MIS_SUBMENU 
  6477.          A menu template structure. 
  6478.  
  6479.       MIS_BITMAP 
  6480.  
  6481.          Text (STR) 
  6482.             Null-terminated text string. 
  6483.  
  6484.             For MIS_BITMAP menu items, the item text string can be used to 
  6485.             derive the resource identifier from which a bit map is loaded. 
  6486.             There are three instances: 
  6487.  
  6488.             o The first byte is null; that is, no resource is defined and it is 
  6489.               assumed that the application subsequently provides a bit-map 
  6490.               handle for the item. 
  6491.  
  6492.             o The first byte is X'FF', the second byte is the low byte of the 
  6493.               resource identifier, and the third byte is the high byte of the 
  6494.               resource identifier. 
  6495.  
  6496.             o The first character is "#", and subsequent characters make up the 
  6497.               decimal text representation of the resource identifier. 
  6498.  
  6499.             The resource is assumed to reside in the resource file of the 
  6500.             current process. 
  6501.  
  6502.             If the string is empty or does not follow the format above, no 
  6503.             resource is loaded. 
  6504.  
  6505.  
  6506. ΓòÉΓòÉΓòÉ 2.9.2.4.7. STRINGTABLE Statement ΓòÉΓòÉΓòÉ
  6507.  
  6508. The STRINGTABLE statement defines one or more string resources for an 
  6509. application.  String resources are null-terminated ASCII strings that can be 
  6510. loaded, when needed, from the executable file, using the WinLoadString 
  6511. function. 
  6512.  
  6513. Note:  The ASCII strings can include no more than 256 characters, including the 
  6514.        NULL termination character. 
  6515.  
  6516. The STRINGTABLE statement has the form: 
  6517.  
  6518.  
  6519.  ΓöÇSTRINGTABLEΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇ
  6520.                 ΓööΓöÇloadoptionΓöÇΓöÿΓööΓöÇmemoptionΓöÇΓöÿ
  6521.  
  6522.  
  6523.  ΓöÇΓöÇΓöÇΓöÇBEGINΓöÇΓöÇΓöÇstring-definitionsΓöÇΓöÇΓöÇENDΓöÇΓöÇΓöÇ
  6524.  
  6525.  
  6526. String-definitions 
  6527.  
  6528.       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6529.       Γöé                                 Γöé
  6530.                                        Γöé
  6531.   ΓöÇΓöÇΓöÇΓöÇΓöÇintegerΓöÇΓöÇΓöÇ"ΓöÇstringΓöÇ"ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇ
  6532.  
  6533.  
  6534. loadoption (LOADOPTION) 
  6535.    An optional keyword specifying when the resource is to be loaded.  It must 
  6536.    be one of: 
  6537.  
  6538.    PRELOAD           Resource is loaded immediately. 
  6539.    LOADONCALL        Resource is loaded when called. 
  6540.  
  6541.    The default is LOADONCALL. 
  6542.  
  6543. memoption (MEMOPTION) 
  6544.    Consists of the following keyword or keywords, specifying whether the 
  6545.    resource is fixed or movable and whether it is discardable: 
  6546.  
  6547.    FIXED             Resource remains at a fixed memory location. 
  6548.    MOVEABLE          Resource can be moved if necessary to compact memory. 
  6549.    DISCARDABLE       Resource can be discarded if no longer needed. 
  6550.  
  6551.    The default is MOVEABLE and DISCARDABLE. 
  6552.  
  6553. string (STR) 
  6554.    A string, enclosed in double quotation marks. To insert a double-quote 
  6555.    character (") in the text, use two double-quote characters (" "). 
  6556.  
  6557.    Note:  A string may be defined on more than one line if each line begins and 
  6558.           ends with a double-quote.  If newline characters are desired after 
  6559.           each line, there should be a double-quote at the beginning of the 
  6560.           first line and at the end of the last line only. 
  6561.  
  6562.    The string may contain any ASCII characters.  Because (\) is interpreted as 
  6563.    an escape character, use (\\) to generate a (\). 
  6564.  
  6565.    The following escape sequences may be used: 
  6566.  
  6567.    Escape 
  6568.    Sequence    Name 
  6569.  
  6570.    \t          Horizontal tab 
  6571.    \a          Bell (alert) 
  6572.    \nnn        ASCII character (octal) 
  6573.    \xdd        ASCII character (hexadecimal). 
  6574.  
  6575.    The sequences \ddd and \xdd allow any character in the ASCII character set 
  6576.    to be inserted in the character string. Thus, the horizontal tab could be 
  6577.    entered as \X09, \011 or \t. 
  6578.  
  6579. Example 
  6580.  
  6581.  
  6582. #define IDS_STRING1  1
  6583. #define IDS_STRING2  2
  6584. #define IDS_STRING3  3
  6585.  
  6586. STRINGTABLE
  6587. BEGIN
  6588.   IDS_STRING1, "The first two strings in this table are identical."
  6589.   IDS_STRING2, "The first two strings "
  6590.                "in this table are identical."
  6591.   IDS_STRING3, "This string will contain a newline character
  6592.                 before it continues on this line."
  6593. END
  6594.  
  6595.  
  6596. ΓòÉΓòÉΓòÉ 2.9.3. Templates, Control Data, and Presentation Parameters ΓòÉΓòÉΓòÉ
  6597.  
  6598. This section describes 
  6599.  
  6600. o Dialog Template 
  6601. o Dialog Coordinates 
  6602. o Dialog Template Format and Contents 
  6603. o Header 
  6604. o Items 
  6605. o Data Area 
  6606. o Control Data Statement 
  6607. o Presentation Parameters Statement 
  6608. o Parent/Child/Owner Relationship 
  6609. o Predefined Window Classes 
  6610. o Predefined Control Statements 
  6611.  
  6612.  
  6613. ΓòÉΓòÉΓòÉ 2.9.3.1. Dialog Template ΓòÉΓòÉΓòÉ
  6614.  
  6615. A dialog template is a data structure used to define a dialog box. Dialog 
  6616. templates can be loaded from resources or created dynamically in memory. 
  6617. Dialog templates define windows of any window class that contain child windows 
  6618. of any class.  For standard dialog windows, the dialog window itself is created 
  6619. with the WC_FRAME class, and its children are any of the preregistered control 
  6620. classes. 
  6621.  
  6622. The dialog template specifies all the information required to create a dialog 
  6623. box and its children. 
  6624.  
  6625.  
  6626. ΓòÉΓòÉΓòÉ 2.9.3.2. Dialog Coordinates ΓòÉΓòÉΓòÉ
  6627.  
  6628. Coordinates in a dialog template are specified in dialog coordinates. These are 
  6629. based on the default character cell size; a unit in the horizontal direction is 
  6630. 1/4 the default character-cell width, and a unit in the vertical direction is 
  6631. 1/8 the default character-cell height. The origin is the bottom left-hand 
  6632. corner of the dialog box. 
  6633.  
  6634.  
  6635. ΓòÉΓòÉΓòÉ 2.9.3.3. Dialog Template Format and Contents ΓòÉΓòÉΓòÉ
  6636.  
  6637. A dialog template has these sections: 
  6638.  
  6639. Header    Defines the type of template format and contains information about 
  6640.           the location of the other sections of the template. It also contains 
  6641.           a summary of the status of the individual controls contained within 
  6642.           the dialog box. 
  6643.  
  6644. Items     Defines each of the controls that comprise the dialog box. 
  6645.  
  6646. Data area Contains the data values associated with each control. Each control 
  6647.           defined in the item section contains pointers to the data area 
  6648.           section. The data area also contains presentation parameter 
  6649.           definitions. The data area is not necessarily a contiguous portion of 
  6650.           the template.  User data can be placed anywhere in the template if it 
  6651.           does not interfere with other defined information. 
  6652.  
  6653. The sections of a dialog template are illustrated in the following figure. 
  6654.  
  6655. Notes 
  6656.  
  6657.  1. Throughout the dialog template all lengths are in bytes.  String lengths do 
  6658.     not include any null terminator that may be present.  When strings are 
  6659.     passed to the Presentation Interface, the length specifications are used 
  6660.     and any null terminators are ignored.  When strings are returned by the 
  6661.     Presentation Interface, length specifications and null terminators are both 
  6662.     supplied; therefore, space must be allowed for a null terminator. 
  6663.  
  6664.  2. All offsets are in bytes from the start of the dialog template structure. 
  6665.  
  6666.  
  6667. DialogTemplate
  6668.  
  6669.  
  6670. ΓòÉΓòÉΓòÉ 2.9.3.4. Header ΓòÉΓòÉΓòÉ
  6671.  
  6672. The dialog template header consists of: 
  6673.  
  6674. Template length (USHORT) 
  6675.           The overall length of the dialog template. 
  6676.  
  6677. Template type (USHORT) 
  6678.           The dialog template format type.  The format defined is type 0. 
  6679.  
  6680. Code page (USHORT) 
  6681.           The code page of the text in the dialog template. 
  6682.  
  6683. Items offset (USHORT) 
  6684.           The offset of the array of dialog items. 
  6685.  
  6686. Reserved (BIT16) 
  6687.           Must be 0. 
  6688.  
  6689. Focus item (USHORT) 
  6690.           The index in the array of dialog items of the control to receive the 
  6691.           focus.  If this value is 0, or if the identified control cannot 
  6692.           receive the focus, for example because it is a static control, the 
  6693.           focus is passed to the first item within the template that can 
  6694.           receive the focus. 
  6695.  
  6696. Reserved (BIT16) 
  6697.           Must be 0. 
  6698.  
  6699.  
  6700. ΓòÉΓòÉΓòÉ 2.9.3.5. Items ΓòÉΓòÉΓòÉ
  6701.  
  6702. The dialog template items are specified as elements of an array that also 
  6703. defines the hierarchy of the control windows of the dialog box. Each element of 
  6704. the array is a control window descriptor and defines some control or a child of 
  6705. some control, so that every control within the dialog box is described by this 
  6706. array.  The first descriptor is the specification of the dialog box itself. 
  6707.  
  6708. The dialog template items consist of: 
  6709.  
  6710. Reserved (BIT16) (16_bit BOOL) 
  6711.           Must be 0. 
  6712.  
  6713. Children (USHORT) 
  6714.           The number of dialog item child windows that are owned by this dialog 
  6715.           item. 
  6716.  
  6717.           This is the number of elements following in the array that are 
  6718.           created as child windows of this window.  Each window can have any 
  6719.           number of child windows, which allows for a tree-structured 
  6720.           arrangement. 
  6721.  
  6722.           For example, in the figure in Dialog Template Format and Contents, 
  6723.           assuming that there are no more dialog items than are shown, the 
  6724.           first item, the dialog box control window descriptor, has three 
  6725.           children.  The second item has no children, the third item has two 
  6726.           children, and the remaining three items have no children. 
  6727.  
  6728. Class name length (USHORT) 
  6729.           The length of the window class name string. 
  6730.  
  6731. Class name offset (USHORT) 
  6732.           The offset of the window class name string. 
  6733.  
  6734. Text length (USHORT) 
  6735.           The length of the text string. 
  6736.  
  6737.           For controls that allow input of text, this is the current text 
  6738.           length, not the maximum text length, and so this value changes when 
  6739.           text is put into the control. 
  6740.  
  6741. Text offset (USHORT) 
  6742.           The offset of the text string. 
  6743.  
  6744. Style (BIT32) (32_bit BOOL) 
  6745.           The window style of the control. 
  6746.  
  6747.           The standard style bits are 16 bits. The use of the remaining 16 bits 
  6748.           depends on the class of the control. 
  6749.  
  6750. x (SHORT) 
  6751.  
  6752. y (SHORT) 
  6753.           The position of the origin of the dialog item.  This is specified in 
  6754.           dialog coordinates, with x and y relative to the origin of the parent 
  6755.           window. 
  6756.  
  6757. cx (SHORT) 
  6758.  
  6759. cy (SHORT) 
  6760.           The size of the dialog item in dialog coordinates; it must be greater 
  6761.           than 0. 
  6762.  
  6763. Identifier (USHORT) 
  6764.           An application-defined identifier for the dialog item. 
  6765.  
  6766. Reserved (USHORT) 
  6767.           Must be zero. 
  6768.  
  6769. Control data offset (USHORT) 
  6770.           The offset of the control-specific data for this dialog item. A value 
  6771.           of 0 indicates that there is no control data for this dialog item. 
  6772.  
  6773.  
  6774. ΓòÉΓòÉΓòÉ 2.9.3.6. Data Area ΓòÉΓòÉΓòÉ
  6775.  
  6776. The dialog template data area contains the following different types of 
  6777. objects: text, class name, presentation parameters, and control data. These 
  6778. objects can be placed anywhere within the data area.  They do not have to be in 
  6779. contiguous storage, and so an application can place data for its own use 
  6780. between these objects. 
  6781.  
  6782. The dialog template data area contains: 
  6783.  
  6784. Text (STR) 
  6785.           The textual data associated with a dialog item. 
  6786.  
  6787. Class name (STR) 
  6788.           The name of the window class. 
  6789.  
  6790. Presentation parameters (PRESPARAMS) 
  6791.           Presentation parameters are defined in Presentation Parameters 
  6792.           Statement. 
  6793.  
  6794. Control data (CTLDATA) 
  6795.           For more information, see Control Data Statement. 
  6796.  
  6797.  
  6798. ΓòÉΓòÉΓòÉ 2.9.3.7. Control Data Statement ΓòÉΓòÉΓòÉ
  6799.  
  6800. The optional CTLDATA statement is used to define control data for the control. 
  6801. Hexadecimal or decimal word constants follow the CTLDATA statement, separated 
  6802. with commas. 
  6803.  
  6804.               ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6805.               Γöé                          Γöé
  6806.                                         Γöé
  6807.  ΓöÇΓöÇCTLDATAΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇdecimalΓöÇvalueΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓö┤ΓöÇ
  6808.                  Γöé                     Γöé
  6809.                  Γö£ΓöÇΓöÇhexadecimalΓöÇvalueΓöÇΓöÇΓöñ
  6810.                  Γöé                     Γöé
  6811.                  ΓööΓöÇΓöÇstringΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6812.  
  6813. In addition to hexadecimal or decimal data, the CTLDATA statement can be 
  6814. followed by the MENU keyword, followed by a menu template in a BEGIN/END block. 
  6815. This creates a menu template as the control data of the window. 
  6816.  
  6817.  
  6818. ΓòÉΓòÉΓòÉ 2.9.3.8. Presentation Parameters Statement ΓòÉΓòÉΓòÉ
  6819.  
  6820. The optional PRESPARAMS statement is used to define presentation parameters. 
  6821. The syntax of the PRESPARAMS statement is as follows. 
  6822.  
  6823.                                  ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÉ
  6824.                                  Γöé         Γöé
  6825.                                           Γöé
  6826.  ΓöÇΓöÇΓöÇPRESPARAMSΓöÇΓöÇΓöÇΓöÇtypeΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇvalueΓöÇΓöÇΓö┤ΓöÇ
  6827.  
  6828.  
  6829. A presentation parameter consists of: 
  6830.  
  6831. type (ULONG) 
  6832.           The presentation parameter attribute type.  See the PARAM data type 
  6833.           for a description of valid types. 
  6834.  
  6835.           A string can be used to specify the type for a user type. If this is 
  6836.           done, the string type is converted into a string atom when the dialog 
  6837.           template is read into memory. Thereafter this presentation parameter 
  6838.           is referred to by this string atom. The application can use the atom 
  6839.           manager API to match the string and the string atom. 
  6840.  
  6841. value (LONG or STRL) 
  6842.           One or more values depending upon the attribute type. 
  6843.  
  6844.           If the value is enclosed in quotes it is a zero-terminated string. 
  6845.           Otherwise, it is converted to a LONG. There may be more than one 
  6846.           value, depending upon the type. See PARAM data type for a description 
  6847.           of the values required for system-defined presentation parameters. 
  6848.  
  6849. Examples 
  6850.  
  6851. The following are examples of PRESPARAMS statements: 
  6852.  
  6853. PRESPARAMS PP_BORDERCOLOR,  0x00ff00ffL
  6854. PRESPARAMS PP_FONTNAMESIZE, "12.Helv"
  6855. PRESPARAMS "my color",      0x00ff00ffL
  6856. PRESPARAMS "my param",      0, 1, 2, 3, "Hi there"
  6857.  
  6858.  
  6859. ΓòÉΓòÉΓòÉ 2.9.3.9. Parent/Child/Owner Relationship ΓòÉΓòÉΓòÉ
  6860.  
  6861. The format of the DLGTEMPLATE and WINDOWTEMPLATE resources is very general to 
  6862. allow tree-structured relationships within the resource format.  The general 
  6863. layout of the templates is: 
  6864.  
  6865. WINDOWTEMPLATE id
  6866. BEGIN
  6867.     WINDOW winTop             the top-level window
  6868.     BEGIN
  6869.         WINDOW wind1
  6870.         WINDOW wind2
  6871.         WINDOW wind3
  6872.         BEGIN
  6873.             WINDOW wind4
  6874.         END
  6875.         WINDOW wind5
  6876.     END
  6877. END
  6878.  
  6879. In this example, the top-level window is identified by winTop. It has four 
  6880. child windows: wind1, wind2, wind3, and wind5.  wind3 has one child window, 
  6881. wind4. When each of these windows is created, the parent and the owner are set 
  6882. to be the same. 
  6883.  
  6884. The only time when the parent and owner windows are not the same is when frame 
  6885. controls are automatically created by a frame window. 
  6886.  
  6887. Note that the WINDOW statements in the example above could also have been 
  6888. CONTROL or DIALOG statements. 
  6889.  
  6890.  
  6891. ΓòÉΓòÉΓòÉ 2.9.3.10. Predefined Window Classes ΓòÉΓòÉΓòÉ
  6892.  
  6893. The CONTROL statement can be used to define a window control of any class. 
  6894. Window classes may be user defined of one of a predefined set provided by the 
  6895. operating system. The following classes are provided in the OS/2 operating 
  6896. system. 
  6897.  
  6898. WC_FRAME                 Application frame control. 
  6899. WC_STATIC                Text and group boxes. 
  6900. WC_BUTTON                Push button, check box or radio button. 
  6901. WC_COMBOBOX              Combination of an entry field and list box. 
  6902. WC_ENTRYFIELD            Single line entry field. 
  6903. WC_MLE                   Multiple line entry field. 
  6904. WC_LISTBOX               List box. 
  6905. WC_MENU                  Application action bar, menus and popup menus. 
  6906. WC_SCROLLBAR             Horizontal or vertical scroll bar. 
  6907. WC_TITLEBAR              Application title bar. 
  6908. WC_SPINBUTTON            Spin button entry field. 
  6909. WC_CONTAINER             Container list. 
  6910. WC_SLIDER                Horizontal or vertical slider control. 
  6911. WC_VALUESET              Value set control. 
  6912. WC_NOTEBOOK              Notebook control. 
  6913.  
  6914. These controls make up the standard user interface components for applications. 
  6915. The following example shows a simple listbox control. 
  6916.  
  6917.  CONTROL "", 1, 10, 20, 60, 40, WC_LISTBOX, WS_VISIBLE
  6918.  
  6919.  
  6920. ΓòÉΓòÉΓòÉ 2.9.3.11. Predefined Control Statements ΓòÉΓòÉΓòÉ
  6921.  
  6922. In addition to the general form of the CONTROL statement, there are special 
  6923. control statements for commonly used controls.  These statements define the 
  6924. attributes of the child control windows that appear in the window. 
  6925.  
  6926. Control statements have this general form: 
  6927.  
  6928.  ΓöÇcontroltypeΓöÇtextΓöÇ,ΓöÇidΓöÇ,ΓöÇxΓöÇ,ΓöÇyΓöÇ,ΓöÇcxΓöÇ,ΓöÇcyΓöÇΓöÇΓöÇ
  6929.  
  6930.  ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6931.      ΓööΓöÇΓöÇ,ΓöÇΓöÇΓöÇstyleΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6932.  
  6933.             ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6934.                                      Γöé
  6935.  ΓöÇΓöÇΓöÇBEGINΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇDIALOG statementΓöÇΓöÇΓöÇΓö¼ΓöÇΓö┤ΓöÇENDΓöÇΓöÇΓöÇ
  6936.               Γö£ΓöÇΓöÇCONTROL statementΓöÇΓöÇΓöñ
  6937.               ΓööΓöÇΓöÇWINDOW statementΓöÇΓöÇΓöÇΓöÿ
  6938.  
  6939. The following six controls are exceptions to this form because they do not take 
  6940. a text field. See the LISTBOX control statement for the form of these six 
  6941. controls. 
  6942.  
  6943. o CONTAINER 
  6944. o LISTBOX 
  6945. o NOTEBOOK 
  6946. o SLIDER 
  6947. o SPINBUTTON 
  6948. o VALUESET 
  6949.  
  6950. controltype 
  6951.           is one of the keywords described below, defining the type of the 
  6952.           control. 
  6953.  
  6954. text (STR) 
  6955.           is a string specifying the text to be displayed.  The string must be 
  6956.           enclosed in double quotation marks. The manner in which the text is 
  6957.           displayed depends on the particular control, as detailed below. 
  6958.  
  6959.           To indicate the mnemonic for each item, insert the tilde character 
  6960.           (~) in the string preceding the mnemonic character. 
  6961.  
  6962.           The double quotation marks are required for the COMBOBOX title even 
  6963.           if no title is used. 
  6964.  
  6965. id (USHORT) 
  6966.           is a unique integer number identifying the control. 
  6967.  
  6968. x,y (SHORT) 
  6969.           are integer numbers specifying the x- and y-coordinates of the lower 
  6970.           left corner of the control, in dialog coordinates. The coordinates 
  6971.           are relative to the origin of the dialog. 
  6972.  
  6973. cx,cy (SHORT) 
  6974.           are integer numbers specifying the width and height of the control. 
  6975.  
  6976. The x, y, cx, and cy fields can use addition and subtraction operators (+ and 
  6977. -). For example, 15 + 6 can be used for the x-field. 
  6978.  
  6979. Styles can be combined using the (|) operator. 
  6980.  
  6981. The control type keywords are shown below, with their classes and default 
  6982. styles: 
  6983.  
  6984. AUTOCHECKBOX 
  6985.  
  6986.    Class                WC_BUTTON 
  6987.    Default style        WS_TABSTOP, WS_VISIBLE, BS_AUTOCHECKBOX 
  6988.  
  6989. AUTORADIOBUTTON 
  6990.  
  6991.    Class                WC_BUTTON 
  6992.    Default style        BS_AUTORADIOBUTTON, WS_TABSTOP, WS_VISIBLE 
  6993.  
  6994. CHECKBOX 
  6995.  
  6996.    Class                WC_BUTTON 
  6997.    Default style        BS_CHECKBOX, WS_TABSTOP, WS_VISIBLE 
  6998.  
  6999. COMBOBOX 
  7000.  
  7001.    Format               The form of the COMBOBOX control statement is shown 
  7002.                         below. 
  7003.  
  7004.                         The fields have the same meaning as in the other 
  7005.                         control statements. 
  7006.  
  7007.                                                  ΓöÇΓöÇΓöÇCOMBOBOXΓöÇΓöÇ"title"ΓöÇΓöÇ,ΓöÇΓöÇidΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇxΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇyΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇcxΓöÇ
  7008.  
  7009.                                                  ΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇcyΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ
  7010.                                                              ΓööΓöÇΓöÇ,ΓöÇΓöÇΓöÇstyleΓöÇΓöÇΓöÿ
  7011.  
  7012.    Class                WC_COMBOBOX 
  7013.    Default style        CBS_SIMPLE, WS_TABSTOP, WS_VISIBLE 
  7014.  
  7015. CONTAINER 
  7016.  
  7017.    Format               The CONTAINER control statement does not contain a text 
  7018.                         field, so it has the same format as the LISTBOX 
  7019.                         statement. 
  7020.  
  7021.    Class                WC_CONTAINER 
  7022.    Default style        WS_TABSTOP, WS_VISIBLE, CCS_SINGLESEL 
  7023.  
  7024. CTEXT 
  7025.  
  7026.    Class                WC_STATIC 
  7027.    Default style        SS_TEXT, DT_CENTER, WS_GROUP, WS_VISIBLE 
  7028.  
  7029. DEFPUSHBUTTON 
  7030.  
  7031.    Class                WC_BUTTON 
  7032.    Default style        BS_DEFAULT, BS_PUSHBUTTON, WS_TABSTOP, WS_VISIBLE 
  7033.  
  7034. EDITTEXT 
  7035.  
  7036.    Class                WC_ENTRYFIELD 
  7037.    Default style        WS_ENTRYFIELD, WS_TABSTOP, WS_VISIBLE, ES_AUTOSCROLL 
  7038.  
  7039. ENTRYFIELD 
  7040.  
  7041.    Class                WC_ENTRYFIELD 
  7042.    Default style        WS_TABSTOP, ES_LEFT, WS_VISIBLE 
  7043.  
  7044. FRAME 
  7045.  
  7046.    Class                WC_FRAME 
  7047.    Default style        WS_VISIBLE 
  7048.  
  7049. GROUPBOX 
  7050.  
  7051.    Class                WC_STATIC 
  7052.    Default style        SS_GROUPBOX, WS_TABSTOP, WS_VISIBLE 
  7053.  
  7054. ICON 
  7055.  
  7056.    Class                WC_STATIC 
  7057.    Default style        SS_ICON, WS_VISIBLE 
  7058.  
  7059. LISTBOX 
  7060.  
  7061.    Format               The form of the LISTBOX control statement is different 
  7062.                         from the general form because it does not take a text 
  7063.                         field, however the fields have the same meaning as in 
  7064.                         the other control statements. The form of the LISTBOX 
  7065.                         control statement is shown below. 
  7066.  
  7067.                                                  ΓöÇΓöÇcontroltypeΓöÇΓöÇΓöÇidΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇxΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇyΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇcxΓöÇΓöÇ
  7068.  
  7069.                                                  ΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇcyΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ
  7070.                                                              ΓööΓöÇΓöÇ,ΓöÇΓöÇΓöÇstyleΓöÇΓöÇΓöÿ
  7071.  
  7072.    Class                WC_LISTBOX 
  7073.    Default style        LBS_NOTIFY, LBS_SORT, WS_VSCROLL, WS_BORDER, WS_VISIBLE 
  7074.  
  7075. LTEXT 
  7076.  
  7077.    Class                WC_STATIC 
  7078.    Default style        SS_TEXT, DT_LEFT, WS_GROUP, WS_VISIBLE 
  7079.  
  7080. MLE 
  7081.  
  7082.    Class                WC_MLE 
  7083.    Default style        WS_MLE, WS_TABSTOP, WS_VISIBLE, MLS_BORDER 
  7084.  
  7085. NOTEBOOK 
  7086.  
  7087.    Format               The NOTEBOOK control statement does not contain a text 
  7088.                         field, so it has the same format as the LISTBOX 
  7089.                         statement. 
  7090.  
  7091.    Class                WC_NOTEBOOK 
  7092.    Default style        WS_NOTEBOOK, WS_TABSTOP, WS_VISIBLE 
  7093.  
  7094. PUSHBUTTON 
  7095.  
  7096.    Class                WC_BUTTON 
  7097.    Default style        BS_PUSHBUTTON, WS_TABSTOP, WS_VISIBLE 
  7098.  
  7099. RADIOBUTTON 
  7100.  
  7101.    Class                WC_BUTTON 
  7102.    Default style        BS_RADIOBUTTON, WS_TABSTOP, WS_VISIBLE 
  7103.  
  7104. RTEXT 
  7105.  
  7106.    Class                WC_STATIC 
  7107.    Default style        SS_TEXT, DT_RIGHT, WS_GROUP, WS_VISIBLE 
  7108.  
  7109. SLIDER 
  7110.  
  7111.    Format               The SLIDER control statement does not contain a text 
  7112.                         field, so it has the same format as the LISTBOX 
  7113.                         statement. 
  7114.  
  7115.    Class                WC_SLIDER 
  7116.    Default style        WS_SLIDER, WS_TABSTOP, WS_VISIBLE 
  7117.  
  7118. SPINBUTTON 
  7119.  
  7120.    Format               The SPINBUTTON control statement does not contain a 
  7121.                         text field, so it has the same format as the LISTBOX 
  7122.                         statement. 
  7123.  
  7124.    Class                WC_SPINBUTTON 
  7125.    Default style        WS_TABSTOP, WS_VISIBLE, SPBS_MASTER 
  7126.  
  7127. VALUESET 
  7128.  
  7129.    Format               The VALUESET control statement does not contain a text 
  7130.                         field, so it has the same format as the LISTBOX 
  7131.                         statement. 
  7132.  
  7133.    Class                WC_VALUESET 
  7134.    Default style        WS_VALUESET, WS_TABSTOP, WS_VISIBLE 
  7135.  
  7136. Examples 
  7137.  
  7138. The following is a complete example of a DIALOG statement: 
  7139.  
  7140. DLGTEMPLATE errmess
  7141. BEGIN
  7142.     DIALOG  "Disk Error", 100, 10, 10, 300, 110
  7143.     BEGIN
  7144.         CTEXT "Select One:", 1, 10, 80, 280, 12
  7145.         RADIOBUTTON "Retry", 2, 75, 50, 60, 12
  7146.         RADIOBUTTON "Abort", 3, 75, 30, 60, 12
  7147.         RADIOBUTTON "Ignore", 4, 75, 10, 60, 12
  7148.     END
  7149. END
  7150.  
  7151. This is an example of a WINDOWTEMPLATE statement that is used to define a 
  7152. specific kind of window frame. Calling Load Dialog with this resource 
  7153. automatically creates the frame window, the frame controls, and the client 
  7154. window (of class MyClientClass). 
  7155.  
  7156. WINDOWTEMPLATE wind1
  7157. BEGIN
  7158.  FRAME "My Window", 1, 10, 10, 320, 130, WS_VISIBLE,
  7159.         FCF_STANDARD | FCF_VERTSCROLL
  7160.  BEGIN
  7161.   WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MyClientClass",
  7162.                                                   style
  7163.  END
  7164. END
  7165.  
  7166. This example creates a resource template for a parallel dialog identified by 
  7167. the constant parallel1. It includes a frame with a title bar, a system menu, 
  7168. and a dialog-style border.  The parallel dialog has three auto radio buttons in 
  7169. it. 
  7170.  
  7171. DLGTEMPLATE parallel1
  7172. BEGIN
  7173.     DIALOG "Parallel Dialog", 1, 50, 50, 180, 110
  7174.     CTLDATA FCF_TITLEBAR | FCF_SYSMENU | FCF_DLGBORDER
  7175.     BEGIN
  7176.         AUTORADIOBUTTON "Retry", 2, 75, 80, 60, 12
  7177.         AUTORADIOBUTTON "Abort", 3, 75, 50, 60, 12
  7178.         AUTORADIOBUTTON "Ignore", 4, 75, 30, 60, 12
  7179.     END
  7180. END
  7181.  
  7182.  
  7183. ΓòÉΓòÉΓòÉ 2.9.4. Resource (.RES) File Specification ΓòÉΓòÉΓòÉ
  7184.  
  7185. The format for the .RES file is: 
  7186.  
  7187. (/TYPE NAME FLAGS SIZE BYTES/)+
  7188. Where: 
  7189.  
  7190. TYPE      is either a null-terminated string or an ordinal, in which instance 
  7191.           the first byte is X'FF' followed by an INT that is the ordinal. 
  7192.  
  7193.                     /* Predefined resource types */
  7194.                     #define RT_POINTER             1
  7195.                     #define RT_BITMAP              2
  7196.                     #define RT_MENU                3
  7197.                     #define RT_DIALOG              4
  7198.                     #define RT_STRING              5
  7199.                     #define RT_FONTDIR             6
  7200.                     #define RT_FONT                7
  7201.                     #define RT_ACCELTABLE          8
  7202.                     #define RT_RCDATA              9
  7203.                     #define RT_DLGINCLUDE         11
  7204.                     #define RT_FKALONG            17
  7205.                     #define RT_HELPTABLE          18
  7206.  
  7207. NAME      is the same format as TYPE.  There are no predefined names. 
  7208.  
  7209. FLAGS     is an unsigned value containing the memory manager flags: 
  7210.  
  7211.                     #define NSTYPE      X'0007'   /* Segment type mask            */
  7212.                     #define NSCODE      X'0000'   /* Code segment                 */
  7213.                     #define NSDATA      X'0001'   /* Data segment                 */
  7214.                     #define NSITER      X'0008'   /* Iterated segment flag        */
  7215.                     #define NSMOVE      X'0010'   /* Moveable segment flag        */
  7216.                     #define NSPURE      X'0020'   /* Pure segment flag            */
  7217.                     #define NSPRELOAD   X'0040'   /* Preload segment flag         */
  7218.                     #define NSEXRD      X'0080'   /* Execute-only (code segment), */
  7219.                                                   /* or read-only (data segment)  */
  7220.                     #define NSRELOC     X'0100'   /* Segment has relocations      */
  7221.                     #define NSCONFORM   X'0200'   /* Segment has debug info       */
  7222.                     #define NSDPL       X'0C00'   /* 286 DPL bits                 */
  7223.                     #define NSDISCARD   X'1000'   /* Discard bit for segment      */
  7224.                     #define NS32BIT     X'2000'   /* 32-BIT code segment          */
  7225.                     #define NSHUGE      X'4000'   /* Huge memory segment          */
  7226.  
  7227. SIZE      is a LONG value defining how many bytes follow in the resource. 
  7228.  
  7229. BYTES     is the stream of bytes that makes up the resource. 
  7230.  
  7231. Any number of resources can appear one after another in the .RES file. 
  7232.  
  7233.  
  7234. ΓòÉΓòÉΓòÉ 2.10. Virtual Key Definitions ΓòÉΓòÉΓòÉ
  7235.  
  7236. The PC VKEY set is shown in the following table: 
  7237.  
  7238. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7239. ΓöéSymbol         ΓöéPersonal Computer AT   ΓöéEnhanced Keyboard        Γöé
  7240. Γöé               ΓöéKeyboard               Γöé                         Γöé
  7241. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7242. ΓöéVK_BUTTON1     ΓöéThese values are only  ΓöéThese values are only    Γöé
  7243. ΓöéVK_BUTTON2     Γöéused to access the     Γöéused to access the       Γöé
  7244. ΓöéVK_BUTTON3     Γöéup/down and toggled    Γöéup/down and toggled      Γöé
  7245. Γöé               Γöéstates of the pointing Γöéstates of the pointing   Γöé
  7246. Γöé               Γöédevice buttons; they   Γöédevice buttons; they     Γöé
  7247. Γöé               Γöénever actually appear  Γöénever actually appear in Γöé
  7248. Γöé               Γöéin a WM_CHAR message.  Γöéa WM_CHAR message.       Γöé
  7249. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7250. ΓöéVK_BREAK       ΓöéCtrl + Scroll Lock     ΓöéCtrl + Pause             Γöé
  7251. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7252. ΓöéVK_BACKSPACE   ΓöéBackspace              ΓöéBackspace                Γöé
  7253. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7254. ΓöéVK_TAB         ΓöéTab                    ΓöéTab                      Γöé
  7255. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7256. ΓöéVK_BACKTAB     ΓöéShift + Tab            ΓöéShift + Tab              Γöé
  7257. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7258. ΓöéVK_NEWLINE     ΓöéEnter                  ΓöéEnter                    Γöé
  7259. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7260. ΓöéVK_SHIFT  *    ΓöéLeft and Right Shift   ΓöéLeft and Right Shift     Γöé
  7261. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7262. ΓöéVK_CTRL  *     ΓöéCtrl                   ΓöéLeft and Right Ctrl      Γöé
  7263. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7264. ΓöéVK_ALT  *      ΓöéAlt                    ΓöéLeft and Right Alt       Γöé
  7265. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7266. ΓöéVK_ALTGRAF  *  ΓöéNone                   ΓöéAlt Graf (if available)  Γöé
  7267. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7268. ΓöéVK_PAUSE       ΓöéCtrl + Num Lock        ΓöéPause                    Γöé
  7269. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7270. ΓöéVK_CAPSLOCK    ΓöéCaps Lock              ΓöéCaps Lock                Γöé
  7271. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7272. ΓöéVK_ESC         ΓöéEsc                    ΓöéEsc                      Γöé
  7273. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7274. ΓöéVK_SPACE  *    ΓöéSpace                  ΓöéSpace                    Γöé
  7275. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7276. ΓöéVK_PAGEUP  *   ΓöéNumpad 9               ΓöéPg Up and Numpad 9       Γöé
  7277. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7278. ΓöéVK_PAGEDOWN  * ΓöéNumpad 3               ΓöéPg Dn and Numpad 3       Γöé
  7279. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7280. ΓöéVK_END  *      ΓöéNumpad 1               ΓöéEnd and Numpad 1         Γöé
  7281. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7282. ΓöéVK_HOME  *     ΓöéNumpad 7               ΓöéHome and Numpad 7        Γöé
  7283. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7284. ΓöéVK_LEFT  *     ΓöéNumpad 4               ΓöéLeft and Numpad 4        Γöé
  7285. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7286. ΓöéVK_UP  *       ΓöéNumpad 8               ΓöéUp and Numpad 8          Γöé
  7287. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7288. ΓöéVK_RIGHT  *    ΓöéNumpad 6               ΓöéRight and Numpad 6       Γöé
  7289. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7290. ΓöéVK_DOWN  *     ΓöéNumpad 2               ΓöéDown and Numpad 2        Γöé
  7291. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7292. ΓöéVK_PRINTSCRN   ΓöéShift + Print Screen   ΓöéPrint Screen             Γöé
  7293. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7294. ΓöéVK_INSERT  *   ΓöéNumpad 0               ΓöéIns and Numpad 0         Γöé
  7295. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7296. ΓöéVK_DELETE  *   ΓöéNumpad .               ΓöéDel and Numpad .         Γöé
  7297. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7298. ΓöéVK_SCRLLOCK    ΓöéScroll Lock            ΓöéScroll Lock              Γöé
  7299. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7300. ΓöéVK_NUMLOCK     ΓöéNum Lock               ΓöéNum Lock                 Γöé
  7301. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7302. ΓöéVK_ENTER       ΓöéShift + Enter          ΓöéShift + Enter and Numpad Γöé
  7303. Γöé               Γöé                       ΓöéEnter                    Γöé
  7304. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7305. ΓöéVK_SYSRQ       ΓöéSysRq                  ΓöéAlt + Print Screen       Γöé
  7306. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7307. ΓöéVK_F1  *       ΓöéF1                     ΓöéF1                       Γöé
  7308. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7309. ΓöéVK_F2  *       ΓöéF2                     ΓöéF2                       Γöé
  7310. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7311. ΓöéVK_F3  *       ΓöéF3                     ΓöéF3                       Γöé
  7312. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7313. ΓöéVK_F4  *       ΓöéF4                     ΓöéF4                       Γöé
  7314. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7315. ΓöéVK_F5  *       ΓöéF5                     ΓöéF5                       Γöé
  7316. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7317. ΓöéVK_F6  *       ΓöéF6                     ΓöéF6                       Γöé
  7318. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7319. ΓöéVK_F7  *       ΓöéF7                     ΓöéF7                       Γöé
  7320. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7321. ΓöéVK_F8  *       ΓöéF8                     ΓöéF8                       Γöé
  7322. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7323. ΓöéVK_F9  *       ΓöéF9                     ΓöéF9                       Γöé
  7324. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7325. ΓöéVK_F10  *      ΓöéF10                    ΓöéF10                      Γöé
  7326. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7327. ΓöéVK_F11  *      ΓöéNone                   ΓöéF11                      Γöé
  7328. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7329. ΓöéVK_F12  *      ΓöéNone                   ΓöéF12                      Γöé
  7330. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7331. ΓöéVK_F13         ΓöéNone                   ΓöéNone                     Γöé
  7332. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7333. ΓöéVK_F14         ΓöéNone                   ΓöéNone                     Γöé
  7334. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7335. ΓöéVK_F15         ΓöéNone                   ΓöéNone                     Γöé
  7336. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7337. ΓöéVK_F16         ΓöéNone                   ΓöéNone                     Γöé
  7338. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7339. ΓöéVK_F17         ΓöéNone                   ΓöéNone                     Γöé
  7340. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7341. ΓöéVK_F18         ΓöéNone                   ΓöéNone                     Γöé
  7342. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7343. ΓöéVK_F19         ΓöéNone                   ΓöéNone                     Γöé
  7344. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7345. ΓöéVK_F20         ΓöéNone                   ΓöéNone                     Γöé
  7346. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7347. ΓöéVK_F21         ΓöéNone                   ΓöéNone                     Γöé
  7348. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7349. ΓöéVK_F22         ΓöéNone                   ΓöéNone                     Γöé
  7350. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7351. ΓöéVK_F23         ΓöéNone                   ΓöéNone                     Γöé
  7352. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7353. ΓöéVK_F24         ΓöéNone                   ΓöéNone                     Γöé
  7354. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7355. ΓöéVK_MENU  *     ΓöéF10                    ΓöéF10                      Γöé
  7356. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7357.  
  7358. Notes: 
  7359.  
  7360.  1. VKEYs marked with an asterisk (*) are generated irrespective of other shift 
  7361.     states (Shift, Ctrl, Alt, and Alt Graf). 
  7362.  
  7363.  2. VK_CAPSLOCK is not generated for any of the Ctrl shift states, for PC-DOS 
  7364.     compatibility. 
  7365.  
  7366.  3. Wherever possible, the VK_ name is derived from the legend on the key top 
  7367.     of the 101-key Enhanced PC keyboard. 
  7368.  
  7369.  
  7370. ΓòÉΓòÉΓòÉ 3. Spooler Functions ΓòÉΓòÉΓòÉ
  7371.  
  7372. This section describes functions that an application would use to write data 
  7373. directly to a spool file. 
  7374.  
  7375.  
  7376. ΓòÉΓòÉΓòÉ 3.1. SplControlDevice ΓòÉΓòÉΓòÉ
  7377.  
  7378.  
  7379. ΓòÉΓòÉΓòÉ <hidden> Topics - SplControlDevice ΓòÉΓòÉΓòÉ
  7380.  
  7381. Select an item: 
  7382.  
  7383. Function Syntax 
  7384. Parameters 
  7385. Return Values 
  7386. Notes 
  7387. Example 
  7388. Related Functions 
  7389. Glossary 
  7390.  
  7391.  
  7392. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplControlDevice ΓòÉΓòÉΓòÉ
  7393.  
  7394. pszComputerName (PSZ) - input 
  7395.    Name of computer where print device is to be controlled. A NULL string 
  7396.    specifies the local workstation. 
  7397.  
  7398. pszPortName (PSZ) - input 
  7399.    Port name. 
  7400.  
  7401. ulControl (ULONG) - input 
  7402.    Operation to perform. 
  7403.  
  7404.    PRD_DELETE 
  7405.       Delete current print job 
  7406.  
  7407.    PRD_PAUSE 
  7408.       Pause printing 
  7409.  
  7410.    PRD_CONT 
  7411.       Continue paused print job 
  7412.  
  7413.    PRD_RESTART 
  7414.       Restart print job. 
  7415.  
  7416.  
  7417. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplControlDevice ΓòÉΓòÉΓòÉ
  7418.  
  7419. rc (SPLERR) - return 
  7420.  
  7421.    NO_ERROR (0) 
  7422.       No errors occurred. 
  7423.  
  7424.    ERROR_NOT_SUPPORTED (50) 
  7425.       This request is not supported by the network. 
  7426.  
  7427.    ERROR_BAD_NETPATH (53) 
  7428.       The network path cannot be located. 
  7429.  
  7430.    NERR_NetNotStarted (2102) 
  7431.       The network program is not started. 
  7432.  
  7433.    NERR_DestNotFound (2152) 
  7434.       The print device cannot be found. 
  7435.  
  7436.    NERR_DestIdle (2158) 
  7437.       This print device is idle and cannot accept control operations. 
  7438.  
  7439.    NERR_DestInvalidOp (2159) 
  7440.       This print device request contains an invalid control function. 
  7441.  
  7442.    NERR_ProcNoRespond (2160) 
  7443.       The queue processor is not responding. 
  7444.  
  7445.    NERR_SpoolerNotLoaded (2161) 
  7446.       The spooler is not running. 
  7447.  
  7448.    NERR_InvalidComputer (2351) 
  7449.       The computer name is invalid. 
  7450.  
  7451.  
  7452. ΓòÉΓòÉΓòÉ <hidden> Notes - SplControlDevice ΓòÉΓòÉΓòÉ
  7453.  
  7454. A paused print device cannot accept new print jobs. 
  7455.  
  7456. If PRD_DELETE is attempted when there is no current print job, NERR_DestIdle 
  7457. (2158) is returned. 
  7458.  
  7459. To control jobs on a remote server requires administrator privilege. 
  7460.  
  7461.  
  7462. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplControlDevice ΓòÉΓòÉΓòÉ
  7463.  
  7464. /*******************************************/
  7465. /* This function cancels, holds,           */
  7466. /* continues, or restarts a print device.  */
  7467. /*******************************************/
  7468.  
  7469. #define INCL_SPL   /* Or use INCL_PM */
  7470. #include <os2.h>
  7471.  
  7472. PSZ     pszComputerName;   /* Name of computer where print device is to be controlled */
  7473. PSZ     pszPortName;       /* Port name */
  7474. ULONG   ulControl;         /* Operation to perform */
  7475. SPLERR  rc;
  7476.  
  7477. rc = SplControlDevice(pszComputerName,
  7478.        pszPortName, ulControl);
  7479.  
  7480.  
  7481. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplControlDevice ΓòÉΓòÉΓòÉ
  7482.  
  7483. Related Functions 
  7484.  
  7485. o SplEnumDevice 
  7486. o SplQueryDevice 
  7487.  
  7488.  
  7489. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplControlDevice ΓòÉΓòÉΓòÉ
  7490.  
  7491. This sample code demonstrates the result of various actions that can be 
  7492. performed on the print device by this function call. At the command line, a 
  7493. print device name is entered along with an action code. 
  7494.  
  7495.  
  7496. #define INCL_SPL
  7497. #define INCL_SPLDOSPRINT
  7498. #define INCL_SPLERRORS
  7499. #include <os2.h>
  7500. #include <stdio.h>       /* for printf function */
  7501.  
  7502. INT main (argc, argv)
  7503.    INT argc;
  7504.    CHAR *argv[];
  7505. {
  7506.    SPLERR splerr ;
  7507.    ULONG  ulControl=0L ;
  7508.    PSZ    pszComputerName = NULL ;
  7509.    PSZ    pszPrintDeviceName ;
  7510.  
  7511.    /* Input a Print Device Name and an Action Code on the command line       */
  7512.    if (argc != 3)
  7513.    {
  7514.       printf("Syntax is:  qcontrol  PrintDeviceName  ActionCode \n");
  7515.       printf("Action codes are: D-Delete, P-Pause, C-Continue, R-Restart\n\n");
  7516.       DosExit( EXIT_PROCESS , 0 ) ;
  7517.    }
  7518.    /* Get the print device name from the first input parameter.              */
  7519.    pszPrintDeviceName = argv[1];
  7520.  
  7521.    /* Get the action code from the second input parameter.                   */
  7522.    switch (argv[2][0])
  7523.    {
  7524.       case 'D':
  7525.         ulControl = PRD_DELETE ;
  7526.         break;
  7527.       case 'P':
  7528.         ulControl = PRD_PAUSE ;
  7529.         break;
  7530.       case 'C':
  7531.         ulControl = PRD_CONT ;
  7532.         break;
  7533.       case 'R':
  7534.         ulControl = PRD_RESTART ;
  7535.         break;
  7536.       default:
  7537.         printf("Invalid code\n");
  7538.         DosExit( EXIT_PROCESS , 0 ) ;
  7539.    }
  7540.    /* Call the function with the parameters obtained from the command line.  */
  7541.    splerr = SplControlDevice(pszComputerName, pszPrintDeviceName, ulControl);
  7542.  
  7543.    /* If there is an error returned, print it.                               */
  7544.    if (splerr != 0L)
  7545.    {
  7546.       switch (splerr)
  7547.       {
  7548.          case  NERR_DestNotFound :
  7549.             printf("Destination does not exist.\n");
  7550.             break;
  7551.          case  NERR_DestIdle:
  7552.             printf("This print device is idle - can't do control ops. \n");
  7553.             break;
  7554.          default:
  7555.             printf("Errorcode = %ld\n",splerr);
  7556.          }
  7557.    } else {
  7558.          printf("The print job operation was performed.\n\n");
  7559.    }
  7560.    DosExit( EXIT_PROCESS , 0 ) ;
  7561.    return (splerr) ;
  7562. }
  7563.  
  7564.  
  7565. ΓòÉΓòÉΓòÉ 3.2. SplCopyJob ΓòÉΓòÉΓòÉ
  7566.  
  7567.  
  7568. ΓòÉΓòÉΓòÉ <hidden> Topics - SplCopyJob ΓòÉΓòÉΓòÉ
  7569.  
  7570. Select an item: 
  7571.  
  7572. Function Syntax 
  7573. Parameters 
  7574. Return Values 
  7575. Notes 
  7576. Example 
  7577. Related Functions 
  7578. Glossary 
  7579.  
  7580.  
  7581. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplCopyJob ΓòÉΓòÉΓòÉ
  7582.  
  7583. pszSrcComputerName (PSZ) - input 
  7584.    Name of computer where job is to be copied from. A NULL string specifies the 
  7585.    local workstation. 
  7586.  
  7587. pszSrcQueueName (PSZ) - input 
  7588.    Name of queue where job is to be copied from. 
  7589.  
  7590. ulSrcJob (ULONG) - input 
  7591.    Source Job identification number. 
  7592.  
  7593. pszTrgComputerName (PSZ) - input 
  7594.    Name of computer where job is to be copied to. A NULL string specifies the 
  7595.    local workstation. 
  7596.  
  7597. pszTrgQueueName (PSZ) - input 
  7598.    Name of queue where job is to be copied to. A NULL string specifies the same 
  7599.    queue as the original job. 
  7600.  
  7601. pulTrgJob (PULONG) - output 
  7602.    Job identification number of new job. 
  7603.  
  7604.  
  7605. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplCopyJob ΓòÉΓòÉΓòÉ
  7606.  
  7607. rc (SPLERR) - return 
  7608.  
  7609.    NO_ERROR (0) 
  7610.       No errors occurred. 
  7611.  
  7612.    ERROR_ACCESS_DENIED (5) 
  7613.       Access is denied. 
  7614.  
  7615.    ERROR_NOT_SUPPORTED (50) 
  7616.       This request is not supported by the network. 
  7617.  
  7618.    ERROR_INVALID_PARAMETER (87) 
  7619.       An invalid parameter is specified. 
  7620.  
  7621.    NERR_NetNotStarted (2102) 
  7622.       The network program is not started. 
  7623.  
  7624.    NERR_QNotFound (2150) 
  7625.       The printer queue does not exist. 
  7626.  
  7627.    NERR_JobNotFound (2151) 
  7628.       The print job does not exist. 
  7629.  
  7630.    NERR_SpoolerNotLoaded (2161) 
  7631.       The spooler is not running. 
  7632.  
  7633.    NERR_InvalidComputer (2351) 
  7634.       The computer name is invalid. 
  7635.  
  7636.  
  7637. ΓòÉΓòÉΓòÉ <hidden> Notes - SplCopyJob ΓòÉΓòÉΓòÉ
  7638.  
  7639. Currently there is a restriction that a job can only be copied onto the same 
  7640. queue (and computer) as the original job. 
  7641.  
  7642.  
  7643. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplCopyJob ΓòÉΓòÉΓòÉ
  7644.  
  7645. /*******************************************/
  7646. /* This function copies a job in a print   */
  7647. /* queue.                                  */
  7648. /*******************************************/
  7649.  
  7650. #define INCL_SPL   /* Or use INCL_PM */
  7651. #include <os2.h>
  7652.  
  7653. PSZ     pszSrcComputerName;   /* Name of computer where job is to be copied from */
  7654. PSZ     pszSrcQueueName;      /* Name of queue where job is to be copied from */
  7655. ULONG   ulSrcJob;             /* Source Job identification number */
  7656. PSZ     pszTrgComputerName;   /* Name of computer where job is to be copied to */
  7657. PSZ     pszTrgQueueName;      /* Name of queue where job is to be copied to */
  7658. PULONG  pulTrgJob;            /* Job identification number of new job */
  7659. SPLERR  rc;
  7660.  
  7661. rc = SplCopyJob(pszSrcComputerName,
  7662.        pszSrcQueueName, ulSrcJob,
  7663.        pszTrgComputerName, pszTrgQueueName,
  7664.        pulTrgJob);
  7665.  
  7666.  
  7667. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplCopyJob ΓòÉΓòÉΓòÉ
  7668.  
  7669. Related Functions 
  7670.  
  7671. o SplEnumJob 
  7672. o SplEnumQueue 
  7673. o SplQueryJob 
  7674. o SplQueryQueue 
  7675.  
  7676.  
  7677. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplCopyJob ΓòÉΓòÉΓòÉ
  7678.  
  7679. This sample code will make a duplicate copy of the jobid that is entered at the 
  7680. prompt. Presently, there is a restriction that the job can only be duplicated 
  7681. on the same computer/queue; i.e. a local job. 
  7682.  
  7683. #define INCL_SPL
  7684. #include <os2.h>
  7685. #include <stdio.h>       /* for printf function */
  7686. #include <stdlib.h>      /* for atoi function   */
  7687.  
  7688. INT main (argc, argv)
  7689.    INT argc;
  7690.    CHAR *argv[];
  7691. {
  7692.    SPLERR splerr ;
  7693.    ULONG  ulSrcJob, ulTrgJob ;
  7694.    PSZ    pszSrcComputerName,pszTrgComputerName ;
  7695.    PSZ    pszSrcQueueName,pszTrgQueueName ;
  7696.  
  7697.    if (argc != 2)
  7698.    {
  7699.       printf("Command is:  copyjob JOBID\n");
  7700.       DosExit( EXIT_PROCESS , 0 ) ;
  7701.    }
  7702.    pszSrcComputerName = (PSZ)NULL ;
  7703.  
  7704.    /* The only valid values at present for these three parameters is  NULL    */
  7705.    pszSrcQueueName = (PSZ)NULL;
  7706.    pszTrgComputerName = (PSZ)NULL ;
  7707.    pszTrgQueueName = (PSZ)NULL ;
  7708.  
  7709.    /* Convert input parameter to a ULONG                                      */
  7710.    ulSrcJob = atoi ( argv[1] );
  7711.  
  7712.    if (splerr = SplCopyJob(pszSrcComputerName,pszSrcQueueName,ulSrcJob,
  7713.                            pszTrgComputerName,pszTrgQueueName,&ulTrgJob))
  7714.    {
  7715.       printf("Return code SplCopyJob = %d\n",splerr);
  7716.    }
  7717.    else
  7718.    {
  7719.       printf("New job ID is %d\n",ulTrgJob);
  7720.    }
  7721.    DosExit( EXIT_PROCESS , 0 ) ;
  7722.    return (splerr);
  7723. }   /* end main */
  7724.  
  7725.  
  7726. ΓòÉΓòÉΓòÉ 3.3. SplCreateDevice ΓòÉΓòÉΓòÉ
  7727.  
  7728.  
  7729. ΓòÉΓòÉΓòÉ <hidden> Topics - SplCreateDevice ΓòÉΓòÉΓòÉ
  7730.  
  7731. Select an item: 
  7732.  
  7733. Function Syntax 
  7734. Parameters 
  7735. Return Values 
  7736. Notes 
  7737. Example 
  7738. Related Functions 
  7739. Glossary 
  7740.  
  7741.  
  7742. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplCreateDevice ΓòÉΓòÉΓòÉ
  7743.  
  7744. pszComputerName (PSZ) - input 
  7745.    Name of computer where print device is to be added. A NULL string specifies 
  7746.    the local workstation. 
  7747.  
  7748. ulLevel (ULONG) - input 
  7749.    Level of detail provided. This must be 3. 
  7750.  
  7751. pBuf (PVOID) - input 
  7752.    Data structure. 
  7753.  
  7754. cbBuf (ULONG) - input 
  7755.    Size, in bytes, of data structure. 
  7756.  
  7757.  
  7758. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplCreateDevice ΓòÉΓòÉΓòÉ
  7759.  
  7760. rc (SPLERR) - return 
  7761.  
  7762.    NO_ERROR (0) 
  7763.       No errors occurred. 
  7764.  
  7765.    ERROR_ACCESS_DENIED (5) 
  7766.       Access is denied. 
  7767.  
  7768.    ERROR_NOT_SUPPORTED (50) 
  7769.       This request is not supported by the network. 
  7770.  
  7771.    ERROR_BAD_NETPATH (53) 
  7772.       The network path cannot be located. 
  7773.  
  7774.    ERROR_INVALID_PARAMETER (87) 
  7775.       An invalid parameter is specified. 
  7776.  
  7777.    ERROR_INVALID_NAME (123) 
  7778.       The computer name is invalid. 
  7779.  
  7780.    ERROR_INVALID_LEVEL (124) 
  7781.       The level parameter is invalid. 
  7782.  
  7783.    NERR_NetNotStarted (2102) 
  7784.       The network program is not started. 
  7785.  
  7786.    NERR_BufTooSmall (2123) 
  7787.       The API return buffer is too small. 
  7788.  
  7789.    NERR_DestExists (2153) 
  7790.       The print device already exists. 
  7791.  
  7792.    NERR_DestNoRoom (2157) 
  7793.       The maximum number of print devices has been reached. 
  7794.  
  7795.    NERR_SpoolerNotLoaded (2161) 
  7796.       The spooler is not running. 
  7797.  
  7798.    NERR_DestInvalidState (2162) 
  7799.       This operation cannot be performed on the print device. 
  7800.  
  7801.    NERR_SpoolNoMemory (2165) 
  7802.       A spooler memory allocation failure occurred. 
  7803.  
  7804.    NERR_DriverNotFound (2166) 
  7805.       The device driver does not exist. 
  7806.  
  7807.    NERR_BadDev (2341) 
  7808.       The device is already in use as a communications device. 
  7809.  
  7810.    NERR_InvalidComputer (2351) 
  7811.       The  computer name is invalid. 
  7812.  
  7813.  
  7814. ΓòÉΓòÉΓòÉ <hidden> Notes - SplCreateDevice ΓòÉΓòÉΓòÉ
  7815.  
  7816. The result of this function is the creation of a new print device definition. 
  7817.  
  7818. The printer is set up to print on the logical address (port) defined by 
  7819. pszLogAddr in PRDINFO3. If pszLogAddr is NULL, the print device definition is 
  7820. created but is not connected to any logical address. In this case no printing 
  7821. can occur on that print device or from any print queue connected only to that 
  7822. print device. If a logical address is specified, it must already be defined in 
  7823. the PM_SPOOLER_PORTS section of the initialization file. 
  7824.  
  7825. Note:  To change the connection between a print device and a port, use 
  7826.        SplSetDevice. 
  7827.  
  7828. The maximum length for a print device name is 32 characters. The use of a 
  7829. longer name results in ERROR_INVALID_NAME (123). 
  7830.  
  7831. All device drivers and queues specified with the print device must already be 
  7832. defined to the spooler. 
  7833.  
  7834. To add a remote print device requires administrator privilege. 
  7835.  
  7836.  
  7837. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplCreateDevice ΓòÉΓòÉΓòÉ
  7838.  
  7839. /*******************************************/
  7840. /* This function establishes a print       */
  7841. /* device on the local workstation or a    */
  7842. /* remote server.                          */
  7843. /*******************************************/
  7844.  
  7845. #define INCL_SPL   /* Or use INCL_PM */
  7846. #include <os2.h>
  7847.  
  7848. PSZ     pszComputerName;   /* Name of computer where print device is to be added */
  7849. ULONG   ulLevel;           /* Level of detail provided */
  7850. PVOID   pBuf;              /* Data structure */
  7851. ULONG   cbBuf;             /* Size, in bytes, of data structure */
  7852. SPLERR  rc;
  7853.  
  7854. rc = SplCreateDevice(pszComputerName,
  7855.        ulLevel, pBuf, cbBuf);
  7856.  
  7857.  
  7858. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplCreateDevice ΓòÉΓòÉΓòÉ
  7859.  
  7860. Related Functions 
  7861.  
  7862. o SplDeleteDevice 
  7863. o SplEnumDevice 
  7864. o SplEnumDriver 
  7865. o SplEnumPort 
  7866.  
  7867.  
  7868. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplCreateDevice ΓòÉΓòÉΓòÉ
  7869.  
  7870. This sample code creates a PRDINFO3 structure with dummy parameters. This 
  7871. structure is then used to call SplCreateDevice to establish a print device on a 
  7872. local workstation. 
  7873.  
  7874. #define INCL_BASE
  7875. #define INCL_DOSMEMMGR
  7876. #define INCL_SPL
  7877. #define INCL_SPLDOSPRINT
  7878.  
  7879. #include <os2.h>
  7880. #include <stdio.h>    /* for printf function */
  7881. #include <string.h>   /* for strcpy function */
  7882.  
  7883. INT main (argc, argv)
  7884.     INT argc;
  7885.     CHAR *argv[];
  7886. {
  7887.     ULONG  splerr  ;
  7888.     ULONG  cbBuf;
  7889.     ULONG  ulLevel ;
  7890.     PSZ    pszComputerName ;
  7891.     PSZ    pszPrintDeviceName ;
  7892.     PRDINFO3 prd3  ;
  7893.  
  7894.     if (argc != 2)
  7895.     {
  7896.        printf("Syntax:  sdcrt  DeviceName \n");
  7897.        DosExit( EXIT_PROCESS , 0 ) ;
  7898.     }
  7899.     /* We are going to create a print device on the local workstation. */
  7900.     pszComputerName = (PSZ)NULL ;
  7901.  
  7902.     /* Get the name from the command line.                             */
  7903.     pszPrintDeviceName = argv[1];
  7904.  
  7905.     /* Level 3 is valid. We will use level 3.                          */
  7906.     ulLevel = 3;
  7907.  
  7908.     /* Get size of buffer needed for a PRDINFO3 structure.             */
  7909.     cbBuf = sizeof(PRDINFO3);
  7910.  
  7911.     /* Set up the structure with dummy parameters.                     */
  7912.     strcpy( prd3.pszPrinterName , pszPrintDeviceName);
  7913.     prd3.pszUserName= "A. Best";
  7914.     prd3.pszLogAddr="LPT1Q";
  7915.     prd3.uJobId=0;
  7916.     prd3.pszComment= "Test comment";
  7917.     prd3.pszDrivers = "IBMNULL";
  7918.     prd3.usTimeOut = 777;
  7919.  
  7920.     /* Make the call. */
  7921.     splerr = SplCreateDevice(pszComputerName, ulLevel,
  7922.                              &prd3, cbBuf);
  7923.  
  7924.     /* Print out the results.                                                 */
  7925.     if (splerr == NO_ERROR)
  7926.        printf("The device was successfully created.");
  7927.     else
  7928.        printf("SplCreateDevice Error=%ld, cbNeeded=%ld\n",
  7929.                                splerr, cbBuf) ;
  7930.  
  7931.     DosExit( EXIT_PROCESS , 0 ) ;
  7932.     return (splerr);
  7933. }
  7934.  
  7935.  
  7936. ΓòÉΓòÉΓòÉ 3.4. SplCreateQueue ΓòÉΓòÉΓòÉ
  7937.  
  7938.  
  7939. ΓòÉΓòÉΓòÉ <hidden> Topics - SplCreateQueue ΓòÉΓòÉΓòÉ
  7940.  
  7941. Select an item: 
  7942.  
  7943. Function Syntax 
  7944. Parameters 
  7945. Return Values 
  7946. Notes 
  7947. Example 
  7948. Related Functions 
  7949. Glossary 
  7950.  
  7951.  
  7952. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplCreateQueue ΓòÉΓòÉΓòÉ
  7953.  
  7954. pszComputerName (PSZ) - input 
  7955.    Name of computer where queue is to be created. A NULL string specifies a 
  7956.    local workstation. 
  7957.  
  7958. ulLevel (ULONG) - input 
  7959.    Level of detail provided. This must be 3 or 6. 
  7960.  
  7961. pbBuf (PVOID) - input 
  7962.    Data structure. 
  7963.  
  7964. cbBuf (ULONG) - input 
  7965.    Size, in bytes, of data structure. 
  7966.  
  7967.  
  7968. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplCreateQueue ΓòÉΓòÉΓòÉ
  7969.  
  7970. rc (SPLERR) - return 
  7971.  
  7972.    NO_ERROR (0) 
  7973.       No errors occurred. 
  7974.  
  7975.    ERROR_NOT_SUPPORTED (50) 
  7976.       This request is not supported by the network. 
  7977.  
  7978.    ERROR_INVALID_PARAMETER (87) 
  7979.       An invalid parameter is specified. 
  7980.  
  7981.    ERROR_INVALID_NAME (123) 
  7982.       The computer name is invalid. 
  7983.  
  7984.    ERROR_INVALID_LEVEL (124) 
  7985.       The level parameter is invalid. 
  7986.  
  7987.    NERR_NetNotStarted (2102) 
  7988.       The network program is not started. 
  7989.  
  7990.    NERR_RedirectedPath (2117) 
  7991.       The operation is invalid on a redirected resource. 
  7992.  
  7993.    NERR_BufTooSmall (2123) 
  7994.       The API return buffer is too small. 
  7995.  
  7996.    NERR_DestNotFound (2152) 
  7997.       The printer destination cannot be found. 
  7998.  
  7999.    NERR_QExists (2154) 
  8000.       The printer queue already exists. 
  8001.  
  8002.    NERR_SpoolerNotLoaded (2161) 
  8003.       The spooler is not running. 
  8004.  
  8005.    NERR_DestInvalidState (2162) 
  8006.       This operation cannot be performed on the print destination in its 
  8007.       current state. 
  8008.  
  8009.    NERR_SpoolNoMemory (2165) 
  8010.       A spooler memory allocation failure occurred. 
  8011.  
  8012.    NERR_DriverNotFound (2166) 
  8013.       The device driver does not exist. 
  8014.  
  8015.    NERR_DataTypeInvalid (2167) 
  8016.       The data type is not supported by the queue processor. 
  8017.  
  8018.    NERR_ProcNotFound (2168) 
  8019.       The queue processor is not installed. 
  8020.  
  8021.    NERR_BadDev (2341) 
  8022.       The requested device is invalid. 
  8023.  
  8024.    NERR_CommDevInUse (2343) 
  8025.       This device is already in use as a communications device. 
  8026.  
  8027.    NERR_InvalidComputer (2351) 
  8028.       The computer name is invalid. 
  8029.  
  8030.  
  8031. ΓòÉΓòÉΓòÉ <hidden> Notes - SplCreateQueue ΓòÉΓòÉΓòÉ
  8032.  
  8033. To create a queue on a remote server requires administrator privilege. 
  8034.  
  8035. Applications wanting to create print queues should use the level 3 or level 6 
  8036. call with a PRQINFO3 or PRQINFO6 data structure. The following fields are 
  8037. required in PRQINFO3 or PRQINFO6: 
  8038.  
  8039. pszName 
  8040. uPriority 
  8041. uStartTime 
  8042. uUntilTime 
  8043. pszSepFile 
  8044. pszParms 
  8045. pszPrinters 
  8046. pszDriverName 
  8047. pDriverData. 
  8048.  
  8049. If a queue of the name specified in pszName already exists on pszComputerName, 
  8050. the call fails unless the queue is marked for deletion. In this case, the queue 
  8051. is not deleted, and the creation fields are used to perform a SplSetQueue 
  8052. function on the queue. 
  8053.  
  8054. If pszPrinters is NULL, the queue is created but not connected to any printer. 
  8055.  
  8056. pszDriverName can be a NULL string, in which case pDriverData is ignored. 
  8057. Otherwise pszDriverName must refer to the name of a device driver that is 
  8058. already defined in the initialization file (for example, "IBM4019"). 
  8059.  
  8060.  
  8061. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplCreateQueue ΓòÉΓòÉΓòÉ
  8062.  
  8063. /*******************************************/
  8064. /* This function creates a new print queue */
  8065. /* on the local workstation or on a remote */
  8066. /* server. A remote server setup requires  */
  8067. /* the LAN Requester and Server software.  */
  8068. /*******************************************/
  8069.  
  8070. #define INCL_SPL   /* Or use INCL_PM */
  8071. #include <os2.h>
  8072.  
  8073. PSZ     pszComputerName;   /* Name of computer where queue is to be created */
  8074. ULONG   ulLevel;           /* Level of detail provided */
  8075. PVOID   pbBuf;             /* Data structure */
  8076. ULONG   cbBuf;             /* Size, in bytes, of data structure */
  8077. SPLERR  rc;
  8078.  
  8079. rc = SplCreateQueue(pszComputerName,
  8080.        ulLevel, pbBuf, cbBuf);
  8081.  
  8082.  
  8083. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplCreateQueue ΓòÉΓòÉΓòÉ
  8084.  
  8085. Related Functions 
  8086.  
  8087. o SplDeleteQueue 
  8088. o SplEnumDevice 
  8089. o SplEnumDriver 
  8090. o SplEnumQueueProcessor 
  8091.  
  8092.  
  8093. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplCreateQueue ΓòÉΓòÉΓòÉ
  8094.  
  8095. This sample code creates a queue on the local workstation. The queue is created 
  8096. with dummy parameters. The name is entered at the command line. 
  8097.  
  8098. #define INCL_BASE
  8099. #define INCL_SPL
  8100. #define INCL_SPLDOSPRINT
  8101.  
  8102. #include <os2.h>
  8103. #include <stdio.h>
  8104. #include <string.h>
  8105.  
  8106. INT main (argc, argv )
  8107.     INT argc;
  8108.     CHAR *argv[];
  8109. {
  8110.     ULONG  splerr  ;
  8111.     ULONG  cbBuf;
  8112.     ULONG  ulLevel ;
  8113.     PSZ    pszComputerName ;
  8114.     PSZ    pszQueueName ;
  8115.     PRQINFO3 prq3  ;
  8116.  
  8117.     if (argc != 2)
  8118.     {
  8119.        printf("Syntax:  sqcrt  QueueName \n");
  8120.        DosExit( EXIT_PROCESS , 0 ) ;
  8121.     }
  8122.  
  8123.     pszComputerName = (PSZ)NULL ;
  8124.     ulLevel = 3L;
  8125.  
  8126.     /* Get the queue name from the argument entered at    */
  8127.     /* the command line.                                  */
  8128.     pszQueueName = argv[1];
  8129.  
  8130.     /* Determine the size of the needed buffer.           */
  8131.     cbBuf = sizeof(PRQINFO3);
  8132.  
  8133.     /* Set up the structure with some dummy parameters.   */
  8134.     strcpy( prq3.pszName , pszQueueName);
  8135.     prq3.uPriority=7;
  8136.     prq3.uStartTime=77;
  8137.     prq3.uUntilTime=777;
  8138.     prq3.pszSepFile="a:\\best\\example.sep";
  8139.     prq3.pszParms=NULL;
  8140.     prq3.pszPrinters=NULL;
  8141.     prq3.pszDriverName=NULL;
  8142.     prq3.pDriverData=NULL;
  8143.  
  8144.     /* Make the call with the proper parameters.                   */
  8145.     splerr = SplCreateQueue(pszComputerName, ulLevel,
  8146.                             &prq3, cbBuf);
  8147.  
  8148.     /* Print out the error return code and some other information. */
  8149.     printf("SplCreateQueue Error=%ld, cbNeeded=%ld\n",
  8150.             splerr, cbBuf) ;
  8151.  
  8152.     DosExit( EXIT_PROCESS , 0 ) ;
  8153.     return (splerr);
  8154. }
  8155.  
  8156.  
  8157. ΓòÉΓòÉΓòÉ 3.5. SplDeleteDevice ΓòÉΓòÉΓòÉ
  8158.  
  8159.  
  8160. ΓòÉΓòÉΓòÉ <hidden> Topics - SplDeleteDevice ΓòÉΓòÉΓòÉ
  8161.  
  8162. Select an item: 
  8163.  
  8164. Function Syntax 
  8165. Parameters 
  8166. Return Values 
  8167. Notes 
  8168. Example 
  8169. Related Functions 
  8170. Glossary 
  8171.  
  8172.  
  8173. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplDeleteDevice ΓòÉΓòÉΓòÉ
  8174.  
  8175. pszComputerName (PSZ) - input 
  8176.    Name of computer where print device is to be deleted. A NULL string 
  8177.    specifies the local workstation. 
  8178.  
  8179. pszPrintDeviceName (PSZ) - input 
  8180.    Name of Print Device. 
  8181.  
  8182.  
  8183. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplDeleteDevice ΓòÉΓòÉΓòÉ
  8184.  
  8185. rc (SPLERR) - return 
  8186.  
  8187.    NO_ERROR (0) 
  8188.       No errors occurred. 
  8189.  
  8190.    ERROR_ACCESS_DENIED (5) 
  8191.       Access is denied. 
  8192.  
  8193.    ERROR_NOT_SUPPORTED (50) 
  8194.       This request is not supported by the network. 
  8195.  
  8196.    ERROR_BAD_NETPATH (53) 
  8197.       The network path cannot be located. 
  8198.  
  8199.    NERR_NetNotStarted (2102) 
  8200.       The network program is not started. 
  8201.  
  8202.    NERR_DestNotFound (2152) 
  8203.       The print device cannot be found. 
  8204.  
  8205.    NERR_SpoolerNotLoaded (2161) 
  8206.       The spooler is not running. 
  8207.  
  8208.    NERR_DestInvalidState (2162) 
  8209.       This operation cannot be performed on the print device. 
  8210.  
  8211.    NERR_InvalidComputer (2351) 
  8212.       The computer name is invalid. 
  8213.  
  8214.  
  8215. ΓòÉΓòÉΓòÉ <hidden> Notes - SplDeleteDevice ΓòÉΓòÉΓòÉ
  8216.  
  8217. If the print device is currently printing a job, SplDeleteDevice fails and 
  8218. returns NERR_DestInvalidState (2162). 
  8219.  
  8220. To delete a print device on a remote server requires administrator privilege. 
  8221.  
  8222.  
  8223. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplDeleteDevice ΓòÉΓòÉΓòÉ
  8224.  
  8225. /*******************************************/
  8226. /* This function deletes a print device.   */
  8227. /*******************************************/
  8228.  
  8229. #define INCL_SPL   /* Or use INCL_PM */
  8230. #include <os2.h>
  8231.  
  8232. PSZ     pszComputerName;      /* Name of computer where print device is to be deleted */
  8233. PSZ     pszPrintDeviceName;   /* Name of Print Device */
  8234. SPLERR  rc;
  8235.  
  8236. rc = SplDeleteDevice(pszComputerName,
  8237.        pszPrintDeviceName);
  8238.  
  8239.  
  8240. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplDeleteDevice ΓòÉΓòÉΓòÉ
  8241.  
  8242. Related Functions 
  8243.  
  8244. o SplCreateDevice 
  8245. o SplEnumDevice 
  8246.  
  8247.  
  8248. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplDeleteDevice ΓòÉΓòÉΓòÉ
  8249.  
  8250. This sample code will delete the print device whose name is entered at the 
  8251. prompt. 
  8252.  
  8253. #define INCL_BASE
  8254. #define INCL_DOSMEMMGR
  8255. #define INCL_SPL
  8256. #define INCL_SPLDOSPRINT
  8257. #define INCL_SPLERRORS
  8258.  
  8259. #include <os2.h>
  8260. #include <stdio.h>
  8261.  
  8262. INT main (argc, argv)
  8263.    INT argc;
  8264.    CHAR *argv[];
  8265. {
  8266.    SPLERR splerr= 0L;
  8267.    PSZ    pszComputerName ;
  8268.    PSZ    pszPrintDeviceName ;
  8269.  
  8270.    /* Check that the parameters were entered at the command line.             */
  8271.    if (argc != 2)
  8272.    {
  8273.       printf("Syntax:  sddel  PrintDeviceName  \n");
  8274.       DosExit( EXIT_PROCESS , 0 ) ;
  8275.    }
  8276.    /* Computer name of NULL indicates the local computer.                     */
  8277.    pszComputerName = (PSZ)NULL ;
  8278.  
  8279.    /* Set the PrintDeviceName to the value entered at the command line.       */
  8280.    pszPrintDeviceName = argv[1];
  8281.  
  8282.    /* Make the call and print out the return code.                            */
  8283.    splerr=SplDeleteDevice(pszComputerName, pszPrintDeviceName);
  8284.    switch (splerr)
  8285.    {
  8286.       case  NO_ERROR:
  8287.          printf("Print Device %s was deleted.\n",pszPrintDeviceName);
  8288.          break;
  8289.       case  NERR_DestNotFound :
  8290.          printf("Destination does not exist.\n");
  8291.          break;
  8292.       case  NERR_DestInvalidState:
  8293.          printf("This operation can't be performed on the print device.\n");
  8294.          break;
  8295.       case  NERR_SpoolerNotLoaded:
  8296.          printf("The Spooler is not running.\n");
  8297.          break;
  8298.       default:
  8299.          printf("SplDeleteDevice Errorcode = %ld\n",splerr);
  8300.    } /* endswitch */
  8301.    DosExit( EXIT_PROCESS , 0 ) ;
  8302.    return (splerr) ;
  8303. }
  8304.  
  8305.  
  8306. ΓòÉΓòÉΓòÉ 3.6. SplDeleteJob ΓòÉΓòÉΓòÉ
  8307.  
  8308.  
  8309. ΓòÉΓòÉΓòÉ <hidden> Topics - SplDeleteJob ΓòÉΓòÉΓòÉ
  8310.  
  8311. Select an item: 
  8312.  
  8313. Function Syntax 
  8314. Parameters 
  8315. Return Values 
  8316. Notes 
  8317. Example 
  8318. Related Functions 
  8319. Glossary 
  8320.  
  8321.  
  8322. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplDeleteJob ΓòÉΓòÉΓòÉ
  8323.  
  8324. pszComputerName (PSZ) - input 
  8325.    Name of computer where job is to be deleted. A NULL string specifies the 
  8326.    local workstation. 
  8327.  
  8328. pszQueueName (PSZ) - input 
  8329.    Queue Name. 
  8330.  
  8331. ulJob (ULONG) - input 
  8332.    Job identification number. 
  8333.  
  8334.  
  8335. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplDeleteJob ΓòÉΓòÉΓòÉ
  8336.  
  8337. rc (SPLERR) - return 
  8338.  
  8339.    NO_ERROR (0) 
  8340.       No errors occurred. 
  8341.  
  8342.    ERROR_ACCESS_DENIED (5) 
  8343.       Access is denied. 
  8344.  
  8345.    ERROR_NOT_SUPPORTED (50) 
  8346.       This request is not supported by the network. 
  8347.  
  8348.    ERROR_BAD_NETPATH (53) 
  8349.       The network path cannot be located. 
  8350.  
  8351.    NERR_NetNotStarted (2102) 
  8352.       The network program is not started. 
  8353.  
  8354.    NERR_JobNotFound (2151) 
  8355.       The print job does not exist. 
  8356.  
  8357.    NERR_ProcNoRespond (2160) 
  8358.       The queue processor is not responding. 
  8359.  
  8360.    NERR_SpoolerNotLoaded (2161) 
  8361.       The spooler is not running. 
  8362.  
  8363.    NERR_InvalidComputer (2351) 
  8364.       The computer name is invalid. 
  8365.  
  8366.  
  8367. ΓòÉΓòÉΓòÉ <hidden> Notes - SplDeleteJob ΓòÉΓòÉΓòÉ
  8368.  
  8369. It is possible to delete a job that is currently printing. 
  8370.  
  8371. If the print queue on which the print job is submitted is pending deletion 
  8372. (following a SplDeleteQueue call), and the print job is the last in the queue, 
  8373. this function has the additional effect of deleting the queue. 
  8374.  
  8375. A user with administrator privilege can delete any job. 
  8376.  
  8377. A job created locally can be deleted locally regardless of user privilege 
  8378. level, but can be deleted remotely only by an administrator. 
  8379.  
  8380. A remote job can be deleted by a user without administrator privilege only if 
  8381. the username of the person initiating the request is the same as the username 
  8382. of the person who created the job. 
  8383.  
  8384.  
  8385. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplDeleteJob ΓòÉΓòÉΓòÉ
  8386.  
  8387. /*******************************************/
  8388. /* This function deletes a job from a      */
  8389. /* print queue.                            */
  8390. /*******************************************/
  8391.  
  8392. #define INCL_SPL   /* Or use INCL_PM */
  8393. #include <os2.h>
  8394.  
  8395. PSZ     pszComputerName;   /* Name of computer where job is to be deleted */
  8396. PSZ     pszQueueName;      /* Queue Name */
  8397. ULONG   ulJob;             /* Job identification number */
  8398. SPLERR  rc;
  8399.  
  8400. rc = SplDeleteJob(pszComputerName,
  8401.        pszQueueName, ulJob);
  8402.  
  8403.  
  8404. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplDeleteJob ΓòÉΓòÉΓòÉ
  8405.  
  8406. Related Functions 
  8407.  
  8408. o SplCopyJob 
  8409. o SplEnumJob 
  8410. o SplQueryJob 
  8411.  
  8412.  
  8413. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplDeleteJob ΓòÉΓòÉΓòÉ
  8414.  
  8415. This sample code will delete the job id that is entered at the prompt. 
  8416.  
  8417. #define INCL_BASE
  8418. #define INCL_SPL
  8419. #define INCL_SPLERRORS
  8420. #include <os2.h>
  8421. #include <stdio.h>       /* for printf function */
  8422. #include <stdlib.h>      /* for atoi  function  */
  8423.  
  8424. INT main (argc, argv)
  8425.    INT argc;
  8426.    CHAR *argv[];
  8427. {
  8428.    SPLERR splerr ;
  8429.    ULONG  ulJob ;
  8430.    PSZ    pszComputerName = NULL ;
  8431.    PSZ    pszQueueName = NULL ;
  8432.  
  8433.    /* Get job id from the input argument. */
  8434.    ulJob = atoi(argv[1]);
  8435.  
  8436.    /* Call the function to do the delete. If an error is            */
  8437.    /*  returned, print it.                                          */
  8438.    splerr = SplDeleteJob( pszComputerName, pszQueueName, ulJob);
  8439.  
  8440.    if (splerr != NO_ERROR)
  8441.    {
  8442.       switch (splerr)
  8443.       {
  8444.       case  NERR_JobNotFound :
  8445.          printf("Job does not exist.\n");
  8446.          break;
  8447.       case  NERR_JobInvalidState:
  8448.          printf("This operation can't be performed on the print job.\n");
  8449.          break;
  8450.       default:
  8451.          printf("Errorcode = %ld\n",splerr);
  8452.       } /* endswitch */
  8453.    }
  8454.    else
  8455.    {
  8456.       printf("Job %d was deleted.\n",ulJob);
  8457.    } /* endif */
  8458.    DosExit( EXIT_PROCESS , 0 ) ;
  8459.    return (splerr);
  8460. }
  8461.  
  8462.  
  8463. ΓòÉΓòÉΓòÉ 3.7. SplDeleteQueue ΓòÉΓòÉΓòÉ
  8464.  
  8465.  
  8466. ΓòÉΓòÉΓòÉ <hidden> Topics - SplDeleteQueue ΓòÉΓòÉΓòÉ
  8467.  
  8468. Select an item: 
  8469.  
  8470. Function Syntax 
  8471. Parameters 
  8472. Return Values 
  8473. Notes 
  8474. Example 
  8475. Related Functions 
  8476. Glossary 
  8477.  
  8478.  
  8479. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplDeleteQueue ΓòÉΓòÉΓòÉ
  8480.  
  8481. pszComputerName (PSZ) - input 
  8482.    Name of computer where queue is to be deleted. A NULL string specifies the 
  8483.    local workstation. 
  8484.  
  8485. pszQueueName (PSZ) - input 
  8486.    Queue name. 
  8487.  
  8488.  
  8489. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplDeleteQueue ΓòÉΓòÉΓòÉ
  8490.  
  8491. rc (SPLERR) - return 
  8492.  
  8493.    NO_ERROR (0) 
  8494.       No errors occurred. 
  8495.  
  8496.    ERROR_ACCESS_DENIED (5) 
  8497.       Access is denied. 
  8498.  
  8499.    ERROR_NOT_SUPPORTED (50) 
  8500.       This request is not supported by the network. 
  8501.  
  8502.    ERROR_BAD_NETPATH (53) 
  8503.       The network path cannot be located. 
  8504.  
  8505.    ERROR_INVALID_PARAMETER (87) 
  8506.       An invalid parameter is specified. 
  8507.  
  8508.    NERR_NetNotStarted (2102) 
  8509.       The network program is not started. 
  8510.  
  8511.    NERR_QNotFound (2150) 
  8512.       The printer queue does not exist. 
  8513.  
  8514.    NERR_SpoolerNotLoaded (2161) 
  8515.       The spooler is not running. 
  8516.  
  8517.    NERR_QInvalidState (2163) 
  8518.       This operation cannot be performed on the print queue. 
  8519.  
  8520.    NERR_InvalidComputer (2351) 
  8521.       The computer name is invalid. 
  8522.  
  8523.  
  8524. ΓòÉΓòÉΓòÉ <hidden> Notes - SplDeleteQueue ΓòÉΓòÉΓòÉ
  8525.  
  8526. If there are print jobs in the queue, SplDeleteQueue marks the queue 
  8527. PRQ3_PENDING. No further jobs can then be added to the queue, which is deleted 
  8528. when all jobs are printed. A queue marked PRQ3_PENDING can be held, and jobs in 
  8529. the queue can be held, restarted, and repeated. 
  8530.  
  8531. If a queue is held and there are jobs on the queue, a SplDeleteQueue function 
  8532. fails with NERR_QInvalidState (2163). 
  8533.  
  8534. To delete a queue on a remote server requires administrator privilege on the 
  8535. remote server. 
  8536.  
  8537.  
  8538. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplDeleteQueue ΓòÉΓòÉΓòÉ
  8539.  
  8540. /*******************************************/
  8541. /* This function deletes a print queue     */
  8542. /* from the spooler.                       */
  8543. /*******************************************/
  8544.  
  8545. #define INCL_SPL   /* Or use INCL_PM */
  8546. #include <os2.h>
  8547.  
  8548. PSZ     pszComputerName;   /* Name of computer where queue is to be deleted */
  8549. PSZ     pszQueueName;      /* Queue name */
  8550. SPLERR  rc;
  8551.  
  8552. rc = SplDeleteQueue(pszComputerName,
  8553.        pszQueueName);
  8554.  
  8555.  
  8556. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplDeleteQueue ΓòÉΓòÉΓòÉ
  8557.  
  8558. Related Functions 
  8559.  
  8560. o SplCreateQueue 
  8561. o SplEnumQueue 
  8562. o SplQueryQueue 
  8563.  
  8564.  
  8565. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplDeleteQueue ΓòÉΓòÉΓòÉ
  8566.  
  8567. This sample code will delete the queue name that is entered at the prompt. 
  8568.  
  8569. #define INCL_SPL
  8570. #define INCL_SPLERRORS
  8571. #include <os2.h>
  8572. #include <stdio.h>       /* for printf function */
  8573.  
  8574. INT main (argc, argv)
  8575.    INT argc;
  8576.    CHAR *argv[];
  8577. {
  8578.    SPLERR splerr ;
  8579.    PSZ    pszComputerName = NULL ;
  8580.    PSZ    pszQueueName ;
  8581.  
  8582.    /* Get queue name from the input argument  */
  8583.    pszQueueName = argv[1];
  8584.  
  8585.    /* Call the function to do the delete. If an error is returned, print it.
  8586. */
  8587.    splerr=SplDeleteQueue(pszComputerName, pszQueueName);
  8588.  
  8589.    if (splerr != 0L)
  8590.    {
  8591.       switch (splerr)
  8592.       {
  8593.          case  NERR_QNotFound :
  8594.             printf("Queue does not exist.\n");
  8595.             break;
  8596.          case  NERR_QInvalidState:
  8597.             printf("This operation can't be performed on the print queue.\n");
  8598.             break;
  8599.          default:
  8600.             printf("Errorcode = %ld\n",splerr);
  8601.       } /* endswitch */
  8602.    }
  8603.    else
  8604.    {
  8605.       printf("Queue %s was deleted.\n",pszQueueName);
  8606.    } /* endif */
  8607.    DosExit( EXIT_PROCESS , 0 ) ;
  8608.    return (splerr);
  8609. }
  8610.  
  8611.  
  8612. ΓòÉΓòÉΓòÉ 3.8. SplEnumDevice ΓòÉΓòÉΓòÉ
  8613.  
  8614.  
  8615. ΓòÉΓòÉΓòÉ <hidden> Topics - SplEnumDevice ΓòÉΓòÉΓòÉ
  8616.  
  8617. Select an item: 
  8618.  
  8619. Function Syntax 
  8620. Parameters 
  8621. Return Values 
  8622. Notes 
  8623. Example 
  8624. Related Functions 
  8625. Glossary 
  8626.  
  8627.  
  8628. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplEnumDevice ΓòÉΓòÉΓòÉ
  8629.  
  8630. pszComputerName (PSZ) - input 
  8631.    Name of computer where print devices are to be listed. A NULL string 
  8632.    specifies the local workstation. 
  8633.  
  8634. ulLevel (ULONG) - input 
  8635.    Level of detail required. This must be 0, 2 or 3. 
  8636.  
  8637. pBuf (PPVOID) - output 
  8638.    Buffer. 
  8639.  
  8640. cbBuf (ULONG) - input 
  8641.    Size, in bytes, of Buffer. 
  8642.  
  8643. pcReturned (PULONG) - output 
  8644.    Number of entries returned. 
  8645.  
  8646. pcTotal (PULONG) - output 
  8647.    Number of entries available. 
  8648.  
  8649. pcbNeeded (PULONG) - output 
  8650.    Size in bytes of available information. A value of 0 specifies that the size 
  8651.    is not known. 
  8652.  
  8653. pReserved (PPVOID) - output 
  8654.    Reserved. This must be NULL. 
  8655.  
  8656.  
  8657. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplEnumDevice ΓòÉΓòÉΓòÉ
  8658.  
  8659. rc (SPLERR) - return 
  8660.  
  8661.    NO_ERROR (0) 
  8662.       No errors occurred. 
  8663.  
  8664.    ERROR_NOT_SUPPORTED (50) 
  8665.       This request is not supported by the network. 
  8666.  
  8667.    ERROR_BAD_NETPATH (53) 
  8668.       The network path cannot be located. 
  8669.  
  8670.    ERROR_INVALID_PARAMETER (87) 
  8671.       An invalid parameter is specified. 
  8672.  
  8673.    ERROR_INVALID_LEVEL (124) 
  8674.       The level parameter is invalid. 
  8675.  
  8676.    ERROR_MORE_DATA (234) 
  8677.       Additional data is available. 
  8678.  
  8679.    NERR_NetNotStarted (2102) 
  8680.       The network program is not started. 
  8681.  
  8682.    NERR_SpoolerNotLoaded (2161) 
  8683.       The spooler is not running. 
  8684.  
  8685.    NERR_InvalidComputer (2351) 
  8686.       The computer name is invalid. 
  8687.  
  8688.  
  8689. ΓòÉΓòÉΓòÉ <hidden> Notes - SplEnumDevice ΓòÉΓòÉΓòÉ
  8690.  
  8691. The buffer contents on return are: 
  8692.  
  8693. ulLevel   Buffer Contents 
  8694. 0         An array of port names of type PSZ. 
  8695. 2         An array of print device names of type PSZ. 
  8696. 3         An array of PRDINFO3 structures. 
  8697.  
  8698. If no job is printing on the print device, bits 2-11 of fsStatus in the 
  8699. PRDINFO3 data structure are meaningless. 
  8700.  
  8701.  
  8702. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplEnumDevice ΓòÉΓòÉΓòÉ
  8703.  
  8704. /*******************************************/
  8705. /* This function lists print device on a   */
  8706. /* server, optionally supplying status     */
  8707. /* information.                            */
  8708. /*******************************************/
  8709.  
  8710. #define INCL_SPL   /* Or use INCL_PM */
  8711. #include <os2.h>
  8712.  
  8713. PSZ     pszComputerName;   /* Name of computer where print devices are to be listed */
  8714. ULONG   ulLevel;           /* Level of detail required */
  8715. PPVOID  pBuf;              /* Buffer */
  8716. ULONG   cbBuf;             /* Size, in bytes, of Buffer */
  8717. PULONG  pcReturned;        /* Number of entries returned */
  8718. PULONG  pcTotal;           /* Number of entries available */
  8719. PULONG  pcbNeeded;         /* Size in bytes of available information */
  8720. PPVOID  pReserved;         /* Reserved */
  8721. SPLERR  rc;
  8722.  
  8723. rc = SplEnumDevice(pszComputerName, ulLevel,
  8724.        pBuf, cbBuf, pcReturned, pcTotal,
  8725.        pcbNeeded, pReserved);
  8726.  
  8727.  
  8728. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplEnumDevice ΓòÉΓòÉΓòÉ
  8729.  
  8730. Related Functions 
  8731.  
  8732. o SplCreateDevice 
  8733. o SplDeleteDevice 
  8734.  
  8735.  
  8736. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplEnumDevice ΓòÉΓòÉΓòÉ
  8737.  
  8738. This sample code enumerates all the devices on the local workstation. It then 
  8739. prints out the information. 
  8740.  
  8741. #define INCL_BASE
  8742. #define INCL_DOSMEMMGR
  8743. #define INCL_SPL
  8744. #define INCL_SPLDOSPRINT
  8745. #define INCL_SPLERRORS
  8746.  
  8747. #include <os2.h>
  8748. #include <stdio.h>
  8749.  
  8750. INT main ()
  8751. {
  8752.    ULONG  cbBuf ;
  8753.    ULONG  cTotal;
  8754.    ULONG  cReturned ;
  8755.    ULONG  cbNeeded ;
  8756.    ULONG  ulLevel = 3L;
  8757.    ULONG  i ;
  8758.    SPLERR splerr ;
  8759.    PSZ    pszComputerName ;
  8760.    PBYTE  pBuf ;
  8761.    PPRDINFO3 pprd3 ;
  8762.  
  8763.    pszComputerName = (PSZ)NULL ;
  8764.  
  8765.    /* Make the call with cBuf = 0 so that you will get the size of the */
  8766.    /* buffer  needed returned in cbNeeded.                             */
  8767.    splerr = SplEnumDevice(pszComputerName, ulLevel, pBuf, 0L, /* cbBuf */
  8768.                             &cReturned, &cTotal, &cbNeeded,
  8769.                             NULL) ;
  8770.  
  8771.    /* Only continue if the error codes ERROR_MORE_DATA or       */
  8772.    /* NERR_BufTooSmall are returned.                               */
  8773.    if (splerr == ERROR_MORE_DATA || splerr == NERR_BufTooSmall)
  8774.    {
  8775.       /* Allocate memory for the buffer that will hold the returning info. */
  8776.       if (!DosAllocMem( &pBuf, cbNeeded,
  8777.                         PAG_READ|PAG_WRITE|PAG_COMMIT) )
  8778.       {
  8779.          cbBuf = cbNeeded ;
  8780.  
  8781.          /* Make call again with the proper buffer size.                   */
  8782.          splerr = SplEnumDevice(pszComputerName, ulLevel, pBuf, cbBuf,
  8783.                                 &cReturned, &cTotal,
  8784.                                 &cbNeeded, NULL) ;
  8785.  
  8786.          /* If no errors, print out the buffer information.                */
  8787.          if (splerr == NO_ERROR)
  8788.          {
  8789.             for (i=0;i < cReturned ; i++)
  8790.             {
  8791.                /* Each time through the loop increase the pointer.         */
  8792.                pprd3 = (PPRDINFO3)pBuf+i ;
  8793.                printf("Device info:pszPrinterName   - %s\n",
  8794.                             pprd3->pszPrinterName) ;
  8795.                printf("  pszUserName - %s\n", pprd3->pszUserName);
  8796.                printf("  pszLogAddr  - %s\n", pprd3->pszLogAddr);
  8797.                printf("  uJobId      - %d  fsStatus - %X\n",
  8798.                             pprd3->uJobId ,  pprd3->fsStatus);
  8799.                printf("  pszStatus   - %s\n", pprd3->pszStatus);
  8800.                printf("  pszComment  - %s\n", pprd3->pszComment);
  8801.                printf("  pszDrivers  - %s\n", pprd3->pszDrivers);
  8802.                printf("  time        - %d usTimeOut - %X\n",
  8803.                             pprd3->time ,  pprd3->usTimeOut);
  8804.              }
  8805.          }
  8806.          DosFreeMem(pBuf) ;
  8807.       }
  8808.    } /* end if  */
  8809.    else
  8810.    {
  8811.        printf("SplEnumDevice splerr=%ld, cTotal=%ld, cReturned=%ld,
  8812. cbNeeded=%ld\n",
  8813.                                splerr, cTotal, cReturned, cbNeeded) ;
  8814.    }
  8815.    DosExit( EXIT_PROCESS , 0 ) ;
  8816.    return(splerr);
  8817. }   /* end main */
  8818.  
  8819.  
  8820. ΓòÉΓòÉΓòÉ 3.9. SplEnumDriver ΓòÉΓòÉΓòÉ
  8821.  
  8822.  
  8823. ΓòÉΓòÉΓòÉ <hidden> Topics - SplEnumDriver ΓòÉΓòÉΓòÉ
  8824.  
  8825. Select an item: 
  8826.  
  8827. Function Syntax 
  8828. Parameters 
  8829. Return Values 
  8830. Notes 
  8831. Example 
  8832. Related Functions 
  8833. Glossary 
  8834.  
  8835.  
  8836. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplEnumDriver ΓòÉΓòÉΓòÉ
  8837.  
  8838. pszComputerName (PSZ) - input 
  8839.    Name of computer where queues are to be listed. A NULL string specifies the 
  8840.    local workstation. 
  8841.  
  8842. ulLevel (ULONG) - input 
  8843.    Level of detail. The level of detail required. This must be 0. 
  8844.  
  8845. pBuf (PPVOID) - output 
  8846.    Buffer. 
  8847.  
  8848. cbBuf (ULONG) - input 
  8849.    Size, in bytes, of Buffer. 
  8850.  
  8851. pcReturned (PULONG) - output 
  8852.    Number of entries returned. 
  8853.  
  8854. pcTotal (PULONG) - output 
  8855.    Total number of entries available. 
  8856.  
  8857. pcbNeeded (PULONG) - output 
  8858.    Size in bytes of available information. A value of 0 specifies that the size 
  8859.    is not known. 
  8860.  
  8861. pReserved (PPVOID) - output 
  8862.    Reserved. This must be NULL. 
  8863.  
  8864.  
  8865. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplEnumDriver ΓòÉΓòÉΓòÉ
  8866.  
  8867. rc (SPLERR) - return 
  8868.  
  8869.    NO_ERROR (0) 
  8870.       No errors occurred. 
  8871.  
  8872.    ERROR_ACCESS_DENIED (5) 
  8873.       Access is denied. 
  8874.  
  8875.    ERROR_NOT_SUPPORTED (50) 
  8876.       This request is not supported by the network. 
  8877.  
  8878.    ERROR_BAD_NETPATH (53) 
  8879.       The network path cannot be located. 
  8880.  
  8881.    ERROR_INVALID_PARAMETER (87) 
  8882.       An invalid parameter is specified. 
  8883.  
  8884.    ERROR_INVALID_LEVEL (124) 
  8885.       The level parameter is invalid. 
  8886.  
  8887.    ERROR_MORE_DATA (234) 
  8888.       Additional data is available. 
  8889.  
  8890.    NERR_NetNotStarted (2102) 
  8891.       The network program is not started. 
  8892.  
  8893.    NERR_BufTooSmall (2123) 
  8894.       The API return buffer is too small. 
  8895.  
  8896.    NERR_SpoolerNotLoaded (2161) 
  8897.       The spooler is not running. 
  8898.  
  8899.    NERR_InvalidComputer (2351) 
  8900.       The computer name is invalid. 
  8901.  
  8902.  
  8903. ΓòÉΓòÉΓòÉ <hidden> Notes - SplEnumDriver ΓòÉΓòÉΓòÉ
  8904.  
  8905. The buffer contents on return are: 
  8906.  
  8907. ulLevel   Buffer Contents 
  8908. 0         An array of PRDRIVINFO structures 
  8909.  
  8910.  
  8911. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplEnumDriver ΓòÉΓòÉΓòÉ
  8912.  
  8913. /*******************************************/
  8914. /* This function lists printer             */
  8915. /* presentation drivers on the local       */
  8916. /* workstation or on a remote server.      */
  8917. /*******************************************/
  8918.  
  8919. #define INCL_SPL   /* Or use INCL_PM */
  8920. #include <os2.h>
  8921.  
  8922. PSZ     pszComputerName;   /* Name of computer where queues are to be listed */
  8923. ULONG   ulLevel;           /* Level of detail */
  8924. PPVOID  pBuf;              /* Buffer */
  8925. ULONG   cbBuf;             /* Size, in bytes, of Buffer */
  8926. PULONG  pcReturned;        /* Number of entries returned */
  8927. PULONG  pcTotal;           /* Total number of entries available */
  8928. PULONG  pcbNeeded;         /* Size in bytes of available information */
  8929. PPVOID  pReserved;         /* Reserved */
  8930. SPLERR  rc;
  8931.  
  8932. rc = SplEnumDriver(pszComputerName, ulLevel,
  8933.        pBuf, cbBuf, pcReturned, pcTotal,
  8934.        pcbNeeded, pReserved);
  8935.  
  8936.  
  8937. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplEnumDriver ΓòÉΓòÉΓòÉ
  8938.  
  8939. Related Functions 
  8940.  
  8941. o SplCreateDevice 
  8942. o SplCreateQueue 
  8943. o SplSetDevice 
  8944. o SplSetQueue 
  8945.  
  8946.  
  8947. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplEnumDriver ΓòÉΓòÉΓòÉ
  8948.  
  8949. This sample code will enumerate all the drivers on a local computer. 
  8950.  
  8951.  
  8952. #define INCL_BASE
  8953. #define INCL_DOSMEMMGR
  8954. #define INCL_SPL
  8955. #define INCL_SPLDOSPRINT
  8956. #define INCL_SPLERRORS
  8957.  
  8958. #include <os2.h>
  8959. #include <stdio.h>        /* for printf function   */
  8960.  
  8961. INT main ()
  8962. {
  8963.    SPLERR splerr ;
  8964.    ULONG  cbBuf ;
  8965.    ULONG  cTotal ;
  8966.    ULONG  cReturned ;
  8967.    ULONG  cbNeeded ;
  8968.    ULONG  i ;
  8969.    PSZ    pszComputerName = NULL ;
  8970.    PSZ    pszDriverName ;
  8971.    PBYTE  pbuf ;
  8972.  
  8973.    /* Call the function the first time with zero in cbBuf. The count of bytes */
  8974.    /* needed for the buffer to hold all the info will be returned in cbNeeded.*/
  8975.    splerr = SplEnumDriver(pszComputerName, 0L, NULL, 0L,
  8976.                              &cReturned, &cTotal, &cbNeeded,
  8977.                              NULL );
  8978.  
  8979.    /* If the return code is ERROR_MORE_DATA or NERR_BufTooSmall, then
  8980. all the */
  8981.    /* parameters were correct; and we can continue.                           */
  8982.    if (splerr == ERROR_MORE_DATA || splerr == NERR_BufTooSmall)
  8983.    {
  8984.       /* Allocate memory for the buffer to hold the returned information. Use */
  8985.       /* the count of bytes that were returned by our first call.             */
  8986.       if (!DosAllocMem( &pbuf, cbNeeded,
  8987. PAG_READ|PAG_WRITE|PAG_COMMIT) )
  8988.       {
  8989.          /* Set count of bytes to the value returned by our first call.       */
  8990.          cbBuf= cbNeeded ;
  8991.  
  8992.          /* Now call the function a second time with the correct values, and  */
  8993.          /* the information will be returned in the buffer.                   */
  8994.          splerr= SplEnumDriver(pszComputerName, 0L, pbuf, cbBuf,
  8995.                                  &cReturned ,&cTotal, &cbNeeded,
  8996.                                  NULL ) ;
  8997.          if (splerr == NO_ERROR)
  8998.          {
  8999.             /* Set a pointer to point to the beginning of the buffer.         */
  9000.             pszDriverName = (PSZ)pbuf;
  9001.  
  9002.             /* Print the names that are in the buffer. The count of the number*/
  9003.             /* of names in pBuf have been returned in cReturned.              */
  9004.             for (i=0;i < cReturned ; i++)
  9005.             {
  9006.                printf("Driver name - %s\n", pszDriverName) ;
  9007.                /* Increment the pointer to point to the next name.            */
  9008.                pszDriverName += DRIV_NAME_SIZE +DRIV_DEVICENAME_SIZE
  9009. + 2;
  9010.             }
  9011.          }
  9012.          /* Free the memory allocated for the buffer.                         */
  9013.          DosFreeMem(pbuf) ;
  9014.       }
  9015.    }
  9016.    else
  9017.    {
  9018.       /* If the first call to the function returned any error code other      */
  9019.       /* than ERROR_MORE_DATA or NERR_BufTooSmall, we print the
  9020. following.    */
  9021.       printf("SplEnumDriver error=%ld \n",splerr) ;
  9022.    }
  9023.    DosExit( EXIT_PROCESS , 0 ) ;
  9024.    return (splerr);
  9025. }
  9026.  
  9027.  
  9028. ΓòÉΓòÉΓòÉ 3.10. SplEnumJob ΓòÉΓòÉΓòÉ
  9029.  
  9030.  
  9031. ΓòÉΓòÉΓòÉ <hidden> Topics - SplEnumJob ΓòÉΓòÉΓòÉ
  9032.  
  9033. Select an item: 
  9034.  
  9035. Function Syntax 
  9036. Parameters 
  9037. Return Values 
  9038. Notes 
  9039. Example 
  9040. Related Functions 
  9041. Glossary 
  9042.  
  9043.  
  9044. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplEnumJob ΓòÉΓòÉΓòÉ
  9045.  
  9046. pszComputerName (PSZ) - input 
  9047.    Name of computer where jobs are to be listed. A NULL string specifies the 
  9048.    local workstation. 
  9049.  
  9050. pszQueueName (PSZ) - input 
  9051.    Queue name. 
  9052.  
  9053. ulLevel (ULONG) - input 
  9054.    Level of detail required. This must be 0 or 2. 
  9055.  
  9056. pBuf (PPVOID) - output 
  9057.    Buffer. 
  9058.  
  9059. cbBuf (ULONG) - input 
  9060.    Size, in bytes, of Buffer. 
  9061.  
  9062. pcReturned (PULONG) - output 
  9063.    Number of entries returned. 
  9064.  
  9065. pcTotal (PULONG) - output 
  9066.    Number of entries available. 
  9067.  
  9068. pcbNeeded (PULONG) - output 
  9069.    Size in bytes of available information. A value of 0 specifies that the size 
  9070.    is not known. 
  9071.  
  9072. pReserved (PPVOID) - output 
  9073.    Reserved. 
  9074.  
  9075.  
  9076. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplEnumJob ΓòÉΓòÉΓòÉ
  9077.  
  9078. rc (SPLERR) - return 
  9079.  
  9080.    NO_ERROR (0) 
  9081.       No errors occurred. 
  9082.  
  9083.    ERROR_NOT_SUPPORTED (50) 
  9084.       This request is not supported by the network. 
  9085.  
  9086.    ERROR_INVALID_PARAMETER (87) 
  9087.       An invalid parameter is specified. 
  9088.  
  9089.    ERROR_INVALID_LEVEL (124) 
  9090.       The level parameter is invalid. 
  9091.  
  9092.    ERROR_MORE_DATA (234) 
  9093.       Additional data is available. 
  9094.  
  9095.    NERR_NetNotStarted (2102) 
  9096.       The network program is not started. 
  9097.  
  9098.    NERR_QNotFound (2150) 
  9099.       The printer queue does not exist. 
  9100.  
  9101.    NERR_SpoolerNotLoaded (2161) 
  9102.       The spooler is not running. 
  9103.  
  9104.    NERR_InvalidComputer (2351) 
  9105.       The computer name is invalid. 
  9106.  
  9107.  
  9108. ΓòÉΓòÉΓòÉ <hidden> Notes - SplEnumJob ΓòÉΓòÉΓòÉ
  9109.  
  9110. The buffer contents on return are: 
  9111.  
  9112. ulLevel   Buffer Contents 
  9113. 0         An array containing a uJobId for each of pcReturned jobs. 
  9114. 2         An array containing a PRJINFO2 structure for each of pcReturned jobs. 
  9115.  
  9116.  
  9117. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplEnumJob ΓòÉΓòÉΓòÉ
  9118.  
  9119. /*******************************************/
  9120. /* This function lists the jobs in a print */
  9121. /* queue, optionally supplying status      */
  9122. /* information on each job.                */
  9123. /*******************************************/
  9124.  
  9125. #define INCL_SPL   /* Or use INCL_PM */
  9126. #include <os2.h>
  9127.  
  9128. PSZ     pszComputerName;   /* Name of computer where jobs are to be listed */
  9129. PSZ     pszQueueName;      /* Queue name */
  9130. ULONG   ulLevel;           /* Level of detail required */
  9131. PPVOID  pBuf;              /* Buffer */
  9132. ULONG   cbBuf;             /* Size, in bytes, of Buffer */
  9133. PULONG  pcReturned;        /* Number of entries returned */
  9134. PULONG  pcTotal;           /* Number of entries available */
  9135. PULONG  pcbNeeded;         /* Size in bytes of available information */
  9136. PPVOID  pReserved;         /* Reserved. This must be NULL */
  9137. SPLERR  rc;
  9138.  
  9139. rc = SplEnumJob(pszComputerName,
  9140.        pszQueueName, ulLevel, pBuf, cbBuf,
  9141.        pcReturned, pcTotal, pcbNeeded,
  9142.        pReserved);
  9143.  
  9144.  
  9145. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplEnumJob ΓòÉΓòÉΓòÉ
  9146.  
  9147. Related Functions 
  9148.  
  9149. o SplCopyJob 
  9150. o SplDeleteJob 
  9151. o SplQueryJob 
  9152.  
  9153.  
  9154. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplEnumJob ΓòÉΓòÉΓòÉ
  9155.  
  9156. This sample code accepts a queue name from the  command line, and then prints 
  9157. out all the information associated with each job in that queue. Level 0 and 2 
  9158. are valid; we have chosen to print out level 2 information. 
  9159.  
  9160. #define INCL_SPL
  9161. #define INCL_SPLDOSPRINT
  9162. #define INCL_SPLERRORS
  9163.  
  9164. #include <os2.h>
  9165. #include <stdio.h>      /* for printf function */
  9166.  
  9167. INT main (argc, argv)
  9168.   INT argc;
  9169.   CHAR *argv[];
  9170. {
  9171.   ULONG  splerr ;
  9172.   ULONG  cbBuf ;
  9173.   ULONG  cTotal ;
  9174.   ULONG  cReturned ;
  9175.   ULONG  cbNeeded ;
  9176.   ULONG  ulLevel;
  9177.   ULONG  i ;
  9178.   PSZ    pszComputerName ;
  9179.   PSZ    pszQueueName ;
  9180.   PVOID  pBuf = NULL;
  9181.   PPRJINFO2 pprj2 ;
  9182.  
  9183.   /* Check that the command line entry was two parameters.                    */
  9184.   if (argc != 2)
  9185.   {
  9186.     printf("Syntax:  enumjob  QueueName\n");
  9187.     DosExit( EXIT_PROCESS , 0 ) ;
  9188.   }
  9189.   /* Either a NULL or a pointer to a NULL specify the local workstation.      */
  9190.   pszComputerName = (PSZ)NULL ;
  9191.  
  9192.   /* Set queue name equal to the value entered at the command line.           */
  9193.   pszQueueName = argv[1];
  9194.  
  9195.   /* Valid level are 0 and2. Level 2 gives info for a PRJINFO2 structure.     */
  9196.   ulLevel = 2L;
  9197.  
  9198.   /* Make the call the first time with cbBuf = zero so that we can get a      */
  9199.   /* return of the number of bytes that are need for pBuf to hold all of      */
  9200.   /* the information. The bytes needed will be returned in cbNeeded.          */
  9201.   splerr = SplEnumJob(pszComputerName,pszQueueName, ulLevel, pBuf,0L,
  9202.                          &cReturned, &cTotal,
  9203.                          &cbNeeded, NULL) ;
  9204.  
  9205.   /* Check that the return code is one of the two valid errors at this time.  */
  9206.   if (splerr == ERROR_MORE_DATA || splerr == NERR_BufTooSmall )
  9207.   {
  9208.      /* Allocate memory for pBuf. ( No error checking is done on DosAllocMem  */
  9209.      /* call to keep this sample code simple.)                                */
  9210.      DosAllocMem( &pBuf, cbNeeded,
  9211.                   PAG_READ|PAG_WRITE|PAG_COMMIT );
  9212.  
  9213.      /* Set bytes needed for buffer to the value returned by the first call.  */
  9214.      cbBuf = cbNeeded ;
  9215.  
  9216.      /* Make the call with all the valid information.                         */
  9217.      SplEnumJob(pszComputerName,pszQueueName, ulLevel,
  9218.                          pBuf, cbBuf, &cReturned,&cTotal,
  9219.                          &cbNeeded,NULL );
  9220.  
  9221.      /* Set up a pointer to point to the beginning of the buffer in which we */
  9222.      /* have the returned information                                        */
  9223.      pprj2=(PPRJINFO2)pBuf;
  9224.  
  9225.      /* The number of structures in the buffer(pBuf) are returned in cReturned*/
  9226.      /* Implement a for loop to print out the information for each structure. */
  9227.      for (i=0; i<cReturned ;i++ )
  9228.      {
  9229.          printf("Job ID       = %d\n",  pprj2->uJobId);
  9230.          printf("Job Priority = %d\n",  pprj2->uPriority);
  9231.          printf("User Name    = %s\n",  pprj2->pszUserName);
  9232.          printf("Position     = %d\n",  pprj2->uPosition);
  9233.          printf("Status       = %d\n",  pprj2->fsStatus);
  9234.          printf("Submitted    = %ld\n", pprj2->ulSubmitted);
  9235.          printf("Size         = %ld\n", pprj2->ulSize);
  9236.          printf("Comment      = %s\n",  pprj2->pszComment);
  9237.          printf("Document     = %s\n\n",pprj2->pszDocument);
  9238.  
  9239.          /* Increment the pointer to point to the next structure in the buffer*/
  9240.          pprj2++;
  9241.      } /* endfor */
  9242.      /* Free the memory that we allocated to make the call.                   */
  9243.      DosFreeMem(pBuf) ;
  9244.   }
  9245.   else
  9246.   {
  9247.   /* If any other error other than ERROR_MORE_DATA or NERR_BufTooSmall,
  9248. then  */
  9249.   /* print the returned information.                                          */
  9250.      printf("SplEnumJob Error=%ld, Total Jobs=%ld, Returned Jobs=%ld, Bytes
  9251. Needed=%ld\n",
  9252.               splerr, cTotal, cReturned, cbNeeded) ;
  9253.   }
  9254.   DosExit( EXIT_PROCESS , 0 ) ;
  9255.   return (splerr);
  9256. }
  9257.  
  9258.  
  9259. ΓòÉΓòÉΓòÉ 3.11. SplEnumPort ΓòÉΓòÉΓòÉ
  9260.  
  9261.  
  9262. ΓòÉΓòÉΓòÉ <hidden> Topics - SplEnumPort ΓòÉΓòÉΓòÉ
  9263.  
  9264. Select an item: 
  9265.  
  9266. Function Syntax 
  9267. Parameters 
  9268. Return Values 
  9269. Notes 
  9270. Example 
  9271. Related Functions 
  9272. Glossary 
  9273.  
  9274.  
  9275. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplEnumPort ΓòÉΓòÉΓòÉ
  9276.  
  9277. pszComputerName (PSZ) - input 
  9278.    Name of computer where queues are to be listed. A NULL string specifies the 
  9279.    local workstation. 
  9280.  
  9281. ulLevel (ULONG) - input 
  9282.    Level of detail. The level of detail required. This must be 0 or 1. 
  9283.  
  9284. pBuf (PPVOID) - output 
  9285.    Buffer. 
  9286.  
  9287. cbBuf (ULONG) - input 
  9288.    Size, in bytes, of Buffer. 
  9289.  
  9290. pcReturned (PULONG) - output 
  9291.    Number of entries returned. 
  9292.  
  9293. pcTotal (PULONG) - output 
  9294.    Total number of entries available. 
  9295.  
  9296. pcbNeeded (PULONG) - output 
  9297.    Size in bytes of available information. A value of 0 specifies that the size 
  9298.    is not known. 
  9299.  
  9300. pReserved (PPVOID) - output 
  9301.    Reserved. This must be NULL. 
  9302.  
  9303.  
  9304. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplEnumPort ΓòÉΓòÉΓòÉ
  9305.  
  9306. rc (SPLERR) - return 
  9307.  
  9308.    NO_ERROR (0) 
  9309.       No errors occurred. 
  9310.  
  9311.    ERROR_ACCESS_DENIED (5) 
  9312.       Access is denied. 
  9313.  
  9314.    ERROR_NOT_SUPPORTED (50) 
  9315.       This request is not supported by the network. 
  9316.  
  9317.    ERROR_BAD_NETPATH (53) 
  9318.       The network path cannot be located. 
  9319.  
  9320.    ERROR_INVALID_PARAMETER (87) 
  9321.       An invalid parameter is specified. 
  9322.  
  9323.    ERROR_INVALID_LEVEL (124) 
  9324.       The level parameter is invalid. 
  9325.  
  9326.    ERROR_MORE_DATA (234) 
  9327.       Additional data is available. 
  9328.  
  9329.    NERR_NetNotStarted (2102) 
  9330.       The network program is not started. 
  9331.  
  9332.    NERR_BufTooSmall (2123) 
  9333.       The API return buffer is too small. 
  9334.  
  9335.    NERR_SpoolerNotLoaded (2161) 
  9336.       The spooler is not running. 
  9337.  
  9338.    NERR_InvalidComputer (2351) 
  9339.       The computer name is invalid. 
  9340.  
  9341.  
  9342. ΓòÉΓòÉΓòÉ <hidden> Notes - SplEnumPort ΓòÉΓòÉΓòÉ
  9343.  
  9344. The buffer contents on return are: 
  9345.  
  9346. ulLevel   Buffer Contents 
  9347. 0         An array of PRPORTINFO structures 
  9348. 1         An array of PRPORTINFO1 structures 
  9349.  
  9350.  
  9351. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplEnumPort ΓòÉΓòÉΓòÉ
  9352.  
  9353. /*******************************************/
  9354. /* This function lists printer ports on    */
  9355. /* the local workstation or on a remote    */
  9356. /* server.                                 */
  9357. /*******************************************/
  9358.  
  9359. #define INCL_SPL   /* Or use INCL_PM */
  9360. #include <os2.h>
  9361.  
  9362. PSZ     pszComputerName;   /* Name of computer where queues are to be listed */
  9363. ULONG   ulLevel;           /* Level of detail */
  9364. PPVOID  pBuf;              /* Buffer */
  9365. ULONG   cbBuf;             /* Size, in bytes, of Buffer */
  9366. PULONG  pcReturned;        /* Number of entries returned */
  9367. PULONG  pcTotal;           /* Total number of entries available */
  9368. PULONG  pcbNeeded;         /* Size in bytes of available information */
  9369. PPVOID  pReserved;         /* Reserved */
  9370. SPLERR  rc;
  9371.  
  9372. rc = SplEnumPort(pszComputerName, ulLevel,
  9373.        pBuf, cbBuf, pcReturned, pcTotal,
  9374.        pcbNeeded, pReserved);
  9375.  
  9376.  
  9377. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplEnumPort ΓòÉΓòÉΓòÉ
  9378.  
  9379. Related Functions 
  9380.  
  9381. o SplCreateDevice 
  9382. o SplSetDevice 
  9383.  
  9384.  
  9385. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplEnumPort ΓòÉΓòÉΓòÉ
  9386.  
  9387. This sample code will print out all the ports an associated information.  This 
  9388. is done at level 1, and for the local workstation. 
  9389.  
  9390. #define INCL_DOSMEMMGR
  9391. #define INCL_SPL
  9392. #define INCL_SPLDOSPRINT
  9393. #define INCL_SPLERRORS
  9394.  
  9395. #include <os2.h>
  9396. #include <stdio.h>
  9397.  
  9398. INT main ()
  9399. {
  9400.    SPLERR splerr ;
  9401.    ULONG  cbBuf ;
  9402.    ULONG  cTotal;
  9403.    ULONG  cReturned ;
  9404.    ULONG  cbNeeded ;
  9405.    ULONG  ulLevel = 1;
  9406.    ULONG  i ;
  9407.    PSZ    pszComputerName = NULL;
  9408.    PVOID  pbuf ;
  9409.    PPRPORTINFO1 pPort1 ;
  9410.  
  9411.    splerr = SplEnumPort(pszComputerName, ulLevel, pbuf, 0L, /* cbBuf */
  9412.                             &cReturned, &cTotal,
  9413.                             &cbNeeded, NULL) ;
  9414.  
  9415.    if (splerr == ERROR_MORE_DATA || NERR_BufTooSmall )
  9416.    {
  9417.       if (!DosAllocMem( &pbuf, cbNeeded,
  9418.                         PAG_READ|PAG_WRITE|PAG_COMMIT) )
  9419.       {
  9420.           cbBuf = cbNeeded ;
  9421.           splerr = SplEnumPort(pszComputerName, ulLevel, pbuf, cbBuf,
  9422.                                   &cReturned, &cTotal,
  9423.                                   &cbNeeded, NULL) ;
  9424.           if (splerr == 0L)
  9425.           {
  9426.              pPort1 = (PPRPORTINFO1)pbuf ;
  9427.              printf("Port names: ");
  9428.              for (i=0; i < cReturned; i++)
  9429.              {
  9430.                 printf("Port - %s, Driver - %s Path - %s\n              ",
  9431.                        pPort1->pszPortName, pPort1->pszPortDriverName,
  9432.                        pPort1->pszPortDriverPathName ) ;
  9433.                 pPort1++ ;
  9434.              }
  9435.              printf("\n");
  9436.           }
  9437.           DosFreeMem(pbuf) ;
  9438.       }
  9439.    }
  9440.    else
  9441.    {
  9442.       printf("SplEnumPort splerr=%ld, \n",splerr) ;
  9443.    }
  9444.    DosExit( EXIT_PROCESS , 0 ) ;
  9445.    return (splerr);
  9446. }   /* end main */
  9447.  
  9448.  
  9449. ΓòÉΓòÉΓòÉ 3.12. SplEnumPrinter ΓòÉΓòÉΓòÉ
  9450.  
  9451.  
  9452. ΓòÉΓòÉΓòÉ <hidden> Topics - SplEnumPrinter ΓòÉΓòÉΓòÉ
  9453.  
  9454. Select an item: 
  9455.  
  9456. Function Syntax 
  9457. Parameters 
  9458. Return Values 
  9459. Notes 
  9460. Example 
  9461. Related Functions 
  9462. Glossary 
  9463.  
  9464.  
  9465. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplEnumPrinter ΓòÉΓòÉΓòÉ
  9466.  
  9467. pszComputerName (PSZ) - input 
  9468.    Name of computer where queues are to be listed. This must be NULL. 
  9469.  
  9470. ulLevel (ULONG) - input 
  9471.    Level of detail required. This must be 0. 
  9472.  
  9473. flType (ULONG) - input 
  9474.    Type of print destinations required. 
  9475.  
  9476.    SPL_PR_QUEUE 
  9477.       Return only queues 
  9478.  
  9479.    SPL_PR_DIRECT_DEVICE 
  9480.       Return only direct print devices 
  9481.  
  9482.    SPL_PR_QUEUED_DEVICE 
  9483.       Return only queued print devices 
  9484.  
  9485.    SPL_PR_LOCAL_ONLY 
  9486.       Return only local print destinations 
  9487.  
  9488. pBuf (PPVOID) - output 
  9489.    Buffer. 
  9490.  
  9491. cbBuf (ULONG) - input 
  9492.    Size, in bytes, of Buffer. 
  9493.  
  9494. pcReturned (PULONG) - output 
  9495.    Number of entries returned. 
  9496.  
  9497. pcTotal (PULONG) - output 
  9498.    Number of entries available. 
  9499.  
  9500. pcbNeeded (PULONG) - output 
  9501.    Size in bytes of available information. A value of 0 specifies that the size 
  9502.    is not known. 
  9503.  
  9504. pReserved (PPVOID) - output 
  9505.    Reserved. This must be NULL. 
  9506.  
  9507.  
  9508. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplEnumPrinter ΓòÉΓòÉΓòÉ
  9509.  
  9510. rc (SPLERR) - return 
  9511.  
  9512.    NO_ERROR (0) 
  9513.       No errors occurred. 
  9514.  
  9515.    ERROR_NOT_SUPPORTED (50) 
  9516.       This request is not supported by the network. 
  9517.  
  9518.    ERROR_INVALID_PARAMETER (87) 
  9519.       An invalid parameter is specified. 
  9520.  
  9521.    ERROR_INVALID_LEVEL (124) 
  9522.       The level parameter is invalid. 
  9523.  
  9524.    ERROR_MORE_DATA (234) 
  9525.       Additional data is available. 
  9526.  
  9527.    NERR_NetNotStarted (2102) 
  9528.       The network program is not started. 
  9529.  
  9530.    NERR_BufTooSmall (2123) 
  9531.       The API return buffer is too small. 
  9532.  
  9533.    NERR_SpoolerNotLoaded (2161) 
  9534.       The spooler is not running. 
  9535.  
  9536.  
  9537. ΓòÉΓòÉΓòÉ <hidden> Notes - SplEnumPrinter ΓòÉΓòÉΓòÉ
  9538.  
  9539. The buffer contents on return are: 
  9540.  
  9541. ulLevel   Buffer Contents 
  9542. 0         An array of PRINTERINFO structures. 
  9543.  
  9544. When the names of print destinations are returned, calls can be made to 
  9545. SplQueryQueue or SplQueryDevice to find out further information about the print 
  9546. destination. 
  9547.  
  9548.  
  9549. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplEnumPrinter ΓòÉΓòÉΓòÉ
  9550.  
  9551. /*******************************************/
  9552. /* This function lists print destinations  */
  9553. /* in the system.                          */
  9554. /*******************************************/
  9555.  
  9556. #define INCL_SPL   /* Or use INCL_PM */
  9557. #include <os2.h>
  9558.  
  9559. PSZ     pszComputerName;   /* Name of computer where queues are to be listed */
  9560. ULONG   ulLevel;           /* Level of detail required */
  9561. ULONG   flType;            /* Type of print destinations required */
  9562. PPVOID  pBuf;              /* Buffer */
  9563. ULONG   cbBuf;             /* Size, in bytes, of Buffer */
  9564. PULONG  pcReturned;        /* Number of entries returned */
  9565. PULONG  pcTotal;           /* Number of entries available */
  9566. PULONG  pcbNeeded;         /* Size in bytes of available information */
  9567. PPVOID  pReserved;         /* Reserved */
  9568. SPLERR  rc;
  9569.  
  9570. rc = SplEnumPrinter(pszComputerName,
  9571.        ulLevel, flType, pBuf, cbBuf,
  9572.        pcReturned, pcTotal, pcbNeeded,
  9573.        pReserved);
  9574.  
  9575.  
  9576. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplEnumPrinter ΓòÉΓòÉΓòÉ
  9577.  
  9578. Related Functions 
  9579.  
  9580. o SplQueryDevice 
  9581. o SplQueryQueue 
  9582.  
  9583.  
  9584. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplEnumPrinter ΓòÉΓòÉΓòÉ
  9585.  
  9586. This example code will print out all queues and printers for the local 
  9587. computer.  It will print out both printers that are attached to a queue, and 
  9588. those that are direct printers. 
  9589.  
  9590. #define INCL_SPL
  9591. #define INCL_SPLDOSPRINT
  9592. #define INCL_SPLERRORS
  9593. #include <os2.h>
  9594. #include <stdio.h>      /* for printf function */
  9595.  
  9596. INT main ()
  9597. {
  9598.     PVOID pBuf;
  9599.     ULONG fsType ;
  9600.     ULONG cbBuf ;
  9601.     ULONG cRes ;
  9602.     ULONG cTotal ;
  9603.     ULONG cbNeeded ;
  9604.     SPLERR splerr = 0 ;
  9605.     PPRINTERINFO pRes ;
  9606.  
  9607.     /* Set fsType to use all the flags. We will print out local device/queues.*/
  9608.     fsType = SPL_PR_QUEUE | SPL_PR_DIRECT_DEVICE |
  9609.              SPL_PR_QUEUED_DEVICE | SPL_PR_LOCAL_ONLY;
  9610.  
  9611.     /* Make function call with cbBuf equal to zero to get a return in cbNeeded*/
  9612.     /* of the number of bytes needed for  buffer to hold all the information  */
  9613.  
  9614.     splerr = SplEnumPrinter ( NULL,0 ,fsType ,NULL ,NULL ,&cRes ,
  9615.                                  &cTotal,&cbNeeded ,NULL ) ;
  9616.  
  9617.     /* The error return code will be one of the two following codes if        */
  9618.     /* all the parameters were correct.  Otherwise it could be                */
  9619.     /* ERROR_INVALID_PARAMETER.                                         */
  9620.  
  9621.     if ( splerr == ERROR_MORE_DATA || splerr == NERR_BufTooSmall )
  9622.     {
  9623.        /* Allocate memory for the buffer using the count of bytes that were   */
  9624.        /* returned in cbNeeded.  For simplicity, no error checking is done.   */
  9625.        DosAllocMem( &pBuf, cbNeeded,
  9626.                     PAG_READ|PAG_WRITE|PAG_COMMIT);
  9627.  
  9628.        /* Set count of bytes in buffer to value used to allocate buffer.      */
  9629.        cbBuf = cbNeeded;
  9630.  
  9631.        /* Call function again with the correct buffer size.                   */
  9632.        splerr = SplEnumPrinter  ( NULL,0 ,fsType ,pBuf ,cbBuf ,&cRes ,
  9633.                                   &cTotal,&cbNeeded,NULL);
  9634.  
  9635.        /* If there are any returned structures in the buffer, then we will    */
  9636.        /* print out some of the information.                                  */
  9637.        if (cRes)
  9638.        {
  9639.           pRes = (PPRINTERINFO)pBuf ;
  9640.           while ( cRes-- )
  9641.           {
  9642.              /* Look at the flType element in the pRes structure to determine */
  9643.              /* what type of print destination the structure represents.      */
  9644.              switch (pRes[cRes].flType)
  9645.              {
  9646.                 case  SPL_PR_QUEUE:
  9647.                    printf("Print destination %s is a queue.\n",
  9648.                    pRes[cRes].pszPrintDestinationName) ;
  9649.                    break;
  9650.                 case SPL_PR_QUEUED_DEVICE:
  9651.                    printf("Print destination %s is a queued printer.\n",
  9652.                    pRes[cRes].pszPrintDestinationName) ;
  9653.                    break;
  9654.                 case SPL_PR_DIRECT_DEVICE:
  9655.                    printf("Print destination %s is a direct printer.\n",
  9656.                    pRes[cRes].pszPrintDestinationName) ;
  9657.              }
  9658.              printf("Description -
  9659.                     %s\n\n",pRes[cRes].pszDescription) ;
  9660.           }
  9661.        }
  9662.        DosFreeMem(pBuf);
  9663.     }
  9664.     else
  9665.     {
  9666.        /* If we had any other return code other than ERROR_MORE_DATA or */
  9667.        /* NERR_BufTooSmall, we will print out the following information.   */
  9668.        printf("SplEnumPrinter error= %ld \n",splerr);
  9669.     }
  9670.     DosExit( EXIT_PROCESS , 0 ) ;
  9671.     return (splerr);
  9672. }
  9673.  
  9674.  
  9675. ΓòÉΓòÉΓòÉ 3.13. SplEnumQueue ΓòÉΓòÉΓòÉ
  9676.  
  9677.  
  9678. ΓòÉΓòÉΓòÉ <hidden> Topics - SplEnumQueue ΓòÉΓòÉΓòÉ
  9679.  
  9680. Select an item: 
  9681.  
  9682. Function Syntax 
  9683. Parameters 
  9684. Return Values 
  9685. Notes 
  9686. Example 
  9687. Related Functions 
  9688. Glossary 
  9689.  
  9690.  
  9691. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplEnumQueue ΓòÉΓòÉΓòÉ
  9692.  
  9693. pszComputerName (PSZ) - input 
  9694.    Name of computer where queues are to be listed. A NULL string specifies the 
  9695.    local workstation. 
  9696.  
  9697. ulLevel (ULONG) - input 
  9698.    Level of detail. The level of detail required. This must be 3, 4, 5 or 6. 
  9699.  
  9700. pBuf (PPVOID) - output 
  9701.    Buffer. 
  9702.  
  9703. cbBuf (ULONG) - input 
  9704.    Size, in bytes, of Buffer. 
  9705.  
  9706. pcReturned (PULONG) - output 
  9707.    Number of entries returned. 
  9708.  
  9709. pcTotal (PULONG) - output 
  9710.    Total number of entries available. 
  9711.  
  9712. pcbNeeded (PULONG) - output 
  9713.    Size in bytes of available information. A value of 0 specifies that the size 
  9714.    is not known. 
  9715.  
  9716. pReserved (PPVOID) - output 
  9717.    Reserved. This must be NULL. 
  9718.  
  9719.  
  9720. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplEnumQueue ΓòÉΓòÉΓòÉ
  9721.  
  9722. rc (SPLERR) - return 
  9723.    Return 
  9724.  
  9725.    NO_ERROR (0) 
  9726.       No errors occurred. 
  9727.  
  9728.    ERROR_ACCESS_DENIED (5) 
  9729.       Access is denied. 
  9730.  
  9731.    ERROR_NOT_SUPPORTED (50) 
  9732.       This request is not supported by the network. 
  9733.  
  9734.    ERROR_BAD_NETPATH (53) 
  9735.       The network path cannot be located. 
  9736.  
  9737.    ERROR_INVALID_PARAMETER (87) 
  9738.       An invalid parameter is specified. 
  9739.  
  9740.    ERROR_INVALID_LEVEL (124) 
  9741.       The level parameter is invalid. 
  9742.  
  9743.    ERROR_MORE_DATA (234) 
  9744.       Additional data is available. 
  9745.  
  9746.    NERR_NetNotStarted (2102) 
  9747.       The network program is not started. 
  9748.  
  9749.    NERR_BufTooSmall (2123) 
  9750.       The API return buffer is too small. 
  9751.  
  9752.    NERR_SpoolerNotLoaded (2161) 
  9753.       The spooler is not running. 
  9754.  
  9755.    NERR_InvalidComputer (2351) 
  9756.       The computer name is invalid. 
  9757.  
  9758.  
  9759. ΓòÉΓòÉΓòÉ <hidden> Notes - SplEnumQueue ΓòÉΓòÉΓòÉ
  9760.  
  9761. The buffer contents on return are: 
  9762.  
  9763. ulLevel   Buffer Contents 
  9764. 3         An array of PRQINFO3 structures. The fsType bit PRQ3_TYPE_APPDEFAULT 
  9765.           is set for the application default queue only. 
  9766. 4         An array of pcReturned PRQINFO3 structures in which each PRQINFO3 
  9767.           structure is followed by an array of PRJINFO2 structures, one for 
  9768.           each of job in the queue. cJobs in the PRQINFO3 or PRQINFO6 structure 
  9769.           gives the number of jobs in the array. 
  9770. 5         A queue name of type PSZ. 
  9771. 6         An array of PRQINFO6 structures 
  9772.  
  9773.  
  9774. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplEnumQueue ΓòÉΓòÉΓòÉ
  9775.  
  9776. /*******************************************/
  9777. /* This function lists print queues on the */
  9778. /* local workstation or on a remote        */
  9779. /* server, optionally supplying additional */
  9780. /* information.                            */
  9781. /*******************************************/
  9782.  
  9783. #define INCL_SPL   /* Or use INCL_PM */
  9784. #include <os2.h>
  9785.  
  9786. PSZ     pszComputerName;   /* Name of computer where queues are to be listed */
  9787. ULONG   ulLevel;           /* Level of detail */
  9788. PPVOID  pBuf;              /* Buffer */
  9789. ULONG   cbBuf;             /* Size, in bytes, of Buffer */
  9790. PULONG  pcReturned;        /* Number of entries returned */
  9791. PULONG  pcTotal;           /* Total number of entries available */
  9792. PULONG  pcbNeeded;         /* Size in bytes of available information */
  9793. PPVOID  pReserved;         /* Reserved */
  9794. SPLERR  rc;                /* Return */
  9795.  
  9796. rc = SplEnumQueue(pszComputerName, ulLevel,
  9797.        pBuf, cbBuf, pcReturned, pcTotal,
  9798.        pcbNeeded, pReserved);
  9799.  
  9800.  
  9801. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplEnumQueue ΓòÉΓòÉΓòÉ
  9802.  
  9803. Related Functions 
  9804.  
  9805. o SplQueryJob 
  9806. o SplQueryQueue 
  9807. o SplSetJob 
  9808. o SplSetQueue 
  9809.  
  9810.  
  9811. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplEnumQueue ΓòÉΓòÉΓòÉ
  9812.  
  9813. This sample code enumerates all the queues and the jobs in them that are on the 
  9814. local workstation. 
  9815.  
  9816. #define INCL_BASE
  9817. #define INCL_SPL
  9818. #define INCL_SPLDOSPRINT
  9819. #define INCL_SPLERRORS
  9820. #include <os2.h>
  9821. #include <stdio.h>
  9822.  
  9823. INT main ()
  9824. {
  9825.    SPLERR splerr;
  9826.    USHORT jobCount ;
  9827.    ULONG  cbBuf ;
  9828.    ULONG  cTotal;
  9829.    ULONG  cReturned ;
  9830.    ULONG  cbNeeded ;
  9831.    ULONG  ulLevel ;
  9832.    ULONG  i,j ;
  9833.    PSZ    pszComputerName ;
  9834.    PBYTE  pBuf ;
  9835.    PPRQINFO3 prq ;
  9836.    PPRJINFO2 prj2 ;
  9837.  
  9838.    ulLevel = 4L;
  9839.    pszComputerName = (PSZ)NULL ;
  9840.    splerr = SplEnumQueue(pszComputerName, ulLevel, pBuf, 0L, /* cbBuf */
  9841.                          &cReturned, &cTotal,
  9842.                          &cbNeeded, NULL)
  9843.    if ( splerr == ERROR_MORE_DATA || splerr == NERR_BufTooSmall )
  9844.    {
  9845.       if (!DosAllocMem( &pBuf, cbNeeded,
  9846.                                PAG_READ|PAG_WRITE|PAG_COMMIT)
  9847. )
  9848.       {
  9849.          cbBuf = cbNeeded ;
  9850.          splerr = SplEnumQueue(pszComputerName, ulLevel, pBuf, cbBuf,
  9851.                                  &cReturned, &cTotal,
  9852.                                  &cbNeeded, NULL)
  9853.          if (splerr == NO_ERROR)
  9854.          {
  9855.             /* Set pointer to point to the beginning of the buffer.           */
  9856.             prq = (PPRQINFO3)pBuf ;
  9857.  
  9858.             /* cReturned has the count of the number of PRQINFO3 structures.  */
  9859.             for (i=0;i < cReturned ; i++)
  9860.             {
  9861.                printf("Queue info: name - %s\n", prq->pszName) ;
  9862.             if ( prq->fsType & PRQ3_TYPE_APPDEFAULT )
  9863.                printf("  This is the application default print queue\n");
  9864.                printf("  priority - %d  starttime - %d  endtime - %d
  9865.                       fsType - %X\n",
  9866.                       prq->uPriority ,  prq->uStartTime ,
  9867.                       prq->uUntilTime , prq->fsType ) ;
  9868.                printf("  pszSepFile   - %s\n", prq->pszSepFile) ;
  9869.                printf("  pszPrProc    - %s\n", prq->pszPrProc) ;
  9870.                printf("  pszParms     - %s\n", prq->pszParms) ;
  9871.                printf("  pszComment   - %s\n", prq->pszComment) ;
  9872.                printf("  pszPrinters  - %s\n", prq->pszPrinters) ;
  9873.                printf("  pszDriverName- %s\n", prq->pszDriverName) ;
  9874.                if (prq->pDriverData)
  9875.                {
  9876.                   printf("  pDriverData->cb          - %ld\n",
  9877. (ULONG)prq->pDriverData->cb);
  9878.                   printf("  pDriverData->lVersion    - %ld\n",
  9879.                           (ULONG)prq->pDriverData->lVersion) ;
  9880.                   printf("  pDriverData->szDeviceName- %s\n",
  9881.                           prq->pDriverData->szDeviceName) ;
  9882.                }
  9883.                /* Save the count of jobs. There are this many PRJINFO2        */
  9884.                /* structures following the PRQINFO3 structure.                */
  9885.                jobCount = prq->cJobs;
  9886.                printf("Job count in this queue is %d\n\n",jobCount);
  9887.  
  9888.                /* Increment the pointer past the PRQINFO3  structure.         */
  9889.                prq++;
  9890.  
  9891.                /* Set a pointer to point to the first PRJINFO2 structure.     */
  9892.                prj2=(PPRJINFO2)prq;
  9893.                for (j=0;j < jobCount ; j++)
  9894.                {
  9895.                   printf("Job ID      = %d\n", prj2->uJobId);
  9896.                   printf("Job Priority= %d\n", prj2->uPriority);
  9897.                   printf("User Name   = %s\n", prj2->pszUserName);
  9898.                   printf("Position    = %d\n", prj2->uPosition);
  9899.                   printf("Status      = %d\n", prj2->fsStatus);
  9900.                   printf("Submitted   = %ld\n",prj2->ulSubmitted);
  9901.                   printf("Size        = %ld\n",prj2->ulSize);
  9902.                   printf("Comment     = %s\n", prj2->pszComment);
  9903.                   printf("Document    = %s\n\n",prj2->pszDocument);
  9904.  
  9905.                   /* Increment the pointer to point to the next structure.    */
  9906.                   prj2++;
  9907.                } /* endfor jobCount */
  9908.  
  9909.                /* After doing all the job structures, prj2 points to the next */
  9910.                /* queue structure. Set the pointer for a PRQINFO3 structure.  */
  9911.                prq = (PPRQINFO3)prj2;
  9912.             }/*endfor cReturned */
  9913.          }
  9914.          DosFreeMem(pBuf) ;
  9915.       }
  9916.    } /* end if Q level given */
  9917.    else
  9918.    {
  9919.       /* If we are here we had a bad error code. Print it and some other info.*/
  9920.       printf("SplEnumQueue Error=%ld, Total=%ld, Returned=%ld, Needed=%ld\n",
  9921.               splerr, cTotal, cReturned, cbNeeded) ;
  9922.    }
  9923.    DosExit( EXIT_PROCESS , 0 ) ;
  9924.    return(splerr);
  9925. }   /* end main */
  9926.  
  9927.  
  9928. ΓòÉΓòÉΓòÉ 3.14. SplEnumQueueProcessor ΓòÉΓòÉΓòÉ
  9929.  
  9930.  
  9931. ΓòÉΓòÉΓòÉ <hidden> Topics - SplEnumQueueProcessor ΓòÉΓòÉΓòÉ
  9932.  
  9933. Select an item: 
  9934.  
  9935. Function Syntax 
  9936. Parameters 
  9937. Return Values 
  9938. Notes 
  9939. Example 
  9940. Related Functions 
  9941. Glossary 
  9942.  
  9943.  
  9944. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplEnumQueueProcessor ΓòÉΓòÉΓòÉ
  9945.  
  9946. pszComputerName (PSZ) - input 
  9947.    Name of computer where queues are to be listed. A NULL string specifies the 
  9948.    local workstation. 
  9949.  
  9950. ulLevel (ULONG) - input 
  9951.    Level of detail. The level of detail required. This must be 0. 
  9952.  
  9953. pBuf (PPVOID) - output 
  9954.    Buffer. 
  9955.  
  9956. cbBuf (ULONG) - input 
  9957.    Size, in bytes, of Buffer. 
  9958.  
  9959. pcReturned (PULONG) - output 
  9960.    Number of entries returned. 
  9961.  
  9962. pcTotal (PULONG) - output 
  9963.    Total number of entries available. 
  9964.  
  9965. pcbNeeded (PULONG) - output 
  9966.    Size in bytes of available information. A value of 0 specifies that the size 
  9967.    is not known. 
  9968.  
  9969. pReserved (PPVOID) - output 
  9970.    Reserved. This must be NULL. 
  9971.  
  9972.  
  9973. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplEnumQueueProcessor ΓòÉΓòÉΓòÉ
  9974.  
  9975. rc (SPLERR) - return 
  9976.  
  9977.    NO_ERROR (0) 
  9978.       No errors occurred. 
  9979.  
  9980.    ERROR_ACCESS_DENIED (5) 
  9981.       Access is denied. 
  9982.  
  9983.    ERROR_NOT_SUPPORTED (50) 
  9984.       This request is not supported by the network. 
  9985.  
  9986.    ERROR_BAD_NETPATH (53) 
  9987.       The network path cannot be located. 
  9988.  
  9989.    ERROR_INVALID_PARAMETER (87) 
  9990.       An invalid parameter is specified. 
  9991.  
  9992.    ERROR_INVALID_LEVEL (124) 
  9993.       The level parameter is invalid. 
  9994.  
  9995.    ERROR_MORE_DATA (234) 
  9996.       Additional data is available. 
  9997.  
  9998.    NERR_NetNotStarted (2102) 
  9999.       The network program is not started. 
  10000.  
  10001.    NERR_BufTooSmall (2123) 
  10002.       The API return buffer is too small. 
  10003.  
  10004.    NERR_SpoolerNotLoaded (2161) 
  10005.       The spooler is not running. 
  10006.  
  10007.    NERR_InvalidComputer (2351) 
  10008.       The computer name is invalid. 
  10009.  
  10010.  
  10011. ΓòÉΓòÉΓòÉ <hidden> Notes - SplEnumQueueProcessor ΓòÉΓòÉΓòÉ
  10012.  
  10013. The buffer contents on return are: 
  10014.  
  10015. ulLevel   Buffer Contents 
  10016. 0         An array of PRQPROCINFO structures 
  10017.  
  10018.  
  10019. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplEnumQueueProcessor ΓòÉΓòÉΓòÉ
  10020.  
  10021. /*******************************************/
  10022. /* This function lists printer queue       */
  10023. /* processors on the local workstation or  */
  10024. /* on a remote server.                     */
  10025. /*******************************************/
  10026.  
  10027. #define INCL_SPL   /* Or use INCL_PM */
  10028. #include <os2.h>
  10029.  
  10030. PSZ     pszComputerName;   /* Name of computer where queues are to be listed */
  10031. ULONG   ulLevel;           /* Level of detail */
  10032. PPVOID  pBuf;              /* Buffer */
  10033. ULONG   cbBuf;             /* Size, in bytes, of Buffer */
  10034. PULONG  pcReturned;        /* Number of entries returned */
  10035. PULONG  pcTotal;           /* Total number of entries available */
  10036. PULONG  pcbNeeded;         /* Size in bytes of available information */
  10037. PPVOID  pReserved;         /* Reserved */
  10038. SPLERR  rc;
  10039.  
  10040. rc = SplEnumQueueProcessor(pszComputerName,
  10041.        ulLevel, pBuf, cbBuf, pcReturned,
  10042.        pcTotal, pcbNeeded, pReserved);
  10043.  
  10044.  
  10045. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplEnumQueueProcessor ΓòÉΓòÉΓòÉ
  10046.  
  10047. Related Functions 
  10048.  
  10049. o SplSetQueue 
  10050.  
  10051.  
  10052. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplEnumQueueProcessor ΓòÉΓòÉΓòÉ
  10053.  
  10054. This sample code enumerates and prints all the queue processors on the local 
  10055. computer. 
  10056.  
  10057. #define INCL_BASE
  10058. #define INCL_SPL
  10059. #define INCL_SPLDOSPRINT
  10060. #define INCL_SPLERRORS
  10061.  
  10062. #include <os2.h>
  10063. #include <stdio.h>        /* for printf function   */
  10064.  
  10065. INT main ()
  10066. {
  10067.    SPLERR splerr ;
  10068.    ULONG  cbBuf ;
  10069.    ULONG  cTotal ;
  10070.    ULONG  cReturned ;
  10071.    ULONG  cbNeeded ;
  10072.    ULONG  i ;
  10073.    PSZ    pszComputerName = NULL ;
  10074.    PSZ    pszQProcName ;
  10075.    PBYTE  pBuf ;
  10076.  
  10077.    /* Call the function the first time with zero in cbBuf. The count  */
  10078.    /* of bytes needed for the buffer to hold all the info will be     */
  10079.    /* returned in cbNeeded.                                           */
  10080.    splerr = SplEnumQueueProcessor(pszComputerName, 0L, NULL, 0L,
  10081.                                   &cReturned, &cTotal,
  10082.                                   &cbNeeded,NULL );
  10083.  
  10084.    /* If the return code is ERROR_MORE_DATA or NERR_BufTooSmall,     */
  10085.    /* then all the parameters were correct; and we can continue.              */
  10086.    if (splerr == ERROR_MORE_DATA || splerr == NERR_BufTooSmall)
  10087.    {
  10088.       /* Allocate memory for the buffer to hold the returned information. Use */
  10089.       /* the count of bytes that were returned by our first call.             */
  10090.       if (!DosAllocMem( &pbuf, cbNeeded,
  10091.                         PAG_READ|PAG_WRITE|PAG_COMMIT) )
  10092.       {
  10093.          /* Set count of bytes to the value returned by our first call.       */
  10094.          cbBuf = cbNeeded ;
  10095.  
  10096.          /* Now call the function a second time with the correct values, and  */
  10097.          /* the information will be returned in the buffer.                   */
  10098.          splerr = SplEnumQueueProcessor(pszComputerName, 0L, pBuf, cbBuf,
  10099.                                         &cReturned, &cTotal,
  10100.                                         &cbNeeded,NULL ) ;
  10101.  
  10102.          /* If we have no errors, then print out the buffer information.      */
  10103.          if (splerr == NO_ERROR)
  10104.          {
  10105.             /* Set a pointer to point to the beginning of the buffer.         */
  10106.             pszQProcName = (PSZ)pBuf;
  10107.  
  10108.             /* Print the names that are in the buffer. The count of the number*/
  10109.             /* of names in pBuf have been returned in cReturned.              */
  10110.             for (i=0;i < cReturned ; i++)
  10111.             {
  10112.                printf("Queue Processor name - %s\n", pszQProcName) ;
  10113.  
  10114.                /* Increment the pointer to point to the next name.            */
  10115.                pszQProcName += DRIV_NAME_SIZE + 1;
  10116.             }
  10117.          }
  10118.          /* Free the memory allocated for the buffer.                         */
  10119.          DosFreeMem(pBuf) ;
  10120.       }
  10121.    }
  10122.    else
  10123.    {
  10124.       /* If the first call to the function returned any other error code      */
  10125.       /* except ERROR_MORE_DATA or NERR_BufTooSmall, we print the    */
  10126.       /* following.                                                           */
  10127.       printf("SplEnumQueueProcessor error=%ld\n",splerr ) ;
  10128.    }
  10129.    DosExit( EXIT_PROCESS , 0 ) ;
  10130.    return (splerr);
  10131. }
  10132.  
  10133.  
  10134. ΓòÉΓòÉΓòÉ 3.15. SplHoldJob ΓòÉΓòÉΓòÉ
  10135.  
  10136.  
  10137. ΓòÉΓòÉΓòÉ <hidden> Topics - SplHoldJob ΓòÉΓòÉΓòÉ
  10138.  
  10139. Select an item: 
  10140.  
  10141. Function Syntax 
  10142. Parameters 
  10143. Return Values 
  10144. Notes 
  10145. Example 
  10146. Related Functions 
  10147. Glossary 
  10148.  
  10149.  
  10150. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplHoldJob ΓòÉΓòÉΓòÉ
  10151.  
  10152. pszComputerName (PSZ) - input 
  10153.    Name of computer where job is to be paused. A NULL string specifies the 
  10154.    local workstation. 
  10155.  
  10156. pszQueueName (PSZ) - input 
  10157.    Queue Name. 
  10158.  
  10159. ulJob (ULONG) - input 
  10160.    Job identification number. 
  10161.  
  10162.  
  10163. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplHoldJob ΓòÉΓòÉΓòÉ
  10164.  
  10165. rc (SPLERR) - return 
  10166.  
  10167.    NO_ERROR (0) 
  10168.       No errors occurred. 
  10169.  
  10170.    ERROR_ACCESS_DENIED (5) 
  10171.       Access is denied. 
  10172.  
  10173.    ERROR_NOT_SUPPORTED (50) 
  10174.       This request is not supported by the network. 
  10175.  
  10176.    ERROR_BAD_NETPATH (53) 
  10177.       The network path cannot be located. 
  10178.  
  10179.    NERR_NetNotStarted (2102) 
  10180.       The network program is not installed. 
  10181.  
  10182.    NERR_JobNotFound (2151) 
  10183.       The print job does not exist. 
  10184.  
  10185.    NERR_SpoolerNotLoaded (2161) 
  10186.       The spooler is not running. 
  10187.  
  10188.    NERR_JobInvalidState (2164) 
  10189.       This operation cannot be performed on the print job in its current state. 
  10190.  
  10191.    NERR_InvalidComputer (2351) 
  10192.       The computer name is invalid. 
  10193.  
  10194.  
  10195. ΓòÉΓòÉΓòÉ <hidden> Notes - SplHoldJob ΓòÉΓòÉΓòÉ
  10196.  
  10197. If the job is already printing when the call is made, NERR_JobInvalidState 
  10198. (2164) is returned. 
  10199.  
  10200. A user with administrator privilege can hold any job. 
  10201.  
  10202. A job created locally can be held locally regardless of user privilege level, 
  10203. but can be held remotely only by an administrator. 
  10204.  
  10205. A remote job can be held by a user without administrator privilege only if the 
  10206. username of the person initiating the request is the same as the username of 
  10207. the person who created the job. 
  10208.  
  10209.  
  10210. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplHoldJob ΓòÉΓòÉΓòÉ
  10211.  
  10212. /*******************************************/
  10213. /* This function holds a job in a print    */
  10214. /* queue.                                  */
  10215. /*******************************************/
  10216.  
  10217. #define INCL_SPL   /* Or use INCL_PM */
  10218. #include <os2.h>
  10219.  
  10220. PSZ     pszComputerName;   /* Name of computer where job is to be paused */
  10221. PSZ     pszQueueName;      /* Queue Name */
  10222. ULONG   ulJob;             /* Job identification number */
  10223. SPLERR  rc;
  10224.  
  10225. rc = SplHoldJob(pszComputerName,
  10226.        pszQueueName, ulJob);
  10227.  
  10228.  
  10229. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplHoldJob ΓòÉΓòÉΓòÉ
  10230.  
  10231. Related Functions 
  10232.  
  10233. o SplEnumJob 
  10234. o SplQueryJob 
  10235. o SplReleaseJob 
  10236.  
  10237.  
  10238. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplHoldJob ΓòÉΓòÉΓòÉ
  10239.  
  10240. This sample code will hold the queue name that is entered at the prompt. 
  10241.  
  10242. #define INCL_BASE
  10243. #define INCL_SPL
  10244. #define INCL_SPLERRORS
  10245. #include <os2.h>
  10246. #include <stdio.h>       /* for printf function */
  10247. #include <stdlib.h>      /* for atoi function   */
  10248.  
  10249. INT main (argc, argv)
  10250.    INT argc;
  10251.    CHAR *argv[];
  10252. {
  10253.    SPLERR splerr ;
  10254.    PSZ    pszComputerName = NULL ;
  10255.    PSZ    pszQueueName = NULL ;
  10256.    ULONG  ulJob ;
  10257.  
  10258.    /* Get job id from the input argument.  */
  10259.    ulJob = atoi(argv[1]);
  10260.  
  10261.    /* Call the function to do the hold. If an error is returned, print it. */
  10262.    splerr = SplHoldJob( pszComputerName, pszQueueName, ulJob);
  10263.  
  10264.    switch (splerr)
  10265.    {
  10266.       case NO_ERROR:
  10267.          printf("Job %d was held.\n",ulJob);
  10268.          break;
  10269.       case NERR_JobNotFound:
  10270.          printf("Job does not exist.\n");
  10271.          break;
  10272.       case NERR_JobInvalidState:
  10273.          printf("This operation can't be performed on the print Job.\n");
  10274.          break;
  10275.       default:
  10276.          printf("Errorcode = %ld\n",splerr);
  10277.    } /* endswitch */
  10278.    DosExit( EXIT_PROCESS , 0 ) ;
  10279.    argc;
  10280.    return (splerr);
  10281. }
  10282.  
  10283.  
  10284. ΓòÉΓòÉΓòÉ 3.16. SplHoldQueue ΓòÉΓòÉΓòÉ
  10285.  
  10286.  
  10287. ΓòÉΓòÉΓòÉ <hidden> Topics - SplHoldQueue ΓòÉΓòÉΓòÉ
  10288.  
  10289. Select an item: 
  10290.  
  10291. Function Syntax 
  10292. Parameters 
  10293. Return Values 
  10294. Notes 
  10295. Example 
  10296. Related Functions 
  10297. Glossary 
  10298.  
  10299.  
  10300. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplHoldQueue ΓòÉΓòÉΓòÉ
  10301.  
  10302. pszComputerName (PSZ) - input 
  10303.    Name of computer where queue is to be paused. A NULL string specifies the 
  10304.    local workstation. 
  10305.  
  10306. pszQueueName (PSZ) - input 
  10307.    Queue name. 
  10308.  
  10309.  
  10310. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplHoldQueue ΓòÉΓòÉΓòÉ
  10311.  
  10312. rc (SPLERR) - return 
  10313.  
  10314.    NO_ERROR (0) 
  10315.       No errors occurred. 
  10316.  
  10317.    ERROR_ACCESS_DENIED (5) 
  10318.       Access is denied. 
  10319.  
  10320.    ERROR_NOT_SUPPORTED (50) 
  10321.       This request is not supported by the network. 
  10322.  
  10323.    ERROR_BAD_NETPATH (53) 
  10324.       The network path cannot be located. 
  10325.  
  10326.    ERROR_INVALID_PARAMETER (87) 
  10327.       An invalid parameter is specified. 
  10328.  
  10329.    NERR_NetNotStarted (2102) 
  10330.       The network program is not started. 
  10331.  
  10332.    NERR_QNotFound (2150) 
  10333.       The printer queue does not exist. 
  10334.  
  10335.    NERR_SpoolerNotLoaded (2161) 
  10336.       The spooler is not running. 
  10337.  
  10338.    NERR_InvalidComputer (2351) 
  10339.       The computer name is invalid. 
  10340.  
  10341.  
  10342. ΓòÉΓòÉΓòÉ <hidden> Notes - SplHoldQueue ΓòÉΓòÉΓòÉ
  10343.  
  10344. This function suspends processing of all print jobs except for a job currently 
  10345. printing. Print jobs can be submitted to a held queue, but no jobs will be 
  10346. spooled to a print destination or print processor until the queue is released 
  10347. by a SplHoldQueue call. 
  10348.  
  10349. To hold a remote queue requires administrator privilege on the remote server. 
  10350.  
  10351.  
  10352. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplHoldQueue ΓòÉΓòÉΓòÉ
  10353.  
  10354. /*******************************************/
  10355. /* This function holds a print queue.      */
  10356. /*******************************************/
  10357.  
  10358. #define INCL_SPL   /* Or use INCL_PM */
  10359. #include <os2.h>
  10360.  
  10361. PSZ     pszComputerName;   /* Name of computer where queue is to be paused */
  10362. PSZ     pszQueueName;      /* Queue name */
  10363. SPLERR  rc;
  10364.  
  10365. rc = SplHoldQueue(pszComputerName,
  10366.        pszQueueName);
  10367.  
  10368.  
  10369. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplHoldQueue ΓòÉΓòÉΓòÉ
  10370.  
  10371. Related Functions 
  10372.  
  10373. o SplCreateQueue 
  10374. o SplEnumQueue 
  10375. o SplQueryQueue 
  10376. o SplReleaseQueue 
  10377.  
  10378.  
  10379. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplHoldQueue ΓòÉΓòÉΓòÉ
  10380.  
  10381. This sample code will hold the local queue name that is entered at the prompt. 
  10382.  
  10383. #define INCL_SPL
  10384. #define INCL_SPLERRORS
  10385. #include <os2.h>
  10386. #include <stdio.h>       /* for printf function */
  10387.  
  10388. INT main (argc, argv)
  10389.    INT argc;
  10390.    CHAR *argv[];
  10391. {
  10392.    SPLERR splerr ;
  10393.    PSZ    pszComputerName = NULL ;
  10394.    PSZ    pszQueueName ;
  10395.  
  10396.    /* Get queue name from the input argument  */
  10397.    pszQueueName = argv[1];
  10398.  
  10399.    /* Call the function to do the hold. If an error is returned, print it.   */
  10400.    splerr = SplHoldQueue(pszComputerName, pszQueueName);
  10401.    if (splerr != 0L)
  10402.    {
  10403.       switch (splerr)
  10404.       {
  10405.          case NERR_QNotFound:
  10406.             printf("Queue does not exist.\n");
  10407.             break;
  10408.          case  NERR_SpoolerNotLoaded:
  10409.             printf("The Spooler is not running.\n");
  10410.             break;
  10411.          default:
  10412.             printf("Errorcode = %ld\n",splerr);
  10413.       } /* endswitch */
  10414.    }
  10415.    else
  10416.    {
  10417.       printf("Queue %s was held.\n",pszQueueName);
  10418.    } /* endif */
  10419.   DosExit( EXIT_PROCESS , 0 ) ;
  10420.   argc; /* keep the compiler quiet */
  10421.   return (splerr);
  10422. }
  10423.  
  10424.  
  10425. ΓòÉΓòÉΓòÉ 3.17. SplPurgeQueue ΓòÉΓòÉΓòÉ
  10426.  
  10427.  
  10428. ΓòÉΓòÉΓòÉ <hidden> Topics - SplPurgeQueue ΓòÉΓòÉΓòÉ
  10429.  
  10430. Select an item: 
  10431.  
  10432. Function Syntax 
  10433. Parameters 
  10434. Return Values 
  10435. Notes 
  10436. Example 
  10437. Related Functions 
  10438. Glossary 
  10439.  
  10440.  
  10441. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplPurgeQueue ΓòÉΓòÉΓòÉ
  10442.  
  10443. pszComputerName (PSZ) - input 
  10444.    Name of computer where queue is to be purged. A NULL string specifies the 
  10445.    local workstation. 
  10446.  
  10447. pszQueueName (PSZ) - input 
  10448.    Queue name. 
  10449.  
  10450.  
  10451. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplPurgeQueue ΓòÉΓòÉΓòÉ
  10452.  
  10453. rc (SPLERR) - return 
  10454.  
  10455.    NO_ERROR (0) 
  10456.       No errors occurred. 
  10457.  
  10458.    ERROR_ACCESS_DENIED (5) 
  10459.       Access is denied. 
  10460.  
  10461.    ERROR_NOT_SUPPORTED (50) 
  10462.       This request is not supported by the network. 
  10463.  
  10464.    ERROR_BAD_NETPATH (53) 
  10465.       The network path cannot be located. 
  10466.  
  10467.    ERROR_INVALID_PARAMETER (87) 
  10468.       An invalid parameter was specified. 
  10469.  
  10470.    NERR_NetNotStarted (2102) 
  10471.       The network program is not started. 
  10472.  
  10473.    NERR_QNotFound (2150) 
  10474.       The printer queue does not exist. 
  10475.  
  10476.    NERR_SpoolerNotLoaded (2161) 
  10477.       The spooler is not running. 
  10478.  
  10479.    NERR_InvalidComputer (2351) 
  10480.       The computer name is invalid. 
  10481.  
  10482.  
  10483. ΓòÉΓòÉΓòÉ <hidden> Notes - SplPurgeQueue ΓòÉΓòÉΓòÉ
  10484.  
  10485. A print job that is printing is not affected by this function. 
  10486.  
  10487. If a print queue is pending deletion when this function is made, the queue is 
  10488. deleted when the job that is currently printing ends. 
  10489.  
  10490. To purge a remote queue requires administrator privilege on the remote server. 
  10491.  
  10492.  
  10493. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplPurgeQueue ΓòÉΓòÉΓòÉ
  10494.  
  10495. /*******************************************/
  10496. /* This function removes all jobs, except  */
  10497. /* any currently printing, from a print    */
  10498. /* queue.                                  */
  10499. /*******************************************/
  10500.  
  10501. #define INCL_SPL   /* Or use INCL_PM */
  10502. #include <os2.h>
  10503.  
  10504. PSZ     pszComputerName;   /* Name of computer where queue is to be purged */
  10505. PSZ     pszQueueName;      /* Queue name */
  10506. SPLERR  rc;
  10507.  
  10508. rc = SplPurgeQueue(pszComputerName,
  10509.        pszQueueName);
  10510.  
  10511.  
  10512. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplPurgeQueue ΓòÉΓòÉΓòÉ
  10513.  
  10514. Related Functions 
  10515.  
  10516. o SplCreateQueue 
  10517. o SplEnumQueue 
  10518. o SplQueryQueue 
  10519.  
  10520.  
  10521. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplPurgeQueue ΓòÉΓòÉΓòÉ
  10522.  
  10523. This code will purge a local queue, whose name is entered at the prompt. 
  10524.  
  10525. #define INCL_SPL
  10526. #define INCL_SPLERRORS
  10527. #include <os2.h>
  10528. #include <stdio.h>       /* for printf function */
  10529.  
  10530. INT main (argc, argv)
  10531.    INT argc;
  10532.    CHAR *arg[];
  10533. {
  10534.    SPLERR splerr ;
  10535.    PSZ    pszComputerName = NULL ;
  10536.    PSZ    pszQueueName ;
  10537.  
  10538.    /* Get queue name from the input argument.                                 */
  10539.    pszQueueName = arg[1];
  10540.  
  10541.    /* Call the function to do the purge. If an error is returned, print it.   */
  10542.    splerr=SplPurgeQueue(pszComputerName, pszQueueName);
  10543.    if (splerr != 0L)
  10544.    {
  10545.       switch (splerr)
  10546.       {
  10547.          case NERR_QNotFound:
  10548.             printf("Queue does not exist.\n");
  10549.             break;
  10550.          case  NERR_SpoolerNotLoaded:
  10551.             printf("The Spooler is not running.\n");
  10552.             break;
  10553.          default:
  10554.             printf("Errorcode = %ld\n",splerr);
  10555.       } /* endswitch */
  10556.    }
  10557.    else
  10558.    {
  10559.       printf("Queue %s was purged.\n",pszQueueName);
  10560.    } /* endif */
  10561.  
  10562.   DosExit( EXIT_PROCESS , 0 ) ;
  10563.   return (splerr);
  10564. }
  10565.  
  10566.  
  10567. ΓòÉΓòÉΓòÉ 3.18. SplQmAbort ΓòÉΓòÉΓòÉ
  10568.  
  10569.  
  10570. ΓòÉΓòÉΓòÉ <hidden> Topics - SplQmAbort ΓòÉΓòÉΓòÉ
  10571.  
  10572. Select an item: 
  10573.  
  10574. Function Syntax 
  10575. Parameters 
  10576. Return Values 
  10577. Errors 
  10578. Example 
  10579. Related Functions 
  10580. Glossary 
  10581.  
  10582.  
  10583. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQmAbort ΓòÉΓòÉΓòÉ
  10584.  
  10585. hspl (HSPL) - input 
  10586.    Spooler handle. 
  10587.  
  10588.  
  10589. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQmAbort ΓòÉΓòÉΓòÉ
  10590.  
  10591. fSuccess (BOOL) - return 
  10592.    Success indicator: 
  10593.  
  10594.    TRUE Successful completion 
  10595.    FALSE Error occurred. 
  10596.  
  10597.  
  10598. ΓòÉΓòÉΓòÉ <hidden> Errors - SplQmAbort ΓòÉΓòÉΓòÉ
  10599.  
  10600. Possible returns from WinGetLastError 
  10601.  
  10602. PMERR_SPL_QUEUE_ERROR 
  10603.    No spooler queue supplied or found. 
  10604.  
  10605. PMERR_SPL_INV_HSPL 
  10606.    The spooler handle is invalid. 
  10607.  
  10608.  
  10609. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQmAbort ΓòÉΓòÉΓòÉ
  10610.  
  10611. /*******************************************/
  10612. /* This function stops the generation of   */
  10613. /* the spool file(s). It automatically     */
  10614. /* closes the spool file (see SplQmClose). */
  10615. /*******************************************/
  10616.  
  10617. #define INCL_SPL   /* Or use INCL_PM */
  10618. #include <os2.h>
  10619.  
  10620. HSPL  hspl;     /* Spooler handle */
  10621. BOOL  fSuccess; /* Success indicator */
  10622.  
  10623. fSuccess = SplQmAbort(hspl);
  10624.  
  10625.  
  10626. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQmAbort ΓòÉΓòÉΓòÉ
  10627.  
  10628. Prerequisite Functions 
  10629.  
  10630. o SplQmOpen 
  10631.  
  10632. Related Functions 
  10633.  
  10634. o DevEscape 
  10635.  
  10636.  
  10637. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQmAbort ΓòÉΓòÉΓòÉ
  10638.  
  10639. This function is used to stop the generation of spool files and automatically 
  10640. close the spool file. 
  10641.  
  10642. #define INCL_SPL
  10643. #include <OS2.H>
  10644.  
  10645. HSPL hspl; /* spooler handle. */
  10646.  
  10647. SplQmAbort(hspl);
  10648.  
  10649.  
  10650. ΓòÉΓòÉΓòÉ 3.19. SplQmAbortDoc ΓòÉΓòÉΓòÉ
  10651.  
  10652.  
  10653. ΓòÉΓòÉΓòÉ <hidden> Topics - SplQmAbortDoc ΓòÉΓòÉΓòÉ
  10654.  
  10655. Select an item: 
  10656.  
  10657. Function Syntax 
  10658. Parameters 
  10659. Return Values 
  10660. Errors 
  10661. Notes 
  10662. Example 
  10663. Related Functions 
  10664. Glossary 
  10665.  
  10666.  
  10667. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQmAbortDoc ΓòÉΓòÉΓòÉ
  10668.  
  10669. hspl (HSPL) - input 
  10670.    Spooler handle. 
  10671.  
  10672.  
  10673. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQmAbortDoc ΓòÉΓòÉΓòÉ
  10674.  
  10675. fSuccess (BOOL) - return 
  10676.    Success indicator: 
  10677.  
  10678.    TRUE Successful completion 
  10679.    FALSE Error occurred. 
  10680.  
  10681.  
  10682. ΓòÉΓòÉΓòÉ <hidden> Errors - SplQmAbortDoc ΓòÉΓòÉΓòÉ
  10683.  
  10684. Possible returns from WinGetLastError 
  10685.  
  10686. PMERR_SPL_QUEUE_ERROR 
  10687.    No spooler queue supplied or found. 
  10688.  
  10689. PMERR_STARTDOC_NOT_ISSUED 
  10690.    A request to write spooled output without first issuing a STARTDOC was 
  10691.    attempted. 
  10692.  
  10693. PMERR_SPL_INV_HSPL 
  10694.    The spooler handle is invalid. 
  10695.  
  10696.  
  10697. ΓòÉΓòÉΓòÉ <hidden> Notes - SplQmAbortDoc ΓòÉΓòÉΓòÉ
  10698.  
  10699. Everything that has been written to the spool file for this job since the last 
  10700. SplQmStartDoc is erased, including the SplQmStartDoc. 
  10701.  
  10702.  
  10703. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQmAbortDoc ΓòÉΓòÉΓòÉ
  10704.  
  10705. /*******************************************/
  10706. /* This function aborts a print job.       */
  10707. /*******************************************/
  10708.  
  10709. #define INCL_SPL   /* Or use INCL_PM */
  10710. #include <os2.h>
  10711.  
  10712. HSPL  hspl;     /* Spooler handle */
  10713. BOOL  fSuccess; /* Success indicator */
  10714.  
  10715. fSuccess = SplQmAbortDoc(hspl);
  10716.  
  10717.  
  10718. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQmAbortDoc ΓòÉΓòÉΓòÉ
  10719.  
  10720. Prerequisite Functions 
  10721.  
  10722. o SplQmOpen 
  10723. o SplQmStartDoc 
  10724.  
  10725. Related Functions 
  10726.  
  10727. o DevEscape 
  10728.  
  10729.  
  10730. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQmAbortDoc ΓòÉΓòÉΓòÉ
  10731.  
  10732. This function is used to abort a print job. Everything since the last 
  10733. SplQmStartDoc is deleted. 
  10734.  
  10735. #define INCL_SPL
  10736. #include <OS2.H>
  10737.  
  10738. HSPL hspl; /* spooler handle. */
  10739.  
  10740. SplQmAbortDoc(hspl);
  10741.  
  10742.  
  10743. ΓòÉΓòÉΓòÉ 3.20. SplQmClose ΓòÉΓòÉΓòÉ
  10744.  
  10745.  
  10746. ΓòÉΓòÉΓòÉ <hidden> Topics - SplQmClose ΓòÉΓòÉΓòÉ
  10747.  
  10748. Select an item: 
  10749.  
  10750. Function Syntax 
  10751. Parameters 
  10752. Return Values 
  10753. Errors 
  10754. Example 
  10755. Related Functions 
  10756. Glossary 
  10757.  
  10758.  
  10759. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQmClose ΓòÉΓòÉΓòÉ
  10760.  
  10761. hspl (HSPL) - input 
  10762.    Spooler handle. 
  10763.  
  10764.  
  10765. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQmClose ΓòÉΓòÉΓòÉ
  10766.  
  10767. fSuccess (BOOL) - return 
  10768.    Success indicator: 
  10769.  
  10770.    TRUE Successful completion 
  10771.    FALSE Error occurred. 
  10772.  
  10773.  
  10774. ΓòÉΓòÉΓòÉ <hidden> Errors - SplQmClose ΓòÉΓòÉΓòÉ
  10775.  
  10776. Possible returns from WinGetLastError 
  10777.  
  10778. PMERR_SPL_QUEUE_ERROR 
  10779.    No spooler queue supplied or found. 
  10780.  
  10781. PMERR_ENDDOC_NOT_ISSUED 
  10782.    A request to close the spooled output without first issuing an ENDDOC was 
  10783.    attempted. 
  10784.  
  10785. PMERR_SPL_INV_HSPL 
  10786.    The spooler handle is invalid. 
  10787.  
  10788.  
  10789. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQmClose ΓòÉΓòÉΓòÉ
  10790.  
  10791. /*******************************************/
  10792. /* This function corresponds to the        */
  10793. /* DevCloseDC function: it closes the      */
  10794. /* spool file.                             */
  10795. /*******************************************/
  10796.  
  10797. #define INCL_SPL   /* Or use INCL_PM */
  10798. #include <os2.h>
  10799.  
  10800. HSPL  hspl;     /* Spooler handle */
  10801. BOOL  fSuccess; /* Success indicator */
  10802.  
  10803. fSuccess = SplQmClose(hspl);
  10804.  
  10805.  
  10806. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQmClose ΓòÉΓòÉΓòÉ
  10807.  
  10808. Prerequisite Functions 
  10809.  
  10810. o SplQmOpen 
  10811.  
  10812. Related Functions 
  10813.  
  10814. o DevCloseDC 
  10815.  
  10816.  
  10817. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQmClose ΓòÉΓòÉΓòÉ
  10818.  
  10819. This function is used to close a spool file that was opened with SplQmOpen. 
  10820.  
  10821. #define INCL_SPL
  10822. #include <OS2.H>
  10823.  
  10824. HSPL hspl; /* spooler handle. */
  10825.  
  10826. SplQmClose(hspl);
  10827.  
  10828.  
  10829. ΓòÉΓòÉΓòÉ 3.21. SplQmEndDoc ΓòÉΓòÉΓòÉ
  10830.  
  10831.  
  10832. ΓòÉΓòÉΓòÉ <hidden> Topics - SplQmEndDoc ΓòÉΓòÉΓòÉ
  10833.  
  10834. Select an item: 
  10835.  
  10836. Function Syntax 
  10837. Parameters 
  10838. Return Values 
  10839. Errors 
  10840. Notes 
  10841. Example 
  10842. Related Functions 
  10843. Glossary 
  10844.  
  10845.  
  10846. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQmEndDoc ΓòÉΓòÉΓòÉ
  10847.  
  10848. hspl (HSPL) - input 
  10849.    Spooler handle. 
  10850.  
  10851.  
  10852. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQmEndDoc ΓòÉΓòÉΓòÉ
  10853.  
  10854. ulJob (ULONG) - return 
  10855.    Job identifier: 
  10856.  
  10857.    Nonzero 
  10858.       Jobid (1 through 65 535) 
  10859.  
  10860.    SPL_ERROR 
  10861.       Error. 
  10862.  
  10863.  
  10864. ΓòÉΓòÉΓòÉ <hidden> Errors - SplQmEndDoc ΓòÉΓòÉΓòÉ
  10865.  
  10866. Possible returns from WinGetLastError 
  10867.  
  10868. PMERR_SPL_QUEUE_ERROR 
  10869.    No spooler queue supplied or found. 
  10870.  
  10871. PMERR_SPL_NO_DATA 
  10872.    No data supplied or found. 
  10873.  
  10874. PMERR_SPL_INV_HSPL 
  10875.    The spooler handle is invalid. 
  10876.  
  10877.  
  10878. ΓòÉΓòÉΓòÉ <hidden> Notes - SplQmEndDoc ΓòÉΓòÉΓòÉ
  10879.  
  10880. The print-job identifier is displayed to the user by the spooler while this job 
  10881. is on the queue, and while it is being printed. 
  10882.  
  10883.  
  10884. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQmEndDoc ΓòÉΓòÉΓòÉ
  10885.  
  10886. /*******************************************/
  10887. /* This function corresponds to the        */
  10888. /* DevEscape (DEVESC_ENDDOC) call: it ends */
  10889. /* a print job, and returns ulJob, a       */
  10890. /* unique number to identify the job.      */
  10891. /*******************************************/
  10892.  
  10893. #define INCL_SPL   /* Or use INCL_PM */
  10894. #include <os2.h>
  10895.  
  10896. HSPL   hspl;   /* Spooler handle */
  10897. ULONG  ulJob;  /* Job identifier */
  10898.  
  10899. ulJob = SplQmEndDoc(hspl);
  10900.  
  10901.  
  10902. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQmEndDoc ΓòÉΓòÉΓòÉ
  10903.  
  10904. Prerequisite Functions 
  10905.  
  10906. o SplQmOpen 
  10907. o SplQmStartDoc 
  10908.  
  10909. Related Functions 
  10910.  
  10911. o DevEscape 
  10912.  
  10913.  
  10914. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQmEndDoc ΓòÉΓòÉΓòÉ
  10915.  
  10916. This function is used to end a print job and return the job id. 
  10917.  
  10918. #define INCL_SPL
  10919. #include <OS2.H>
  10920.  
  10921. HSPL hspl;  /* spooler handle. */
  10922. ULONG jobid;
  10923. CHAR szMsg[100];
  10924. HWND hwndClient;
  10925.  
  10926. jobid = SplQmEndDoc(hspl);
  10927.  
  10928. sprintf(szMsg, "ending job %d",jobid);
  10929. WinMessageBox(HWND_DESKTOP,
  10930.     hwndClient,                /* client-window handle  */
  10931.     szMsg,                     /* body of the message   */
  10932.     "Printing Information",    /* title of the message */
  10933.     0,                         /* message box id        */
  10934.     MB_NOICON | MB_OK);        /* icon and button flags */
  10935.  
  10936.  
  10937. ΓòÉΓòÉΓòÉ 3.22. SplQmOpen ΓòÉΓòÉΓòÉ
  10938.  
  10939.  
  10940. ΓòÉΓòÉΓòÉ <hidden> Topics - SplQmOpen ΓòÉΓòÉΓòÉ
  10941.  
  10942. Select an item: 
  10943.  
  10944. Function Syntax 
  10945. Parameters 
  10946. Return Values 
  10947. Errors 
  10948. Example 
  10949. Related Functions 
  10950. Glossary 
  10951.  
  10952.  
  10953. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQmOpen ΓòÉΓòÉΓòÉ
  10954.  
  10955. pszToken (PSZ) - input 
  10956.    A token (nickname) that identifies spooler information. This information is 
  10957.    held in the initialization file, and is the same as that in pqmdopData; any 
  10958.    that is obtained from pqmdopData overrides the information obtained using 
  10959.    pszToken. 
  10960.  
  10961.    If pszToken is specified as "*", then no device information is taken from 
  10962.    the initialization file. 
  10963.  
  10964.    Presentation Manager behaves as if "*" is specified, but it allows any 
  10965.    string to be specified. 
  10966.  
  10967. lCount (LONG) - input 
  10968.    Number of items. This is the number of items present in the pqmdopData 
  10969.    supplied. This can be shorter than the full list, if omitted items are 
  10970.    irrelevant, or supplied from pszToken or elsewhere. 
  10971.  
  10972. pqmdopData (PQMOPENDATA) - input 
  10973.    Pointer to DevOpenStruc. 
  10974.  
  10975.  
  10976. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQmOpen ΓòÉΓòÉΓòÉ
  10977.  
  10978. hspl (HSPL) - return 
  10979.    Spooler handle: 
  10980.  
  10981.    Nonzero 
  10982.       Spooler handle 
  10983.  
  10984.    SPL_ERROR 
  10985.       Error. 
  10986.  
  10987.  
  10988. ΓòÉΓòÉΓòÉ <hidden> Errors - SplQmOpen ΓòÉΓòÉΓòÉ
  10989.  
  10990. Possible returns from WinGetLastError 
  10991.  
  10992. PMERR_INVALID_PARM 
  10993.    A parameter to the function contained invalid data. 
  10994.  
  10995. PMERR_SPL_INV_LENGTH_OR_COUNT 
  10996.    The length or count is invalid. 
  10997.  
  10998. PMERR_SPL_QUEUE_NOT_FOUND 
  10999.    The spooler queue definition could not be found. 
  11000.  
  11001. PMERR_BASE_ERROR 
  11002.    An OS/2 base error has occurred.  The base error code can be accessed using 
  11003.    the OffBinaryData field of the ERRINFO structure returned by 
  11004.    WinGetErrorInfo. 
  11005.  
  11006.  
  11007. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQmOpen ΓòÉΓòÉΓòÉ
  11008.  
  11009. /*******************************************/
  11010. /* This function corresponds to the        */
  11011. /* DevOpenDC call: it opens a spool file   */
  11012. /* for generating a print job.             */
  11013. /*******************************************/
  11014.  
  11015. #define INCL_SPL   /* Or use INCL_PM */
  11016. #include <os2.h>
  11017.  
  11018. PSZ          pszToken;          /* A token (nickname) that identifies spooler information */
  11019. LONG         lCount;            /* Number of items */
  11020. PQMOPENDATA  pqmdopData;        /* Pointer to DevOpenStruc */
  11021. HSPL         hspl;              /* Spooler handle */
  11022.  
  11023. hspl = SplQmOpen(pszToken, lCount,
  11024.          pqmdopData);
  11025.  
  11026.  
  11027. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQmOpen ΓòÉΓòÉΓòÉ
  11028.  
  11029. Related Functions 
  11030.  
  11031. o DevOpenDC 
  11032.  
  11033.  
  11034. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQmOpen ΓòÉΓòÉΓòÉ
  11035.  
  11036. This sample code will initialize a PDEVOPENSTRUC and use it to call the 
  11037. function. 
  11038.  
  11039.  
  11040. #define INCL_SPL
  11041. #define INCL_SPLDOSPRINT
  11042. #define INCL_BASE
  11043. #define INCL_ERRORS
  11044.  
  11045. #include <os2.h>
  11046. #include <stdio.h>
  11047. #include <stdlib.h>
  11048.  
  11049. VOID main()
  11050. {
  11051. HSPL hspl;
  11052. PDEVOPENSTRUC pdata;        /* Pointer to a DEVOPENSTRUC structure */
  11053. PSZ  pszToken = "*";        /* Spooler info identifier             */
  11054.  
  11055.   /* Allocate memory for pdata */
  11056.   if ( !DosAllocMem( &pdata,sizeof( DEVOPENSTRUC ),
  11057.      (PAG_READ|PAG_WRITE|PAG_COMMIT ) )
  11058.   {
  11059.     /* Initialize elements of pdata */
  11060.     pdata->pszLogAddress      = "LPT1Q1";
  11061.     pdata->pszDriverName      = "IBMNULL";
  11062.     pdata->pdriv              = NULL;
  11063.     pdata->pszDataType        = "PM_Q_STD";
  11064.     pdata->pszComment         = NULL;
  11065.     pdata->pszQueueProcName   = NULL;
  11066.     pdata->pszQueueProcParams = NULL;
  11067.     pdata->pszSpoolerParams   = NULL;
  11068.     pdata->pszNetworkParams   = NULL;
  11069.  
  11070.     hspl = SplQmOpen( pszToken,4L,( PQMOPENDATA )pdata );
  11071.  
  11072.     if ( hspl != SPL_ERROR )        /* Good spooler handle */
  11073.     {
  11074.        printf("SplQmOpen handle is %d\n",hspl);
  11075.     }
  11076.     else
  11077.     {
  11078.        printf("SplQmOpen failed.\n");
  11079.     }
  11080.   }
  11081. }
  11082.  
  11083.  
  11084. ΓòÉΓòÉΓòÉ 3.23. SplQmStartDoc ΓòÉΓòÉΓòÉ
  11085.  
  11086.  
  11087. ΓòÉΓòÉΓòÉ <hidden> Topics - SplQmStartDoc ΓòÉΓòÉΓòÉ
  11088.  
  11089. Select an item: 
  11090.  
  11091. Function Syntax 
  11092. Parameters 
  11093. Return Values 
  11094. Errors 
  11095. Notes 
  11096. Example 
  11097. Related Functions 
  11098. Glossary 
  11099.  
  11100.  
  11101. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQmStartDoc ΓòÉΓòÉΓòÉ
  11102.  
  11103. hspl (HSPL) - input 
  11104.    Spooler handle. 
  11105.  
  11106. pszDocName (PSZ) - input 
  11107.    Document name. This is part of the job description which is displayed to the 
  11108.    end user by the spooler. 
  11109.  
  11110.  
  11111. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQmStartDoc ΓòÉΓòÉΓòÉ
  11112.  
  11113. fSuccess (BOOL) - return 
  11114.    Success indicator: 
  11115.  
  11116.    TRUE Successful completion 
  11117.    FALSE Error occurred. 
  11118.  
  11119.  
  11120. ΓòÉΓòÉΓòÉ <hidden> Errors - SplQmStartDoc ΓòÉΓòÉΓòÉ
  11121.  
  11122. Possible returns from WinGetLastError 
  11123.  
  11124. PMERR_INVALID_PARM 
  11125.    A parameter to the function contained invalid data. 
  11126.  
  11127. PMERR_SPL_QUEUE_ERROR 
  11128.    No spooler queue supplied or found. 
  11129.  
  11130. PMERR_ENDDOC_NOT_ISSUED 
  11131.    A request to close the spooled output without first issuing an ENDDOC was 
  11132.    attempted. 
  11133.  
  11134. PMERR_SPL_INV_HSPL 
  11135.    The spooler handle is invalid. 
  11136.  
  11137.  
  11138. ΓòÉΓòÉΓòÉ <hidden> Notes - SplQmStartDoc ΓòÉΓòÉΓòÉ
  11139.  
  11140. This function signifies the start of a print job.  It allows the application to 
  11141. specify a document name to be associated with the print job. 
  11142.  
  11143. Multiple print jobs can be generated, within a single queue manager open, by 
  11144. bracketing each job with SplQmStartDoc and SplQmEndDoc. 
  11145.  
  11146.  
  11147. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQmStartDoc ΓòÉΓòÉΓòÉ
  11148.  
  11149. /*******************************************/
  11150. /* This function corresponds to the        */
  11151. /* DevEscape (DEVESC_STARTDOC) call; it    */
  11152. /* starts a print job.                     */
  11153. /*******************************************/
  11154.  
  11155. #define INCL_SPL   /* Or use INCL_PM */
  11156. #include <os2.h>
  11157.  
  11158. HSPL  hspl;       /* Spooler handle */
  11159. PSZ   pszDocName; /* Document name */
  11160. BOOL  fSuccess;   /* Success indicator */
  11161.  
  11162. fSuccess = SplQmStartDoc(hspl, pszDocName);
  11163.  
  11164.  
  11165. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQmStartDoc ΓòÉΓòÉΓòÉ
  11166.  
  11167. Prerequisite Functions 
  11168.  
  11169. o SplQmOpen 
  11170.  
  11171. Related Functions 
  11172.  
  11173. o DevEscape 
  11174.  
  11175.  
  11176. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQmStartDoc ΓòÉΓòÉΓòÉ
  11177.  
  11178. This function is used to start a print job. 
  11179.  
  11180. #define INCL_SPL
  11181. #include <OS2.H>
  11182.  
  11183. HSPL hspl;  /* spooler handle. */
  11184. CHAR szDocName[] = "Test Job";
  11185. CHAR szMsg[100];
  11186. HWND hwndClient;
  11187.  
  11188. sprintf(szMsg, "Starting job named: %s",szDocName);
  11189. WinMessageBox(HWND_DESKTOP,
  11190.     hwndClient,                /* client-window handle  */
  11191.     szMsg,                     /* body of the message   */
  11192.     "Printing Information",    /* title of the message */
  11193.     0,                         /* message box id        */
  11194.     MB_NOICON | MB_OK);  /* icon and button flags */
  11195.  
  11196. SplQmStartDoc(hspl,szDocName);
  11197.  
  11198.  
  11199. ΓòÉΓòÉΓòÉ 3.24. SplQmWrite ΓòÉΓòÉΓòÉ
  11200.  
  11201.  
  11202. ΓòÉΓòÉΓòÉ <hidden> Topics - SplQmWrite ΓòÉΓòÉΓòÉ
  11203.  
  11204. Select an item: 
  11205.  
  11206. Function Syntax 
  11207. Parameters 
  11208. Return Values 
  11209. Errors 
  11210. Notes 
  11211. Example 
  11212. Related Functions 
  11213. Glossary 
  11214.  
  11215.  
  11216. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQmWrite ΓòÉΓòÉΓòÉ
  11217.  
  11218. hspl (HSPL) - input 
  11219.    Spooler handle. 
  11220.  
  11221. lCount (LONG) - input 
  11222.    Length in bytes. This is the length of pData; it must not be greater than 65 
  11223.    535. Data that is longer than this must be written by two or more calls. 
  11224.  
  11225. pData (PBYTE) - input 
  11226.    Buffer of data to be written to the spool file. 
  11227.  
  11228.  
  11229. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQmWrite ΓòÉΓòÉΓòÉ
  11230.  
  11231. fSuccess (BOOL) - return 
  11232.    Success indicator: 
  11233.  
  11234.    TRUE 
  11235.       Successful completion 
  11236.  
  11237.    FALSE 
  11238.       Error occurred. 
  11239.  
  11240.  
  11241. ΓòÉΓòÉΓòÉ <hidden> Errors - SplQmWrite ΓòÉΓòÉΓòÉ
  11242.  
  11243. Possible returns from WinGetLastError 
  11244.  
  11245. PMERR_INVALID_PARM 
  11246.    A parameter to the function contained invalid data. 
  11247.  
  11248. PMERR_BASE_ERROR 
  11249.    An OS/2 base error has occurred.  The base error code can be accessed using 
  11250.    the OffBinaryData field of the ERRINFO structure returned by 
  11251.    WinGetErrorInfo. 
  11252.  
  11253. PMERR_SPL_INV_LENGTH_OR_COUNT 
  11254.    The length or count is invalid. 
  11255.  
  11256. PMERR_SPL_QUEUE_ERROR 
  11257.    No spooler queue supplied or found. 
  11258.  
  11259. PMERR_SPL_PRINT_ABORT 
  11260.    The job has already been aborted. 
  11261.  
  11262. PMERR_STARTDOC_NOT_ISSUED 
  11263.    A request to write spooled output without first issuing a STARTDOC was 
  11264.    attempted. 
  11265.  
  11266. PMERR_SPL_CANNOT_OPEN_FILE 
  11267.    Unable to open the file. 
  11268.  
  11269. PMERR_SPL_INV_HSPL 
  11270.    The spooler handle is invalid. 
  11271.  
  11272. PMERR_SPL_NO_DISK_SPACE 
  11273.    There is not enough free disk space. 
  11274.  
  11275.  
  11276. ΓòÉΓòÉΓòÉ <hidden> Notes - SplQmWrite ΓòÉΓòÉΓòÉ
  11277.  
  11278. The size of the data buffer must not be greater than 64KB.  Print jobs that 
  11279. exceed the maximum buffer size must be written by repeatedly calling to this 
  11280. function. 
  11281.  
  11282.  
  11283. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQmWrite ΓòÉΓòÉΓòÉ
  11284.  
  11285. /*******************************************/
  11286. /* This function writes a buffer of data   */
  11287. /* to the spool file for the print job.    */
  11288. /*******************************************/
  11289.  
  11290. #define INCL_SPL   /* Or use INCL_PM */
  11291. #include <os2.h>
  11292.  
  11293. HSPL   hspl;      /* Spooler handle */
  11294. LONG   lCount;    /* Length in bytes */
  11295. PBYTE  pData;     /* Buffer of data to be written to the spool file */
  11296. BOOL   fSuccess;  /* Success indicator */
  11297.  
  11298. fSuccess = SplQmWrite(hspl, lCount, pData);
  11299.  
  11300.  
  11301. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQmWrite ΓòÉΓòÉΓòÉ
  11302.  
  11303. Prerequisite Functions 
  11304.  
  11305. o SplQmOpen 
  11306. o SplQmStartDoc 
  11307.  
  11308.  
  11309. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQmWrite ΓòÉΓòÉΓòÉ
  11310.  
  11311. This function writes a buffer of data to the spool file for the print job. 
  11312.  
  11313. #define INCL_SPL
  11314. #include <OS2.H>
  11315.  
  11316. HSPL hspl; /* spooler handle. */
  11317.  
  11318. SplQmWrite(hspl,
  11319.            sizeof("DATA"),
  11320.            (PVOID)"DATA");
  11321.  
  11322.  
  11323. ΓòÉΓòÉΓòÉ 3.25. SplQueryDevice ΓòÉΓòÉΓòÉ
  11324.  
  11325.  
  11326. ΓòÉΓòÉΓòÉ <hidden> Topics - SplQueryDevice ΓòÉΓòÉΓòÉ
  11327.  
  11328. Select an item: 
  11329.  
  11330. Function Syntax 
  11331. Parameters 
  11332. Return Values 
  11333. Notes 
  11334. Example 
  11335. Related Functions 
  11336. Glossary 
  11337.  
  11338.  
  11339. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQueryDevice ΓòÉΓòÉΓòÉ
  11340.  
  11341. pszComputerName (PSZ) - input 
  11342.    Name of computer where print device is to be queried. A NULL string 
  11343.    specifies the local workstation. 
  11344.  
  11345. pszPrintDeviceName (PSZ) - input 
  11346.    Name of Print Device. This can specify a print device name or a port name. 
  11347.    If ulLevel is 0, it must be a port name. If ulLevel is 2 or 3 , it must be a 
  11348.    print device name. 
  11349.  
  11350. ulLevel (ULONG) - input 
  11351.    Level of detail required. This must be 0, 2 or 3. 
  11352.  
  11353. pBuf (PPVOID) - output 
  11354.    Buffer. 
  11355.  
  11356. cbBuf (ULONG) - input 
  11357.    Size, in bytes, of Buffer. 
  11358.  
  11359. pcbNeeded (PULONG) - output 
  11360.    Size in bytes of available information. 
  11361.  
  11362.  
  11363. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQueryDevice ΓòÉΓòÉΓòÉ
  11364.  
  11365. rc (SPLERR) - return 
  11366.  
  11367.    NO_ERROR (0) 
  11368.       No errors occurred. 
  11369.  
  11370.    ERROR_NOT_SUPPORTED (50) 
  11371.       This request is not supported by the network. 
  11372.  
  11373.    ERROR_BAD_NETPATH (53) 
  11374.       The network path cannot be located. 
  11375.  
  11376.    ERROR_INVALID_PARAMETER (87) 
  11377.       An invalid parameter is specified. 
  11378.  
  11379.    ERROR_INVALID_LEVEL (124) 
  11380.       The level parameter is invalid. 
  11381.  
  11382.    ERROR_MORE_DATA (234) 
  11383.       Additional data is available. 
  11384.  
  11385.    NERR_NetNotStarted (2102) 
  11386.       The network program is not started. 
  11387.  
  11388.    NERR_BufTooSmall (2123) 
  11389.       The API return buffer is too small. 
  11390.  
  11391.    NERR_DestNotFound (2152) 
  11392.       The print device cannot be found. 
  11393.  
  11394.    NERR_SpoolerNotLoaded (2161) 
  11395.       The spooler is not running. 
  11396.  
  11397.    NERR_InvalidComputer (2351) 
  11398.       The computer name is invalid. 
  11399.  
  11400.  
  11401. ΓòÉΓòÉΓòÉ <hidden> Notes - SplQueryDevice ΓòÉΓòÉΓòÉ
  11402.  
  11403. The buffer contents on return are: 
  11404.  
  11405. ulLevel   Buffer Contents 
  11406. 0         A port name. 
  11407. 2         A print device name. of type PSZ. 
  11408. 3         A PRDINFO3 structure. 
  11409. If ulLevel is 3, and pBuf cannot hold the entire PRDINFO3 structure, 
  11410. SplQueryDevice returns NERR_BufTooSmall (2123). 
  11411.  
  11412. To obtain the size of buffer required, call SplQueryDevice with the required 
  11413. value of ulLevel and a NULL buffer. The number of bytes required is returned in 
  11414. pcbNeeded. 
  11415.  
  11416. If no job is printing on the print device, bits 2-11 of fsStatus in the 
  11417. PRDINFO3 data structure are meaningless. 
  11418.  
  11419.  
  11420. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQueryDevice ΓòÉΓòÉΓòÉ
  11421.  
  11422. /*******************************************/
  11423. /* This function retrieves information     */
  11424. /* about a print device.                   */
  11425. /*******************************************/
  11426.  
  11427. #define INCL_SPL   /* Or use INCL_PM */
  11428. #include <os2.h>
  11429.  
  11430. PSZ     pszComputerName;      /* Name of computer where print device is to be queried */
  11431. PSZ     pszPrintDeviceName;   /* Name of Print Device */
  11432. ULONG   ulLevel;              /* Level of detail required */
  11433. PPVOID  pBuf;                 /* Buffer */
  11434. ULONG   cbBuf;                /* Size, in bytes, of Buffer */
  11435. PULONG  pcbNeeded;            /* Size in bytes of available information */
  11436. SPLERR  rc;
  11437.  
  11438. rc = SplQueryDevice(pszComputerName,
  11439.        pszPrintDeviceName, ulLevel, pBuf,
  11440.        cbBuf, pcbNeeded);
  11441.  
  11442.  
  11443. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQueryDevice ΓòÉΓòÉΓòÉ
  11444.  
  11445. Related Functions 
  11446.  
  11447. o SplCreateDevice 
  11448. o SplDeleteDevice 
  11449. o SplEnumDevice 
  11450.  
  11451.  
  11452. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQueryDevice ΓòÉΓòÉΓòÉ
  11453.  
  11454. This sample code returns information for the device name that is entered at the 
  11455. command line. The local workstation is selected. The query is done for level 3 
  11456. information. 
  11457.  
  11458. #define INCL_BASE
  11459. #define INCL_DOSMEMMGR
  11460. #define INCL_SPL
  11461. #define INCL_SPLDOSPRINT
  11462. #define INCL_SPLERRORS
  11463.  
  11464. #include <os2.h>
  11465. #include <stdio.h>
  11466.  
  11467. INT main (argc, argv)
  11468.     INT argc;
  11469.     CHAR *argv[];
  11470. {
  11471.     SPLERR splerr  ;
  11472.     ULONG  cbBuf;
  11473.     ULONG  cbNeeded ;
  11474.     ULONG  ulLevel ;
  11475.     PSZ    pszComputerName ;
  11476.     PSZ    pszPrintDeviceName ;
  11477.     PVOID  pBuf ;
  11478.     PPRDINFO3 pprd3 ;
  11479.  
  11480.     if (argc != 2)
  11481.     {
  11482.        printf("Syntax:  sdqry   DeviceName  \n");
  11483.        DosExit( EXIT_PROCESS , 0 ) ;
  11484.     }
  11485.  
  11486.     pszComputerName = (PSZ)NULL ;
  11487.     pszPrintDeviceName = argv[1];
  11488.     ulLevel = 3;
  11489.     splerr = SplQueryDevice(pszComputerName, pszPrintDeviceName,
  11490.                             ulLevel, (PVOID)NULL, 0L, &cbNeeded );
  11491.     if (splerr != NERR_BufTooSmall)
  11492.     {
  11493.        printf("SplQueryDevice Err=%ld, cbNeeded=%ld\n",splerr, cbNeeded) ;
  11494.        DosExit( EXIT_PROCESS , 0 ) ;
  11495.     }
  11496.     if (!DosAllocMem( &pBuf, cbNeeded,
  11497.                       PAG_READ|PAG_WRITE|PAG_COMMIT) ){
  11498.        cbBuf= cbNeeded ;
  11499.        splerr = SplQueryDevice(pszComputerName, pszPrintDeviceName,
  11500.                               ulLevel, pBuf, cbBuf, &cbNeeded) ;
  11501.  
  11502.        printf("SplQueryDevice Error=%ld, Bytes Needed=%ld\n", splerr,
  11503.                               cbNeeded) ;
  11504.  
  11505.        pprd3=(PPRDINFO3)pBuf;
  11506.  
  11507.        printf("Print Device info: name - %s\n", pprd3->pszPrinterName) ;
  11508.        printf("User Name      = %s\n", pprd3->pszUserName) ;
  11509.        printf("Logical Address= %s\n", pprd3->pszLogAddr) ;
  11510.        printf("Job ID         = %d\n", pprd3->uJobId) ;
  11511.        printf("Status         = %d\n", pprd3->fsStatus) ;
  11512.        printf("Status Comment = %s\n", pprd3->pszStatus) ;
  11513.        printf("Comment        = %s\n", pprd3->pszComment) ;
  11514.        printf("Drivers        = %s\n", pprd3->pszDrivers) ;
  11515.        printf("Time           = %d\n", pprd3->time) ;
  11516.        printf("Time Out       = %d\n", pprd3->usTimeOut) ;
  11517.        DosFreeMem(pBuf) ;
  11518.     }
  11519.     DosExit( EXIT_PROCESS , 0 ) ;
  11520.     return (splerr);
  11521. }
  11522.  
  11523.  
  11524. ΓòÉΓòÉΓòÉ 3.26. SplQueryJob ΓòÉΓòÉΓòÉ
  11525.  
  11526.  
  11527. ΓòÉΓòÉΓòÉ <hidden> Topics - SplQueryJob ΓòÉΓòÉΓòÉ
  11528.  
  11529. Select an item: 
  11530.  
  11531. Function Syntax 
  11532. Parameters 
  11533. Return Values 
  11534. Notes 
  11535. Example 
  11536. Related Functions 
  11537. Glossary 
  11538.  
  11539.  
  11540. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQueryJob ΓòÉΓòÉΓòÉ
  11541.  
  11542. pszComputerName (PSZ) - input 
  11543.    Name of computer where print job is to be queried. A NULL string specifies 
  11544.    the local workstation. 
  11545.  
  11546. pszQueueName (PSZ) - input 
  11547.    Queue Name. 
  11548.  
  11549. ulJob (ULONG) - input 
  11550.    Job identification number. 
  11551.  
  11552. ulLevel (ULONG) - input 
  11553.    Level of detail required. This must be 0, 2, or 3. 
  11554.  
  11555. pBuf (PPVOID) - output 
  11556.    Buffer. 
  11557.  
  11558. cbBuf (ULONG) - input 
  11559.    Size, in bytes, of Buffer. 
  11560.  
  11561. pcbNeeded (PULONG) - output 
  11562.    Size in bytes of available information. 
  11563.  
  11564.  
  11565. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQueryJob ΓòÉΓòÉΓòÉ
  11566.  
  11567. rc (SPLERR) - return 
  11568.  
  11569.    NO_ERROR (0) 
  11570.       No errors occurred. 
  11571.  
  11572.    ERROR_ACCESS_DENIED (5) 
  11573.       Access is denied. 
  11574.  
  11575.    ERROR_NOT_SUPPORTED (50) 
  11576.       This request is not supported by the network. 
  11577.  
  11578.    ERROR_BAD_NETPATH (53) 
  11579.       The network path cannot be located. 
  11580.  
  11581.    ERROR_INVALID_PARAMETER (87) 
  11582.       An invalid parameter is specified. 
  11583.  
  11584.    ERROR_INVALID_LEVEL (124) 
  11585.       The level parameter is invalid. 
  11586.  
  11587.    ERROR_MORE_DATA (234) 
  11588.       Additional data is available. 
  11589.  
  11590.    NERR_NetNotStarted (2102) 
  11591.       The network program is not started. 
  11592.  
  11593.    NERR_BufTooSmall (2123) 
  11594.       The API return buffer is too small. 
  11595.  
  11596.    NERR_JobNotFound (2151) 
  11597.       The print job does not exist. 
  11598.  
  11599.    NERR_SpoolerNotLoaded (2161) 
  11600.       The spooler is not running. 
  11601.  
  11602.    NERR_InvalidComputer (2351) 
  11603.       The computer name is invalid. 
  11604.  
  11605.  
  11606. ΓòÉΓòÉΓòÉ <hidden> Notes - SplQueryJob ΓòÉΓòÉΓòÉ
  11607.  
  11608. The buffer contents on return are: 
  11609.  
  11610. ulLevel   Buffer Contents 
  11611. 0         The job identifier 
  11612. 2         A PRJINFO2 structure, with variable information, up to the cbBuf of 
  11613.           pBuf 
  11614. 3         A PRJINFO3 structure, with variable information, up to the cbBuf of 
  11615.           pBuf. 
  11616.  
  11617.  
  11618. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQueryJob ΓòÉΓòÉΓòÉ
  11619.  
  11620. /*******************************************/
  11621. /* This function retrieves information     */
  11622. /* about a print job.                      */
  11623. /*******************************************/
  11624.  
  11625. #define INCL_SPL   /* Or use INCL_PM */
  11626. #include <os2.h>
  11627.  
  11628. PSZ     pszComputerName;   /* Name of computer where print job is to be queried */
  11629. PSZ     pszQueueName;      /* Queue Name */
  11630. ULONG   ulJob;             /* Job identification number */
  11631. ULONG   ulLevel;           /* Level of detail required */
  11632. PPVOID  pBuf;              /* Buffer */
  11633. ULONG   cbBuf;             /* Size, in bytes, of Buffer */
  11634. PULONG  pcbNeeded;         /* Size in bytes of available information */
  11635. SPLERR  rc;
  11636.  
  11637. rc = SplQueryJob(pszComputerName,
  11638.        pszQueueName, ulJob, ulLevel, pBuf,
  11639.        cbBuf, pcbNeeded);
  11640.  
  11641.  
  11642. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQueryJob ΓòÉΓòÉΓòÉ
  11643.  
  11644. Related Functions 
  11645.  
  11646. o SplEnumJob 
  11647. o SplEnumQueue 
  11648. o SplQueryQueue 
  11649. o SplSetJob 
  11650.  
  11651.  
  11652. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQueryJob ΓòÉΓòÉΓòÉ
  11653.  
  11654. The following sample code will print out the information contained in a 
  11655. PRJINFO3 structure that is returned from a SplQueryJob call. The parameters 
  11656. that are entered on the command line are the computer name, queue name, and the 
  11657. job id. 
  11658.  
  11659. #define INCL_SPL
  11660. #define INCL_SPLDOSPRINT
  11661. #define INCL_SPLERRORS
  11662. #include <os2.h>
  11663. #include <stdio.h>    /* for printf call  */
  11664. #include <stdlib.h>   /* for atoi call    */
  11665.  
  11666. INT main (argc, argv)
  11667.     INT argc;
  11668.     CHAR *argv[];
  11669. {
  11670.     INT    splerr;
  11671.     ULONG  cbBuf ;
  11672.     ULONG  cbNeeded ;
  11673.     ULONG  ulLevel ;
  11674.     ULONG  ulJob ;
  11675.     PSZ    pszComputerName ;
  11676.     PSZ    pszQueueName ;
  11677.     PVOID  pBuf;
  11678.     PPRJINFO3 pprj3 ;
  11679.  
  11680.     /* Input the parameters Computer Name, Queue Name,and Job ID. Check that  */
  11681.     /* three parameters have been entered along with the program name.        */
  11682.     if (argc != 4)
  11683.     {
  11684.        /* Print a message and exit if wrong number of parameters entered      */
  11685.        printf("Syntax:  sjqry  ComputerName  QueueName  JobID    \n");
  11686.        DosExit( EXIT_PROCESS , 0 ) ;
  11687.     }
  11688.     /* Set the parameters to the values entered on the command line.          */
  11689.     pszComputerName = argv[1] ;
  11690.     pszQueueName = argv[2] ;
  11691.     ulJob = atoi (argv[3]);
  11692.  
  11693.     /* Valid levels are 0,2,and 3. Level 3 returns a PRJINFO3 structure.      */
  11694.     ulLevel = 3 ;
  11695.  
  11696.     /* Call the function with cbBuf equal to zero in order to get the number  */
  11697.     /* of bytes needed returned in cbNeeded.                                  */
  11698.     splerr = SplQueryJob(pszComputerName,pszQueueName,ulJob,
  11699.                             ulLevel, (PVOID)NULL, 0L, &cbNeeded );
  11700.  
  11701.     /* Only continue if the error return code is one of the two following.    */
  11702.     if (splerr == NERR_BufTooSmall || splerr == ERROR_MORE_DATA )
  11703.     {
  11704.        /* Allocate memory for the buffer(pBuf). Only continue if memory is    */
  11705.        /* successfully allocated.                                             */
  11706.        if (DosAllocMem( &pBuf, cbNeeded,
  11707.                         PAG_READ|PAG_WRITE|PAG_COMMIT)
  11708. )
  11709.        {
  11710.           /* Set the count of bytes needed for the buffer to the value        */
  11711.           /* returned in cbNeeded from the first call.                        */
  11712.           cbBuf = cbNeeded ;
  11713.  
  11714.           /* Make the call again with all the correct values.                 */
  11715.           SplQueryJob(pszComputerName,pszQueueName,ulJob,
  11716.                                ulLevel, pBuf, cbBuf, &cbNeeded) ;
  11717.  
  11718.           /* Set a pointer to point to the beginning of the buffer that holds */
  11719.           /* the returned structure.                                          */
  11720.           pprj3=(PPRJINFO3)pBuf;
  11721.  
  11722.           /* Print out the information for each element in the structure.     */
  11723.           printf("Job ID      = %d\n", pprj3->uJobId);
  11724.           printf("Job Priority= %d\n", pprj3->uPriority);
  11725.           printf("User Name   = %s\n", pprj3->pszUserName);
  11726.           printf("Position    = %d\n", pprj3->uPosition);
  11727.           printf("Status      = %d\n", pprj3->fsStatus);
  11728.           printf("Submitted   = %ld\n",pprj3->ulSubmitted);
  11729.           printf("Size        = %ld\n",pprj3->ulSize);
  11730.           printf("Comment     = %s\n", pprj3->pszComment);
  11731.           printf("Document    = %s\n", pprj3->pszDocument);
  11732.           printf("Notify Name = %s\n", pprj3->pszNotifyName);
  11733.           printf("Data Type   = %s\n", pprj3->pszDataType);
  11734.           printf("Parms       = %s\n", pprj3->pszParms);
  11735.           printf("Status      = %s\n", pprj3->pszStatus);
  11736.           printf("Queue       = %s\n", pprj3->pszQueue);
  11737.           printf("QProc Name  = %s\n", pprj3->pszQProcName);
  11738.           printf("QProc Parms = %s\n", pprj3->pszQProcParms);
  11739.           printf("Driver Name = %s\n", pprj3->pszDriverName);
  11740.           printf("Printer Name= %s\n", pprj3->pszPrinterName);
  11741.  
  11742.           /* If pDriverData is NULL, then we can not access any data.         */
  11743.           if (pprj3->pDriverData)
  11744.           {
  11745.              printf("  pDriverData->cb           - %ld\n",
  11746.                                     (ULONG)pprj3->pDriverData->cb);
  11747.              printf("  pDriverData->lVersion     - %ld\n",
  11748.                                     (ULONG)pprj3->pDriverData->lVersion) ;
  11749.              printf("  pDriverData->szDeviceName - %s\n",
  11750.                                        pprj3->pDriverData->szDeviceName) ;
  11751.           }
  11752.           printf("/n");
  11753.  
  11754.           /* Free memory that we allocated.                                   */
  11755.           DosFreeMem(pBuf) ;
  11756.        }
  11757.     }
  11758.     else
  11759.     {
  11760.        /* If we are here than we have an error code. Print it out.            */
  11761.        printf("SplQueryJob Error=%ld,Bytes Needed=%ld\n",splerr, cbNeeded);
  11762.     }
  11763.     DosExit( EXIT_PROCESS , 0 ) ;
  11764.     return(splerr);
  11765. }
  11766.  
  11767.  
  11768. ΓòÉΓòÉΓòÉ 3.27. SplQueryQueue ΓòÉΓòÉΓòÉ
  11769.  
  11770.  
  11771. ΓòÉΓòÉΓòÉ <hidden> Topics - SplQueryQueue ΓòÉΓòÉΓòÉ
  11772.  
  11773. Select an item: 
  11774.  
  11775. Function Syntax 
  11776. Parameters 
  11777. Return Values 
  11778. Notes 
  11779. Example 
  11780. Related Functions 
  11781. Glossary 
  11782.  
  11783.  
  11784. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQueryQueue ΓòÉΓòÉΓòÉ
  11785.  
  11786. pszComputerName (PSZ) - input 
  11787.    Name of computer where queue is to be queried. A NULL string specifies the 
  11788.    local workstation. 
  11789.  
  11790. pszQueueName (PSZ) - input 
  11791.    Queue name. 
  11792.  
  11793. ulLevel (ULONG) - input 
  11794.    Level of detail required. This must be 3, 4, 5 or 6. 
  11795.  
  11796. pBuf (PVOID) - input 
  11797.    Buffer. 
  11798.  
  11799. cbBuf (ULONG) - input 
  11800.    Size, in bytes, of Buffer. 
  11801.  
  11802. pcbNeeded (PULONG) - output 
  11803.    Size in bytes of available information. 
  11804.  
  11805.  
  11806. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQueryQueue ΓòÉΓòÉΓòÉ
  11807.  
  11808. rc (SPLERR) - return 
  11809.    Return 
  11810.  
  11811.    NO_ERROR (0) 
  11812.       No errors occurred. 
  11813.  
  11814.    ERROR_ACCESS_DENIED (5) 
  11815.       Access is denied. 
  11816.  
  11817.    ERROR_NOT_SUPPORTED (50) 
  11818.       This request is not supported by the network. 
  11819.  
  11820.    ERROR_BAD_NETPATH (53) 
  11821.       The network path cannot be located. 
  11822.  
  11823.    ERROR_INVALID_PARAMETER (87) 
  11824.       An invalid parameter is specified. 
  11825.  
  11826.    ERROR_INVALID_LEVEL (124) 
  11827.       The level parameter is invalid. 
  11828.  
  11829.    ERROR_MORE_DATA (234) 
  11830.       Additional data is available. 
  11831.  
  11832.    NERR_NetNotStarted (2102) 
  11833.       The network program is not started. 
  11834.  
  11835.    NERR_BufTooSmall (2123) 
  11836.       The API return buffer is too small. 
  11837.  
  11838.    NERR_QNotFound (2150) 
  11839.       The printer queue does not exist. 
  11840.  
  11841.    NERR_SpoolerNotLoaded (2161) 
  11842.       The spooler is not running. 
  11843.  
  11844.    NERR_InvalidComputer (2351) 
  11845.       The computer name is invalid. 
  11846.  
  11847.  
  11848. ΓòÉΓòÉΓòÉ <hidden> Notes - SplQueryQueue ΓòÉΓòÉΓòÉ
  11849.  
  11850. The buffer contents on return are: 
  11851.  
  11852. ulLevel     Buffer Contents 
  11853. 3           A PRQINFO3 structure, with associated variable information up to 
  11854.             cbBuf. The fsType bit PRQ3_TYPE_APPDEFAULT is set for the 
  11855.             application default queue only. 
  11856. 4           A PRQINFO3 structure, with associated variable information, and an 
  11857.             array of PRJINFO2 structures, one for each job in the queue, up to 
  11858.             cbBuf. 
  11859. 5           A queue name of type PSZ. 
  11860. 6           A PRQINFO6 structure, with associated variable information up to 
  11861.             cbBuf. 
  11862.  
  11863. If ulLevel is 3 or 4, and pBuf cannot hold the entire PRQINFO3 structure, 
  11864. SplQueryQueue returns NERR_BufTooSmall (2123). If ulLevel is 6, and pBuf cannot 
  11865. hold the entire PRQINFO6 structure, SplQueryQueue returns NERR_BufTooSmall 
  11866. (2123). 
  11867.  
  11868. If ulLevel is 4, and pBuf cannot hold all the available PRJINFO2 structures, 
  11869. SplQueryQueue returns ERROR_MORE_DATA (234). 
  11870.  
  11871. To obtain the size of buffer required, call SplQueryQueue with the required 
  11872. value of ulLevel and a NULL buffer. The number of bytes required is returned in 
  11873. pcbNeeded. 
  11874.  
  11875.  
  11876. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQueryQueue ΓòÉΓòÉΓòÉ
  11877.  
  11878. /*******************************************/
  11879. /* This function supplies information      */
  11880. /* about a print queue, and, optionally,   */
  11881. /* about the jobs in it.                   */
  11882. /*******************************************/
  11883.  
  11884. #define INCL_SPL   /* Or use INCL_PM */
  11885. #include <os2.h>
  11886.  
  11887. PSZ     pszComputerName;   /* Name of computer where queue is to be queried */
  11888. PSZ     pszQueueName;      /* Queue name */
  11889. ULONG   ulLevel;           /* Level of detail required */
  11890. PVOID   pBuf;              /* Buffer */
  11891. ULONG   cbBuf;             /* Size, in bytes, of Buffer */
  11892. PULONG  pcbNeeded;         /* Size in bytes of available information */
  11893. SPLERR  rc;                /* Return */
  11894.  
  11895. rc = SplQueryQueue(pszComputerName,
  11896.        pszQueueName, ulLevel, pBuf, cbBuf,
  11897.        pcbNeeded);
  11898.  
  11899.  
  11900. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQueryQueue ΓòÉΓòÉΓòÉ
  11901.  
  11902. Related Functions 
  11903.  
  11904. o SplEnumQueue 
  11905. o SplQueryJob 
  11906. o SplSetJob 
  11907. o SplSetQueue 
  11908.  
  11909.  
  11910. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQueryQueue ΓòÉΓòÉΓòÉ
  11911.  
  11912. This sample code queries the local workstation for a queue name that is entered 
  11913. at the command prompt. The query is done at level 4 which returns returns in 
  11914. the buffer information in a PRQINFO3 structure and follows this with PRJINFO2 
  11915. structures - one for each job in the queue. 
  11916.  
  11917. #define INCL_SPL
  11918. #define INCL_SPLDOSPRINT
  11919. #define INCL_SPLERRORS
  11920.  
  11921. #include <os2.h>
  11922. #include <stdio.h>
  11923.  
  11924. INT main (argc, argv)
  11925.     INT argc;
  11926.     CHAR *argv[];
  11927. {
  11928.     ULONG  splerr  ;
  11929.     ULONG  cbBuf;
  11930.     ULONG  cbNeeded ;
  11931.     ULONG  ulLevel ;
  11932.     ULONG  i ;
  11933.     USHORT uJobCount ;
  11934.     PSZ    pszComputerName ;
  11935.     PSZ    pszQueueName ;
  11936.     PVOID  pBuf;
  11937.     PPRJINFO2 prj2 ;
  11938.     PPRQINFO3 prq3 ;
  11939.  
  11940.     if (argc != 2)
  11941.     {
  11942.        printf("Syntax:  setqryq  QueueName \n");
  11943.        DosExit( EXIT_PROCESS , 0 ) ;
  11944.     }
  11945.  
  11946.     pszComputerName = (PSZ)NULL ;
  11947.     pszQueueName = argv[1];
  11948.     ulLevel = 4L;
  11949.     splerr = SplQueryQueue(pszComputerName, pszQueueName, ulLevel,
  11950.                                 (PVOID)NULL, 0L, &cbNeeded );
  11951.     if (splerr != NERR_BufTooSmall || splerr != ERROR_MORE_DATA )
  11952.     {
  11953.        printf("SplQueryQueue Error=%ld, cbNeeded=%ld\n",splerr, cbNeeded) ;
  11954.        DosExit( EXIT_PROCESS , 0 ) ;
  11955.     }
  11956.     if (!DosAllocMem( &pBuf, cbNeeded,
  11957.                               PAG_READ|PAG_WRITE|PAG_COMMIT)
  11958.     {
  11959.        cbBuf = cbNeeded ;
  11960.        splerr = SplQueryQueue(pszComputerName, pszQueueName, ulLevel,
  11961.                                  pBuf, cbBuf, &cbNeeded) ;
  11962.        prq3=(PPRQINFO3)pBuf;
  11963.        printf("Queue info: name- %s\n", prq3->pszName) ;
  11964.     if ( prq3->fsType & PRQ3_TYPE_APPDEFAULT )
  11965.        printf("  This is the application default print queue\n");
  11966.        printf("  priority - %d  starttime - %d  endtime - %d fsType - %X\n",
  11967.               prq3->uPriority ,  prq3->uStartTime , prq3->uUntilTime ,
  11968.               prq3->fsType ) ;
  11969.        printf("  pszSepFile    - %s\n", prq3->pszSepFile) ;
  11970.        printf("  pszPrProc     - %s\n", prq3->pszPrProc) ;
  11971.        printf("  pszParms      - %s\n", prq3->pszParms) ;
  11972.        printf("  pszComment    - %s\n", prq3->pszComment) ;
  11973.        printf("  pszPrinters   - %s\n", prq3->pszPrinters) ;
  11974.        printf("  pszDriverName - %s\n", prq3->pszDriverName) ;
  11975.        if (prq3->pDriverData)
  11976.        {
  11977.          printf("  pDriverData->cb           - %ld\n",
  11978.                                 (ULONG)prq3->pDriverData->cb);
  11979.          printf("  pDriverData->lVersion     - %ld\n",
  11980.                                 (ULONG)prq3->pDriverData->lVersion) ;
  11981.          printf("  pDriverData->szDeviceName - %s\n",
  11982.                                 prq3->pDriverData->szDeviceName) ;
  11983.        }
  11984.        /* Store the job count for use later in the for loop.                  */
  11985.        uJobCount = prq3->cJobs;
  11986.        printf("Job count in this queue is %d\n\n",uJobCount);
  11987.  
  11988.        /* Increment the pointer to the PRQINFO3 structure so that it points to*/
  11989.        /* the first structure after itself.                                   */
  11990.        prq3++;
  11991.  
  11992.        /* Cast the prq3 pointer to point to a PRJINFO2 structure, and set a   */
  11993.        /* pointer to point to that place.                                     */
  11994.        prj2=(PPRJINFO2)prq3;
  11995.        for (i=0 ; i<uJobCount ;i++ ) {
  11996.           printf("Job ID    = %d\n",  prj2->uJobId);
  11997.           printf("Priority  = %d\n",  prj2->uPriority);
  11998.           printf("User Name = %s\n",  prj2->pszUserName);
  11999.           printf("Position  = %d\n",  prj2->uPosition);
  12000.           printf("Status    = %d\n",  prj2->fsStatus);
  12001.           printf("Submitted = %ld\n", prj2->ulSubmitted);
  12002.           printf("Size      = %ld\n", prj2->ulSize);
  12003.           printf("Comment   = %s\n",  prj2->pszComment);
  12004.           printf("Document  = %s\n\n",prj2->pszDocument);
  12005.  
  12006.           /* Increment the pointer to point to the next structure.            */
  12007.           prj2++;
  12008.        } /* endfor */
  12009. DosFreeMem(pBuf) ;
  12010.     }
  12011.     DosExit( EXIT_PROCESS , 0 ) ;
  12012.     return (splerr);
  12013. }
  12014.  
  12015.  
  12016. ΓòÉΓòÉΓòÉ 3.28. SplReleaseJob ΓòÉΓòÉΓòÉ
  12017.  
  12018.  
  12019. ΓòÉΓòÉΓòÉ <hidden> Topics - SplReleaseJob ΓòÉΓòÉΓòÉ
  12020.  
  12021. Select an item: 
  12022.  
  12023. Function Syntax 
  12024. Parameters 
  12025. Return Values 
  12026. Notes 
  12027. Example 
  12028. Related Functions 
  12029. Glossary 
  12030.  
  12031.  
  12032. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplReleaseJob ΓòÉΓòÉΓòÉ
  12033.  
  12034. pszComputerName (PSZ) - input 
  12035.    Name of computer where job is to be continued. A NULL string specifies the 
  12036.    local workstation. 
  12037.  
  12038. pszQueueName (PSZ) - input 
  12039.    Queue Name. 
  12040.  
  12041. ulJob (ULONG) - input 
  12042.    Job identification number. 
  12043.  
  12044.  
  12045. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplReleaseJob ΓòÉΓòÉΓòÉ
  12046.  
  12047. rc (SPLERR) - return 
  12048.  
  12049.    NO_ERROR (0) 
  12050.       No errors occurred. 
  12051.  
  12052.    ERROR_ACCESS_DENIED (5) 
  12053.       Access is denied. 
  12054.  
  12055.    ERROR_NOT_SUPPORTED (50) 
  12056.       This request is not supported by the network. 
  12057.  
  12058.    ERROR_BAD_NETPATH (53) 
  12059.       The network path cannot be located. 
  12060.  
  12061.    NERR_NetNotStarted (2102) 
  12062.       The network program is not started. 
  12063.  
  12064.    NERR_JobNotFound (2151) 
  12065.       The print job does not exist. 
  12066.  
  12067.    NERR_SpoolerNotLoaded (2161) 
  12068.       The spooler is not running. 
  12069.  
  12070.    NERR_JobInvalidState (2164) 
  12071.       This operation cannot be performed on the print job in its current state. 
  12072.  
  12073.    NERR_InvalidComputer (2351) 
  12074.       The computer name is invalid. 
  12075.  
  12076.  
  12077. ΓòÉΓòÉΓòÉ <hidden> Notes - SplReleaseJob ΓòÉΓòÉΓòÉ
  12078.  
  12079. Any job can be released by a user with administrator privilege. 
  12080.  
  12081. A job created locally can be released locally regardless of user privilege 
  12082. level, but it can be released remotely only by a user with administrator 
  12083. privilege. 
  12084.  
  12085. A remote job can be released by a user without administrator privilege only if 
  12086. the user identification of the person initiating the request is the same as the 
  12087. user identification of the person who created the job. 
  12088.  
  12089.  
  12090. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplReleaseJob ΓòÉΓòÉΓòÉ
  12091.  
  12092. /*******************************************/
  12093. /* This function releases a held print job.*/
  12094. /*******************************************/
  12095.  
  12096. #define INCL_SPL   /* Or use INCL_PM */
  12097. #include <os2.h>
  12098.  
  12099. PSZ     pszComputerName;   /* Name of computer where job is to be continued */
  12100. PSZ     pszQueueName;      /* Queue Name */
  12101. ULONG   ulJob;             /* Job identification number */
  12102. SPLERR  rc;
  12103.  
  12104. rc = SplReleaseJob(pszComputerName,
  12105.        pszQueueName, ulJob);
  12106.  
  12107.  
  12108. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplReleaseJob ΓòÉΓòÉΓòÉ
  12109.  
  12110. Related Functions 
  12111.  
  12112. o SplEnumJob 
  12113. o SplHoldJob 
  12114. o SplQueryJob 
  12115.  
  12116.  
  12117. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplReleaseJob ΓòÉΓòÉΓòÉ
  12118.  
  12119. This sample code will release the job id that is entered at the prompt. 
  12120.  
  12121. #define INCL_BASE
  12122. #define INCL_SPL
  12123. #define INCL_SPLERRORS
  12124. #include <os2.h>
  12125. #include <stdio.h>       /* for printf function */
  12126. #include <stdlib.h>      /* for atoi function   */
  12127.  
  12128. INT main (argc, argv)
  12129.    INT argc;
  12130.    CHAR *argv[];
  12131. {
  12132.    SPLERR splerr ;
  12133.    ULONG  ulJob ;
  12134.    PSZ    pszComputerName = NULL ;
  12135.    PSZ    pszQueueName = NULL ;
  12136.  
  12137.    /* Get job id from the input argument  */
  12138.    ulJob = atoi(argv[1]);
  12139.  
  12140.    /* Call the function to do the release. If an error is returned, print it. */
  12141.    splerr=SplReleaseJob( pszComputerName, pszQueueName, ulJob);
  12142.    switch (splerr)
  12143.    {
  12144.    case NO_ERROR:
  12145.       printf("Job %d was released.\n",ulJob);
  12146.       break;
  12147.    case NERR_JobNotFound:
  12148.       printf("Job does not exist.\n");
  12149.       break;
  12150.    case  NERR_JobInvalidState:
  12151.       printf("This operation can't be performed on the print Job.\n");
  12152.       break;
  12153.    default:
  12154.       printf("Errorcode = %ld\n",splerr);
  12155.    } /* endswitch */
  12156.    DosExit( EXIT_PROCESS , 0 ) ;
  12157.    argc;
  12158.    return (splerr);
  12159. }
  12160.  
  12161.  
  12162. ΓòÉΓòÉΓòÉ 3.29. SplReleaseQueue ΓòÉΓòÉΓòÉ
  12163.  
  12164.  
  12165. ΓòÉΓòÉΓòÉ <hidden> Topics - SplReleaseQueue ΓòÉΓòÉΓòÉ
  12166.  
  12167. Select an item: 
  12168.  
  12169. Function Syntax 
  12170. Parameters 
  12171. Return Values 
  12172. Notes 
  12173. Example 
  12174. Related Functions 
  12175. Glossary 
  12176.  
  12177.  
  12178. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplReleaseQueue ΓòÉΓòÉΓòÉ
  12179.  
  12180. pszComputerName (PSZ) - input 
  12181.    Name of computer where queue is to be continued. A NULL string specifies the 
  12182.    local workstation. 
  12183.  
  12184. pszQueueName (PSZ) - input 
  12185.    Queue name. 
  12186.  
  12187.  
  12188. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplReleaseQueue ΓòÉΓòÉΓòÉ
  12189.  
  12190. rc (SPLERR) - return 
  12191.  
  12192.    NO_ERROR (0) 
  12193.       No errors occurred. 
  12194.  
  12195.    ERROR_ACCESS_DENIED (5) 
  12196.       Access is denied. 
  12197.  
  12198.    ERROR_NOT_SUPPORTED (50) 
  12199.       This request is not supported by the network. 
  12200.  
  12201.    ERROR_BAD_NETPATH (53) 
  12202.       The network path cannot be located. 
  12203.  
  12204.    NERR_NetNotStarted (2102) 
  12205.       The network program is not started. 
  12206.  
  12207.    NERR_QNotFound (2150) 
  12208.       The printer queue does not exist. 
  12209.  
  12210.    NERR_SpoolerNotLoaded (2161) 
  12211.       The spooler is not running. 
  12212.  
  12213.    NERR_InvalidComputer (2351) 
  12214.       The computer name is invalid. 
  12215.  
  12216.  
  12217. ΓòÉΓòÉΓòÉ <hidden> Notes - SplReleaseQueue ΓòÉΓòÉΓòÉ
  12218.  
  12219. This function releases a queue that has been held by a SplHoldQueue function, 
  12220. or disabled by an error on the queue. It does not affect an active print queue. 
  12221.  
  12222. To release a queue on a remote server requires administrator privilege on the 
  12223. remote server. 
  12224.  
  12225.  
  12226. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplReleaseQueue ΓòÉΓòÉΓòÉ
  12227.  
  12228. /*******************************************/
  12229. /* This function releases a held print     */
  12230. /* queue.                                  */
  12231. /*******************************************/
  12232.  
  12233. #define INCL_SPL   /* Or use INCL_PM */
  12234. #include <os2.h>
  12235.  
  12236. PSZ     pszComputerName;   /* Name of computer where queue is to be continued */
  12237. PSZ     pszQueueName;      /* Queue name */
  12238. SPLERR  rc;
  12239.  
  12240. rc = SplReleaseQueue(pszComputerName,
  12241.        pszQueueName);
  12242.  
  12243.  
  12244. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplReleaseQueue ΓòÉΓòÉΓòÉ
  12245.  
  12246. Related Functions 
  12247.  
  12248. o SplEnumQueue 
  12249. o SplHoldQueue 
  12250. o SplQueryQueue 
  12251.  
  12252.  
  12253. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplReleaseQueue ΓòÉΓòÉΓòÉ
  12254.  
  12255. This sample code will release the local queue that is entered at the prompt. 
  12256.  
  12257. #define INCL_SPL
  12258. #define INCL_SPLERRORS
  12259. #include <os2.h>
  12260. #include <stdio.h>     /* for printf function */
  12261.  
  12262. INT main (argc, argv)
  12263.    INT argc;
  12264.    CHAR *argv[];
  12265. {
  12266.    SPLERR splerr ;
  12267.    PSZ    pszComputerName = NULL ;
  12268.    PSZ    pszQueueName ;
  12269.  
  12270.    /* Get queue name from the input argument.                                */
  12271.    pszQueueName = argv[1];
  12272.  
  12273.    /* Call the function to do the release. If an error is returned, print it. */
  12274.    splerr=SplReleaseQueue(pszComputerName, pszQueueName);
  12275.    if (splerr != 0L)
  12276.    {
  12277.       switch (splerr)
  12278.       {
  12279.          case NERR_QNotFound:
  12280.             printf("Queue does not exist.\n");
  12281.             break;
  12282.          case  NERR_SpoolerNotLoaded:
  12283.             printf("The Spooler is not running.\n");
  12284.             break;
  12285.          default:
  12286.             printf("Errorcode = %ld\n",splerr);
  12287.       } /* endswitch */
  12288.    }
  12289.    else
  12290.    {
  12291.       printf("Queue %s was released.\n",pszQueueName);
  12292.    } /* endif */
  12293.    DosExit( EXIT_PROCESS , 0 ) ;
  12294.    return (splerr);
  12295. }
  12296.  
  12297.  
  12298. ΓòÉΓòÉΓòÉ 3.30. SplSetDevice ΓòÉΓòÉΓòÉ
  12299.  
  12300.  
  12301. ΓòÉΓòÉΓòÉ <hidden> Topics - SplSetDevice ΓòÉΓòÉΓòÉ
  12302.  
  12303. Select an item: 
  12304.  
  12305. Function Syntax 
  12306. Parameters 
  12307. Return Values 
  12308. Notes 
  12309. Example 
  12310. Related Functions 
  12311. Glossary 
  12312.  
  12313.  
  12314. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplSetDevice ΓòÉΓòÉΓòÉ
  12315.  
  12316. pszComputerName (PSZ) - input 
  12317.    Name of computer where print device is to be modified. A NULL string 
  12318.    specifies the local workstation. 
  12319.  
  12320. pszPrintDeviceName (PSZ) - input 
  12321.    Name of Print Device. 
  12322.  
  12323. ulLevel (ULONG) - input 
  12324.    Level of detail required. This must be 3. 
  12325.  
  12326. pBuf (PVOID) - input 
  12327.    Buffer. 
  12328.  
  12329. cbBuf (ULONG) - input 
  12330.    Size, in bytes, of Buffer. 
  12331.  
  12332. ulParmNum (ULONG) - input 
  12333.    Parameter number. Specifies either that the entire PRDINFO3 structure is to 
  12334.    be modified, or that one specific parameter only is to be modified. If 
  12335.    ulParmNum is 0, pBuf must contain a complete PRDINFO3 structure. Otherwise, 
  12336.    pBuf must contain a valid value corresponding to the parameter to be 
  12337.    modified: 
  12338.  
  12339.    Parameter                      Constant (Value) 
  12340.    pszLogAddr                     PRD_LOGADDR_PARMNUM (3) 
  12341.    pszComment                     PRD_COMMENT_PARMNUM (7) 
  12342.    pszDrivers                     PRD_DRIVERS_PARMNUM (8) 
  12343.    usTimeOut                      PRD_TIMEOUT_PARMNUM (10) 
  12344.  
  12345.  
  12346. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplSetDevice ΓòÉΓòÉΓòÉ
  12347.  
  12348. rc (SPLERR) - return 
  12349.  
  12350.    NO_ERROR (0) 
  12351.       No errors occurred. 
  12352.  
  12353.    ERROR_ACCESS_DENIED (5) 
  12354.       Access is denied. 
  12355.  
  12356.    ERROR_NOT_SUPPORTED (50) 
  12357.       This request is not supported by the network. 
  12358.  
  12359.    ERROR_BAD_NETPATH (53) 
  12360.       The network path cannot be located. 
  12361.  
  12362.    ERROR_INVALID_PARAMETER (87) 
  12363.       An invalid parameter is specified. 
  12364.  
  12365.    ERROR_INVALID_LEVEL (124) 
  12366.       The level parameter is invalid. 
  12367.  
  12368.    NERR_NetNotStarted (2102) 
  12369.       The network program is not started. 
  12370.  
  12371.    NERR_BufTooSmall (2123) 
  12372.       The API return buffer is too small. 
  12373.  
  12374.    NERR_DestNotFound (2152) 
  12375.       The print device cannot be found. 
  12376.  
  12377.    NERR_SpoolerNotLoaded (2161) 
  12378.       The spooler is not running. 
  12379.  
  12380.    NERR_DestInvalidState (2162) 
  12381.       This operation cannot be performed on the print device. 
  12382.  
  12383.    NERR_SpoolNoMemory (2165) 
  12384.       A spooler memory allocation failure occurred. 
  12385.  
  12386.    NERR_DriverNotFound (2166) 
  12387.       The device driver does not exist. 
  12388.  
  12389.    NERR_BadDev (2341) 
  12390.       The requested device is invalid. 
  12391.  
  12392.    NERR_InvalidComputer (2351) 
  12393.       The computer name is invalid. 
  12394.  
  12395.  
  12396. ΓòÉΓòÉΓòÉ <hidden> Notes - SplSetDevice ΓòÉΓòÉΓòÉ
  12397.  
  12398. This function allows modification of a print device and its connection to a 
  12399. logical address. To disconnect a print device from a port, use ulLevel=3, 
  12400. ulParmNum=3, and pBuf is a NULL string. 
  12401.  
  12402. To modify a print device on a remote server requires administrator privilege. 
  12403.  
  12404.  
  12405. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplSetDevice ΓòÉΓòÉΓòÉ
  12406.  
  12407. /*******************************************/
  12408. /* This function modifies the              */
  12409. /* configuration of a print device.        */
  12410. /*******************************************/
  12411.  
  12412. #define INCL_SPL   /* Or use INCL_PM */
  12413. #include <os2.h>
  12414.  
  12415. PSZ     pszComputerName;      /* Name of computer where print device is to be modified */
  12416. PSZ     pszPrintDeviceName;   /* Name of Print Device */
  12417. ULONG   ulLevel;              /* Level of detail required */
  12418. PVOID   pBuf;                 /* Buffer */
  12419. ULONG   cbBuf;                /* Size, in bytes, of Buffer */
  12420. ULONG   ulParmNum;            /* Parameter number */
  12421. SPLERR  rc;
  12422.  
  12423. rc = SplSetDevice(pszComputerName,
  12424.        pszPrintDeviceName, ulLevel, pBuf,
  12425.        cbBuf, ulParmNum);
  12426.  
  12427.  
  12428. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplSetDevice ΓòÉΓòÉΓòÉ
  12429.  
  12430. Related Functions 
  12431.  
  12432. o SplEnumDevice 
  12433. o SplEnumDriver 
  12434. o SplEnumPort 
  12435. o SplEnumPrinter 
  12436. o SplQueryDevice 
  12437.  
  12438.  
  12439. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplSetDevice ΓòÉΓòÉΓòÉ
  12440.  
  12441. This sample code first gets a device name from the command line. It then 
  12442. prompts the user for a parameter number and a value associated with it. 
  12443.  
  12444.  
  12445. #define INCL_BASE
  12446. #define INCL_DOSMEMMGR
  12447. #define INCL_SPL
  12448. #define INCL_SPLDOSPRINT
  12449. #define INCL_SPLERRORS
  12450. #include <os2.h>
  12451. #include <stdio.h>            /* for printf function */
  12452. #include <string.h>           /* for strlen function */
  12453. #include <stdlib.h>           /* for atoi function   */
  12454.  
  12455. INT main (argc, argv)
  12456.     INT argc;
  12457.     CHAR *argv[];
  12458. {
  12459.     CHAR   bufValue[2]={0};
  12460.     CHAR   bufInput[128]={0};
  12461.     ULONG  splerr  ;
  12462.     ULONG  cbBuf ;
  12463.     ULONG  ulParmNum ;
  12464.     USHORT usParm;
  12465.     PSZ    pszComputerName ;
  12466.     PSZ    pszPrintDeviceName ;
  12467.     PVOID  pBuf;
  12468.  
  12469.     if (argc != 2)
  12470.     {
  12471.        printf("Syntax:  sdset  DeviceName  \n");
  12472.        DosExit( EXIT_PROCESS , 0 ) ;
  12473.     }
  12474.     pszComputerName = (PSZ)NULL ;
  12475.  
  12476.     /* Set the print device name to the value from the command line. */
  12477.     pszPrintDeviceName = argv[1];
  12478.  
  12479.     /* Get the parameter and the value. Store them in buffers. */
  12480.     printf("Enter Parameter number to be modified\n");
  12481.     gets(&bufValue[0]);
  12482.     printf("Enter new parameter value \n");
  12483.     gets(&bufInput[0]);
  12484.  
  12485.     /* Convert the input parmnum  to a ULONG. */
  12486.     ulParmNum = atoi(&bufValue[0]);
  12487.  
  12488.     switch (ulParmNum)
  12489.     {
  12490.        case 10:
  12491.           /* Determine the size of the buffer. */
  12492.           cbBuf = sizeof(PUSHORT);
  12493.  
  12494.           /* Convert the input parameter to a USHORT. */
  12495.           usParm =(USHORT)atoi(&bufInput[0]);
  12496.  
  12497.           /* Point the buffer to the value. */
  12498.           pBuf = &usParm;
  12499.           break;
  12500.        case 3:
  12501.        case 7:
  12502.        case 8:
  12503.           /* Determine the size of the buffer. */
  12504.           cbBuf = strlen(&bufInput[0])+1;
  12505.  
  12506.           /* Point the buffer to the value. */
  12507.           pBuf = (PSZ)&bufInput;
  12508.           break;
  12509.        default:
  12510.           printf("Invalid number\n");
  12511.           DosExit( EXIT_PROCESS , 0 ) ;
  12512.           break;
  12513.     }
  12514.     /* Make the call. */
  12515.     splerr = SplSetDevice(pszComputerName,pszPrintDeviceName,3L,
  12516.                           pBuf,cbBuf,ulParmNum) ;
  12517.  
  12518.     /* Print out the result. */
  12519.     printf("SplSetDevice Err= %ld, Parameter= %d, cbBuf= %ld ,ulParmNum= %ld\n",
  12520.                           splerr, usParm, cbBuf, ulParmNum);
  12521.  
  12522.     DosExit( EXIT_PROCESS , 0 ) ;
  12523.     return (splerr);
  12524. }
  12525.  
  12526.  
  12527. ΓòÉΓòÉΓòÉ 3.31. SplSetJob ΓòÉΓòÉΓòÉ
  12528.  
  12529.  
  12530. ΓòÉΓòÉΓòÉ <hidden> Topics - SplSetJob ΓòÉΓòÉΓòÉ
  12531.  
  12532. Select an item: 
  12533.  
  12534. Function Syntax 
  12535. Parameters 
  12536. Return Values 
  12537. Notes 
  12538. Example 
  12539. Related Functions 
  12540. Glossary 
  12541.  
  12542.  
  12543. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplSetJob ΓòÉΓòÉΓòÉ
  12544.  
  12545. pszComputerName (PSZ) - input 
  12546.    Name of computer where job is to be modified. A NULL string specifies the 
  12547.    local workstation. 
  12548.  
  12549. pszQueueName (PSZ) - input 
  12550.    Queue Name. 
  12551.  
  12552. ulJob (ULONG) - input 
  12553.    Job identification number. 
  12554.  
  12555. ulLevel (ULONG) - input 
  12556.    Level of detail required. This must be 3. 
  12557.  
  12558. pBuf (PVOID) - input 
  12559.    Buffer. 
  12560.  
  12561. cbBuf (ULONG) - input 
  12562.    Size, in bytes, of Buffer. 
  12563.  
  12564. ulParmNum (ULONG) - input 
  12565.    Parameter number. Specifies either that the entire PRJINFO3 structure is to 
  12566.    be modified, or that one specified parameter only is to be modified. 
  12567.  
  12568.    If ulParmNum is 0, pBuf must contain a complete PRJINFO3 structure. 
  12569.    Otherwise, pBuf must contain a valid value corresponding to the parameter to 
  12570.    be modified, as follows: 
  12571.  
  12572.    Parameter                      Value 
  12573.    pszNotifyName                  PRJ_NOTIFYNAME_PARMNUM (3) 
  12574.    pszDataType                    PRJ_DATATYPE_PARMNUM (4) 
  12575.    pszParms                       PRJ_PARMS_PARMNUM (5) 
  12576.    uPosition                      PRJ_POSITION_PARMNUM (6) 
  12577.    pszComment                     PRJ_COMMENT_PARMNUM (11) 
  12578.    pszDocument                    PRJ_DOCUMENT_PARMNUM (12) 
  12579.    pszStatus                      PRJ_STATUSCOMMENT_PARMNUM (13) 
  12580.    uPriority                      PRJ_PRIORITY_PARMNUM (14) 
  12581.    pszQProcParms                  PRJ_PROCPARMS_PARMNUM (16) 
  12582.    pDriverData                    PRJ_DRIVERDATA_PARMNUM (18) 
  12583.  
  12584.    uPosition must be given the appropriate value, as follows: 
  12585.  
  12586.    Value                          Change 
  12587.    0                              No change 
  12588.    1                              Move to first place 
  12589.    >1                             Move to this position, or if the specified 
  12590.                                   value is greater than the number of jobs in 
  12591.                                   the queue, move to the end of the queue. 
  12592.  
  12593.  
  12594. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplSetJob ΓòÉΓòÉΓòÉ
  12595.  
  12596. rc (SPLERR) - return 
  12597.  
  12598.    NO_ERROR (0) 
  12599.       No errors occurred. 
  12600.  
  12601.    ERROR_ACCESS_DENIED (5) 
  12602.       Access is denied. 
  12603.  
  12604.    ERROR_NOT_SUPPORTED (50) 
  12605.       This request is not supported by the network. 
  12606.  
  12607.    ERROR_BAD_NETPATH (53) 
  12608.       The network path cannot be located. 
  12609.  
  12610.    ERROR_INVALID_PARAMETER (87) 
  12611.       An invalid parameter is specified. 
  12612.  
  12613.    ERROR_INVALID_LEVEL (124) 
  12614.       The level parameter is invalid. 
  12615.  
  12616.    NERR_NetNotStarted (2102) 
  12617.       The network program is not started. 
  12618.  
  12619.    NERR_BufTooSmall (2123) 
  12620.       The API return buffer is too small. 
  12621.  
  12622.    NERR_JobNotFound (2151) 
  12623.       The print job does not exist. 
  12624.  
  12625.    NERR_SpoolerNotLoaded (2161) 
  12626.       The spooler is not running. 
  12627.  
  12628.    NERR_JobInvalidState (2164) 
  12629.       This operation cannot be performed on the print job in its current state. 
  12630.  
  12631.    NERR_SpoolNoMemory (2165) 
  12632.       A spooler memory allocation failure occurred. 
  12633.  
  12634.    NERR_DriverNotFound (2166) 
  12635.       The device driver does not exist. 
  12636.  
  12637.    NERR_ProcNotFound (2168) 
  12638.       The queue processor is not installed. 
  12639.  
  12640.    NERR_InvalidComputer (2351) 
  12641.       The computer name is invalid. 
  12642.  
  12643.  
  12644. ΓòÉΓòÉΓòÉ <hidden> Notes - SplSetJob ΓòÉΓòÉΓòÉ
  12645.  
  12646. The job priority is changed, if necessary, to the priority of the next job 
  12647. after the new position. If the spooler is restarted, the order in which jobs 
  12648. are put on the queue depends on the priority and age of the job. This order may 
  12649. be different from the order following the SplSetJob call. 
  12650.  
  12651. Users without administrator privilege can use SplSetJob only for jobs created 
  12652. when the same user name was logged on. They can move jobs backwards only, and 
  12653. cannot increase the job priority above the queue priority. 
  12654.  
  12655. A job created locally has no associated user name, and any user can set 
  12656. information locally for the job. Only an administrator can set information for 
  12657. a job on a remote server. 
  12658.  
  12659.  
  12660. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplSetJob ΓòÉΓòÉΓòÉ
  12661.  
  12662. /*******************************************/
  12663. /* This function modifies the instructions */
  12664. /* for a print job.                        */
  12665. /*******************************************/
  12666.  
  12667. #define INCL_SPL   /* Or use INCL_PM */
  12668. #include <os2.h>
  12669.  
  12670. PSZ     pszComputerName;   /* Name of computer where job is to be modified */
  12671. PSZ     pszQueueName;      /* Queue Name */
  12672. ULONG   ulJob;             /* Job identification number */
  12673. ULONG   ulLevel;           /* Level of detail required */
  12674. PVOID   pBuf;              /* Buffer */
  12675. ULONG   cbBuf;             /* Size, in bytes, of Buffer */
  12676. ULONG   ulParmNum;         /* Parameter number */
  12677. SPLERR  rc;
  12678.  
  12679. rc = SplSetJob(pszComputerName,
  12680.        pszQueueName, ulJob, ulLevel, pBuf,
  12681.        cbBuf, ulParmNum);
  12682.  
  12683.  
  12684. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplSetJob ΓòÉΓòÉΓòÉ
  12685.  
  12686. Related Functions 
  12687.  
  12688. o SplEnumJob 
  12689. o SplQueryJob 
  12690. o SplQueryQueue 
  12691.  
  12692.  
  12693. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplSetJob ΓòÉΓòÉΓòÉ
  12694.  
  12695. This sample code first gets a queue name and a jobid from the command prompt. 
  12696. It then prompts the user to enter a parameter number and a value for that 
  12697. number. 
  12698.  
  12699. #define INCL_BASE
  12700. #define INCL_DOSMEMMGR
  12701. #define INCL_SPL
  12702. #define INCL_SPLDOSPRINT
  12703. #define INCL_SPLERRORS
  12704. #include <os2.h>
  12705. #include <stdio.h>
  12706. #include <stdlib.h>
  12707. #include <string.h>
  12708.  
  12709. INT main (argc, argv)
  12710.     INT argc;
  12711.     CHAR *argv[];
  12712. {
  12713.     CHAR   bufValue[2]={0};
  12714.     CHAR   bufInput[128]={0};
  12715.     ULONG  splerr  ;
  12716.     ULONG  cbBuf;
  12717.     ULONG  ulParmNum ;
  12718.     ULONG  ulJob ;
  12719.     USHORT usParm;
  12720.     PSZ    pszComputerName ;
  12721.     PSZ    pszQueueName ;
  12722.     PVOID  pBuf;
  12723.  
  12724.     if (argc != 3)
  12725.     {
  12726.        printf("Syntax:  sjset  QueueName  JobID  \n");
  12727.        DosExit( EXIT_PROCESS , 0 ) ;
  12728.     }
  12729.     pszComputerName = (PSZ)NULL ;
  12730.  
  12731.     /* Set values to those entered at the prompt. */
  12732.     pszQueueName = argv[1] ;
  12733.     ulJob = atoi (argv[2]);
  12734.  
  12735.     /* Request a parameter and the associated value. Store them in buffers. */
  12736.     printf("Enter Parameter number to be modified\n");
  12737.     gets(&bufValue[0]);
  12738.     printf("Enter new parameter value \n");
  12739.     gets(&bufInput[0]);
  12740.  
  12741.     /* Convert the ParmNum to a ULONG. */
  12742.     ulParmNum = atoi(&bufValue[0]);
  12743.     switch (ulParmNum)
  12744.     {
  12745.        case  6:
  12746.        case 14:
  12747.           /* Calculate size of buffer needed if this is the parameter.*/
  12748.           cbBuf = sizeof(PUSHORT);
  12749.  
  12750.           /* Convert input parameter into a USHORT. */
  12751.           usParm =(USHORT)atoi(&bufInput[0]);
  12752.  
  12753.           /* Point pBuf to the value. */
  12754.           pBuf = &usParm;
  12755.           break;
  12756.        case  3:
  12757.        case  4:
  12758.        case  5:
  12759.        case 11:
  12760.        case 12:
  12761.        case 16:
  12762.           /* Calculate size of buffer needed if this is the parameter.*/
  12763.           cbBuf = strlen(&bufInput[0])+1;
  12764.  
  12765.           /* Point pBuf to the value. */
  12766.           pBuf = (PSZ)&bufInput;
  12767.           break;
  12768.        case 18:
  12769.           printf("In order to keep code simple, this is not implemented.");
  12770.           break;
  12771.        default:
  12772.           printf("Invalid number\n");
  12773.     }
  12774.     splerr = SplSetJob(pszComputerName,pszQueueName,ulJob,3L,
  12775.                        pBuf,cbBuf,ulParmNum) ;
  12776.     if ( !splerr)
  12777.        printf("Parameter was set.");
  12778.     else
  12779.        printf("SplSetJob Error= %ld, Parameter= %d, Buf= %ld ,ParmNum= %ld\n",
  12780.                       splerr, usParm, cbBuf, ulParmNum);
  12781.     DosExit( EXIT_PROCESS , 0 ) ;
  12782.     return (splerr) ;
  12783. }
  12784.  
  12785.  
  12786. ΓòÉΓòÉΓòÉ 3.32. SplSetQueue ΓòÉΓòÉΓòÉ
  12787.  
  12788.  
  12789. ΓòÉΓòÉΓòÉ <hidden> Topics - SplSetQueue ΓòÉΓòÉΓòÉ
  12790.  
  12791. Select an item: 
  12792.  
  12793. Function Syntax 
  12794. Parameters 
  12795. Return Values 
  12796. Notes 
  12797. Example 
  12798. Related Functions 
  12799. Glossary 
  12800.  
  12801.  
  12802. ΓòÉΓòÉΓòÉ <hidden> Parameters - SplSetQueue ΓòÉΓòÉΓòÉ
  12803.  
  12804. pszComputerName (PSZ) - input 
  12805.    Name of computer where queue is to be modified. A NULL string specifies the 
  12806.    local workstation. 
  12807.  
  12808. pszQueueName (PSZ) - input 
  12809.    Queue name. 
  12810.  
  12811. ulLevel (ULONG) - input 
  12812.    Level of detail required. This must be 3 or 6. 
  12813.  
  12814. pBuf (PVOID) - input 
  12815.    Buffer. 
  12816.  
  12817. cbBuf (ULONG) - input 
  12818.    Size, in bytes, of Buffer. 
  12819.  
  12820. lParmNum (ULONG) - input 
  12821.    Parameter number. Specifies either that the entire PRQINFO3 or PRQINFO6 
  12822.    structure is to be modified, or that one specified parameter only is to be 
  12823.    modified. 
  12824.  
  12825.    If lParmNum is 0, pBuf must contain a complete PRQINFO3 or PRQINFO6 
  12826.    structure. Otherwise, pBuf must contain a valid value corresponding to the 
  12827.    parameter to be modified, as follows: 
  12828.  
  12829.    Parameter             Value 
  12830.    uPriority             PRQ_PRIORITY_PARMNUM (2) 
  12831.    uStartTime            PRQ_STARTTIME_PARMNUM (3) 
  12832.    uUntilTime            PRQ_UNTILTIME_PARMNUM (4) 
  12833.    pszSepFile            PRQ_SEPARATOR_PARMNUM (5) 
  12834.    pszPrProc             PRQ_PROCESSOR_PARMNUM (6) 
  12835.    pszParms              PRQ_PARMS_PARMNUM (8) 
  12836.    pszComment            PRQ_COMMENT_PARMNUM (9) 
  12837.    fsType                PRQ_TYPE_PARMNUM (10) 
  12838.    pszPrinters           PRQ_PRINTERS_PARMNUM (12) 
  12839.    pszDriverName         PRQ_DRIVERNAME_PARMNUM (13) 
  12840.    pDriverData           PRQ_DRIVERDATA_PARMNUM (14) 
  12841.    pszRemoteComputerName PRQ_REMOTE_COMPUTER_PARMNUM (15) 
  12842.    pszRemoteQueueName    PRQ_REMOTE_QUEUE_PARMNUM (16) 
  12843.  
  12844.  
  12845. ΓòÉΓòÉΓòÉ <hidden> Return Values - SplSetQueue ΓòÉΓòÉΓòÉ
  12846.  
  12847. rc (SPLERR) - return 
  12848.  
  12849.    NO_ERROR (0) 
  12850.       No errors occurred. 
  12851.  
  12852.    ERROR_ACCESS_DENIED (5) 
  12853.       Access is denied. 
  12854.  
  12855.    ERROR_NOT_SUPPORTED (50) 
  12856.       This request is not supported by the network. 
  12857.  
  12858.    ERROR_BAD_NETPATH (53) 
  12859.       The network path cannot be located. 
  12860.  
  12861.    ERROR_INVALID_PARAMETER (87) 
  12862.       An invalid parameter is specified. 
  12863.  
  12864.    ERROR_INVALID_LEVEL (124) 
  12865.       The level parameter is invalid. 
  12866.  
  12867.    NERR_NetNotStarted (2102) 
  12868.       The network program is not installed. 
  12869.  
  12870.    NERR_RedirectedPath (2117) 
  12871.       The operation is invalid on a redirected resource. 
  12872.  
  12873.    NERR_BufTooSmall (2123) 
  12874.       The API return buffer is too small. 
  12875.  
  12876.    NERR_QNotFound (2150) 
  12877.       The printer queue does not exist. 
  12878.  
  12879.    NERR_DestNotFound (2152) 
  12880.       The printer destination cannot be found. 
  12881.  
  12882.    NERR_DestNoRoom (2157) 
  12883.       The maximum number of printer destinations has been reached. 
  12884.  
  12885.    NERR_SpoolerNotLoaded (2161) 
  12886.       The spooler is not running. 
  12887.  
  12888.    NERR_DestInvalidState (2162) 
  12889.       This operation cannot be performed on the print destination. 
  12890.  
  12891.    NERR_SpoolNoMemory (2165) 
  12892.       A spooler memory allocation failure occurred. 
  12893.  
  12894.    NERR_DriverNotFound (2166) 
  12895.       The device driver does not exist. 
  12896.  
  12897.    NERR_DataTypeInvalid (2167) 
  12898.       The datatype is not supported by the processor. 
  12899.  
  12900.    NERR_ProcNotFound (2168) 
  12901.       The queue processor is not installed. 
  12902.  
  12903.    NERR_BadDev (2341) 
  12904.       The requested device is invalid. 
  12905.  
  12906.    NERR_CommDevInUse (2343) 
  12907.       The requested device is invalid. 
  12908.  
  12909.    NERR_InvalidComputer (2351) 
  12910.       The computer name is invalid. 
  12911.  
  12912.  
  12913. ΓòÉΓòÉΓòÉ <hidden> Notes - SplSetQueue ΓòÉΓòÉΓòÉ
  12914.  
  12915. If the uPriority field in PRQINFO3 or PRQINFO6 is set to PRQ_NO_PRIORITY, the 
  12916. queue priority is not changed. 
  12917.  
  12918.  
  12919. ΓòÉΓòÉΓòÉ <hidden> Syntax - SplSetQueue ΓòÉΓòÉΓòÉ
  12920.  
  12921. /*******************************************/
  12922. /* This function modifies the              */
  12923. /* configuration of a print queue.         */
  12924. /*******************************************/
  12925.  
  12926. #define INCL_SPL   /* Or use INCL_PM */
  12927. #include <os2.h>
  12928.  
  12929. PSZ     pszComputerName;   /* Name of computer where queue is to be modified */
  12930. PSZ     pszQueueName;      /* Queue name */
  12931. ULONG   ulLevel;           /* Level of detail required */
  12932. PVOID   pBuf;              /* Buffer */
  12933. ULONG   cbBuf;             /* Size, in bytes, of Buffer */
  12934. ULONG   lParmNum;          /* Parameter number */
  12935. SPLERR  rc;
  12936.  
  12937. rc = SplSetQueue(pszComputerName,
  12938.        pszQueueName, ulLevel, pBuf, cbBuf,
  12939.        lParmNum);
  12940.  
  12941.  
  12942. ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplSetQueue ΓòÉΓòÉΓòÉ
  12943.  
  12944. Related Functions 
  12945.  
  12946. o SplCreateQueue 
  12947. o SplEnumDevice 
  12948. o SplEnumDriver 
  12949. o SplEnumQueue 
  12950. o SplEnumQueueProcessor 
  12951. o SplQueryQueue 
  12952.  
  12953.  
  12954. ΓòÉΓòÉΓòÉ <hidden> Example Code - SplSetQueue ΓòÉΓòÉΓòÉ
  12955.  
  12956. This sample code prompts the user to enter a parameter number and a value at 
  12957. the prompt. This value is then put into a buffer for use by the function. 
  12958.  
  12959. #define INCL_SPL
  12960. #define INCL_SPLDOSPRINT
  12961. #define INCL_SPLERRORS
  12962.  
  12963. #include <os2.h>
  12964. #include <stdio.h>     /* for printf function */
  12965. #include <stdlib.h>    /* for atoi function   */
  12966. #include <string.h>    /* for strlen function */
  12967.  
  12968. INT main (argc, argv)
  12969.     INT argc;
  12970.     CHAR *argv[];
  12971. {
  12972.     CHAR   bufValue[2] = {0};
  12973.     CHAR   bufInput[128]= {0};
  12974.     ULONG  splerr ;
  12975.     ULONG  cbBuf ;
  12976.     ULONG  ulParmNum ;
  12977.     USHORT usParm ;
  12978.     PSZ    pszComputerName ;
  12979.     PSZ    pszQueueName ;
  12980.     PVOID  pBuf;
  12981.  
  12982.     if (argc != 2)
  12983.     {
  12984.        printf("Syntax:  setqryq  QueueName \n");
  12985.        DosExit( EXIT_PROCESS , 0 ) ;
  12986.     }
  12987.  
  12988.     /* This function will be for the local workstation.
  12989.     pszComputerName = (PSZ)NULL ;
  12990.  
  12991.     /* Get the parameter from the command line.                               */
  12992.     pszQueueName = argv[1];
  12993.  
  12994.     /* Prompt the user for the parameter and values, and put them in buffers. */
  12995.     printf("Enter Parameter number to be modified\n");
  12996.     gets(&bufValue[0]);
  12997.     printf("Enter new parameter value \n");
  12998.     gets(&bufInput[0]);
  12999.  
  13000.     /* Convert the ParmNum to a ULONG.                                        */
  13001.     ulParmNum = atoi(&bufValue[0]);
  13002.     switch (ulParmNum){
  13003.        case 2:
  13004.        case 3:
  13005.        case 4:
  13006.        case 10:
  13007.           /* Determine the size of the buffer needed.                         */
  13008.           cbBuf = sizeof(PUSHORT);
  13009.  
  13010.           /* Convert the buffer input to a USHORT.                            */
  13011.           usParm =(USHORT)atoi(&bufInput[0]);
  13012.  
  13013.           /* Set the pBuf pointer to point to the value obtained.             */
  13014.           pBuf = &usParm;
  13015.           break;
  13016.        case 5:
  13017.        case 6:
  13018.        case 8:
  13019.        case 9:
  13020.        case 12:
  13021.        case 13:
  13022.           /* Determine the size of the buffer needed.                         */
  13023.           cbBuf = strlen(&bufInput[0])+1;
  13024.  
  13025.           /* Set the pBuf pointer to point to the value obtained from input.  */
  13026.           pBuf = (PSZ)&bufInput;
  13027.           break;
  13028.        case 14:
  13029.           printf("For simplicity this is not implemented.");
  13030.           break;
  13031.        default:
  13032.           printf("Invalid number\n");
  13033.           DosExit( EXIT_PROCESS , 0 ) ;
  13034.           break;
  13035.     }
  13036.     /* Make the call with all the proper parameters.                          */
  13037.     splerr = SplSetQueue(pszComputerName, pszQueueName, 3L,
  13038.                          pBuf, cbBuf, ulParmNum) ;
  13039.  
  13040.     /* Print the resultant error code, and the parameters entered.            */
  13041.     printf("SplSetQueue Error= %ld, Parameter= %d, cbBuf= %ld,
  13042.                         ulParmNum= %ld\n",
  13043.                              splerr, usParm, cbBuf, ulParmNum);
  13044.     DosExit( EXIT_PROCESS , 0 ) ;
  13045.     return (splerr);
  13046. }
  13047.