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 >
Wrap
OS/2 Help File
|
1993-04-22
|
304KB
|
13,048 lines
ΓòÉΓòÉΓòÉ 1. Profile Functions ΓòÉΓòÉΓòÉ
This section describes functions that an application would use to query or
write user-specific initialization files.
ΓòÉΓòÉΓòÉ 1.1. PrfCloseProfile ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - PrfCloseProfile ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Errors
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfCloseProfile ΓòÉΓòÉΓòÉ
hini (HINI) - input
Initialization-file handle. After this function, the handle is no longer
valid.
ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfCloseProfile ΓòÉΓòÉΓòÉ
fSuccess (BOOL) - return
Success indicator:
TRUE
Successful completion.
FALSE
Error occurred.
ΓòÉΓòÉΓòÉ <hidden> Errors - PrfCloseProfile ΓòÉΓòÉΓòÉ
Possible returns from WinGetLastError
PMERR_INI_FILE_IS_SYS_OR_USER
User or system initialization file cannot be closed.
PMERR_INVALID_INI_FILE_HANDLE
An invalid initialization-file handle was specified.
ΓòÉΓòÉΓòÉ <hidden> Notes - PrfCloseProfile ΓòÉΓòÉΓòÉ
This function cannot be used to close the current user or system initialization
files.
ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfCloseProfile ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function indicates that a profile */
/* is no longer available for use. */
/*******************************************/
#define INCL_WINSHELLDATA /* Or use INCL_WIN or INCL_PM */
#include <os2.h>
HINI hini; /* Initialization-file handle */
BOOL fSuccess; /* Success indicator */
fSuccess = PrfCloseProfile(hini);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfCloseProfile ΓòÉΓòÉΓòÉ
Related Functions
o PrfOpenProfile
ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfCloseProfile ΓòÉΓòÉΓòÉ
This example calls PrfCloseProfile to close a profile and makes it unavailable
for use.
#define INCL_WINSHELLDATA /* Window Shell functions */
#include <os2.h>
BOOL fSuccess; /* success indicator */
HINI hini; /* initialization-file handle */
fSuccess = PrfCloseProfile(hini);
ΓòÉΓòÉΓòÉ 1.2. PrfOpenProfile ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - PrfOpenProfile ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Errors
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfOpenProfile ΓòÉΓòÉΓòÉ
hab (HAB) - input
Anchor-block handle.
pszFileName (PSZ) - input
User-profile file name. This must not be the same as the current user or
system initialization file name.
ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfOpenProfile ΓòÉΓòÉΓòÉ
hini (HINI) - return
Initialization-file handle. This handle is used on other calls to manipulate
the profile file.
NULLHANDLE
Error occurred
Other
Initialization-file handle.
ΓòÉΓòÉΓòÉ <hidden> Errors - PrfOpenProfile ΓòÉΓòÉΓòÉ
Possible returns from WinGetLastError
PMERR_OPENING_INI_FILE
Unable to open initialization file (due to lack of disk space for example).
PMERR_MEMORY_ALLOC
An error occurred during memory management.
PMERR_INI_FILE_IS_SYS_OR_USER
User or system initialization file cannot be closed.
ΓòÉΓòÉΓòÉ <hidden> Notes - PrfOpenProfile ΓòÉΓòÉΓòÉ
A user profile and a system profile are opened by the system, either at
start-up time, or (in the case of the user profile) as a result of a PrfReset
function, and are always available. Their handles are HINI_USERPROFILE and
HINI_SYSTEMPROFILE. Applications do not have to open or close the user profile
or the system profile.
The handle returned is only valid for the process issuing the PrfOpenProfile
function.
The PrfOpenProfile function can be used by an administrator's application that
is creating or modifying a profile for a user.
It can also be used to create a back-up profile as follows:
o Use the enumerate form of PrfQueryProfileData to obtain a list of application
names in the profile being backed up.
o Use the enumerate form of PrfQueryProfileData to obtain a list of key names
for each of the application names.
o Use PrfQueryProfileData for each application-name or key-name pair to read
the appropriate data.
o Use PrfWriteProfileData to write the data into the back-up profile.
ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfOpenProfile ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function indicates that a file is */
/* available for use as a profile. */
/*******************************************/
#define INCL_WINSHELLDATA /* Or use INCL_WIN or INCL_PM */
#include <os2.h>
HAB hab; /* Anchor-block handle */
PSZ pszFileName; /* User-profile file name */
HINI hini; /* Initialization-file handle */
hini = PrfOpenProfile(hab, pszFileName);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfOpenProfile ΓòÉΓòÉΓòÉ
Related Functions
o PrfCloseProfile
o PrfQueryProfileData
ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfOpenProfile ΓòÉΓòÉΓòÉ
This example uses PrfOpenProfile to open and make available a profile for the
file 'PROFILE.INI'.
#define INCL_WINSHELLDATA /* Window Shell functions */
#include <os2.h>
HINI hini; /* initialization-file handle */
HAB hab; /* anchor-block handle */
char pszFileName[13]; /* user-profile file name */
strcpy(pszFileName,"PROFILE.INI");
hini = PrfOpenProfile(hab,pszFileName);
ΓòÉΓòÉΓòÉ 1.3. PrfQueryProfile ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - PrfQueryProfile ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfQueryProfile ΓòÉΓòÉΓòÉ
hab (HAB) - input
Anchor-block handle.
pprfproProfile (PRFPROFILE) - input/output
Profile names structure. The cchUserName and the cchSysName parameters of
the PRFPROFILE data structure are set to the lengths of the respective file
names, even if truncation occurs. If these fields are initialized to 0 by
the application, then the pszUserName and pszSysName parameters are not
inspected, and the application can then determine the sizes of the buffers
required to hold the names on a second call. Otherwise, the pszUserName and
pszSysName parameters must point to reserved areas of memory, and the
cchUserName and cchSysName parameters must indicate the sizes of those
areas.
If the pszUserName or the pszSysName parameter is NULL, then there is no
defined user or system profile, respectively.
ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfQueryProfile ΓòÉΓòÉΓòÉ
fSuccess (BOOL) - return
Success indicator:
TRUE
Successful completion.
FALSE
Error occurred, or there was insufficient space to record the names,
which have been truncated.
ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfQueryProfile ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function returns a description of */
/* the current user and system profiles. */
/*******************************************/
#define INCL_WINSHELLDATA /* Or use INCL_WIN or INCL_PM */
#include <os2.h>
HAB hab; /* Anchor-block handle */
PPRFPROFILE pprfproProfile; /* Profile names structure */
BOOL fSuccess; /* Success indicator */
fSuccess = PrfQueryProfile(hab,
pprfproProfile);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfQueryProfile ΓòÉΓòÉΓòÉ
Related Functions
o PrfReset
ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfQueryProfile ΓòÉΓòÉΓòÉ
This example calls PrfQueryProfile to obtain a description of the current user
and system profiles, in this case querying the lengths of the user and system
profile file names and placing the values in variables.
#define INCL_WINSHELLDATA /* Window Shell functions */
#include <os2.h>
BOOL fSuccess; /* success indicator */
HAB hab; /* anchor-block handle */
PRFPROFILE pprfproProfile; /* Profile names structure */
ULONG ulUserNameLen; /* length of user file name */
ULONG ulSysNameLen; /* length of system file name */
/* initialize lengths so that query will return the buffer sizes*/
pprfproProfile.cchUserName = 0L;
pprfproProfile.cchSysName = 0L;
fSuccess = PrfQueryProfile(hab, &pprfproProfile);
if (fSuccess == TRUE)
{
ulUserNameLen = pprfproProfile.cchUserName;
ulSysNameLen = pprfproProfile.cchSysName;
}
ΓòÉΓòÉΓòÉ 1.4. PrfQueryProfileData ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - PrfQueryProfileData ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Errors
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfQueryProfileData ΓòÉΓòÉΓòÉ
hini (HINI) - input
Initialization-file handle.
HINI_PROFILE
Both the user profile and system profile are searched
HINI_USERPROFILE
The user profile is searched
HINI_SYSTEMPROFILE
The system profile is searched
Other
Initialization-file handle.
pszApp (PSZ) - input
Application name. The name of the application for which the profile data is
required. The name must match exactly with the name stored in the profile.
There is no case-independent searching.
If this parameter is NULL, this function enumerates all the application
names present in the profile and returns the names as a list in the pBuffer
parameter. Each application name is terminated with a NULL character and the
last name is terminated with two successive NULL characters. In this case,
the pulBufferMax parameter contains the total length of the list excluding
the final NULL character.
pszKey (PSZ) - input
Key name. The name of the key for which the profile data is required. The
name must match exactly with the name stored in the profile. There is no
case-independent searching.
If this parameter is NULL, and if pszApp is not equal to NULL, this call
enumerates all key names associated with the named application and returns
the key names, but not their values, as a list in the pBuffer parameter.
Each key name is terminated with a NULL character and the last name is
terminated with two successive NULL characters. In this case, the
pulBufferMax parameter contains the total length of the list excluding the
final NULL character.
pBuffer (PVOID) - output
Value data. A buffer in which the value corresponding to the key name is
returned. The returned data is not null terminated, unless the value data is
explicitly null terminated within the file. This function handles binary
data.
pulBufferMax (PULONG) - input/output
Size of value data. This is the size of the buffer specified by the pBuffer
parameter. If the call is successful, this is overwritten with the number of
bytes copied into the buffer.
ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfQueryProfileData ΓòÉΓòÉΓòÉ
fSuccess (BOOL) - return
Success indicator:
TRUE
Successful completion
FALSE
Error occurred.
ΓòÉΓòÉΓòÉ <hidden> Errors - PrfQueryProfileData ΓòÉΓòÉΓòÉ
Possible returns from WinGetLastError
PMERR_INVALID_PARM
A parameter to the function contained invalid data.
PMERR_NOT_IN_IDX
The application name, key-name or program handle was not found.
PMERR_CAN_NOT_CALL_SPOOLER
An error occurred attempting to call the spooler validation routine. This
error is not raised if the spooler is not installed.
ΓòÉΓòÉΓòÉ <hidden> Notes - PrfQueryProfileData ΓòÉΓòÉΓòÉ
This function returns a string of binary data from the profile. The call
searches the file for a key matching the name specified by the pszKey
parameter, under the application heading specified by the pszApp parameter.
Enumeration can be performed in exactly the same way as in the
PrfQueryProfileString function. The enumeration returns application or key
names irrespective of whether the data concerned is written with the
PrfWriteProfileString function or the PrfWriteProfileData function.
This function returns data that is written to the file using either the
PrfWriteProfileString function or the PrfWriteProfileData function.
If the pszApp parameter is NULL, this call enumerates all application names and
constructs in the pBuffer parameter a list of application names. Each
application name in the list is terminated with a null character. The last
string in the list is terminated with two null characters. This function
returns the length of the list, up to, but not including, the final null. If
the enumerated application names exceed the available buffer space, the
enumerated names are truncated, the enumerated list is not terminated with 2
bytes of zeros, and the fSuccess parameter is set to FALSE. In this case,
pszKey is ignored.
If the pszApp parameter is valid and if the pszKey is NULL, this function
enumerates all key names associated with the pszApp parameter by constructing
in the pBuffer parameter a list of key names. Each key name in the list is
terminated with a null character. The last string in the list is terminated
with two null characters. This function returns the length of the list, up to,
but not including, the final null. If the enumerated key names exceed the
available buffer space, the enumerated names are truncated, the enumerated list
is not terminated with 2 bytes of zeros, and the fSuccess parameter is set to
FALSE.
ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfQueryProfileData ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function returns a string of */
/* binary data from the specified profile. */
/*******************************************/
#define INCL_WINSHELLDATA /* Or use INCL_WIN or INCL_PM */
#include <os2.h>
HINI hini; /* Initialization-file handle */
PSZ pszApp; /* Application name */
PSZ pszKey; /* Key name */
PVOID pBuffer; /* Value data */
PULONG pulBufferMax; /* Size of value data */
BOOL fSuccess; /* Success indicator */
fSuccess = PrfQueryProfileData(hini, pszApp,
pszKey, pBuffer, pulBufferMax);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfQueryProfileData ΓòÉΓòÉΓòÉ
Related Functions
o PrfQueryProfileSize
o PrfWriteProfileData
ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfQueryProfileData ΓòÉΓòÉΓòÉ
This example calls PrfQueryProfileData to search the user and system profiles
for the value of key 'KEY' within the application 'APP' and return the value if
found.
#define INCL_WINSHELLDATA /* Window Shell functions */
#include <os2.h>
BOOL fSuccess; /* success indicator */
HINI hini; /* initialization-file handle */
char pszApp[10]; /* application name */
char pszKey[10]; /* key name */
PVOID pBuffer; /* Value data */
ULONG pulBufferMax; /* Size of value data */
/* Both the user profile and system profile are searched */
hini = HINI_PROFILE;
/* specify application and key names */
strcpy(pszApp,"APP");
strcpy(pszKey,"KEY");
fSuccess = PrfQueryProfileData(hini, pszApp, pszKey, pBuffer,
&pulBufferMax);
ΓòÉΓòÉΓòÉ 1.5. PrfQueryProfileInt ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - PrfQueryProfileInt ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Errors
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfQueryProfileInt ΓòÉΓòÉΓòÉ
hini (HINI) - input
Initialization-file handle.
HINI_PROFILE
Both the user profile and system profile are searched
HINI_USERPROFILE
The user profile is searched
HINI_SYSTEMPROFILE
The system profile is searched
Other
Initialization-file handle.
pszApp (PSZ) - input
Application name. The name of the application for which the profile data is
required. The name must match exactly with the name stored in the profile.
There is no case-independent searching.
pszKey (PSZ) - input
Key name. The name of the key for which the profile data is required. The
name must match exactly with the name stored in the profile. There is no
case-independent searching.
lDefault (LONG) - input
Default value. This value is returned in lResult, if the key defined by
pszKey cannot be found in the initialization file.
ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfQueryProfileInt ΓòÉΓòÉΓòÉ
lResult (LONG) - return
Key value specified in the initialization file. The value of the key
specified by pszKey in the initialization file.
If the value corresponding to the key is not an integer, lResult is 0.
If the key-name value is a series of digits followed by non-numeric
characters, lResult contains the value of the digits only. For example,
"KeyName=102abc" causes the value 102 to appear in lResult.
ΓòÉΓòÉΓòÉ <hidden> Errors - PrfQueryProfileInt ΓòÉΓòÉΓòÉ
Possible returns from WinGetLastError
PMERR_INVALID_PARM
A parameter to the function contained invalid data.
PMERR_NOT_IN_IDX
The application name, key-name or program handle was not found.
PMERR_CAN_NOT_CALL_SPOOLER
An error occurred attempting to call the spooler validation routine. This
error is not raised if the spooler is not installed.
ΓòÉΓòÉΓòÉ <hidden> Notes - PrfQueryProfileInt ΓòÉΓòÉΓòÉ
This function returns an integer value from the profile. The call searches the
file for a key matching the name specified by the pszKey parameter, under the
application heading specified by the pszApp parameter. When an integer is
stored as a text string using the PrfWriteProfileString function, for example,
"123", the returned value is the number, 123. The call returns lDefault if the
application-name or key-name pair cannot be found.
Note: The search is case-dependent.
ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfQueryProfileInt ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function returns an integer value */
/* from the specified profile. */
/*******************************************/
#define INCL_WINSHELLDATA /* Or use INCL_WIN or INCL_PM */
#include <os2.h>
HINI hini; /* Initialization-file handle */
PSZ pszApp; /* Application name */
PSZ pszKey; /* Key name */
LONG lDefault; /* Default value */
LONG lResult; /* Key value specified in the initialization file */
lResult = PrfQueryProfileInt(hini, pszApp,
pszKey, lDefault);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfQueryProfileInt ΓòÉΓòÉΓòÉ
Related Functions
o PrfQueryProfileData
o PrfWriteProfileString
ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfQueryProfileInt ΓòÉΓòÉΓòÉ
This example calls to search the user and system profiles for the integer
value of key 'KEY' within the application 'APP' and return the value if found;
if not found, 0 is returned.
#define INCL_WINSHELLDATA /* Window Shell functions */
#include <os2.h>
LONG lResult; /* key value */
HINI hini; /* initialization-file handle */
char pszApp[10]; /* application name */
char pszKey[10]; /* key name */
LONG lDefault; /* default return value */
/* Both the user profile and system profile are searched */
hini = HINI_PROFILE;
/* specify application and key names */
strcpy(pszApp,"APP");
strcpy(pszKey,"KEY");
/* set default to 0 */
lDefault = 0;
lResult = PrfQueryProfileInt(hini, pszApp, pszKey, lDefault);
ΓòÉΓòÉΓòÉ 1.6. PrfQueryProfileSize ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - PrfQueryProfileSize ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Errors
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfQueryProfileSize ΓòÉΓòÉΓòÉ
hini (HINI) - input
Initialization-file handle.
HINI_PROFILE
Both the user profile and system profile are searched
HINI_USERPROFILE
The user profile is searched
HINI_SYSTEMPROFILE
The system profile is searched
Other
Initialization-file handle.
pszApp (PSZ) - input
Application name. The name of the application for which the profile data is
required.
If the pszApp parameter is NULL, then the pDataLen parameter returns the
length of the buffer required to hold the enumerated list of application
names, as returned by the PrfQueryProfileString function when its pszApp
parameter is NULL. In this case, the pszKey parameter is ignored.
pszKey (PSZ) - input
Key name. The name of the key for which the size of the data is to be
returned.
If the pszKey parameter is NULL, and if the pszApp parameter is not NULL,
the pDataLen returns the length of the buffer required to hold the
enumerated list of key names for that application name, as returned by the
PrfQueryProfileString function when its pszKey parameter is NULL, and its
pszApp parameter is not NULL.
pDataLen (PULONG) - output
Data length. This parameter is the length of the value data related to the
pszKey parameter. If an error occurs, this parameter is undefined.
ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfQueryProfileSize ΓòÉΓòÉΓòÉ
fSuccess (BOOL) - return
Success indicator:
TRUE
Successful completion
FALSE
Error occurred.
ΓòÉΓòÉΓòÉ <hidden> Errors - PrfQueryProfileSize ΓòÉΓòÉΓòÉ
Possible returns from WinGetLastError
PMERR_INVALID_PARM
A parameter to the function contained invalid data.
PMERR_NOT_IN_IDX
The application name, key-name or program handle was not found.
PMERR_CAN_NOT_CALL_SPOOLER
An error occurred attempting to call the spooler validation routine. This
error is not raised if the spooler is not installed.
ΓòÉΓòÉΓòÉ <hidden> Notes - PrfQueryProfileSize ΓòÉΓòÉΓòÉ
The pszApp parameter and pszKey parameter are case sensitive and must match the
names stored in the file exactly. There is no case-independent searching.
This function can be used before using the PrfQueryProfileString call or the
PrfQueryProfileData call, to allocate space for the returned data.
No distinction is made between data that is written using the
PrfWriteProfileData function and the PrfWriteProfileString function.
ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfQueryProfileSize ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function obtains the size in bytes */
/* of the value of a specified key for a */
/* specified application in the profile. */
/*******************************************/
#define INCL_WINSHELLDATA /* Or use INCL_WIN or INCL_PM */
#include <os2.h>
HINI hini; /* Initialization-file handle */
PSZ pszApp; /* Application name */
PSZ pszKey; /* Key name */
PULONG pDataLen; /* Data length */
BOOL fSuccess; /* Success indicator */
fSuccess = PrfQueryProfileSize(hini, pszApp,
pszKey, pDataLen);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfQueryProfileSize ΓòÉΓòÉΓòÉ
Related Functions
o PrfQueryProfileData
o PrfQueryProfileString
ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfQueryProfileSize ΓòÉΓòÉΓòÉ
This example calls PrfQueryProfileSize to search the user and system profiles
for the value of key 'KEY' within the application 'APP' and return the byte
size of the value if found.
#define INCL_WINSHELLDATA /* Window Shell functions */
#include <os2.h>
BOOL fSuccess; /* success indicator */
HINI hini; /* initialization-file handle */
char pszApp[10]; /* application name */
char pszKey[10]; /* key name */
ULONG pDataLen; /* data length */
/* Both the user profile and system profile are searched */
hini = HINI_PROFILE;
/* specify application and key names */
strcpy(pszApp,"APP");
strcpy(pszKey,"KEY");
fSuccess = PrfQueryProfileSize(hini, pszApp, pszKey, &pDataLen);
ΓòÉΓòÉΓòÉ 1.7. PrfQueryProfileString ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - PrfQueryProfileString ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Errors
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfQueryProfileString ΓòÉΓòÉΓòÉ
hini (HINI) - input
Initialization-file handle.
HINI_PROFILE
Both the user profile and system profile are searched
HINI_USERPROFILE
The user profile is searched
HINI_SYSTEMPROFILE
The system profile is searched
Other
Initialization-file handle.
pszApp (PSZ) - input
Application name. The name of the application for which the profile data is
required.
The search performed on the application name is always case-dependent. Names
starting with the characters "PM_" are reserved for system use.
If this parameter is NULL, this function enumerates all the application
names present in the profile and returns the names as a list in the pBuffer
parameter. Each application name is terminated with a NULL character and the
last name is terminated with two successive NULL characters. In this
instance, the pulLength parameter contains the total length of the list
excluding the final NULL character.
pszKey (PSZ) - input
Key name. The name of the key for which the profile data is returned.
The search on key name is always case-dependent.
If this parameter equals NULL, and if the pszApp parameter is not equal to
NULL, this function enumerates all key names associated with the named
application and returns the key names (not their values) as a list in the
pBuffer parameter. Each key name is terminated with a NULL character and the
last name is terminated with two successive NULL characters. In this
instance, the pulLength parameter contains the total length of the list
excluding the final NULL character.
pszDefault (PSZ) - input
Default string. The string that is returned in the pBuffer parameter, if the
key defined by the pszKey parameter cannot be found in the profile.
If the pointer to this parameter is passed as NULL, then nothing is copied
into the pszKey parameter if the key cannot be found. pulLength is returned
as 0 in this case.
pBuffer (PVOID) - output
Profile string. The text string obtained from the profile for the key
defined by the pszKey parameter.
cchBufferMax (ULONG) - input
Maximum string length. The maximum number of characters that can be put into
the pBuffer parameter, in bytes. If the data from the profile is longer than
this, it is truncated.
ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfQueryProfileString ΓòÉΓòÉΓòÉ
pulLength (ULONG) - return
String length returned. The actual number of characters (including the null
termination character) returned in the pBuffer parameter, in bytes.
ΓòÉΓòÉΓòÉ <hidden> Errors - PrfQueryProfileString ΓòÉΓòÉΓòÉ
Possible returns from WinGetLastError
PMERR_INVALID_PARM
A parameter to the function contained invalid data.
PMERR_BUFFER_TOO_SMALL
The supplied buffer was not large enough for the data to be returned.
PMERR_NOT_IN_IDX
The application name, key-name or program handle was not found.
PMERR_CAN_NOT_CALL_SPOOLER
An error occurred attempting to call the spooler validation routine. This
error is not raised if the spooler is not installed.
PMERR_INVALID_ASCIIZ
The profile string is not a valid zero-terminated string.
ΓòÉΓòÉΓòÉ <hidden> Notes - PrfQueryProfileString ΓòÉΓòÉΓòÉ
The call searches the profile for a key matching the name specified by the
pszKey parameter under the application heading specified by the pszApp
parameter. If the key is found, the corresponding string is copied. If the key
does not exist, the default character string, specified by the pszDefault
parameter, is copied.
If the enumerated application names exceed the available buffer space, the
enumerated names are truncated, the enumerated list is not terminated with 2
bytes of zeros, and the pulLength parameter is set to the number of bytes
copied into the pBuffer parameter. In this instance, the pszKey parameter is
ignored.
Note: If the enumeration cannot be performed for any reason, the default
character string is not copied.
This function returns the length of the list, up to, but not including, the
final null. If the enumerated key names exceed the available buffer space, the
enumerated names are truncated, the enumerated list is not terminated with 2
bytes of zeros, and the pulLength parameter is set to the number of bytes
copied into the pBuffer parameter.
This function is case-dependent; thus the strings in the pszApp parameter and
the pszKey parameter must match exactly. This avoids any code-page dependency.
The application storing the data must do any case-independent matching.
The enumeration call does not distinguish between data written with the
PrfWriteProfileString function and the PrfWriteProfileData function.
ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfQueryProfileString ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function retrieves a string from */
/* the specified profile. */
/*******************************************/
#define INCL_WINSHELLDATA /* Or use INCL_WIN or INCL_PM */
#include <os2.h>
HINI hini; /* Initialization-file handle */
PSZ pszApp; /* Application name */
PSZ pszKey; /* Key name */
PSZ pszDefault; /* Default string */
PVOID pBuffer; /* Profile string */
ULONG cchBufferMax; /* Maximum string length */
ULONG pulLength; /* String length returned */
pulLength = PrfQueryProfileString(hini,
pszApp, pszKey, pszDefault,
pBuffer, cchBufferMax);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfQueryProfileString ΓòÉΓòÉΓòÉ
Related Functions
o PrfWriteProfileString
ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfQueryProfileString ΓòÉΓòÉΓòÉ
PrfQueryProfileString is issued twice to obtain the names of the default
printer, the default presentation driver, and the queue associated with the
printer. If any of these requests fails, the default values already defined in
DEVOPENSTRUC are used.
#define INCL_WINSHELLDATA
#include <OS2.H>
char szTemp[80];
char szBuff[257];
PCH ptscan;
DEVOPENSTRUC dopPrinter = {"LPT1Q",
(PSZ)"IBM4201",
0L,
(PSZ)"PM_Q_STD",
0L, 0L, 0L, 0L, 0L};
if (PrfQueryProfileString(HINI_PROFILE,
(PSZ)"PM_SPOOLER",
(PSZ)"PRINTER",
NULL,
(PVOID)szTemp,
(LONG)sizeof(szTemp)
)){
szTemp[strlen(szTemp)-1] = 0;
if (PrfQueryProfileString(HINI_PROFILE,
(PSZ)"PM_SPOOLER_PRINTER",
(PSZ)szTemp,
NULL,
(PVOID)szBuff,
(LONG)sizeof(szBuff)
)){
ptscan = (PCH)strchr(szBuff, ';');
ptscan++;
ptscan = (PCH)strchr(ptscan, (INT)';');
ptscan++;
*(ptscan + strcspn(ptscan, ".,;")) = 0;
dopPrinter.pszLogAddress = ptscan;
ptscan = (PCH)strchr(szBuff, (INT)';');
ptscan++;
*(ptscan + strcspn(ptscan, ".,;")) = 0;
dopPrinter.pszDriverName = ptscan;
}
}
ΓòÉΓòÉΓòÉ 1.8. PrfReset ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - PrfReset ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Errors
Notes
Example
Related Functions
Related Messages
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfReset ΓòÉΓòÉΓòÉ
hab (HAB) - input
Anchor-block handle.
pprfproProfile (PRFPROFILE) - input
Profile-names structure. This contains the names of the files to be used as
the new Presentation Manager* (PM) profile files. Any valid file names can
be used. A name that is not already fully qualified is taken to refer to the
current directory.
If the user profile file does not exist, a new file is created.
The name of the system profile cannot be changed. It must be the name of
the current system profile as returned by PrfQueryProfile.
ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfReset ΓòÉΓòÉΓòÉ
fSuccess (BOOL) - return
Success indicator:
TRUE
Successful completion
FALSE
Error occurred.
ΓòÉΓòÉΓòÉ <hidden> Errors - PrfReset ΓòÉΓòÉΓòÉ
Possible returns from WinGetLastError
PMERR_OPENING_INI_FILE
Unable to open initialization file (due to lack of disk space for example).
ΓòÉΓòÉΓòÉ <hidden> Notes - PrfReset ΓòÉΓòÉΓòÉ
This function causes the workstation to use different profiles. When the
workstation is initialized, the names of the user and system profiles are taken
from the PROTSHELL statement specified in CONFIG.SYS. PrfReset allows the
profiles to be changed during operation of the workstation, for example by a
logon application controlling multiple consecutive users of the system.
After the PrfReset function completes, the system has a new set of preferences
(for example screen colors), a new start-up list, and new spooler parameters.
The PrfReset function broadcasts the PL_ALTERED message, which must be
processed by all applications that read their default settings from the user or
system profiles.
Note: This will only change the default system values in the ini file. It is
up to the applications to read the new default settings and reset them
to their new values.
For example, consider logon applications. On receipt of a PL_ALTERED message,
they should carry out the following:
o Read the new color settings from the new profiles, and set the new screen
colors (and palettes) which should be refreshed.
o Set the country information, for example the date and time format, which is
read from the new profiles.
o Other preferences, for example, those that affect the operations of the alarm
and the mouse, should also update with the new settings held in the new
profiles.
This function requires the existence of a message queue.
ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfReset ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function defines which files are */
/* to be used as the user and system */
/* profiles. */
/*******************************************/
#define INCL_WINSHELLDATA /* Or use INCL_WIN or INCL_PM */
#include <os2.h>
HAB hab; /* Anchor-block handle */
PPRFPROFILE pprfproProfile; /* Profile-names structure */
BOOL fSuccess; /* Success indicator */
fSuccess = PrfReset(hab, pprfproProfile);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfReset ΓòÉΓòÉΓòÉ
Related Functions
o PrfQueryProfile
ΓòÉΓòÉΓòÉ <hidden> Related Messages - PrfReset ΓòÉΓòÉΓòÉ
o PL_ALTERED
ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfReset ΓòÉΓòÉΓòÉ
This function defines which files are to be used as the user and system
profiles.
#define INCL_WINSHELLDATA
#include <OS2.H>
HAB hab;
char userpro[] = "profile.ini";
PRFPROFILE profile;
PrfQueryProfile(hab, &profile); /* get the system profile name */
profile.pszUserName = userpro;
profile.cchUserName = sizeof(userpro);
PrfReset (hab, &profile);
ΓòÉΓòÉΓòÉ 1.9. PrfWriteProfileData ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - PrfWriteProfileData ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Errors
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfWriteProfileData ΓòÉΓòÉΓòÉ
hini (HINI) - input
Initialization-file handle.
HINI_PROFILE
User profile
HINI_USERPROFILE
User profile
HINI_SYSTEMPROFILE
System profile
Other
Initialization-file handle.
pszApp (PSZ) - input
Application name. The case-dependent name of the application for which
profile data is to be written. Names starting with the characters "PM_" are
reserved for system use.
pszKey (PSZ) - input
Key name. The case-dependent name of the key for which profile data is to be
written.
This parameter can be NULL in which case all the pszKey or pData pairs
associated with pszApp are deleted.
pData (PVOID) - input
Value data. This is the value of the pszKey or pData pair that is written to
the profile. It is not zero-terminated, and its length is given by the
cchDataLen parameter.
If this parameter is NULL, the string associated with the pszKey parameter
is deleted.
cchDataLen (ULONG) - input
Size of value data.
ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfWriteProfileData ΓòÉΓòÉΓòÉ
fSuccess (BOOL) - return
Success indicator:
TRUE
Successful completion
FALSE
Error occurred.
ΓòÉΓòÉΓòÉ <hidden> Errors - PrfWriteProfileData ΓòÉΓòÉΓòÉ
Possible returns from WinGetLastError
PMERR_INVALID_PARM
A parameter to the function contained invalid data.
PMERR_CAN_NOT_CALL_SPOOLER
An error occurred attempting to call the spooler validation routine. This
error is not raised if the spooler is not installed.
ΓòÉΓòÉΓòÉ <hidden> Notes - PrfWriteProfileData ΓòÉΓòÉΓòÉ
Because of the binary nature of the data, the input data is not
zero-terminated. The length provided is the only way to identify the length of
the data.
ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfWriteProfileData ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function writes a string of binary */
/* data into the specified profile. */
/*******************************************/
#define INCL_WINSHELLDATA /* Or use INCL_WIN or INCL_PM */
#include <os2.h>
HINI hini; /* Initialization-file handle */
PSZ pszApp; /* Application name */
PSZ pszKey; /* Key name */
PVOID pData; /* Value data */
ULONG cchDataLen; /* Size of value data */
BOOL fSuccess; /* Success indicator */
fSuccess = PrfWriteProfileData(hini, pszApp,
pszKey, pData, cchDataLen);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfWriteProfileData ΓòÉΓòÉΓòÉ
Related Functions
o PrfQueryProfileSize
ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfWriteProfileData ΓòÉΓòÉΓòÉ
This function deletes the profile data associated with application sample.exe
#define INCL_WINSHELLDATA
#include <OS2.H>
HAB hab;
PrfWriteProfileData(HINI_USERPROFILE,
"sample", /* application. */
NULL,
NULL,
0L);
ΓòÉΓòÉΓòÉ 1.10. PrfWriteProfileString ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - PrfWriteProfileString ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Errors
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - PrfWriteProfileString ΓòÉΓòÉΓòÉ
hini (HINI) - input
Initialization-file handle.
HINI_PROFILE
User profile
HINI_USERPROFILE
User profile
HINI_SYSTEMPROFILE
System profile
Other
Initialization-file handle.
pszApp (PSZ) - input
Application name. The case-dependent name of the application for which
profile data is to be written. Names starting with the characters "PM_" are
reserved for system use.
pszKey (PSZ) - input
Key name. The case-dependent name of the key for which profile data is to be
written.
This parameter can be NULL, in which case all the pszKey or pszData pairs
associated with the pszApp parameter are deleted.
pszData (PSZ) - input
Text string. This is the value of the pszKey or pszData pair that is written
to the profile.
If this parameter is NULL, the string associated with the pszKey is deleted
(that is, the entry is deleted).
If this parameter is not NULL, the string is used as the value of the pszKey
or pszData pair, even if the string has zero length.
ΓòÉΓòÉΓòÉ <hidden> Return Values - PrfWriteProfileString ΓòÉΓòÉΓòÉ
fSuccess (BOOL) - return
Success indicator:
TRUE
Successful completion
FALSE
Error occurred.
ΓòÉΓòÉΓòÉ <hidden> Errors - PrfWriteProfileString ΓòÉΓòÉΓòÉ
Possible returns from WinGetLastError
PMERR_INVALID_PARM
A parameter to the function contained invalid data.
PMERR_CAN_NOT_CALL_SPOOLER
An error occurred attempting to call the spooler validation routine. This
error is not raised if the spooler is not installed.
ΓòÉΓòÉΓòÉ <hidden> Notes - PrfWriteProfileString ΓòÉΓòÉΓòÉ
If there is no application field in the file that matches the pszApp, a new
application field is created before the pszKey or pszData entry is made.
If the key name does not exist for the application, a new pszKey or pszData
entry is created for that application. If the pszKey already exists in the
file, the existing value is overwritten.
ΓòÉΓòÉΓòÉ <hidden> Syntax - PrfWriteProfileString ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function writes a string of */
/* character data into the specified */
/* profile. */
/*******************************************/
#define INCL_WINSHELLDATA /* Or use INCL_WIN or INCL_PM */
#include <os2.h>
HINI hini; /* Initialization-file handle */
PSZ pszApp; /* Application name */
PSZ pszKey; /* Key name */
PSZ pszData; /* Text string */
BOOL fSuccess; /* Success indicator */
fSuccess = PrfWriteProfileString(hini,
pszApp, pszKey, pszData);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - PrfWriteProfileString ΓòÉΓòÉΓòÉ
Related Functions
o PrfQueryProfileString
ΓòÉΓòÉΓòÉ <hidden> Example Code - PrfWriteProfileString ΓòÉΓòÉΓòÉ
This function deletes the profile string associated with application sample.exe
#define INCL_WINSHELLDATA
#include <OS2.H>
HAB hab;
PrfWriteProfileString(HINI_USERPROFILE,
"sample", /* application. */
NULL,
NULL);
ΓòÉΓòÉΓòÉ 2. Related Information ΓòÉΓòÉΓòÉ
This section contains several topics related to Presentation Manager
programming.
ΓòÉΓòÉΓòÉ 2.1. Bit-Map Formats ΓòÉΓòÉΓòÉ
There are four standard bit-map formats. All device drivers have to be able to
translate between any of these formats and their own internal formats. The
standard formats are:
Bitcount Planes
1 1
4 1
8 1
24 1
These formats are chosen because they are identical or similar to all formats
commonly used by raster devices. Only single-plane formats are standard, but
it is very easy to convert these to any multiple-plane format used internally
by a device.
ΓòÉΓòÉΓòÉ 2.1.1. Bit-Map Data ΓòÉΓòÉΓòÉ
The pel data is stored in the bit map in the order that the coordinates appear
on a display screen. That is, the pel in the lower-left corner is the first in
the bit map. Pels are scanned to the right, and upward, from that position. The
bits of the first pel are stored, beginning with the most significant bits of
the first byte. The data for pels in each scan line is packed together tightly,
but all scan lines are padded at the end, so that each one begins on a ULONG
boundary.
ΓòÉΓòÉΓòÉ 2.1.2. Bit-Map Information Tables ΓòÉΓòÉΓòÉ
Each standard-format bit map must be accompanied by a bit-map information
table. Because the standard-format bit maps are intended to be traded between
devices, the color indexes in the bit map are meaningless without more
information; for a description of this structure, see BITMAPINFO2.
Some calls use a structure that is similar to BITMAPINFO2 but does not have the
color table array; for a description of this structure, see BITMAPINFOHEADER2.
Wherever BITMAPINFO2 is shown, BITMAPINFO is also allowed. Similarly, wherever
BITMAPINFOHEADER2 is shown, BITMAPINFOHEADER is also allowed.
ΓòÉΓòÉΓòÉ 2.1.3. Bit-Map Example ΓòÉΓòÉΓòÉ
To make the ordering of all the bytes clear, consider this simple example of a
5-by-3 array of colored pels:
Red Green Blue Red Green
Blue Red Green Blue Red
Green Blue Red Green Blue
ULONG ExampleBitmap[] {
0x23,0x12,0x30,0x00 /* bottom line */
0x31,0x23,0x10,0x00 /* middle line */
0x12,0x31,0x20,0x00 /* top line */
};
#define BLACK 0x00000000L
#define RED 0x00FF0000L
#define GREEN 0x0000FF00L
#define BLUE 0x000000FFL
struct BitmapInfoTable ExampleInfo = {
5, /* width */
3, /* height */
1, /* planes */
4, /* bitcount */
BLACK,RED,GREEN,BLUE, /* color table */
BLACK,BLACK,BLACK,BLACK,
BLACK,BLACK,BLACK,BLACK,
BLACK,BLACK,BLACK,BLACK
};
ΓòÉΓòÉΓòÉ 2.1.4. Bit-Map File Format ΓòÉΓòÉΓòÉ
The operating system uses the same file format for bit maps, icons, and
pointers in resource files. In the following description, "bit map" refers to
bit maps, icons, and pointers unless otherwise specified.
Two formats are supported. In the first, a single-size version of the bit map
is defined. This is used whatever the target device.
The second format allows multiple versions of the bit map to be defined,
including one or more device-independent versions, and a number of
device-dependent versions, each intended for use with a particular device.
In the case of icons and pointers, when more than one version of the bit map
exists, the preferred version is one that matches the device size of icon or
pointer. Otherwise the device-independent version is used to scale a bit map
to the required size.
The operating system provides pointers that match the requirements of the
display device in use, typically pointers are 32x32 pels, one bit per plane.
Icons provided with the operating system are designed to match the requirements
of the most common display devices. The following versions of each icon are
included in each file:
32x32 4 bpp (16 color)
40x40 4 bpp (16 color)
32x32 1 bpp (black and white)
20x20 1 bpp (black and white)
16x16 1 bpp (black and white)
The 32x32 versions are designed for VGA displays and for device-independent
use.
The 40x40 version is for 8514/A and XGA displays.
The 20x20 and 16x16 are half-size icons designed for use as mini-icons.
For general bit maps, which may be of arbitrary size, the preferred version is
one matching the requested bit map size; otherwise one matching the display
size is selected. If neither is available, the device-independent version is
used from which to scale a bit map.
For both formats, the definition consists of two sections. The first section
contains general information about the type, dimensions, and other attributes
of the resource. The second section contains data describing the pels that
make up the bit map(s), and is in the format specified in Bit-Map Data.
In the multiple-version format, the first section contains an array of
BITMAPARRAYFILEHEADER structures. or BITMAPARRAYFILEHEADER2 structures. The
format of these is as follows:
typedef struct _BITMAPARRAYFILEHEADER { /* bafh */
USHORT usType;
ULONG cbSize;
ULONG offNext;
USHORT cxDisplay;
USHORT cyDisplay;
BITMAPFILEHEADER bfh;
} BITMAPARRAYFILEHEADER;
typedef BITMAPARRAYFILEHEADER *PBITMAPARRAYFILEHEADER;
typedef struct _BITMAPARRAYFILEHEADER2 { /* bafh */
USHORT usType;
ULONG cbSize;
ULONG offNext;
USHORT cxDisplay;
USHORT cyDisplay;
BITMAPFILEHEADER2 bfh2;
} BITMAPARRAYFILEHEADER2;
typedef BITMAPARRAYFILEHEADER2 *PBITMAPARRAYFILEHEADER2;
The fields in BITMAPARRAYFILEHEADER and BITMAPARRAYFILEHEADER2 have these
meanings:
usType
Type of structure. This is:
BFT_BITMAPARRAY (X'4142' - 'BA' for BITMAPARRAYFILEHEADER or
BITMAPARRAYFILEHEADER2)
cbSize
Size of the BITMAPARRAYFILEHEADER or BITMAPARRAYFILEHEADER2 structure in
bytes.
offNext
Offset of the next BITMAPARRAYFILEHEADER or BITMAPARRAYFILEHEADER2 structure
from the start of the file
cxDisplay, cyDisplay
pel dimensions of the device for which this version is intended (for
example, 640 x 480 for VGA).
The device-independent version must be the first BITMAPARRAYFILEHEADER or
BITMAPARRAYFILEHEADER2 defined.
In the single-size format, the BITMAPARRAYFILEHEADER or BITMAPARRAYFILEHEADER2
structure is not present. The definition consists of one or two
BITMAPFILEHEADER or BITMAPFILEHEADER2 structures.
The format of the BITMAPFILEHEADER and BITMAPFILEHEADER2 structure is :
typedef struct _BITMAPFILEHEADER { /* bfh */
USHORT usType;
ULONG cbSize;
SHORT xHotspot;
SHORT yHotspot;
ULONG offBits;
BITMAPINFOHEADER bmp;
} BITMAPFILEHEADER;
typedef BITMAPFILEHEADER *PBITMAPFILEHEADER;
typedef struct _BITMAPFILEHEADER2 { /* bfh2 */
USHORT usType;
ULONG cbSize;
SHORT xHotspot;
SHORT yHotspot;
ULONG offBits;
BITMAPINFOHEADER2 bmp2;
} BITMAPFILEHEADER2;
typedef BITMAPFILEHEADER2 *PBITMAPFILEHEADER2;
BITMAPINFOHEADER2 is a standard data type (see above, and also
BITMAPINFOHEADER2).
The fields in BITMAPFILEHEADER and BITMAPFILEHEADER2 have these meanings:
usType
Type of resource the file contains. The valid values are:
BFT_BMAP (X'4D42' - 'BM' for bit maps)
BFT_ICON (X'4349' - 'IC' for icons)
BFT_POINTER (X'5450' - 'PT' for pointers).
BFT_COLORICON (X'4943' - 'CI' for color icons).
BFT_COLORPOINTER (X'5043' - 'CP' for color pointers).
cbSize
Size of the BITMAPFILEHEADER or BITMAPFILEHEADER2 structure in bytes.
xHotspot, yHotspot
Coordinates of the hotspot for icons and pointers. This field is ignored for
bit maps.
offBits
Offset in bytes to the beginning of the bit-map pel data in the file, from
the start of the definition.
For icons and pointers, the cy field in bmp is actually twice the pel height of
the image that appears on the screen. This is because these types actually
contain two full bit-map pel definitions. The first bit-map definition is the
XOR mask, which contains invert information (0 = no invert, 1 = invert) for the
pointer or icon. The second is the AND mask, which determines whether the
pointer or the screen is shown (0 = black/white, 1 = screen/inverse screen).
For color icons or pointers, there are two bit-maps involved: one that is black
and white and consists of an AND and an XOR mask, and one that is color that
defines the color content.
The cy field in the BITMAPINFOHEADER2 structure for the color bit-map must be
the real height, that is, half the value specified for the black and white
bit-map. The cx fields must be the same.
The following table shows how these two bit-maps are used for a color icon or
pointer:
XOR AND COLOR
1 1 x Invert screen
0 0 x Use color x
0 1 x Transparency
1 0 x Use color x
For color icons or pointers, two BITMAPFILEHEADER or BITMAPFILEHEADER2
structures are therefore required:
BITMAPFILEHEADER2 with usType BFT_COLORICON or BFT_COLORPOINTER
BITMAPINFOHEADER2 (part of BITMAPFILEHEADER2)
Color table
BITMAPFILEHEADER2 with same usType
BITMAPINFOHEADER2 (part of BITMAPFILEHEADER2)
Color table
**
bits for one bit-map
**
**
bits for other bit-map
**
The usType for the first BITMAPFILEHEADER2 is either BFT_COLORICON or
BFT_COLORPOINTER. This means that a second BITMAPFILEHEADER2 is present as part
of the definition of a color icon or pointer. The first BITMAPFILEHEADER2
structure contains the information for the black and white AND and XOR masks,
while the second BITMAPFILEHEADER2 structure contains the information for the
color part of the pointer or icon.
BITMAPFILEHEADER and BITMAPINFOHEADER can occur in place of BITMAPFILEHEADER2
and BITMAPINFOHEADER2 in this example.
For the multiple version format, the file is as follows:
BITMAPARRAYFILEHEADER2 for device-independent version
BITMAPFILEHEADER2 (part of BITMAPARRAYFILEHEADER2)
BITMAPINFOHEADER2 (part of BITMAPFILEHEADER2)
Color table
BITMAPFILEHEADER2 )
BITMAPINFOHEADER2 ) only if this is a color icon or pointer
Color table )
BITMAPARRAYFILEHEADER2 for first device-dependent version
BITMAPFILEHEADER2 (part of BITMAPARRAYFILEHEADER2)
BITMAPINFOHEADER2 (part of BITMAPFILEHEADER2)
Color table
BITMAPFILEHEADER2 )
BITMAPINFOHEADER2 ) only if this is a color icon or pointer
Color table )
Further BITMAPARRAYFILEHEADER2 groups occur here as required
for additional device-dependent versions
**
bits for one bit-map
**
**
bits for next bit-map
**
And so on for as many bit-maps as necessary.
As before, BITMAPARRAYFILEHEADER, BITMAPFILEHEADER and BITMAPINFOHEADER can
occur in place of BITMAPARRAYFILEHEADER2, BITMAPFILEHEADER2 and
BITMAPINFOHEADER2.
ΓòÉΓòÉΓòÉ 2.2. Code Pages ΓòÉΓòÉΓòÉ
The initialization file contains country information relating to date, time,
and numeric formats. It does not contain code-page information; this is
obtained from the CONFIG.SYS file.
Applications start with the default code page. The default code page is set
when the operating system is installed. It can be changed subsequently either
by reinstalling the operating system or by editing the COUNTRY statement in the
CONFIG.SYS file.
A GPI presentation space inherits the code page of the process that created it.
The code page changes only when the process issues a GpiSetCp function.
See the printed version of the Presentation Manager Programming Reference for
the ASCII and EBCDIC versions of the code pages.
ΓòÉΓòÉΓòÉ 2.2.1. Windowed PM Applications ΓòÉΓòÉΓòÉ
Windowed PM applications allow the code-page calls to use any of the supported
ASCII code pages. These are:
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γöé Char. Set Code Page Γöé
Γöé Γöé
ΓöéCanadian-French 993 863 Γöé
Γöé Γöé
ΓöéDesktop Publishing 1146 1004 Γöé
Γöé Γöé
ΓöéIceland 991 861 Γöé
Γöé Γöé
ΓöéLatin 1 Multilingual 980 850 Γöé
Γöé Γöé
ΓöéLatin 2 Multilingual 982 852 Γöé
Γöé Γöé
ΓöéNordic 995 865 Γöé
Γöé Γöé
ΓöéPortuguese 990 860 Γöé
Γöé Γöé
ΓöéTurkey 987 857 Γöé
Γöé Γöé
ΓöéU.S. (IBM PC) 919 437 Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
Code page 1004 is compatible with Microsoft** Windows**
The following EBCDIC code pages, based on character set 697, are also available
for output:
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γöé Char. Set Code Page Γöé
Γöé Γöé
ΓöéAustrian/German 697 273 Γöé
Γöé Γöé
ΓöéBelgian 697 500 Γöé
Γöé Γöé
ΓöéBrazil 697 037 Γöé
Γöé Γöé
ΓöéCzechoslovakia 959 870 Γöé
Γöé Γöé
ΓöéDanish/Norwegian 697 277 Γöé
Γöé Γöé
ΓöéFinnish/Swedish 697 278 Γöé
Γöé Γöé
ΓöéFrench 697 297 Γöé
Γöé Γöé
ΓöéHungary 959 870 Γöé
Γöé Γöé
ΓöéIceland 697 871 Γöé
Γöé Γöé
ΓöéInternational 697 500 Γöé
Γöé Γöé
ΓöéItalian 697 280 Γöé
Γöé Γöé
ΓöéPoland 959 870 Γöé
Γöé Γöé
ΓöéPortuguese 697 037 Γöé
Γöé Γöé
ΓöéSpanish 697 284 Γöé
Γöé Γöé
ΓöéTurkey 1152 1026 Γöé
Γöé Γöé
ΓöéU.K.-English 697 285 Γöé
Γöé Γöé
ΓöéU.S.-English 697 037 Γöé
Γöé Γöé
ΓöéYugoslavia 959 870 Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
Note: Code pages 274 (Belgian) and 282 (Portuguese) can be used to provide
access to old data.
The operating system provides the following additional code-page setting and
query calls for the supported ASCII and EBCDIC code pages. These calls work
independently of the CONFIG.SYS file.
GpiSetCp Sets the code page for GPI.
GpiQueryCp Queries the code page for GPI.
GpiCreateLogFont Creates fonts in a code page.
WinSetCp Sets the code page for a message queue.
WinQueryCp Queries the code page for a message queue.
WinQueryCpList creates a list of code pages supported by the operating system.
Text entered in a dialog box is supplied to the application in the code page of
the queue ("queue code page"). If possible, the code page of a resource (for
example, a menu or dialog box) should match the code page of the queue. In
general, code page 850 is the best choice for both an application and its
resources.
Applications should be able to process data from a variety of sources. Because
code page 850 contains most of the characters in other supported code pages,
this is usually the best choice for the queue code page.
ΓòÉΓòÉΓòÉ 2.2.2. OS/2 Code Page Options for PM Applications ΓòÉΓòÉΓòÉ
ΓöîΓöÇΓöÇΓöÇApplicationΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γöé ΓöéΓöÇΓöÇΓöÇΓöñ CONFIG.SYS Γöé
Γöé ΓöîΓöÇDosSetProcessCp (see note 1)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé Γöé contains the Γöé
Γöé Γöé Set code page for this process Γöé Γöé Γöé default code Γöé
Γöé Γöé (keyboard/display not changed). Γöé Γöé Γöé page set by Γöé
Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé Γöé CODEPAGE= Γöé
Γöé Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
Γöé ΓöîΓöÇWinQueryCpList (see note 2)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé
Γöé Γöé Query list of supported code pages. Γöé Γöé
Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé
Γöé Γöé
Γöé ΓöîΓöÇWinSetCp, WinQueryCp (see note 1)ΓöÇΓöÇΓöÇΓöÉ Γöé
Γöé Γöé Set or query code page for ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇKeyboard
Γöé Γöé translating incoming messages Γöé Γöé Γö¼ Γö¼
Γöé Γöé (keystrokes). Γöé Γöé ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöé
Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöé Message
Γöé Γöé ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöé queue
Γöé ΓöîΓöÇGpiSetCp, GpiQueryCp (see note 2)ΓöÇΓöÇΓöÇΓöÉ Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
Γöé Γöé Set or query default GPI code page. Γöé Γöé
Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé
Γöé Γöé
Γöé ΓöîΓöÇGpiCreateLogFont (see note 2)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé
Γöé Γöé Create font in a code page. ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇDisplay
Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé
Γöé Γöé
Γöé ΓöîΓöÇWinCpTranslateChar (see note 2)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé
Γöé Γö£ΓöÇWinCpTranslateString (see note 2)ΓöÇΓöÇΓöÇΓöñ Γöé
Γöé Γöé Convert character or string from ΓöéΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇDisk
Γöé Γöé one code page to another. Γöé Γöé
Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé
Γöé Γöé
Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇLAN or host
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
Note 1: Either of the two ASCII code pages specified in CONFIG.SYS.
Code page 1004 is also supported.
Note 2: Any supported ASCII or EBCDIC code page as reported by
WinQueryCpList.
Code page 1004 is also supported.
ΓòÉΓòÉΓòÉ 2.2.3. OS/2 Font Support for Multiple Code Pages ΓòÉΓòÉΓòÉ
The operating system supports multiple code pages for text input and output. A
single font resource is used to support all the code pages. This section
describes the font resource format.
ΓòÉΓòÉΓòÉ 2.2.3.1. Font Code-Page Functions ΓòÉΓòÉΓòÉ
Many of the characters required by each code page are common; for example, the
first 128 characters of all the ASCII code pages are identical. This set of
characters is called the Universal Glyph List (UGL). A code page is simply a
set of pointers into the UGL.
As the characters in every font are in the same order, only one set of
code-page translation tables is necessary.
Note: The fonts of Microsoft** Windows** support only code page 1004.
ΓòÉΓòÉΓòÉ 2.2.3.2. Font Layout ΓòÉΓòÉΓòÉ
The following table lists the full character set in the order in which the
characters occur in the multi-code-page font. Characters are listed in order of
their universal glyph list (UGL) number; the graphic character global
identifier (GCGID) and a description of each character are also given.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
ΓöéUGL ΓöéGCGID ΓöéDescription Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé1 ΓöéSS000000 ΓöéSmiling face Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé2 ΓöéSS010000 ΓöéSmiling face, reverse image Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé3 ΓöéSS020000 ΓöéHeart suit symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé4 ΓöéSS030000 ΓöéDiamond suit symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé5 ΓöéSS040000 ΓöéClub suit symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé6 ΓöéSS050000 ΓöéSpade suit symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé7 ΓöéSM570000 ΓöéBullet Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé8 ΓöéSM570001 ΓöéBullet, reverse image Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé9 ΓöéSM750000 ΓöéOpen circle Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé10 ΓöéSM750002 ΓöéOpen circle, reverse image Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé11 ΓöéSM280000 ΓöéMale symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé12 ΓöéSM290000 ΓöéFemale symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé13 ΓöéSM930000 ΓöéMusical note Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé14 ΓöéSM910000 ΓöéTwo musical notes Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé15 ΓöéSM690000 ΓöéSun symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé16 ΓöéSM590000 ΓöéForward arrow indicator Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé17 ΓöéSM630000 ΓöéBack arrow indicator Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé18 ΓöéSM760000 ΓöéUp-down arrow Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé19 ΓöéSP330000 ΓöéDouble exclamation point Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé20 ΓöéSM250000 ΓöéParagraph symbol (USA) Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé21 ΓöéSM240000 ΓöéSection symbol (USA), paragraph (Europe)Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé22 ΓöéSM700000 ΓöéSolid horizontal rectangle Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé23 ΓöéSM770000 ΓöéUp-down arrow, perpendicular Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé24 ΓöéSM320000 ΓöéUp arrow Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé25 ΓöéSM330000 ΓöéDown arrow Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé26 ΓöéSM310000 ΓöéRight arrow Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé27 ΓöéSM300000 ΓöéLeft arrow Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé28 ΓöéSA420000 ΓöéRight angle symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé29 ΓöéSM780000 ΓöéLeft-right arrow Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé30 ΓöéSM600000 ΓöéSolid triangle Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé31 ΓöéSV040000 ΓöéSolid triangle, inverted Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé32 ΓöéSP010000 ΓöéSpace Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé33 ΓöéSP020000 ΓöéExclamation point Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé34 ΓöéSP040000 ΓöéQuotation marks Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé35 ΓöéSM010000 ΓöéNumber sign Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé36 ΓöéSC030000 ΓöéDollar sign Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé37 ΓöéSM020000 ΓöéPercent sign Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé38 ΓöéSM030000 ΓöéAmpersand Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé39 ΓöéSP050000 ΓöéApostrophe Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé40 ΓöéSP060000 ΓöéLeft parenthesis Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé41 ΓöéSP070000 ΓöéRight parenthesis Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé42 ΓöéSM040000 ΓöéAsterisk Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé43 ΓöéSA010000 ΓöéPlus sign Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé44 ΓöéSP080000 ΓöéComma Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé45 ΓöéSP100000 ΓöéHyphen/minus sign Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé46 ΓöéSP110000 ΓöéPeriod/full stop Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé47 ΓöéSP120000 ΓöéSlash Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé48 ΓöéND100000 ΓöéZero Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé49 ΓöéND010000 ΓöéOne Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé50 ΓöéND020000 ΓöéTwo Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé51 ΓöéND030000 ΓöéThree Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé52 ΓöéND040000 ΓöéFour Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé53 ΓöéND050000 ΓöéFive Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé54 ΓöéND060000 ΓöéSix Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé55 ΓöéND070000 ΓöéSeven Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé56 ΓöéND080000 ΓöéEight Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé57 ΓöéND090000 ΓöéNine Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé58 ΓöéSP130000 ΓöéColon Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé59 ΓöéSP140000 ΓöéSemicolon Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé60 ΓöéSA030000 ΓöéLess than sign/greater than (arabic) Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé61 ΓöéSA040000 ΓöéEqual Sign Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé62 ΓöéSA050000 ΓöéGreater than sign/less than (arabic) Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé63 ΓöéSP150000 ΓöéQuestion mark Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé64 ΓöéSM050000 ΓöéAt sign Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé65 ΓöéLA020000 ΓöéA capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé66 ΓöéLB020000 ΓöéB capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé67 ΓöéLC020000 ΓöéC capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé68 ΓöéLD020000 ΓöéD capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé69 ΓöéLE020000 ΓöéE capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé70 ΓöéLF020000 ΓöéF capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé71 ΓöéLG020000 ΓöéG capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé72 ΓöéLH020000 ΓöéH capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé73 ΓöéLI020000 ΓöéI capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé74 ΓöéLJ020000 ΓöéJ capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé75 ΓöéLK020000 ΓöéK capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé76 ΓöéLL020000 ΓöéL capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé77 ΓöéLM020000 ΓöéM capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé78 ΓöéLN020000 ΓöéN capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé79 ΓöéLO020000 ΓöéO capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé80 ΓöéLP020000 ΓöéP capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé81 ΓöéLQ020000 ΓöéQ capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé82 ΓöéLR020000 ΓöéR capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé83 ΓöéLS020000 ΓöéS capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé84 ΓöéLT020000 ΓöéT capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé85 ΓöéLU020000 ΓöéU capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé86 ΓöéLV020000 ΓöéV capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé87 ΓöéLW020000 ΓöéW capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé88 ΓöéLX020000 ΓöéX capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé89 ΓöéLY020000 ΓöéY capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé90 ΓöéLZ020000 ΓöéZ capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé91 ΓöéSM060000 ΓöéLeft bracket Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé92 ΓöéSM070000 ΓöéBackslash Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé93 ΓöéSM080000 ΓöéRight bracket Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé94 ΓöéSD150000 ΓöéCircumflex Accent Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé95 ΓöéSP090000 ΓöéUnderline, continuous underscore Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé96 ΓöéSD130000 ΓöéGrave accent Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé97 ΓöéLA010000 Γöéa small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé98 ΓöéLB010000 Γöéb small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé99 ΓöéLC010000 Γöéc small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé100 ΓöéLD010000 Γöéd small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé101 ΓöéLE010000 Γöée small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé102 ΓöéLF010000 Γöéf small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé103 ΓöéLG010000 Γöég small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé104 ΓöéLH010000 Γöéh small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé105 ΓöéLI010000 Γöéi small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé106 ΓöéLJ010000 Γöéj small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé107 ΓöéLK010000 Γöék small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé108 ΓöéLL010000 Γöél small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé109 ΓöéLM010000 Γöém small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé110 ΓöéLN010000 Γöén small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé111 ΓöéLO010000 Γöéo small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé112 ΓöéLP010000 Γöép small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé113 ΓöéLQ010000 Γöéq small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé114 ΓöéLR010000 Γöér small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé115 ΓöéLS010000 Γöés small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé116 ΓöéLT010000 Γöét small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé117 ΓöéLU010000 Γöéu small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé118 ΓöéLV010000 Γöév small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé119 ΓöéLW010000 Γöéw small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé120 ΓöéLX010000 Γöéx small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé121 ΓöéLY010000 Γöéy small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé122 ΓöéLZ010000 Γöéz small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé123 ΓöéSM110000 ΓöéLeft brace Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé124 ΓöéSM130000 ΓöéVertical line, logical OR Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé125 ΓöéSM140000 ΓöéRight brace Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé126 ΓöéSD190000 ΓöéTilde Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé127 ΓöéSM790000 ΓöéHouse Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé128 ΓöéLC420000 ΓöéC cedilla capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé129 ΓöéLU170000 ΓöéU diaeresis small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé130 ΓöéLE110000 ΓöéE acute small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé131 ΓöéLA150000 ΓöéA circumflex small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé132 ΓöéLA170000 ΓöéA diaeresis small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé133 ΓöéLA130000 ΓöéA grave small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé134 ΓöéLA270000 ΓöéA overcircle small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé135 ΓöéLC410000 ΓöéC cedilla small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé136 ΓöéLE150000 ΓöéE circumflex small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé137 ΓöéLE170000 ΓöéE diaeresis small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé138 ΓöéLE130000 ΓöéE grave small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé139 ΓöéLI170000 ΓöéI diaeresis small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé140 ΓöéLI150000 ΓöéI circumflex small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé141 ΓöéLI130000 ΓöéI grave small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé142 ΓöéLA180000 ΓöéA diaeresis capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé143 ΓöéLA280000 ΓöéA overcircle capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé144 ΓöéLE120000 ΓöéE acute capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé145 ΓöéLA510000 ΓöéAE diphthong small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé146 ΓöéLA520000 ΓöéAE diphthong capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé147 ΓöéLO150000 ΓöéO circumflex small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé148 ΓöéLO170000 ΓöéO diaeresis small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé149 ΓöéLO130000 ΓöéO grave small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé150 ΓöéLU150000 ΓöéU circumflex small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé151 ΓöéLU130000 ΓöéU grave small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé152 ΓöéLY170000 ΓöéY diaeresis small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé153 ΓöéLO180000 ΓöéO diaeresis capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé154 ΓöéLU180000 ΓöéU diaeresis capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé155 ΓöéLO610000 ΓöéO slash small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé156 ΓöéSC020000 ΓöéPound sterling sign Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé157 ΓöéLO620000 ΓöéO slash capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé158 ΓöéSA070000 ΓöéMultiply sign Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé159 ΓöéSC070000 ΓöéFlorin sign Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé160 ΓöéLA110000 ΓöéA acute small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé161 ΓöéLI110000 ΓöéI acute small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé162 ΓöéLO110000 ΓöéO acute small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé163 ΓöéLU110000 ΓöéU acute small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé164 ΓöéLN190000 ΓöéN tilde small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé165 ΓöéLN200000 ΓöéN tilde capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé166 ΓöéSM210000 ΓöéOrdinal indicator, feminine Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé167 ΓöéSM200000 ΓöéOrdinal indicator, masculine Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé168 ΓöéSP160000 ΓöéQuestion mark, inverted Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé169 ΓöéSM530000 ΓöéRegistered trademark symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé170 ΓöéSM660000 ΓöéLogical NOT, end of line symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé171 ΓöéNF010000 ΓöéOne-half Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé172 ΓöéNF040000 ΓöéOne-quarter Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé173 ΓöéSP030000 ΓöéExclamation point, inverted Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé174 ΓöéSP170000 ΓöéLeft angled quotes Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé175 ΓöéSP180000 ΓöéRight angled quotes Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé176 ΓöéSF140000 ΓöéFill character, light Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé177 ΓöéSF150000 ΓöéFill character, medium Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé178 ΓöéSF160000 ΓöéFill character, heavy Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé179 ΓöéSF110000 ΓöéCenter box bar vertical Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé180 ΓöéSF090000 ΓöéRight middle box side Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé181 ΓöéLA120000 ΓöéA acute capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé182 ΓöéLA160000 ΓöéA circumflex capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé183 ΓöéLA140000 ΓöéA grave capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé184 ΓöéSM520000 ΓöéCopyright symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé185 ΓöéSF230000 ΓöéRight box side double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé186 ΓöéSF240000 ΓöéCenter box bar vertical double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé187 ΓöéSF250000 ΓöéUpper right box corner double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé188 ΓöéSF260000 ΓöéLower right box corner double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé189 ΓöéSC040000 ΓöéCent sign Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé190 ΓöéSC050000 ΓöéYen sign Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé191 ΓöéSF030000 ΓöéUpper right box corner Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé192 ΓöéSF020000 ΓöéLower left box corner Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé193 ΓöéSF070000 ΓöéMiddle box bottom Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé194 ΓöéSF060000 ΓöéMiddle box top Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé195 ΓöéSF080000 ΓöéLeft middle box side Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé196 ΓöéSF100000 ΓöéCenter box bar horizontal Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé197 ΓöéSF050000 ΓöéBox intersection Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé198 ΓöéLA190000 ΓöéA tilde small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé199 ΓöéLA200000 ΓöéA tilde capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé200 ΓöéSF380000 ΓöéLower left box corner double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé201 ΓöéSF390000 ΓöéUpper left box corner double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé202 ΓöéSF400000 ΓöéMiddle box bottom double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé203 ΓöéSF410000 ΓöéMiddle box top double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé204 ΓöéSF420000 ΓöéLeft box side double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé205 ΓöéSF430000 ΓöéCenter box bar horizontal double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé206 ΓöéSF440000 ΓöéBox intersection double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé207 ΓöéSC010000 ΓöéInternational currency symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé208 ΓöéLD630000 Γöéeth Icelandic small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé209 ΓöéLD620000 ΓöéD stroke capital, Eth Icelandic capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé210 ΓöéLE160000 ΓöéE circumflex capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé211 ΓöéLE180000 ΓöéE diaeresis capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé212 ΓöéLE140000 ΓöéE grave capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé213 ΓöéLI610000 ΓöéI dotless small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé214 ΓöéLI120000 ΓöéI acute capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé215 ΓöéLI160000 ΓöéI circumflex capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé216 ΓöéLI180000 ΓöéI diaeresis capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé217 ΓöéSF040000 ΓöéLower right box corner Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé218 ΓöéSF010000 ΓöéUpper left box corner Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé219 ΓöéSF610000 ΓöéSolid fill character Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé220 ΓöéSF570000 ΓöéSolid fill character, bottom half Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé221 ΓöéSM650000 ΓöéVertical line, broken Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé222 ΓöéLI140000 ΓöéI grave capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé223 ΓöéSF600000 ΓöéSolid fill character, top half Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé224 ΓöéLO120000 ΓöéO acute capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé225 ΓöéLS610000 ΓöéSharp s small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé226 ΓöéLO160000 ΓöéO circumflex capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé227 ΓöéLO140000 ΓöéO grave capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé228 ΓöéLO190000 ΓöéO tilde small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé229 ΓöéLO200000 ΓöéO tilde capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé230 ΓöéSM170000 ΓöéMicro symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé231 ΓöéLT630000 ΓöéThorn Icelandic small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé232 ΓöéLT640000 ΓöéThorn Icelandic capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé233 ΓöéLU120000 ΓöéU acute capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé234 ΓöéLU160000 ΓöéU circumflex capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé235 ΓöéLU140000 ΓöéU grave capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé236 ΓöéLY110000 Γöéy acute small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé237 ΓöéLY120000 ΓöéY acute capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé238 ΓöéSM150000 ΓöéOverline Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé239 ΓöéSD110000 ΓöéAcute accent Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé240 ΓöéSP320000 ΓöéSyllable hyphen Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé241 ΓöéSA020000 ΓöéPlus or minus sign Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé242 ΓöéSM100000 ΓöéDouble underscore Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé243 ΓöéNF050000 ΓöéThree-quarters Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé244 ΓöéSM250000 ΓöéParagraph symbol (USA) Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé245 ΓöéSM240000 ΓöéSection symbol (USA), paragraph (Europe)Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé246 ΓöéSA060000 ΓöéDivide sign Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé247 ΓöéSD410000 ΓöéCedilla (or sedila) accent Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé248 ΓöéSM190000 ΓöéDegree symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé249 ΓöéSD170000 ΓöéDiaeresis, umlaut accent Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé250 ΓöéSD630000 ΓöéMiddle dot Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé251 ΓöéND011000 ΓöéOne superscript Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé252 ΓöéND031000 ΓöéThree superscript Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé253 ΓöéND021000 ΓöéTwo superscript Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé254 ΓöéSM470000 ΓöéSolid square, histogram, square bullet Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé255 ΓöéSP300000 ΓöéRequired space Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé256 ΓöéSC060000 ΓöéPeseta sign Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé257 ΓöéSM680000 ΓöéStart of line symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé258 ΓöéSF190000 ΓöéRight box side double to single Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé259 ΓöéSF200000 ΓöéRight box side single to double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé260 ΓöéSF210000 ΓöéUpper right box corner single to double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé261 ΓöéSF220000 ΓöéUpper right box corner double to single Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé262 ΓöéSF270000 ΓöéLower right box corner single to double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé263 ΓöéSF280000 ΓöéLower right box corner double to single Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé264 ΓöéSF360000 ΓöéLeft box side single to double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé265 ΓöéSF370000 ΓöéLeft box side double to single Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé266 ΓöéSF450000 ΓöéMiddle box bottom single to double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé267 ΓöéSF460000 ΓöéMiddle box bottom double to single Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé268 ΓöéSF470000 ΓöéMiddle box top double to single Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé269 ΓöéSF480000 ΓöéMiddle box top single to double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé270 ΓöéSF490000 ΓöéLower left box corner double to single Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé271 ΓöéSF500000 ΓöéLower left box corner single to double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé272 ΓöéSF510000 ΓöéUpper left box corner single to double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé273 ΓöéSF520000 ΓöéUpper left box corner double to single Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé274 ΓöéSF530000 ΓöéBox intersection single to double Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé275 ΓöéSF540000 ΓöéBox intersection double to single Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé276 ΓöéSF580000 ΓöéSolid fill character, left half Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé277 ΓöéSF590000 ΓöéSolid fill character, right half Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé278 ΓöéGA010000 ΓöéAlpha small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé279 ΓöéGG020000 ΓöéGamma capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé280 ΓöéGP010000 ΓöéPi small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé281 ΓöéGS020000 ΓöéSigma capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé282 ΓöéGS010000 ΓöéSigma small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé283 ΓöéGT010000 ΓöéTau small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé284 ΓöéGF020000 ΓöéPhi capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé285 ΓöéGT620000 ΓöéTheta capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé286 ΓöéGO320000 ΓöéOmega capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé287 ΓöéGD010000 ΓöéDelta small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé288 ΓöéSA450000 ΓöéInfinity symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé289 ΓöéGF010000 ΓöéPhi small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé290 ΓöéGE010000 ΓöéEpsilon small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé291 ΓöéSA380000 ΓöéIntersection, logical product Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé292 ΓöéSA480000 ΓöéIndentity symbol, almost equal Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé293 ΓöéSA530000 ΓöéGreater than or equal sign Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé294 ΓöéSA520000 ΓöéLess than or equal sign Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé295 ΓöéSS260000 ΓöéUpper integral symbol section Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé296 ΓöéSS270000 ΓöéLower integral symbol section Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé297 ΓöéSA700000 ΓöéNearly equals symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé298 ΓöéSA790000 ΓöéProduct dot Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé299 ΓöéSA800000 ΓöéRadical symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé300 ΓöéLN011000 ΓöéN small superscript Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé301 ΓöéSD310000 ΓöéMacron accent Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé302 ΓöéSD230000 ΓöéBreve accent Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé303 ΓöéSD290000 ΓöéOverdot accent (over small Alpha) Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé304 ΓöéSD270000 ΓöéOvercircle accent Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé305 ΓöéSD250000 ΓöéDouble acute accent Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé306 ΓöéSD430000 ΓöéOgonek accent Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé307 ΓöéSD210000 ΓöéCaron accent Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé308 ΓöéSP190000 ΓöéLeft single quote Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé309 ΓöéSP200000 ΓöéRight single quote Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé310 ΓöéSP210000 ΓöéLeft double quotes Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé311 ΓöéSP220000 ΓöéRight double quotes Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé312 ΓöéSS680000 ΓöéEndash Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé313 ΓöéSM900000 ΓöéEmdash Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé314 ΓöéSD150000 ΓöéCircumflex accent Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé315 ΓöéSD190000 ΓöéTilde accent Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé316 ΓöéSP260000 ΓöéSingle quote on baseline (German lower) Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé317 ΓöéSP230000 ΓöéLeft lower double quotes Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé318 ΓöéSV520000 ΓöéEllipsis Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé319 ΓöéSM340000 ΓöéDagger footnote indicator Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé320 ΓöéSM350000 ΓöéDouble dagger footnote indicator Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé321 ΓöéSD150100 ΓöéCircumflex accent (over small alpha) Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé322 ΓöéSM560000 ΓöéPermille symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé323 ΓöéLS220000 ΓöéS caron capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé324 ΓöéSP270000 ΓöéFrench single open quote Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé325 ΓöéLO520000 ΓöéOE ligature capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé326 ΓöéSD190100 ΓöéTilde accent (over small alpha) Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé327 ΓöéSM540000 ΓöéTrademark symbol Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé328 ΓöéLS210000 Γöés caron small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé329 ΓöéSP280000 ΓöéFrench single close quote Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé330 ΓöéLO510000 Γöéoe ligature small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé331 ΓöéLY180000 ΓöéY diaeresis capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé332 ΓöéLG230000 Γöég Breve Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé333 ΓöéLG240000 ΓöéG Breve Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé334 ΓöéLI300000 ΓöéI Overdot Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé335 ΓöéLS410000 Γöés Cedilla Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé336 ΓöéLS420000 ΓöéS Cedilla Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé337 ΓöéLA230000 Γöéa Breve Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé338 ΓöéLA240000 ΓöéA Breve Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé339 ΓöéLA430000 Γöéa Ogonek Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé340 ΓöéLA440000 ΓöéA Ogonek Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé341 ΓöéLC110000 Γöéc Acute Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé342 ΓöéLC120000 ΓöéC Acute Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé343 ΓöéLC210000 Γöéc Caron Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé344 ΓöéLC220000 ΓöéC Caron Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé345 ΓöéLD210000 Γöéd Caron Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé346 ΓöéLD220000 ΓöéD Caron Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé347 ΓöéLD610000 Γöéd Stroke Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé348 ΓöéLE210000 Γöée Caron Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé349 ΓöéLE220000 ΓöéE Caron Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé350 ΓöéLE430000 Γöée Ogenek Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé351 ΓöéLE440000 ΓöéE Ogonek Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé352 ΓöéLL110000 Γöél Acute Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé353 ΓöéLL120000 ΓöéL Acute Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé354 ΓöéLL210000 Γöél Caron Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé355 ΓöéLL220000 ΓöéL Caron Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé356 ΓöéLL610000 Γöél Stroke Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé357 ΓöéLL620000 ΓöéL Stroke Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé358 ΓöéLN110000 Γöén Acute Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé359 ΓöéLN120000 ΓöéN Acute Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé360 ΓöéLN210000 Γöén Caron Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé361 ΓöéLN220000 ΓöéN Caron Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé362 ΓöéLO250000 Γöéo Double Acute Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé363 ΓöéLO260000 ΓöéO Double Acute Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé364 ΓöéLR110000 Γöér Acute Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé365 ΓöéLR120000 ΓöéR Acute Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé366 ΓöéLR210000 Γöér Caron Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé367 ΓöéLR220000 ΓöéR Caron Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé368 ΓöéLS110000 Γöés Acute Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé369 ΓöéLS120000 ΓöéS Acute Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé370 ΓöéLT210000 Γöét Caron Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé371 ΓöéLT220000 ΓöéT Caron Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé372 ΓöéLT410000 Γöét Cedilla Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé373 ΓöéLT420000 ΓöéT Cedilla Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé374 ΓöéLU250000 Γöéu Double Acute Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé375 ΓöéLU260000 ΓöéU Double Acute Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé376 ΓöéLU270000 Γöéu Overcircle Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé377 ΓöéLU280000 Γöéu Overcircle Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé378 ΓöéLZ110000 Γöéz Acute Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé379 ΓöéLZ120000 ΓöéZ Acute Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé380 ΓöéLZ210000 Γöéz Caron Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé381 ΓöéLZ220000 ΓöéZ Caron Capital Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé382 ΓöéLZ290000 Γöéz Overdot Small Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé383 ΓöéLZ300000 ΓöéZ Overdot Capital Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
ΓòÉΓòÉΓòÉ 2.3. C++ Considerations ΓòÉΓòÉΓòÉ
This section contains several topics you should take into consideration if you
are using C++.
ΓòÉΓòÉΓòÉ 2.3.1. C++ Header Files ΓòÉΓòÉΓòÉ
The OS/2 2.1 Toolkit now provides a subset of the regular headers that have
been enabled to work with C++. The following items should be evaluated to
determine whether the developer should use these header files or the regular C
header files that are shipped with the toolkit.
OS/2 functions that used to take a PSZ, and that do not modify the contents of
the passed string, have been updated in the C++ header files to take a PCSZ
Data Type parameter. This will allow for better optimization by the compiler
and is more semantically compatible with C++. Existing code that calls one of
these functions still works correctly.
Several of the typedefs have been changed in the C++ header files.
The existing samples that are shipped with the OS/2 Toolkit can be used with
either set of the header files.
ΓòÉΓòÉΓòÉ 2.3.2. PCSZ Data Type ΓòÉΓòÉΓòÉ
If a function takes as a parameter a string that is not changed by the
function, the string parameter can be declared as a "const" string, or a PCSZ.
PCSZ is defined in the C++ header files as a "const" pointer to a
NULL-delimited string. The "const" means that the function will not change the
contents of the string.
Declaring the parameter as PCSZ informs the C++ compiler that the function will
not change the string. Therefore, the compiler simply passes a pointer to the
string in the function parameter list. If the parameter is declared as a normal
PSZ (not "const"), the compiler assumes that the function might change the
string. Under these circumstances the compiler will add code to make a copy of
the string then pass a pointer to the copy, rather than passing a pointer to
the original string.
A smaller, faster executeable is often produced if the data item passed in a
parameter list is declared as "const".
If the data item is declared as "const" then it must not be changed by the
function.
This information is included here because the PCSZ data type is defined in the
C++ header files included with this product. The use of the "const" keyword is
not necessarily specific to C++. Certain C compilers support it as well.
ΓòÉΓòÉΓòÉ 2.3.3. LINK386 ΓòÉΓòÉΓòÉ
The C++ compiler will provide a dynamic link library which is be used by
LINK386 when generating error messages. This DLL will convert a compiler
generated mangled name into the function prototype. If the DLL is not present,
an error message will be displayed and LINK386 will display the
compiler-generated mangled name in error messages.
ΓòÉΓòÉΓòÉ 2.4. DBCS Support ΓòÉΓòÉΓòÉ
The Presentation Interface supports double-byte character sets (DBCS) by means
of three kinds of character-encoding schemes:
SBCS only
Single-byte code pages; for example, U.S.-English.
Both ASCII and EBCDIC SBCS code pages have similar representations.
DBCS only
Double-byte code pages; for example, Kanji.
Both ASCII and EBCDIC DBCS code pages have similar representations.
MIXED
Code pages that incorporate a combination of single-byte and
double-byte characters.
The internal representations of EBCDIC MIXED and ASCII MIXED code
pages differ:
o ASCII MIXED: the encoding scheme allows single-byte characters to be
distinguished from double-byte characters algorithmically. With this
scheme the number of characters entered or displayed is the same as the
number of characters in a field.
o EBCDIC MIXED: the encoding scheme requires that control characters within
the string switch from single to double byte encoding (and from double to
single byte encoding). These control characters are the shift-out (SO)
and shift-in (SI) characters.
With this encoding scheme there may be many more characters in the input
or data field than characters displayed or printed.
All MIXED strings are displayed without a space between sequences of
single-byte and double-byte characters (unless spaces are explicitly included
in these positions within the string).
For graphics, selection of a local identifier (lcid) identifies the code page
in force, and therefore whether subsequent character strings are to be
interpreted as SBCS, DBCS, ASCII MIXED, or EBCDIC MIXED.
ΓòÉΓòÉΓòÉ 2.5. Font-File Format ΓòÉΓòÉΓòÉ
The OS/2 font-file format consists of two sections. The first section contains
the general attributes of the font, and describes features such as its
typeface, style, and nominal size. The second section contains the actual
definitions of the characters belonging to the font.
The font resource is a set of self-defining records of the form:
typedef struct _RECORD {
ULONG ulIdentity; /* structure identity code */
ULONG ulSize; /* structure size in bytes */
. /* data */
.
.
} RECORD;
A font starts with a special font-signature structure and ends with an ending
structure. The font signature has the form:
typedef struct _FONTSIGNATURE {
ULONG ulIdentity;
ULONG ulSize;
CHAR achSignature [12]
} FONTSIGNATURE;
where:
ulIdentity = X'FFFFFFFE'
ulSize = 20
achSignature = "OS/2 FONT" for an OS/2 1.x format font, or
= "OS/2 FONT 2" for an OS/2 2.x format font.
A 2.x format font includes additional font description information in the
PANOSE structure. This structure will be added to the end of the .FNT file
(prior to the ENDFONT record).
The font end structure has the form:
typedef struct _ENDFONT{
ULONG ulIdentity;
ULONG ulSize;
}ENDFONT
where:
ulIdentity = X'FFFFFFFF'
ulSize = 8
All records should be in the order of their identity fields.
There are three or four records in a font resource between the font signature
and the font end:
o The font metrics
o The font character definitions
o The pair kerning table.
o The PANOSE description (for "OS/2 FONT 2" fonts).
Following compilation, the records in the resource are in the order defined
above.
ΓòÉΓòÉΓòÉ 2.5.1. Metric Information Contained in Fonts ΓòÉΓòÉΓòÉ
This section gives an explanation of how to set the fields of the FOCAMETRICS
structure when developing:
o A bit map or outline font for general use by PM graphics applications
o A description of a bit map or outline device font that is built in to a
device or can be downloaded to a device.
The following structure contains the physical font metrics used when creating
fonts. It is defined in the file \INCLUDE\PMFONT.H.
typedef struct _FOCAMETRICS {
ULONG ulIdentity;
ULONG ulSize;
CHAR szFamilyname[32];
CHAR szFacename[32];
SHORT usRegistryId;
SHORT usCodePage;
SHORT yEmHeight;
SHORT yXHeight;
SHORT yMaxAscender;
SHORT yMaxDescender;
SHORT yLowerCaseAscent;
SHORT yLowerCaseDescent;
SHORT yInternalLeading;
SHORT yExternalLeading;
SHORT xAveCharWidth;
SHORT xMaxCharInc;
SHORT xEmInc;
SHORT yMaxBaselineExt;
SHORT sCharSlope;
SHORT sInlineDir;
SHORT sCharRot;
USHORT usWeightClass;
USHORT usWidthClass;
SHORT xDeviceRes;
SHORT yDeviceRes;
SHORT usFirstChar;
SHORT usLastChar;
SHORT usDefaultChar;
SHORT usBreakChar;
SHORT usNominalPointSize;
SHORT usMinimumPointSize;
SHORT usMaximumPointSize;
SHORT fsTypeFlags;
SHORT fsDefn;
SHORT fsSelectionFlags;
SHORT fsCapabilities;
SHORT ySubscriptXSize;
SHORT ySubscriptYSize;
SHORT ySubscriptXOffset;
SHORT ySubscriptYOffset;
SHORT ySuperscriptXSize;
SHORT ySuperscriptYSize;
SHORT ySuperscriptXOffset;
SHORT ySuperscriptYOffset;
SHORT yUnderscoreSize;
SHORT yUnderscorePosition;
SHORT yStrikeoutSize;
SHORT yStrikeoutPosition;
SHORT usKerningPairs;
SHORT sFamilyClass;
PSZ pszDeviceNameOffset;
} FOCAMETRICS;
Note: FOCAMETRICS is a parallel structure with FONTMETRICS as returned to
applications in the GpiQueryFonts and GpiQueryFontMetrics function
calls.
The FONTMETRICS fields are derived from FOCAMETRICS by the Presentation Manager
graphics engine. Most values are passed though unchanged. The exceptions are:
o The Identity field. This must be 1. This field is not a part of the
FONTMETRICS structure.
o The Size field. This must be set to the size of the FOCAMETRICS structure.
This field is not a part of the FONTMETRICS structure.
o The Codepage field. Ignore the description in FONTMETRICS, and use the
following:
Place 850 in this field if the font is intended to support any PM supported
code page. See Code Pages for the list of code pages supported by the
Presentation Manager.
Place 65400 in this field if the font has special glyphs, for example if it
is a Symbol font.
Place other valid code pages in this field if the font is specific to this
code page.
Do not place other values in this field.
o FONTMETRICS fields which contain values in world coordinates. The
corresponding field in FOCAMETRICS should contain pel values for bit-map
fonts, and notional units for outline fonts.
See FONTMETRICS for a detailed explanation of the fields.
ΓòÉΓòÉΓòÉ 2.5.2. Font Character Definitions ΓòÉΓòÉΓòÉ
Two formats of font character definition are supported. These are:
Image format
The character glyphs are represented as pel images.
Outline format
The character glyphs are represented by vector data that traces the outline
of the character.
Note: Intelligent Font Technology fonts (such as ATM Type-1 fonts) may be
stored in a technology specific format, and thus will not conform to
this definition for outline fonts.
The definition consists of a header portion and a portion carrying the
characters themselves.
The header portion contains information about the format of the character
definitions and data about each character including width data and the offset
into the definition section at which the character definition begins. (See
Definitions of Terms Used When Describing Fonts.)
1. Proportional characters (a+b+c = character increment) for each character:
a,b,c >= 0
2. Characters where a, b, and c are definitions for all characters:
b >= 0
a, c any integer
Raster fonts contain a "null character". The character definition record for
this occurs after the one for the last character. Thus the format has
usLastChar+2 characters, although the null character is not counted in the
range returned. The null character is composed of zeros and is always eight
pels wide.
ΓòÉΓòÉΓòÉ 2.5.2.1. Font Definition Header ΓòÉΓòÉΓòÉ
This structure defines the format or the character definition records that
follow it:
typedef struct_FONTDEFINITIONHEADER {
ULONG ulIdentity;
ULONG ulSize;
SHORT fsFontdef;
SHORT fsChardef;
SHORT usCellSize;
SHORT xCellWidth;
SHORT yCellHeight;
SHORT xCellIncrement;
SHORT xCellA;
SHORT xCellB;
SHORT xCellC;
SHORT pCellBaseOffset;
} FONTDEFINITIONHEADER;
typedef FONTDEFINITIONHEADER FAR *PFONTDEFINITIONHEADER;
ulIdentity 4 bytes.
Must be equal to 2.
ulSize 4 bytes.
Size of this structure in bytes.
fsFontdef 2 bytes of flags.
Indicates which fields are present in the font definition data in the
header.
Type 1
Bit 0 1 = width defined in header
Bit 1 1 = height defined in header
Bit 2 1 = char increment same as width, so that it is defined for the
whole font
Bit 3 0 = a-space not defined
Bit 4 0 = b-space not defined
Bit 5 0 = c-space not defined
Bit 6 1 = base offset same for all characters.
Type 2
Bit 0 0 = width for each character unique
Bit 1 1 = height defined in header
Bit 2 0 = char increment same as width, so that it is unique for each
character
Bit 3 0 = a-space not defined
Bit 4 0 = b-space not defined
Bit 5 0 = c-space not defined
Bit 6 1 = base offset same for all characters.
Type 3
Bit 0 0 = width for each character unique
Bit 1 1 = height defined in header
Bit 2 0 = char increment same as width, so that it is unique
Bit 3 0 = a-space not defined
Bit 4 0 = b-space not defined
Bit 5 0 = c-space not defined
Bit 6 1 = base offset same for all characters.
FsChardef 2 bytes of flags.
Indicates which fields are present on a per character basis.
Type 1
Bit 0 1 = width defined for each character (performance op)
Bit 1 0 = height is in header
Bit 2 0 = char increment is in header
Bit 3 0 = a-space not defined
Bit 4 0 = b-space not defined
Bit 5 0 = c-space not defined
Bit 6 0 = base offset defined in header
Bit 7 1 = offset to glyph defined.
Type 2
Bit 0 1 = width defined for each character
Bit 1 0 = height is in header
Bit 2 0 = char increment same as width
Bit 3 0 = a-space not defined
Bit 4 0 = b-space not defined
Bit 5 0 = c-space not defined
Bit 6 0 = base offset defined in header
Bit 7 1 = offset to glyph defined.
Type 3
Bit 0 1 = width not defined, use a, b, c
Bit 1 0 = height is in header
Bit 2 0 = char increment same as width
Bit 3 1 = a-space defined
Bit 4 1 = b-space defined
Bit 5 1 = c-space defined
Bit 6 0 = base offset defined in header
Bit 7 1 = offset to glyph defined.
usCellSize 2-byte integer.
Indicates the length in bytes of each character definition record (the per
character data).
Type 1 6 bytes
Type 2 6 bytes
Type 3 10 bytes.
xCellWidth 2-byte integer
The width of the characters, in pels for image fonts, and relative units
for outline fonts.
Type 1 Width of the characters
Type 2 Zero
Type 3 Zero.
yCellHeight 2-byte integer.
The height of the characters, in pels for image fonts, and relative units
for outline fonts.
Type 1 Height of the characters
Type 2 Height of the characters
Type 3 Height of the characters.
xCellIncrement 2-byte integer.
The distance along the character baseline required to step from one
character to the next (when forming a character string).
Type 1 Width of the characters
Type 2 Zero
Type 3 Zero.
xCellA 2-byte signed integer.
The width of the space before a character in the inline direction (the
a-space).
Type 1 Zero
Type 2 Zero
Type 3 a-space for all characters.
xCellB 2-byte integer.
The width of a character (inline direction). The b-space.
Type 1 Zero
Type 2 Zero
Type 3 b-space for all characters.
xCellC 2-byte signed integer.
The width of the space after a character in the inline direction (the
c-space).
Type 1 Zero
Type 2 Zero
Type 3 c-space for all characters.
pCellBaseOffset 2-byte signed integer.
The position of the top of a character definition relative to the baseline
in the direction perpendicular to the baseline.
Type 1 Baseline offset for all characters
Type 2 Baseline offset for all characters
Type 3 Baseline offset for all characters.
Character Definition Record xCellSize bytes per record.
The following fields may or may not be present, according to the font
character definition fields flags. If a field is present, it is present
for each character and the value applies to that character only.
There are usLastChar+2 such records for raster fonts. The final one is
for the null character.
o Character Definition Offset: 4-byte integer.
The offset into the Font File at which the character definition begins.
Data for a single character raster or vector should not span two segments;
that is, if a character is too big to fit into a segment it should be put
in the next segment.
This field should be set to zero if the character being defined is a blank
character.
o Character Cell Width: 2-byte integer.
The width of the character definition in pels.
o Character Cell Height: 2-byte integer.
The height of the character definition in pels.
o Character Increment: 2-byte integer.
The length along the character baseline required to step from this
character to the next (when forming a character string).
o Character a-space: 2-byte signed integer.
The width of the space before the character in the inline direction.
o Character b-space: 2-byte integer.
The width of the character shape (inline direction).
o Character c-space: 2-byte signed integer.
The width of the space after the character in the inline direction.
o Character Baseline Offset: 2-byte signed integer.
The position of the top of a character definition relative to the baseline
in the direction perpendicular to the baseline.
Note: Type 1 fonts have offset/width pairs (like type 2); however, the
usCellSize and xCellIncrement are nonzero. In the fsType field of the
font metrics, the proportional-space flag, bit 0, is set.
ΓòÉΓòÉΓòÉ 2.5.2.2. Image Data Format ΓòÉΓòÉΓòÉ
The bits for each character are stored separately, and start on a byte
boundary. Sequential bytes represent vertical pieces of the character image.
For example, a 15-bit-wide H is stored as follows:
byte byte
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
1 Γöé00000000Γöé0000000-Γöé 13 Bytes 1 through 12 are composed of
2 Γöé01100000Γöé0000110-Γöé 14 whole bytes of data stored row by row.
3 Γöé01100000Γöé0000110-Γöé 15
4 Γöé01100000Γöé0000110-Γöé 16 Bytes 13 through 24 are composed of
5 Γöé01100000Γöé0000110-Γöé 17 bytes stored row by row, where each
6 Γöé01111111Γöé1111110-Γöé 18 byte contains 7 bits of information
7 Γöé01111111Γöé1111110-Γöé 19 and the last bit is unused.
8 Γöé01100000Γöé0000110-Γöé 20
9 Γöé01100000Γöé0000110-Γöé 21 Thus the character is laid down in
10 Γöé01100000Γöé0000110-Γöé 22 byte-wide columns.
11 Γöé01100000Γöé0000110-Γöé 23
12 Γöé00000000Γöé0000000-Γöé 24
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
Notes:
1. There is always an additional (null) character defined in an Image Font
(defined at character position LastChar+2) which is 8 bits wide, the height
of the font character, and set to all zeros.
2. The maximum size of each individual Image Font must not exceed 64KB.
ΓòÉΓòÉΓòÉ 2.5.3. The Kerning Pair Table ΓòÉΓòÉΓòÉ
The kerning pair table record is not present if the _KerningPairs record in the
metrics is zero. If it is present, the code points are words, not bytes. This
table should be sorted by kpChar1 and kpChar2 order to allow binary searches.
typedef struct _KERNPAIRTABLE {
ULONG ulIdentity;
ULONG ulSize;
CHAR cFirstpair;
}KERNPAIRTABLE;
typedef struct _KERNPAIRS {
SHORT sFirstChar;
SHORT sSecondChar;
SHORT sKerningAmount;
}KERNINGPAIRS;
where:
ulIdentity = 3
ulSize = 10
sFirstChar = First character of the kerning pair
sSecondChar = Second character of the kerning pair
sKerningAmount = Kerning value. Positive values increase the
inter-character spacing while negative values
bring the characters closer together.
Outline Data Format
Fonts defined by outlines (vectors) may contain any of these graphics orders:
o Line at given position (GLINE)
o Line at current position (GCLINE)
o Relative line at given position (GRLINE)
o Relative line at current position (GCRLINE)
o Fillet at given position (GFLT)
o Fillet at current position (GCFLT)
o Sharp fillet at given position (GSFLT)
o Sharp fillet at current position (GCSFLT)
o Bezier curve at given position (GBEZ)
o Bezier curve at current position (GCBEZ)
o No operation (GNOP1)
o Comment (GCOMT)
o End of symbol definition (GESD).
The maximum length of the data in these orders is 255 bytes. The drawing order
code and the length fields are not included in the length count.
The size of each outline font definition must not be longer than 64KB.
ΓòÉΓòÉΓòÉ 2.5.4. Additional Metrics ΓòÉΓòÉΓòÉ
The additional metrics structure extends the metrics describing the font to
include the PANOSE fields. The fields allow for quantitative descriptions of
the visual properties of font faces. The format of the ADDITIONALMETRICS
structure is:
typedef struct {
ULONG ulIdentity;
ULONG ulSize;
PANOSE panose;
} ADDITIONALMETRICS;
where:
ulIdentity = 4
ulSize = 20
panose = The ten digit PANOSE number with two bytes
of padding.
The PANOSE definition consists of ten digits, each of which describes one of up
to sixteen variations. The current digits are:
1. Family Kind (6 variations)
0 = Any
1 = No Fit
2 = Text and Display
3 = Script
4 = Decorative
5 = Pictorial
2. Serif Style (16 variations)
0 = Any
1 = No Fit
2 = Cove
3 = Obtuse Cove
4 = Square Cove
5 = Obtuse Square Cove
6 = Square
7 = Thin
8 = Bone
9 = Exaggerated
10 = Triangle
11 = Normal Sans
12 = Obtuse Sans
13 = Perp Sans
14 = Flared
15 = Rounded
3. Weight (12 variations)
0 = Any
1 = No Fit
2 = Very Light
3 = Light
4 = Thin
5 = Book
6 = Medium
7 = Demi
8 = Bold
9 = Heavy
10 = Black
11 = Nord
4. Proportion (10 variations)
0 = Any
1 = No Fit
2 = Old Style
3 = Modern
4 = Even Width
5 = Expanded
6 = Condensed
7 = Very Expanded
8 = Very Condensed
9 = Monospaced
5. Contrast (10 variations)
0 = Any
1 = No Fit
2 = None
3 = Very Low
4 = Low
5 = Medium Low
6 = Medium
7 = Medium High
8 = High
9 = Very High
6. Stroke Variation (9 variations)
0 = Any
1 = No Fit
2 = Gradual/Diagonal
3 = Gradual/Transitional
4 = Gradual/Vertical
5 = Gradual/Horizontal
6 = Rapid/Vertical
7 = Rapid/Horizontal
8 = Instant/Vertical
7. Arm Style (12 variations)
0 = Any
1 = No Fit
2 = Straight Arms/Horizontal
3 = Straight Arms/Wedge
4 = Straight Arms/Vertical
5 = Straight Arms/Single Serif
6 = Straight Arms/Double Serif
7 = Non-Straight Arms/Horizontal
8 = Non-Straight Arms/Wedge
9 = Non-Straight Arms/Vertical
10 = Non-Straight Arms/Single Serif
11 = Non-Straight Arms/Double Serif
8. Letterform (16 variations)
0 = Any
1 = No Fit
2 = Normal/Contact
3 = Normal/Weighted
4 = Normal/Boxed
5 = Normal/Flattened
6 = Normal/Rounded
7 = Normal/Off Center
8 = Normal/Square
9 = Oblique/Contact
10 = Oblique/Weighted
11 = Oblique/Boxed
12 = Oblique/Flattened
13 = Oblique/Rounded
14 = Oblique/Off Center
15 = Oblique/Square
9. Midline (14 variations)
0 = Any
1 = No Fit
2 = Standard/Trimmed
3 = Standard/Pointed
4 = Standard/Serifed
5 = High/Trimmed
6 = High/Pointed
7 = High/Serifed
8 = Constant/Trimmed
9 = Constant/Pointed
10 = Constant/Serifed
11 = Low/Trimmed
12 = Low/Pointed
13 = Low/Serifed
10. X-height (8 variations)
0 = Any
1 = No Fit
2 = Constant/Small
3 = Constant/Standard
4 = Constant/Large
5 = Ducking/Small
6 = Ducking/Standard
7 = Ducking/Large
When using the PANOSE number to match fonts, the ordering of the PANOSE digit
is the key to finding the closest match. The most significant digit is the
first digit, and the least significant digit is number ten. To find matches,
the digits need to be compared, in the order given. A font mapper may want to
change the precedence of the digits, to give higher weightings to other font
features.
ΓòÉΓòÉΓòÉ 2.5.5. Font Directory ΓòÉΓòÉΓòÉ
This section describes the directory section of a font resource. A font
resource contains a directory consisting of a set of structures each containing
the metrics of a font and a pointer to the font itself. This font directory is
generated by the resource compiler.
The format of the font directory is:
typedef struct {
USHORT usHeaderSize;
USHORT usnFonts;
USHORT usiMETRICS;
FONTENTRY fntEntry[1];
} FONTDIRECTORY;
typedef struct {
USHORT usIndex;
FONTFILEMETRICS metrics;
} FONTENTRY;
Where:
usHeaderSize The size of the header, in bytes.
usnFonts The number of fonts in the resource.
usiMetrics The size of the FOCAMETRICS structures that follow the header. Note
that the set of metrics for all the fonts in the resource follow the
header.
usIndex The index of a particular font; an identifier assigned to the font when
the resource was created (defined in the .RC file).
metrics The font metrics structure for the font. This is identical to a
FOCAMETRICS structure with the addition of the PANOSE fields to the end.
ΓòÉΓòÉΓòÉ 2.5.6. Definitions of Terms Used When Describing Fonts ΓòÉΓòÉΓòÉ
a-space, b-space, c-space
The a-space is the distance from the left of the character frame to the
left edge of the character. The b-space is the width of the character.
The c-space is the distance from the right edge of the character to the
right of the character frame. Negative values of a and c allow adjacent
character frames to overlap. See also character increment, and space
default values.
average char width
The average horizontal distance from the left edge of one character to the
left edge of the next. Contrast with max char increment.
baseline
The line on which the bottom of a character rests, and below which a
descender extends.
break char code point
The code point of the space or break character. Contrast with default char
code point, first char code point, and last char code point.
character increment
A set of three values (a-space, b-space, and c-space) that define the
proportions of a character. The sum of the three values (a+b+c) specifies
only one value for the entire character increment. See also font width and
space default values.
character rotation
The angle by which each character is rotated around its own center,
increasing clockwise from vertical. Contrast with character slope and
inline direction.
character slope
The angle by which a character is slanted, increasing clockwise from
vertical. Contrast with character rotation and inline direction.
default char code point
The code point of the character to be used if a code point outside the
range of a font is passed to an application using that font. Contrast with
break char code point, first char code point, and last char code point.
em height
The maximum distance above the baseline reached by an uppercase symbol.
Contrast with x height.
external leading
The vertical distance from the bottom of one character to the top of the
character below it. Contrast with internal leading and max baseline
extent.
first char code point
The code point of the first character. All numbers between the first char
code point and the last char code point must represent a character in the
font. Contrast with break char code point, default char code point, and
last char code point.
fixed spacing
The same amount of space separates each character. Contrast with
proportional spacing.
font weight
The line-thickness of a character relative to its size. Contrast with font
width.
font width
The relative width of a character to its height; condensed fonts are very
narrow while expanded fonts are very wide. See also character increment.
Contrast with font weight.
inline direction
The angle of a line of type, increasing clockwise from horizontal.
Contrast with character rotation and character slope.
internal leading
The vertical distance from the top or bottom of a character to any accent
marks that may appear with it. Contrast with external leading.
last char code point
The code point of the last character. All numbers between the first char
code point and the last char code point must represent a character in the
font. Contrast with break char code point, default char code point, and
first char code point.
lowercase ascent
The maximum distance above the baseline reached by any part of any
lowercase character. Contrast with maximum ascender and x height.
lowercase descent
The maximum distance below the baseline reached by any part of any
lowercase character. Contrast with maximum descender.
max baseline extent
The maximum space occupied by the font (typically, the sum of the maximum
ascender and maximum descender). Contrast with external leading and max
char increment.
max char increment
The maximum horizontal distance from the left edge of one character to the
left edge of the next character to the right. Contrast with average char
width and max baseline extent.
maximum ascender
The maximum distance that any part of any character may extend above the x
height of a font. Contrast with lowercase ascent and maximum descender.
maximum descender
The maximum distance that any part of any character may extend below the x
height of a font. Contrast with lowercase descent and maximum ascender.
maximum vert point size
The maximum vertical dimensions to which a font can be resized. Contrast
with minimum vert point size and nominal vert point size.
minimum vert point size
The minimum vertical dimensions to which a font can be resized. Contrast
with maximum vert point size and nominal vert point size.
nominal vert point size
The normal display size of a font. Contrast with maximum vert point size
and minimum vert point size.
pel
The smallest element of a display surface that can be independently
assigned color and density.
point
Printer's unit of measurement. There are 72 points to an inch
(approximately 3.5 points to a millimeter).
proportional spacing
The space that each character occupies is in proportion to its width. See
also font width. Contrast with fixed spacing.
Registry ID
A code number that Presentation Manager uses to register a font file as a
resource.
space default values
Values that specify the space to be left between characters. Once
defined, they are used for the entire font, and do not have to be
specified for each character. However, they can be changed for characters
that require more or less spacing than the defaults provide, by giving
values for the a Space and the c Space. See also character increment.
strikeout position
The distance of the strikeout character above the baseline (in pels). See
also strikeout size and underscore position.
strikeout size
The size of the strikeout character (in points). See also strikeout
position and underscore size.
subscript position
The distance of a subscript character of a font below the baseline (in
pels). See also subscript size and superscript position.
subscript size
The size of a subscript character (in points). See also subscript position
and superscript size.
superscript position
The distance of a superscript character above the baseline (in pels). See
also subscript position and superscript size.
superscript size
The size of a superscript character (in points). See also subscript size
and superscript position.
target dev resolution X
The number of pels per inch in the horizontal axis of a display device on
which a font is to be displayed. Contrast with target dev resolution Y.
target dev resolution Y
The number of pels per inch in the vertical axis of a display device on
which a font is to be displayed. Contrast with target dev resolution X.
underscore position
The distance in pels of the first underscore stroke from the baseline of a
font. Successive strokes below this create a heavier underscore. See also
strikeout position and underscore size.
underscore size
The size of the underscore character measured in single strikeout strokes.
See also strikeout size and underscore position.
x height
The maximum distance above the baseline reached by a lowercase character.
Contrast with em height and lowercase ascent.
ΓòÉΓòÉΓòÉ 2.6. Fonts Supplied with OS/2 ΓòÉΓòÉΓòÉ
OS/2 outline fonts and Presentation Manager bit map fonts are supplied by the
operating system.
OS/2 Outline Fonts
The following Adobe** Type 1 fonts are supplied with OS/2:
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
ΓöéFamily Name ΓöéFace Name Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéTimes New Roman ΓöéTimes New Roman Γöé
Γöé ΓöéTimes New Roman Bold Γöé
Γöé ΓöéTimes New Roman Bold Italic Γöé
Γöé ΓöéTimes New Roman Italic Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéHelvetica** ΓöéHelvetica Γöé
Γöé ΓöéHelvetica Bold Γöé
Γöé ΓöéHelvetica Bold Italic Γöé
Γöé ΓöéHelvetica Italic Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéCourier ΓöéCourier Γöé
Γöé ΓöéCourier Bold Γöé
Γöé ΓöéCourier Bold Italic Γöé
Γöé ΓöéCourier Italic Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéSymbol ΓöéSymbol Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
The Courier, Tms Rmn, and Swiss family fonts that were supplied with OS/2
release 1.1 and 1.2 are no longer supplied. Using one of the old names results
in one of the new fonts listed above being used, as follows:
Old Family/
Face Name Font Used
Roman/Tms Rmn Times New Roman
Swiss/Helv Helvetica
These fonts are provided in an efficient binary format for use by the OS/2
Adobe Type Manager. They are also provided in standard Type 1 format (PFB and
AFM) for use with the OS/2 Postscript** printer device driver.
Presentation Manager Bit Map Fonts
The following tables list all system bit map fonts available using the Graphics
Programming Interface. The first table applies to hardware that does not
conform to the International Standards Organization (ISO) 9241. (See
International Standards Organization (ISO) 9241 for more information on ISO
9241.) The second table lists the fonts supplied with OS/2 for IBM hardware
that does conform to ISO 9241.
During system installation, the operating system determines the type of display
adapter available on your computer and installs only the fonts which match the
device resolution. Since additional device bit map fonts may be available on
specific devices, you may have to install the correct bit map fonts if you
change your display device after the operating system is installed.
Fonts Supplied for ISO 9241 Non-Conforming Hardware
The following information for each font is included in the table:
Points
This is the point size of the font, on a device whose resolution matches
that of the font, (see "Device" below).
Ave Wid
This is the average width in pels of alphabetic characters weighted
according to US English letter frequencies.
Max Wid
This is the maximum width in pels of all characters in the font. This field
is not necessarily the maximum width of any character in the code page. It
could be used to ensure that the horizontal space allocated on a display or
printer is big enough to handle any character.
Height
This is the height in pels of the font. This is the minimum number of rows
of pels needed to output any character of the font on a given baseline.
This field may be larger than necessary for a given code page. It could be
used to ensure that the vertical space allocated on a display or printer is
big enough to handle any character.
Device
This is the X and Y resolution in pels per inch at which the font is
intended to be used. Only those fonts which match the device resolution of
the installed display driver are available on the system. If the installed
display is changed, the install process will reinstall the proper font sets
for the new adapter. The IBM devices whose device drivers report these
resolutions are:
96 x 48 CGA
96 x 72 EGA
96 x 96 VGA and XGA (in 640 x 480 mode)
120 x 120 8514/A and XGA (in 1024 x 768 mode)
Note: These values are approximate representations of the actual
resolution, which in the case of displays depends on which monitor is
attached. Consequently the point size of characters on the screen is
also approximate.
The following table applies to hardware that does not conform to ISO 9241.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
ΓöéFamily ΓöéFace Name ΓöéPoints ΓöéAve WidΓöéMax WidΓöéHeightΓöéDevice Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéCourierΓöéCourier Γöé8 Γöé8 Γöé8 Γöé7 Γöé96x48 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé8 Γöé8 Γöé10 Γöé96x72 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé8 Γöé8 Γöé13 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé9 Γöé9 Γöé16 Γöé120x120Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé10 Γöé9 Γöé9 Γöé8 Γöé96x48 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé9 Γöé9 Γöé12 Γöé96x72 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé9 Γöé9 Γöé16 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé12 Γöé12 Γöé20 Γöé120x120Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé12 Γöé12 Γöé12 Γöé10 Γöé96x48 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé12 Γöé12 Γöé15 Γöé96x72 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé12 Γöé12 Γöé20 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé15 Γöé15 Γöé25 Γöé120x120Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéSystem ΓöéSystem Γöé8 Γöé6 Γöé20 Γöé8 Γöé96x48 Γöé
ΓöéPro- ΓöéProportional Γöé Γöé Γöé Γöé Γöé Γöé
ΓöéportionΓöé Γöé Γöé Γöé Γöé Γöé Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé10 Γöé6 Γöé20 Γöé12 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé10 Γöé6 Γöé20 Γöé16 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé10 Γöé8 Γöé23 Γöé20 Γöé120x120Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé11 Γöé10 Γöé23 Γöé23 Γöé120x120Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéSystem ΓöéSystem Γöé8 Γöé8 Γöé8 Γöé8 Γöé96x48 Γöé
ΓöéMono- ΓöéMonospaced Γöé Γöé Γöé Γöé Γöé Γöé
Γöéspaced Γöé Γöé Γöé Γöé Γöé Γöé Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé10 Γöé8 Γöé8 Γöé12 Γöé96x72 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé10 Γöé8 Γöé8 Γöé16 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé10 Γöé9 Γöé9 Γöé20 Γöé120x120Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéHelv ΓöéHelv Γöé8 Γöé5 Γöé13 Γöé6 Γöé96x48 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé5 Γöé13 Γöé10 Γöé96x72 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé5 Γöé13 Γöé13 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé6 Γöé14 Γöé16 Γöé120x120Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé10 Γöé6 Γöé15 Γöé8 Γöé96x48 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé6 Γöé14 Γöé12 Γöé96x72 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé6 Γöé14 Γöé16 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé7 Γöé20 Γöé20 Γöé120x120Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé12 Γöé7 Γöé17 Γöé10 Γöé96x48 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé7 Γöé17 Γöé15 Γöé96x72 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé7 Γöé17 Γöé20 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé9 Γöé21 Γöé25 Γöé120x120Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé14 Γöé8 Γöé21 Γöé12 Γöé96x48 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé8 Γöé21 Γöé18 Γöé96x72 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé8 Γöé21 Γöé24 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé11 Γöé26 Γöé29 Γöé120x120Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé18 Γöé11 Γöé26 Γöé15 Γöé96x48 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé10 Γöé26 Γöé22 Γöé96x72 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé11 Γöé26 Γöé29 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé13 Γöé34 Γöé36 Γöé120x120Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé24 Γöé14 Γöé35 Γöé19 Γöé96x48 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé14 Γöé35 Γöé28 Γöé96x72 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé14 Γöé35 Γöé37 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé18 Γöé45 Γöé46 Γöé120x120Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéTms RmnΓöéTms Rmn Γöé8 Γöé4 Γöé12 Γöé6 Γöé96x48 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé4 Γöé13 Γöé10 Γöé96x72 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé4 Γöé12 Γöé13 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé5 Γöé14 Γöé16 Γöé120x120Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé10 Γöé6 Γöé15 Γöé8 Γöé96x48 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé5 Γöé14 Γöé12 Γöé96x72 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé5 Γöé14 Γöé16 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé7 Γöé19 Γöé20 Γöé120x120Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé12 Γöé7 Γöé18 Γöé10 Γöé96x48 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé6 Γöé18 Γöé15 Γöé96x72 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé6 Γöé16 Γöé19 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé8 Γöé23 Γöé23 Γöé120x120Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé14 Γöé7 Γöé21 Γöé11 Γöé96x48 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé7 Γöé21 Γöé16 Γöé96x72 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé7 Γöé20 Γöé21 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé10 Γöé26 Γöé27 Γöé120x120Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé18 Γöé10 Γöé26 Γöé14 Γöé96x48 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé10 Γöé26 Γöé20 Γöé96x72 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé10 Γöé26 Γöé27 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé12 Γöé34 Γöé33 Γöé120x120Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé24 Γöé14 Γöé35 Γöé18 Γöé96x48 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé13 Γöé35 Γöé26 Γöé96x72 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé13 Γöé35 Γöé35 Γöé96x96 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé Γöé Γöé Γöé16 Γöé46 Γöé43 Γöé120x120Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
Fonts Supplied for ISO 9241 Conforming Hardware
The following table lists the fonts and sizes that have been tested and
certified as passing the ISO 9241 black text on white background criteria for
the three IBM displays that conform to the standard. These displays are:
o 9515 - A 14 inch XGA display.
o 9517 - A 17 inch XGA display.
o 9518 - A 14 inch VGA display.
See International Standards Organization (ISO) 9241 for information on ISO
9241.
The following information about each font is also included in the table:
P
The point size of the font.
AW
The average character width in pels in the font.
MW
The maximum character width in pels in the font.
HE
The height in pels of the font (maximum baseline extent).
Device
The X and Y resolution in pels per inch on the device the font is intended
to be used. The IBM devices whose device drivers report these resolutions
are:
96 x 96 VGA and XGA (in 640 x 480 mode)
120 x 120 XGA (in 1024 x 768 mode)
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
ΓöéFamily ΓöéFace NamΓöéP AW MW HE ΓöéDevice Γöé9515 9517 9518 Γöé
ΓöéName Γöé Γöé Γöé Γöé Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéCourier ΓöéCourier Γöé 8 8 8 13 Γöé 96 96 ΓöéNo No No Γöé
Γöé ΓöéISO Γöé 8 10 10 16 Γöé120 120 ΓöéNo No n/a Γöé
Γöé Γöé Γöé 9 8 8 15 Γöé 96 96 ΓöéYes Yes Yes Γöé
Γöé Γöé Γöé10 10 10 16 Γöé 96 96 ΓöéYes Yes Yes Γöé
Γöé Γöé Γöé10 12 12 20 Γöé120 120 ΓöéNo No n/a Γöé
Γöé Γöé Γöé12 12 12 20 Γöé 96 96 ΓöéYes Yes Yes Γöé
Γöé Γöé Γöé12 15 15 25 Γöé120 120 ΓöéYes Yes n/a Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéHelv ΓöéHelv ISOΓöé 8 5 13 13 Γöé 96 96 ΓöéNo No No Γöé
Γöé Γöé Γöé 8 7 14 16 Γöé120 120 ΓöéNo No n/a Γöé
Γöé Γöé Γöé 9 6 13 15 Γöé 96 96 ΓöéYes Yes Yes Γöé
Γöé Γöé Γöé 9 8 20 21 Γöé120 120 ΓöéYes Yes n/a Γöé
Γöé Γöé Γöé10 7 14 16 Γöé 96 96 ΓöéYes Yes Yes Γöé
Γöé Γöé Γöé10 9 20 21 Γöé120 120 ΓöéYes Yes n/a Γöé
Γöé Γöé Γöé12 9 17 20 Γöé 96 96 ΓöéYes Yes Yes Γöé
Γöé Γöé Γöé12 10 21 25 Γöé120 120 ΓöéYes Yes n/a Γöé
Γöé Γöé Γöé14 10 21 24 Γöé 96 96 ΓöéYes Yes Yes Γöé
Γöé Γöé Γöé14 12 26 29 Γöé120 120 ΓöéYes Yes n/a Γöé
Γöé Γöé Γöé18 12 26 29 Γöé 96 96 ΓöéYes Yes Yes Γöé
Γöé Γöé Γöé18 15 34 36 Γöé120 120 ΓöéYes Yes n/a Γöé
Γöé Γöé Γöé24 14 34 36 Γöé 96 96 ΓöéYes Yes Yes Γöé
Γöé Γöé Γöé24 19 45 46 Γöé120 120 ΓöéYes Yes n/a Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéTms Rmn ΓöéTms Rmn Γöé 8 5 12 13 Γöé 96 96 ΓöéNo No No Γöé
Γöé ΓöéISO Γöé 8 7 15 16 Γöé120 120 ΓöéNo No n/a Γöé
Γöé Γöé Γöé 9 6 12 15 Γöé 96 96 ΓöéYes Yes Yes Γöé
Γöé Γöé Γöé10 7 14 16 Γöé 96 96 ΓöéYes Yes Yes Γöé
Γöé Γöé Γöé10 8 17 19 Γöé120 120 ΓöéNo Yes n/a Γöé
Γöé Γöé Γöé12 8 16 19 Γöé 96 96 ΓöéYes Yes Yes Γöé
Γöé Γöé Γöé12 10 23 22 Γöé120 120 ΓöéYes Yes n/a Γöé
Γöé Γöé Γöé14 9 23 22 Γöé 96 96 ΓöéYes Yes Yes Γöé
Γöé Γöé Γöé14 11 26 27 Γöé120 120 ΓöéYes Yes n/a Γöé
Γöé Γöé Γöé18 11 26 27 Γöé 96 96 ΓöéYes Yes Yes Γöé
Γöé Γöé Γöé18 14 34 34 Γöé120 120 ΓöéYes Yes n/a Γöé
Γöé Γöé Γöé24 14 34 34 Γöé 96 96 ΓöéYes Yes Yes Γöé
Γöé Γöé Γöé24 17 46 43 Γöé120 120 ΓöéYes Yes n/a Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéSystem ΓöéSystem Γöé 9 6 13 15 Γöé 96 96 ΓöéYes Yes Yes Γöé
ΓöéPropor- ΓöéPropor- Γöé10 6 20 16 Γöé 96 96 ΓöéYes Yes Yes Γöé
Γöétional Γöétional Γöé10 8 23 20 Γöé120 120 ΓöéNo Yes n/a Γöé
Γöé Γöé Γöé12 10 23 22 Γöé120 120 ΓöéYes Yes n/a Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéSystem ΓöéSystem Γöé10 8 8 16 Γöé 96 96 ΓöéYes Yes Yes Γöé
ΓöéMono- ΓöéMono- Γöé10 10 10 21 Γöé120 120 ΓöéYes Yes n/a Γöé
Γöéspaced Γöéspaced Γöé Γöé Γöé Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
See International Standards Organization (ISO) 9241 for more information on ISO
9241.
ΓòÉΓòÉΓòÉ 2.6.1. International Standards Organization (ISO) 9241 ΓòÉΓòÉΓòÉ
ISO 9241 is an international standard covering health and safety in the work
place for users of visual display terminals. Part 3 of this standard covers
clarity and legibility of text displayed on computer screens; it places
requirements on minimum sizes and luminance contrast. The presence of the
FM_SEL_ISO9241_TESTED flag in the FONTMETRICS structure indicates that the font
has been tested for ISO compliance.
Note: While the fonts were primarily tested for meeting the ISO standard, they
have also been designed to meet the German standard DIN 66 234. Where
the two standards differ, the fonts have been designed to meet the
stricter requirement.
The FM_ISO_xxx flags indicate the results of the test on the three IBM displays
that conform to the standard. These are the IBM 9515, 9517, and 9518 color
displays at the supported resolutions of 640 x 480 and 1024 x 768. To determine
whether a non-IBM display complies with ISO 9241, contact the manufacturer. The
current display type can be established using VioGetConfig.
In order for applications to meet the standard, they have to ensure that they
use only fonts that have been tested and passed. You can determine this by
examining the new FM_SEL_ISO9241_TESTED flag in the usSelection parameter in
the FONTMETRICS structure, the FM_ISO_xxx flags and the sXDeviceRes and
sYDevicesRes fields in the structure.
See Fonts Supplied with OS/2 for the table describing ISO 9241 compliant fonts.
ΓòÉΓòÉΓòÉ 2.7. Initialization File Information ΓòÉΓòÉΓòÉ
Initialization files include information about printers, queues, and system
preferences set by the user from the control panel. Applications can query
this information by using the PrfQueryProfileData, PrfQueryProfileInt,
PrfQueryProfileSize, and PrfQueryProfileString functions.
All data in initialization files is accessed by a two-level hierarchy of
application name, and key name within an application. Presentation Manager
system data is keyed off "applications" that have names starting with PM_.
The application name/key name combinations that applications may need to use
are listed below, together with the definition of the corresponding data.
Note: Information that is prefixed with PM_SPOOLERxxxx can not always be
modified directly: The spooler validates all attempts to write
information to the INI file that it depends on.
Application name "PM_ControlPanel"
Key name "Beep"
Type integer
Content/value 1 or 0.
Application name "PM_ControlPanel"
Key name "LogoDisplayTime"
Type integer
Content/value -1 <= time <= 32767 milliseconds.
Indefinite display -1
No display 0
Timed display >0
Application name "PM_ControlPanel"
Key name "cxDoubleClick"
Type integer
Content/value SV_CXDBLCLK size in pels.
Application name "PM_ControlPanel"
Key name "cyDoubleClick"
Type integer
Content/value SV_CYDBLCLK size in pels.
Application name "PM_ControlPanel"
Key name "cxMotionStart"
Type integer
Content/value SV_CXMOTIONSTART size in pels.
Application name "PM_ControlPanel"
Key name "cyMotionStart"
Type integer
Content/value SV_CYMOTIONSTART size in pels.
Application name "PM_National"
Key name "iCountry"
Type integer
Content/value country code:
Arabic 785
Australian 61
Belgian 32
Canadian-French 2
Danish 45
Finnish 358
French 33
German 49
Hebrew 972
Italian 39
Japanese 81
Korean 82
Latin-American 3
Netherlands 31
Norwegian 47
Portuguese 351
Simpl. Chinese 86
Spanish 34
Swedish 46
Swiss 41
Trad. Chinese 88
UK-English 44
US-English 1
Other country 0.
Application name "PM_National"
Key name "iDate"
Type integer
Content/value 0=MDY; 1=DMY; 2=YMD.
Application name "PM_National"
Key name "iCurrency"
Type integer
Content/value Values have the following meanings:
0 Prefix, no separator
1 Suffix, no separator
2 Prefix, 1 character separator
3 Suffix, 1 character separator.
Application name "PM_National"
Key name "iDigits"
Type integer
Content/value n = number of decimal digits.
Application name "PM_National"
Key name "iTime"
Type integer
Content/value 0 = 12-hour clock; 1 = 24-hour clock.
Application name "PM_National"
Key name "iLzero"
Type integer
Content/value 0 = no leading zero; 1 = leading zero.
Application name "PM_National"
Key name "s1159"
Type string
Content/value "am" for example. 3 chars max.
Application name "PM_National"
Key name "s2359"
Type string
Content/value "pm" for example. 3 chars max.
Application name "PM_National"
Key name "sCurrency"
Type string
Content/value "$" for example. 3 chars max.
Application name "PM_National"
Key name "sThousand"
Type string
Content/value "," for example. 1 char max.
Application name "PM_National"
Key name "sDecimal"
Type string
Content/value "." for example. 1 char max.
Application name "PM_National"
Key name "sDate"
Type string
Content/value "/" for example. 1 char max.
Application name "PM_National"
Key name "sTime"
Type string
Content/value ":" for example. 1 char max.
Application name "PM_National"
Key name "sList"
Type string
Content/value "," for example. 1 char max.
Application name PM_Fonts
Key name <Font module name>
Type string
Content/value fully-qualified drive:\path\filename.ext.
Application name "PM_SPOOLER"
Key name "QUEUE"
Type string
Content/value <Queue name>;
where:
o <Queue name> is the name of the default queue (might be NULL). This must
be a key name for the PM_SPOOLER_QUEUE application.
Application name "PM_SPOOLER"
Key name " PRINTER"
Type string
Content/value <Printer name>;
where:
o <Printer name> is the name of the default printer (might be NULL).
Note: Use the SplQueryDevice and SplQueryQueue functions to retrieve the
spooler configuration data.
ΓòÉΓòÉΓòÉ 2.8. Interchange File Format ΓòÉΓòÉΓòÉ
A metafile is a file in which graphics are stored. The file is
application-created, and it contains the graphics orders generated from those
GPI calls that are valid in a metafile. Metafiled graphics can be reused by
the application that created them. They can also be made available to other
applications at the same, or at a different, workstation.
This section describes the restrictions which apply when generating the
metafile and gives detail of the overall structure. For the graphics orders
descriptions, see Graphics Orders.
ΓòÉΓòÉΓòÉ 2.8.1. Metafile Restrictions ΓòÉΓòÉΓòÉ
The following restrictions apply to the generation of all metafiles, and also
to the generation of a PM_Q_STD print file to a OD_QUEUED device:
o If GpiWCBitBlt or GpiBitBlt is used to copy a bit map to a device context in
an application, the application should not delete that bit map handle with
GpiDeleteBitmap before the device context is closed (metafile is closed).
o GpiSetPS must not be used.
o GpiSetPageViewport is ignored.
The following section lists some general rules that must be followed when
creating a metafile that is to be acceptable to SAA-conforming implementations,
or replayed into a presentation space that is in draw-and-retain or retain mode
(see GpiSetDrawingMode).
o These items must be established or defaulted before any drawing occurs to the
graphics presentation space, and not changed subsequently:
- The graphics field (GpiSetGraphicsField). For an SAA-conforming metafile,
the graphics field must be defaulted or set to no clipping.
- The code page for the default character set (GpiSetCp).
- The color table or palette (GpiCreateLogColorTable or GpiCreatePalette).
The size of the color table must not exceed 31KB (KB equals 1024 bytes).
- The default viewing transform (GpiSetDefaultViewMatrix).
- The setting of the draw controls (GpiSetDrawControl). DCTL_DISPLAY must be
defaulted or set ON.
- The default values of attributes (see GpiSetDefAttrs), viewing limits (see
GpiSetDefViewingLimits), primitive tag (see GpiSetDefTag) and arc
parameters (see GpiSetDefArcParams).
o These calls should not be used:
- GpiBitBlt
- GpiDeleteSetId (note that this means that local identifiers cannot be used
again within the picture)
- GpiErase
- GpiExcludeClipRectangle
- GpiIntersectClipRectangle
- GpiOffsetClipRegion
- GpiPaintRegion
- GpiResetPS
- GpiSetClipRegion
- GpiSetPel
- GpiSetPS
- DevEscape (for an escape which is metafiled).
o GpiCreateLogFont must not redefine a local identifier that has previously
been used within the picture.
o The metafile context must not be reassociated.
o If a bit map is used as the source of a GpiWCBitBlt operation, or as an
area-fill pattern, it must not be modified or deleted (GpiDeleteBitmap)
before the metafile is closed.
o Only these foreground mixes must be used (see GpiSetMix):
- FM_DEFAULT
- FM_OR
- FM_OVERPAINT
- FM_LEAVEALONE.
o Only these background mixes must be used (see GpiSetBackMix):
- BM_DEFAULT
- BM_OVERPAINT
- BM_LEAVEALONE.
o If palettes are used (see GpiCreatePalette), the palette that is metafiled is
the one in force when the metafile device context is dissociated from the
(final) presentation space. If the palette is changed during the course of
the picture (using GpiSetPaletteEntries), it must therefore only be with
incremental additions.
Note: There is no restriction concerning the use of primitives outside
segments. These are metafiled in segment(s) with zero identifier.
ΓòÉΓòÉΓòÉ 2.8.2. Metafile Data Format ΓòÉΓòÉΓòÉ
This section describes the format of the data in a metafile, as it would be
stored in an OS/2 disk file.
Metafile data is stored as a sequence of structured fields. Each structured
field starts with an eight-byte header consisting of a two-byte length field
and a three-byte identifier field. These are followed by a one-byte flags field
and a two-byte segment sequence number field.
The length field contains a count of the total number of bytes in the
structured field, including the length field. The identifier field uniquely
identifies the type of the structured field.
The flags and segment sequence number fields are always zero.
Following the header are positional parameters that are optional and dependent
on the particular structured field.
Following the positional parameters are non-positional parameters called
triplets. These are self-defining parameters and consist of a one-byte length
field, followed by a one-byte identifier field, followed by the data of the
parameter.
The length field contains a count of the total number of bytes in the triplet,
including the length and identifier fields. The identifier field identifies
uniquely the type of the triplet.
A metafile is structured into a number of different functional components; for
example, document and graphics object. Each component comprises a number of
structured fields, and is delimited by "begin-component" and "end-component"
structured fields. Structured fields marked as required, inside an optional
structured field bracket, are required if the containing bracket is present.
The graphics orders that describe a picture occur in the graphics data
structured field. See Structured Field Formats.
ΓòÉΓòÉΓòÉ 2.8.3. Structured Field Formats ΓòÉΓòÉΓòÉ
Following is the format of the various structured fields:
Begin Document
Structured Field Introducer (BDT): required
0-1 Length X'n+1E'
2-4 BDT X'D3A8A8'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Document name C'0000 0001'
8 Architecture version X'00'
9 Document security X'00'
Triplets (all required)
0 Length X'05'
1 Triplet Id X'18'
2 Interchange set type X'03' (resource document)
3-4 Base set definition X'0C00' (level 12, version 0)
0 Length X'06'
1 Triplet Id X'01'
2-5 GCID
0 Length X'n+1'
1 Triplet Id X'65'
2-n Comment, used for metafile description of
up to 252 bytes.
Begin Resource Group (BRG): required
Structured Field Introducer
0-1 Length X'0010'
2-4 BRG X'D3A8C6'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Resource group name C'0000 0002'
Begin Color Attribute (BCA) Table: required
Structured Field Introducer
0-1 Length X'0010'
2-4 BCA X'D3A877'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Color table name C'0000 0004'
Color Attribute Table (CAT): required
Structured Field Introducer
0-1 Length X'n+8'
2-4 CAT X'D3B077'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
Base Part (required)
0 Flags
0 Reserved B'0'
1 Reset
B'0' Do not reset to default
B'1' Do reset to default
2-7 Reserved B'000000'
1 Reserved X'00'
2 LCTID X'00'
Element list(s) (triple generating) are
mutually-exclusive. One or other is required.
Element List (repeating)
0 Length of this parameter
1 Type X'01': element list
2 Flags X'00': reserved
3 Format
X'01' RGB
4-6 Starting Index
(Top Byte Truncated)
7 Size of RGB component1 X'08'
8 Size of RGB component2 X'08'
9 Size of RGB component3 X'08'
10 Number of bytes in each
following color triple X'04'
11-m Color triples
Triple Generating
0 Length of this parameter X'0A'
1 Type X'02': bit generator
2 Flags
0 ABFlag
B'0' Normal
1-7 Reserved B'0000000'
3 Format
X'01' RGB
4-6 Starting index (top byte truncated)
7 Size of RGB component1 X'08'
8 Size of RGB component2 X'08'
9 Size of RGB component3 X'08'
End Color Attribute (ECA) Table: required
Structured Field Introducer
0-1 Length X'0010'
2-4 ECA X'D3A977'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Color table name C'0000 0004'
Begin Image Object (BIM): optional, repeating
Structured Field Introducer
0-1 Length X'0010'
2-4 BIM X'D3A8FB'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Image name C'xxxx xxxx'
Begin Resource Group (BRG): optional
Structured Field Introducer
0-1 Length X'0010'
2-4 BRG X'D3A8C6'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Resource group name C'xxxx xxxx'
Color Attribute Table (BCA): optional
Structured Field Introducer
0-1 Length X'0010'
2-4 BCA X'D3A877'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Color table name C'xxxx xxxx'
Color Attribute Table (CAT): required
Structured Field Introducer
0-1 Length
2-4 CAT X'D3B077'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
Base Part
0 Flags X'00'
1 Reserved X'00'
2 LUTID
Element List (repeating)
0 Length of this parameter
1 Type X'01': element list
2 Flags X'00': reserved
3 Format X'01': RGB
4-6 Starting index
(top byte truncated)
7 Size of RGB component1 X'08'
8 Size of RGB component2 X'08'
9 Size of RGB component3 X'08'
10 Number of bytes in each
following color triple X'03'
11-n Color triples
End Color Attribute Table (ECA): required if BCA present
Structured Field Introducer
0-1 Length X'0010'
2-4 ECA X'D3A977'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Color Table name C'xxxx xxxx'
End Resource Group (ERG): required if BRG present
Structured Field Introducer
0-1 Length X'0010'
2-4 ERG X'D3A9C6'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Resource Group name C'xxxx xxxx'
Begin Object Environment Group (BOG): optional
Structured Field Introducer
0-1 Length X'0010'
2-4 BOG X'D3A8C7'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Object environment group
name C'xxxx xxxx'
Map Color Attribute (MCA) Table: required
Structured Field Introducer
0-1 Length X'001A'
2-4 MCA X'D3AB77'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-1 Length
Triplet (required)
0 Length X'0C'
1 Triplet type:
fully qualified name X'02'
2 Type: ref to
Begin Resource Object X'84'
3 ID X'00'
4-11 Color table name C'xxxx xxxx'
lcid (required)
0 Length X'04'
1 Triplet type:
resource local ID X'24'
2 Type color table resource X'07'
3 Local identifier (LUT-ID) X'01'
End Object Environment Group (EOG): required if BOG present
Structured Field Introducer
0-1 Length X'0010'
2-4 EOG X'D3A9C7'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Object Environment Group
name C'xxxx xxxx'
Image Data Descriptor (IDD): required
Structured Field Introducer
0-1 Length X'0011'
2-4 IDD X'D3A6FB'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0 Unit of measure:
X'00' tens of inches
X'01' tens of centimeters
1-2 X resolution image points / UOM
3-4 Y resolution image points / UOM
5-6 X extent of image PS
7-8 Y extent of image PS
Image Picture Data (IPD): required
Structured Field Introducer
0-1 Length
2-4 IPD X'D3EEFB'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters (all required and in this order, except that only one of
Image LUT-ID and IDE structure is present)
Begin Segment
0 Type X'70': begin segment
1 Length of following X'00'
Begin Image Content
0 Type X'91': Begin Image Content
1 Length of following X'01'
2 Format X'FF'
Image Size
0 Type X'94': image size
1 Length of following X'09'
2 Units of measure X'02': logical
3-4 Horizontal resolution
5-6 Vertical resolution
7-8 Height in pels
9-10 Width in pels
Image Encoding
0 Type X'95': image encoding
1 Length of following X'02'
2 Compression algorithm X'03': none
3 Recording algorithm X'03':
bottom-to-top
Image IDE-Size
0 Type X'96': image IDE-Size
1 Length of following X'01'
2 Number of bits per element
Image LUT-ID
(For bit maps with other than
24 bits per pel)
0 Type X'97' Image LUT-ID
1 Length of following X'01'
2 LUT-ID
IDE Structure
(For bit maps with 24 bits per pel)
0 Type X'9B': IDE structure
1 Length of following X'08'
2 Flags:
0 ABFlag
B'0' Normal (Additive)
1-7 Reserved B'0000000'
3 Format
X'01' RGB
4-6 Reserved X'000000'
7 Size of element 1
8 Size of element 2
9 Size of element 3
Image Picture Data (IPD): required, repeating
Structured Field Introducer
0-1 Length
2-4 IPD X'D3EEFB'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
Image Data
0-1 Type X'FE92': image data
2-3 Length of following
4-n Image data (scan lines of bit maps)
End Image Content
(required, only present in last
Image Picture Data)
0 Type X'93': End Image Content
1 Length of following X'00'
End Segment
(required, only present in last
Image Picture Data)
0 Type X'71': end segment
1 Length of following X'00'
End Image Object (EIM): required if BIM present
Structured Field Introducer
0-1 Length X'0010'
2-4 EIM X'D3A9FB'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Image name C'xxxx xxxx'
Begin Graphics Object (BGR): required
Structured Field Introducer
0-1 Length X'0010'
2-4 BGR X'D3A8BB'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Graphics object name C'0000 0007'
Begin Object Environment Group (BOG): optional
Structured Field Introducer
0-1 Length X'0010'
2-4 BOG X'D3A8C7'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Object Environment Group
name C'0000 0007'
Map Color Attribute Table (MCA): required
Structured Field Introducer
0-1 Length X'0016'
2-4 MCA X'D3AB77'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-1 Length
Triplet (required)
0 Length X'0C'
1 Triplet type:
fully qualified name X'02'
2 Type: ref to
Begin Resource Object X'84'
3 ID X'00'
4-11 Color table name C'0000 0004'
Map Coded Font (MCF): required, for default font
Structured Field Introducer
0-1 Length X'20'
2-4 MCF X'D3AB8A'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-1 Length
Triplets (required)
Font name
0 Length X'0C'
1 Triplet type:
fully qualified name X'02'
2 Type: ref to coded font X'84'
3 ID X'00'
4-11 Coded font name: C'nnxx xxxx'
where n is X'FF'
lcid
0 Length X'04'
1 Triplet type:
Resource Local ID X'24'
2 Type: Coded Font Resource X'05'
3 Local identifier (LCID) X'00'
Font Binary GCID
0 Length X'06'
1 Triplet type: Font Binary GCID X'20'
2-5 GCID
Map Coded Font (MCF): optional, repeating, for loaded fonts
Structured Field Introducer
0-1 Length X'58'
2-4 MCF X'D3AB8A'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-1 Length
Triplets (required)
Font name
0 Length X'0C'
1 Triplet type:
fully qualified name X'02'
2 Type: ref to coded font X'84'
3 ID X'00'
4-11 Coded font name
lcid
0 Length X'04'
1 Triplet type:
Resource Local ID X'24'
2 Type: coded font resource X'05'
3 Local identifier (LCID)
Font Attributes
0 Length X'14'
1 Triplet type:
Font Descriptor X'1F'
2 Weight Class
3 Width Class
4-5 Font Height
6-7 Char Width
8 Descript Flags
9 Usage Codes
10 Family
11 Activity Class
12 Font Quality
13-14 CAP Height
15-16 X Height
17-18 Line Density
19 Use Flags
Font Binary GCID
0 Length X'06'
1 Triplet type:
Font Binary GCID X'20'
2-5 GCID
Font Typeface
0 Length X'24'
1 Triplet type:
fully qualified name X'02'
2 Type: ref to font typeface X'08'
3 ID X'00'
4-35 Font typeface C'xxx..xxx'
Map Data Resource (MDR): optional, repeating
Structured Field Introducer
0-1 Length X'1D'
2-4 MDR X'D3ABC3'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-1 Length
Triplets (required)
Bit-map Name
0 Length X'0C'
1 Triplet type:
fully qualified name X'02'
2 Type: ref to Image Object X'84'
3 ID X'00'
4-11 Image name C'xxxx xxxx'
Extended Resource lcid
0 Length X'07'
1 Triplet type:
Extended Resource Local ID X'22'
2 Type: Image Resource X'10'
3-6 Bit-map handle
End Object Environment Group (EOG): required if BOG present
Structured Field Introducer
0-1 Length X'0010'
2-4 EOG X'D3A9C7'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Object Environment Group name C'0000 0007'
Graphics Data Descriptor (GDD): required
Structured Field Introducer
0-1 Length X'nnnn'
2-4 GDD X'D3A6BB'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters (all required and in this order)
0 X'F7' Specify GVM Subset
1 Length of following data X'07'
2 X'B0' drawing order subset
3-4 X'0000'
5 X'23' Level 3.2
6 X'01' Version 1
7 Length of following field X'01'
8 Coordinate types in data
X'04' Intel16
X'05' Intel32
0 X'F6' Set Picture Descriptor
1 Length of following data
2 Flags
0 B'0' Picture in 2D
1 Picture Dimensions
B'0' Not absolute (PU_ARBITRARY PS)
B'1' Absolute (example: PU_TWIPS PS)
2 Picture Elements
B'0' Not pels
B'1' pels (PU_PELS PS)
(Bit 1 must also be set)
3-7 B'00000'
3 X'00' Reserved
4 Picture frame size coordinate type
X'04' Intel16
X'05' Intel32
5 UnitsOfMeasure
X'00' Ten inches
X'01' Decimeter
6-11 or 6-17 (2 or 4 bytes) Resolution.
GPS Units / UOM on x axis
GPS Units / UOM on y axis
GPS Units / UOM on z axis
12-23 or 18-41 (2 or 4 bytes) Window Size.
GPS X left, X right
GPS Y bottom, Y top
GPS Z near, Z far
0 X'21' Set Current Defaults
1 Length of following data
2 Set Default Parameter Format X'08'
3-4 Mask X'E000'
5 Names X'8F'
6 Coordinates
X'00' Picture in 2D
7 Transforms
X'04' Intel16
X'05' Intel32
8 Geometrics
X'04' Intel16
X'05' Intel32
0 X'21' Set Current Defaults
1 Length of following data
2 Set default viewing transform X'07'
3-4 Mask X'CC0C'
5 Names X'8F'
6-n M11, M12, M21, M22, M41, M42 Matrix
elements
0 X'21' Set Current Defaults
1 Length of following data
2 Set default line attributes X'01'
3-4 Mask - OR of as many of the following
bits as are required:
X'8000' Line type
X'4000' Line width
X'2000' Line end
X'1000' Line join
X'0800' Stroke width
X'0008' Line color
X'0002' Line mix
5 Flags
X'0F' Set indicated default attributes
to initial values.
(Data field is not present in this instance).
X'8F' Set indicated default attributes
to specified values.
6-n Data - Data values as required, in the
following order if present.
No space is reserved for attributes for
which the corresponding mask flag was not set.
(1 byte) - Line type
(1 byte) - Line width
(1 byte) - Line end
(1 byte) - Line join
(G bytes) - Stroke width
(4 bytes) - Line color
(1 byte) - Line mix
(G=2 or 4 depending on the Geometrics
parameter of Set Default Parameter Format)
0 X'21' Set Current Defaults
1 Length of following data
2 Set Default Character Attributes X'02'
3-4 Mask - OR of as many of the following
bits as are required:
X'8000' Character angle
X'4000' Character box
X'2000' Character direction
X'1000' Character precision
X'0800' Character set
X'0400' Character shear
X'0040' Character break extra
X'0020' Character extra
X'0008' Character color
X'0004' Character background color
X'0002' Character mix
X'0001' Character background mix
5 Flags
X'0F' Set indicated default attributes
to initial values.
(Data field is not present in this case).
X'8F' Set indicated default attributes
to specified values.
6-n Data - Data values as required, in the
following order if present.
No space is reserved for attributes for which
the corresponding Mask flag was not set.
(2*G bytes) - Character angle
(2*G + 4 bytes) - Character box
(1 byte) - Character direction
(1 byte) - Character precision
(1 byte) - Character set
(2*G bytes) - Character shear
(4 bytes) - Character break extra
(4 bytes) - Character extra
(4 bytes) - Character color
(4 bytes) - Character background color
(1 byte) - Character mix
(1 byte) - Character background mix
(G=2 or 4 depending on the Geometrics parameter
of Set Default Parameter Format)
0 X'21' Set Current Defaults
1 Length of following data
2 Set Default Marker Attributes X'03'
3-4 Mask - OR of as many of the following bits
as are required:
X'4000' Marker box
X'1000' Marker precision
X'0800' Marker set
X'0100' Marker symbol
X'0008' Marker color
X'0004' Marker background color
X'0002' Marker mix
X'0001' Marker background mix
5 Flags
X'0F' Set indicated default attributes
to initial values.
(Data field is not present in this instance)
X'8F' Set indicated default attributes
to specified values.
6-n Data - Data values as required, in this
order if present.
No space is reserved for attributes for which the
corresponding Mask flag was not set.
(2*G bytes) - Marker box
(1 byte) - Marker precision
(1 byte) - Marker set
(1 byte) - Marker symbol
(4 bytes) - Marker color
(4 bytes) - Marker background color
(1 byte) - Marker mix
(1 byte) - Marker background mix
(G=2 or 4 depending on the Geometrics
parameter of Set Default Parameter Format)
0 X'21' Set Current Defaults
1 Length of following data
2 Set Default Pattern Attributes X'04'
3-4 Mask - OR of as many of the following bits
as are required:
X'0800' Pattern set
X'0100' Pattern symbol
X'0080' Pattern reference point
X'0008' Pattern color
X'0004' Pattern background color
X'0002' Pattern mix
X'0001' Pattern background mix
5 Flags
X'0F' Set indicated default attributes
to initial values.
(Data field is not present in this instance)
X'8F' Set indicated default attributes
to specified values.
6-n Data - Data values as required, in this
order if present.
No space is reserved for attributes for which the
corresponding Mask flag was not set.
(1 byte) - Pattern set
(1 byte) - Pattern symbol
(2*G bytes) - Pattern reference point
(4 bytes) - Pattern color
(4 bytes) - Pattern background color
(1 byte) - Pattern mix
(1 byte) - Pattern background mix
(G=2 or 4 depending on the Geometrics parameter
of Set Default Parameter Format)
0 X'21' Set Current Defaults
1 Length of following data
2 Set Default Image Attributes X'06'
3-4 Mask - OR of as many of these bits as are required:
X'0008' Image color
X'0004' Image background color
X'0002' Image mix
X'0001' Image background mix
5 Flags
X'0F' Set indicated default attributes
to initial values.
(Data field is not present in this instance)
X'8F' Set indicated default attributes
to specified values.
6-n Data - Data values as required, in this
order if present.
No space is reserved for attributes for which the
corresponding Mask flag was not set.
(4 bytes) - Image color
(4 bytes) - Image background color
(1 byte) - Image mix
(1 byte) - Image background mix
0 X'21' Set Current Defaults
1 Length of following data
2 Set Default Viewing Window X'05'
3-4 Mask - OR of as many of the following bits as
are required:
X'8000' x left limit
X'4000' x right limit
X'2000' y bottom limit
X'1000' y top limit
5 Flags
X'0F' Set indicated default attributes
to initial values.
(Data field is not present in this case).
X'8F' Set indicated default attributes
to specified values.
6-n Data - Data values as required, in the
following order if present.
No space is reserved for attributes for which the
corresponding Mask flag was not set.
(2*G bytes) - x left limit
(2*G bytes) - x right limit
(2*G bytes) - y bottom limit
(2*G bytes) - y top limit
(G=2 or 4 depending on the Geometrics parameter of Set
Default Parameter Format)
0 X'21' Set Current Defaults
1 Length of following data
2 Set Default Arc Parameters X'0B'
3-4 Mask - OR of as many of the following bits as are required:
X'8000' P value
X'4000' Q value
X'2000' R value
X'1000' S value
5 Flags
X'0F' Set indicated default attributes
to initial values.
(Data field is not present in this case).
X'8F' Set indicated default attributes
to specified values.
6-n Data - Data values as required, in the
following order if present.
No space is reserved for attributes for which the corresponding Mask
flag was not set.
(G bytes) - P value
(G bytes) - Q value
(G bytes) - R value
(G bytes) - S value
(G=2 or 4 depending on the Geometrics parameter of Set
Default Parameter Format)
0 X'21' Set Current Defaults
1 Length of following data
2 Set Default Pick Identifier X'0C'
3-4 Mask - OR of as many of the following bits as are required:
X'8000' Pick identifier
5 Flags
X'0F' Set indicated default attributes
to initial values.
(Data field is not present in this case).
X'8F' Set indicated default attributes
to specified values.
6-n Data - Data values as required, in the
following order if present.
No space is reserved for attributes for which the corresponding Mask
flag was not set.
(4 bytes) - Pick identifier
0 X'E7' Set Bit-map Identifier
1 Length of following data X'07'
2-3 Usage Flags X'8000'
4-7 Bit-map handle
8 Lcid
Graphics Data (GAD): optional, repeating
Structured Field Introducer
0-1 Length X'n+9'
2-4 GAD X'D3EEBB'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters (maximum length in one structured
field is 32759)
Graphics Segment (optional, repeating)
Segment data (including the Begin Segment
parameter) can be split at any point between
successive Graphics Data structured fields.
0 X'70' Begin Segment
1 Length of following data X'0E'
2-5 Segment identifier
6 Segment attributes (1)
0 B'1' Invisible
1 B'1' Propagate invisibility
2 B'1' Detectable
3 B'1' Propagate detectability
6 B'1' Dynamic
7 B'1' Fast chaining
7 Segment attributes (2)
0 B'1' Non-chained
3 B'1' Prolog
8-9 Segment data length (low-order 2 bytes)
10-13 Reserved
14-15 Segment data length (high-order 2 bytes)
16-n Graphics orders (see Graphics Orders)
End Graphics Object (EGR)
Structured Field Introducer
0-1 Length X'0010'
2-4 EGR X'D3A9BB'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Graphics object name C'0000 0007'
End Resource Group (ERG): required
Structured Field Introducer
0-1 Length X'0010'
2-4 ERG X'D3A9C6'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Resource Group name C'0000 0002'
End Document (EDT): required
Structured Field Introducer
0-1 Length X'0010'
2-4 EDT X'D3A9A8'
5 Flags X'00'
6-7 Segment sequence number X'0000'
Parameters
0-7 Document name C'0000 0001'
ΓòÉΓòÉΓòÉ 2.9. Resource Files ΓòÉΓòÉΓòÉ
This section describes the syntax for the resource language using railroad
syntax, and describes the formats used.
Resource files are used to build dialog templates, menu templates, accelerator
tables, extended attribute association tables, keyboard scancode mapping
tables, keyboard names and fonts. The files must be compiled before they can be
used by application programs.
How to Read the Syntax Definitions
Throughout this reference, syntax is described using the following structure.
o Read the syntax diagrams from left to right, from top to bottom, following
the path of the line.
The ΓöÇΓöÇΓöÇ symbol indicates the beginning of a statement.
The ΓöÇΓöÇΓöÇ symbol indicates that the statement syntax is continued on the next
line.
The ΓöÇΓöÇΓöÇ symbol indicates that a statement is continued from the previous
line.
The ΓöÇΓöÇΓöÇ symbol indicates the end of a statement.
Diagrams of syntactical units other than complete statements start with the
ΓöÇΓöÇΓöÇ symbol and end with the ΓöÇΓöÇΓöÇ symbol.
o Required items appear on the horizontal line (the main path).
ΓöÇΓöÇΓöÇSTATEMENTΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇrequired_itemΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
o Optional items appear below the main path.
ΓöÇΓöÇΓöÇSTATEMENTΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
ΓööΓöÇoptional_itemΓöÇΓöÿ
o If a choice can be made from two or more items, they appear vertically, in a
stack.
If one of the items must be chosen, one item of the stack appears on the main
path.
ΓöÇΓöÇΓöÇSTATEMENTΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇrequired_choice1ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
ΓööΓöÇΓöÇrequired_choice2ΓöÇΓöÇΓöÿ
If choosing one of the items is optional, the entire stack appears below the
main path.
ΓöÇΓöÇΓöÇSTATEMENTΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γö£ΓöÇΓöÇoptional_choice1ΓöÇΓöÇΓöñ
ΓööΓöÇΓöÇoptional_choice2ΓöÇΓöÇΓöÿ
o An arrow returning to the left above the main path indicates an item that can
be repeated.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γöé
ΓöÇΓöÇΓöÇSTATEMENTΓöÇΓöÇΓöÇΓöÇΓöÇrepeatable_itemΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
A repeat arrow above a stack indicates that a choice can be made from the
stacked items, or a single choice can be repeated.
o Keywords appear in uppercase, for example:
PARM1
They must be spelled exactly as shown. Variables appear in all lowercase
letters, for example:
parmx
They represent user-supplied names or values.
o If punctuation marks, parentheses, arithmetic operators, or such symbols are
shown, they must be entered as part of the syntax.
ΓòÉΓòÉΓòÉ 2.9.1. Definitions Used in all Resources ΓòÉΓòÉΓòÉ
The definitions used in all resources are defined in below in Specification of
Values and Resource and Load Memory Options.
Specification of Values
These rules apply to values specified in resources:
o Coordinates must be integers. There must be no space between the sign of the
value and the value itself. For example, "-1" is allowed but "- 1" is not.
o Resource identifiers must be positive integers or names that resolve to
positive integers.
o Real values, containing a decimal point, cannot be used.
Resource Load and Memory Options
The following options define when each resource is loaded and how memory is
allocated for each resource.
LOADOPTION Resource loading options.
PRELOAD Resource is loaded immediately.
LOADONCALL Resource is loaded when called.
MEMOPTION Resource memory options.
FIXED Resource remains at a fixed memory location.
MOVEABLE Resource can be moved if necessary to compact.
DISCARDABLE Resource can be discarded if no longer needed.
SEGALIGN Resources are aligned on 64K byte boundaries.
ΓòÉΓòÉΓòÉ 2.9.1.1. LOADOPTION ΓòÉΓòÉΓòÉ
LOADOPTION Resource loading options
PRELOAD Resource is loaded immediately.
LOADONCALL Resource is loaded when called.
ΓòÉΓòÉΓòÉ 2.9.1.2. MEMOPTION ΓòÉΓòÉΓòÉ
MEMOPTION Resource memory options.
FIXED Resource remains at a fixed memory location.
MOVEABLE Resource can be moved if necessary to compact memory.
DISCARDABLE Resource can be discarded if no longer needed.
SEGALIGN Resources are aligned on 64K byte boundaries.
ΓòÉΓòÉΓòÉ 2.9.2. Resource Script File Specification ΓòÉΓòÉΓòÉ
The resource script file defines the names and attributes of the resources to
be added to the executable file of the application. The file consists of one or
more resource statements that define the resource type and original file, if
any. See the following for a description of the resource statements:
o Single-Line Statements
o User-Defined Resources
o Directives
o Multiple-Line Statements.
ΓòÉΓòÉΓòÉ 2.9.2.1. Single-Line Statements ΓòÉΓòÉΓòÉ
The general form for all single-line statements is:
ΓöÇΓöÇresourcetypeΓöÇΓöÇnameidΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇ
ΓööΓöÇloadoptionΓöÇΓöÿ
ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇfilenameΓöÇΓöÇ
ΓööΓöÇmemoptionΓöÇΓöÿ
resourcetype (USHORT)
One of the following keywords, specifying the type of resource to be loaded:
Keyword Resource type
BITMAP A bit-map resource is a custom bit map that an
application intends to use in its screen display or as
an item in a menu.
DEFAULTICON This keyword installs the filename.ico icon definition
under the ICON EA of the program file.
Example
DEFAULTICON <filename.ico>
DLGINCLUDE This statement tells the dialog editor which file to use
as an include file for the dialogs in the resource file.
The nameid is not applicable.
FONT A font resource is a file containing a font.
ICON An icon resource is a bit map defining the shape of the
icon to be used for a given application.
POINTER A pointer resource is a bit map defining the shape of
the pointing device pointer on the display screen.
nameid (USHORT)
is either a unique name or an integer number identifying the resource. For
a FONT resource, the nameid must be a number; it cannot be a name.
loadoption (LOADOPTION)
The default is LOADONCALL.
memoption (MEMOPTION)
The default is MOVEABLE and DISCARDABLE for POINTER, ICON, and FONT
resources. The default for BITMAP resources is MOVEABLE. The FIXED option
overrides both MOVEABLE and DISCARDABLE. The SEGALIGN option can be
specified independently of other options, if it is not present the default
(for all resources) is that the resource is not aligned on a 64KB boundary.
filename (STR)
An ASCII string specifying the OS/2 name of the file containing the
resource. A full path name must be given if the file is not in the current
working directory.
Example
POINTER pointer point.cur
POINTER pointer DISCARDABLE point.cur
POINTER 10 custom.cur
ICON desk desk.ico
ICON desk DISCARDABLE desk.ico
ICON 11 custom.ico
BITMAP disk disk.bmp
BITMAP disk DISCARDABLE disk.bmp
BITMAP 12 custom.bmp
FONT 5 CMROMAN.FNT
ΓòÉΓòÉΓòÉ 2.9.2.2. User-Defined Resources ΓòÉΓòÉΓòÉ
An application can also define its own resource. The resource can be any data
that the application intends to use. A user-defined resource statement has the
form:
ΓöÇΓöÇΓöÇresource-typeΓöÇΓöÇΓöÇtypeIDΓöÇΓöÇΓöÇnameIDΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇfilenameΓöÇΓöÇΓöÇΓöÇ
ΓööΓöÇΓöÇloadoptionΓöÇΓöÇΓöÿ ΓööΓöÇΓöÇmemoptionΓöÇΓöÇΓöÿ
typeID
Either a unique name or an integer number identifying the resource type. If
a number is given, it must be greater than 255. The type numbers 1 through
255 are reserved for existing and future predefined resource types.
nameID
Either a unique name or an integer number identifying the resource.
loadoption (LOADOPTION)
The default is LOADONCALL.
memoption (MEMOPTION)
The default is MOVEABLE.
filename
An ASCII string specifying the OS/2 name of the file containing the cursor
bit map. A full path name must be given if the file is not in the current
working directory.
Example
RESOURCE MYRES array DATA.RES
RESOURCE 300 14 CUSTOM.RES
ΓòÉΓòÉΓòÉ 2.9.2.2.1. RCDATA statement ΓòÉΓòÉΓòÉ
The RCDATA statement is provided to allow an application to define a simple
data resource.
ΓöÇRCDATAΓöÇΓöÇΓöÇidΓöÇΓöÇΓöÇΓöÇloadoptionΓöÇΓöÇΓöÇΓöÇΓöÇmemoptionΓöÇΓöÇΓöÇ
ΓöîΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÉ
ΓööΓöÇnewlineΓöÇΓöÿ Γöé
ΓöÇΓöÇΓöÇBEGINΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇdataΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇENDΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
id
Either a unique name or an integer number identifying the resource.
loadoption (LOADOPTION)
The default is LOADONCALL.
memoption (MEMOPTION)
The default is MOVEABLE.
data
A number or string.
Example:
RCDATA 4
BEGIN
"Sample string."
"TEST DATA."
"A message."
END
ΓòÉΓòÉΓòÉ 2.9.2.3. Directives ΓòÉΓòÉΓòÉ
The resource directives are special statements that define actions to perform
on the file before it is compiled. The directives can assign values to names,
include the contents of files, and control compilation of the file.
#include filename
rcinclude filename
These directives copy the contents of the file specified by filename into
the resource before it is compiled. If rcinclude is used, the entire file is
copied. If #include is used, only #define statements are copied.
Note: If an rcinclude is to be commented out, the open comment (/*) must
appear on the same line as the directive.
Filename is an ASCII string. A full path name must be given if the file is
not in the current directory or in the directory specified by the INCLUDE
environment variable. The file extensions .I and .TMP must not be used as
these are reserved for system use.
The filename parameter is handled as a C string, and two back-slashes must
be given wherever one is expected in the path name (for example, root\\sub.)
Or, a single forward slash (/) can be used instead of double back-slashes
(for example, root/sub.)
Example
#include "wincalls.h"
MENU PenSelect
BEGIN
MENUITEM "black pen", BLACK_PEN
END
Files included in resource script files constants that use #define
statements may not include any casting of those constants that are used in
the resource script. The resource compiler does not parse this casting
syntax. For example, the following statement may not be included:
#define IDBUTTON1 (USHORT) 3
If casting is required for C source compilation, you may use two statements
such as:
#define IDBUTTON1 3
#define CSRC_IDBUTTON1 ((USHORT)IDBUTTON1)
#define name value
This directive assigns the given value to name. All subsequent occurrences
of name are replaced by the value.
name is any combination of letters, digits, or punctuation.
value is any integer, character string, or line of text.
Example
#define nonzero 1
#define USERCLASS "MyControlClass"
#undef name
This directive removes the current definition of name. All subsequent
occurrences of name are processed without replacement.
name is any combination of letters, digits, or punctuation.
Example:
#undef nonzero
#undef USERCLASS
#ifdef name
This directive performs a conditional compilation of the resource file by
checking the specified name. If the name has been defined using a #define
directive, #ifdef directs the resource compiler to continue with the
statement immediately after it. If the name has not been defined, #ifdef
directs the compiler to skip all statements up to the next #endif directive.
name is the name to be checked by the directive.
Example:
#ifdef Debug
FONT 4 errfont.fnt
#endif
#ifndef name
This directive performs a conditional compilation of the resource file by
checking the specified name. If the name has not been defined or if its
definition has been removed using the #undef directive, #ifndef directs the
resource compiler to continue processing statements up to the next #endif,
#else, or #elif directive, then skip to the statement after the #endif. If
the name is defined, #ifndef directs the compiler to skip to the next
#endif, #else, or #elif directive.
name is the name to be checked by the directive.
Example:
#ifndef Optimize
FONT 4 errfont.fnt
#endif
#if constant expression
This directive performs a conditional compilation of the resource file by
checking the specified constant-expression. If the constant-expression is
nonzero, #if directs the resource compiler to continue processing statements
up to the next #endif, #else, or #elif directive, then skip to the statement
after the #endif. If the constant-expression is zero, #if directs the
compiler to skip to the next #endif, #else, or #elif directive.
constant expression is a defined name, an integer constant, or an expression
consisting of names, integers, and arithmetic and relational operators.
Example
#if Version<3
FONT 4 errfont.fnt
#endif
#elif constant expression
This directive marks an optional clause of a conditional compilation block
defined by an #ifdef, #ifndef, or #if directive. The directive carries out
conditional compilation of the resource file by checking the specified
constant-expression. If the constant-expression is nonzero, #elif directs
the resource compiler to continue processing statements up to the next
#endif, #else, or #elif directive, then skip to the statement after the
#endif. If the constant-expression is zero, #elif directs the compiler to
skip to the next #endif, #else, or #elif directive. Any number of #elif
directives can be used in a conditional block.
constant expression Is a defined name, an integer constant, or an expression
consisting of names, integers, and arithmetic and relational operators.
Example:
#if Version<3
FONT 4 italic.fnt
#elif Version<7
FONT 4 bold.fnt
#endif
#else
This directive marks an optional clause of a conditional compilation block
defined by an #ifdef, #ifndef, or #if directive. The #else directive must
be the last directive before #endif.
Example:
#ifdef Debug
FONT 4 italic.fnt
#else
FONT 4 bold.fnt
#endif
#endif
This directive marks the end of a conditional compilation block defined by
an #ifdef, #ifndef, or #if directive. One #endif is required for each
#ifdef, #ifndef, and #if directive.
ΓòÉΓòÉΓòÉ 2.9.2.4. Multiple-Line Statements ΓòÉΓòÉΓòÉ
This sections covers Code Page Flagging, Keyboard Resources, and the following
multiple-line statements:
o ACCELTABLE Statement
o ASSOCTABLE Statement
o MENU Statement
o STRINGTABLE Statement
o Dialog and Window Template Statements
ΓòÉΓòÉΓòÉ 2.9.2.4.1. Code Page Flagging ΓòÉΓòÉΓòÉ
The CODEPAGE statement may be placed within the source, to set the code page
used for these resources:
ACCELTABLE
MENU
STRINGTABLE
DIALOGTEMPLATE and WINDOWTEMPLATE.
The CODEPAGE statement cannot be encoded within any other statement. All items
following a CODEPAGE statement are assumed to be in that code page. The code
page is encoded in the resource, and the data in the resource is assumed to be
in the specified code page. However, no checking is performed.
These code pages can be specified:
437
850
860
863
865.
If the code page is not specified, code page 850 is assumed.
ΓòÉΓòÉΓòÉ 2.9.2.4.2. Keyboard Resources ΓòÉΓòÉΓòÉ
RT_FKALONG (=17), is defined in BSEDOS.H, and the resource compiler (RC.EXE)
recognizes FKALONG. This type identifies a 256-byte table, that can be used for
either primary or secondary scan-code mapping.
The resource ID contains three bytes, the least significant byte identifying
the type of scan-code mapping table as follows:
0 Primary scan-code mapping
1 Secondary scan-code mapping.
The other two bytes are 0 for the primary mapping table, and the keyboard ID
(as defined in PMWINP.H) for secondary mapping tables. This is to enable simple
support to be provided for future keyboards with conflicting scan codes.
The primary scan-code mapping table in the interrupt handler is stored as a
resource of this type. The secondary scan-code mapping table in the interrupt
handler is also stored as a resource of this type.
Depending on which keyboard is attached, the resources are loaded when the
system is initialized, and transferred to RING-0 byte arrays, where they can be
accessed by the interrupt handler as necessary. A default primary scan-code
mapping table is transferred if the resource cannot be loaded.
ΓòÉΓòÉΓòÉ 2.9.2.4.3. ACCELTABLE Statement ΓòÉΓòÉΓòÉ
The ACCELTABLE statement defines a table of accelerator keys for an
application.
An accelerator is a keystroke defined by the application to give the user a
quick way to perform a task. The WinGetMsg function automatically translates
accelerator messages from the application queue into WM_COMMAND, WM_HELP, or
WM_SYSCOMMAND messages.
The ACCELTABLE statement has the form:
ΓöÇΓöÇΓöÇACCELTABLEΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇ
ΓööΓöÇΓöÇidΓöÇΓöÇΓöÿ ΓööΓöÇmemoptionΓöÇΓöÿ
ΓöÇΓöÇΓöÇΓöÇBEGINΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γöé ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉΓöé
ΓöéΓöé
ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇacceloptionΓöÇΓöÇΓö┤Γö┤ΓöÇ
ΓöökeyvalΓöÇΓöÿ ΓööΓöÇcmdΓöÇΓöÿ
ΓöÇΓöÇΓöÇΓöÇENDΓöÇΓöÇΓöÇ
id (USHORT)
The resource identifier.
memoption
Optional. It consists of the following keyword or keywords, specifying
whether the resource is fixed or movable, and whether it can be discarded:
FIXED Resource remains at a fixed memory location.
MOVEABLE Resource can be moved if necessary to compact memory.
DISCARDABLE Resource can be discarded if no longer needed.
keyval (USHORT)
The accelerator character code. This can be either a constant or a quoted
character. If it is a quoted character, the CHAR acceloption is assumed. If
the quoted character is preceded with a caret character (^), a control
character is specified as if the CONTROL acceloption had been used.
cmd (USHORT)
The value of the WM_COMMAND, WM_HELP, or WM_SYSCOMMAND message generated
from the accelerator for the indicated key.
acceloption (BIT_16)
Defines the kind of accelerator.
The following options are available:
ALT
CHAR
CONTROL
HELP
LONEKEY
SCANCODE
SHIFT
SYSCOMMAND
VIRTUALKEY.
The VIRTUALKEY, SCANCODE, LONEKEY, and CHAR acceloptions specify the type of
message that matches the accelerator. Only one of these options can be
specified for each accelerator. For information on the corresponding KC_*
values, see WM_CHAR.
The acceloptions SHIFT, CONTROL, and ALT, cause a match of the accelerator only
if the corresponding key is down.
If there are two accelerators that use the same key with different SHIFT,
CONTROL, or ALT options, the more restrictive accelerator should be specified
first in the table. For example, Shift-Enter should be placed before Enter.
The SYSCOMMAND acceloption causes the keystroke to be passed to the application
as a WM_SYSCOMMAND message. The HELP acceloption causes the keystroke to be
passed to the application as a WM_HELP message. If neither is specified, a
WM_COMMAND message is used.
Example:
ACCELTABLE MainAcc
BEGIN
VK_F1,101,HELP
VK_F3,102,SYSCOMMAND
END
This generates a WM_HELP with value 101 from VIRTUALKEY accelerator F1 and a
WM_SYSCOMMAND with value 102 from VIRTUALKEY accelerator F3.
ΓòÉΓòÉΓòÉ 2.9.2.4.4. ASSOCTABLE Statement ΓòÉΓòÉΓòÉ
The ASSOCTABLE statement defines the extended attributes (EA) for an
application.
The ASSOCTABLE statement has the form:
ΓöÇΓöÇΓöÇΓöÇASSOCTABLEΓöÇΓöÇassoctableidΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
ΓöÇΓöÇΓöÇΓöÇBEGINΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γöé
ΓöÇΓöÇΓöÇassocname,extensionsΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓö¼Γö┤ΓöÇ
ΓööΓöÇflagsΓöÿ ΓööiconΓöÿ
ΓöÇΓöÇΓöÇΓöÇENDΓöÇΓöÇΓöÇ
The source for the ASSOCTABLE description is contained in the resource file for
a particular project:
ASSOCTABLE assoctableid
BEGIN
"association name", "extension", flags, icon filename
"association name", "extension", flags, icon filename
...
END
association name
Program recognizes data files of this EA TYPE. This is the same name found
in the TYPE field of data files.
assoctableid
A name or number used to identify the assoctable resource.
extension
3 letter file extension that is used to identify files of this type if they
have no EA TYPE entry. (This may be empty.)
flags
EAF_DEFAULTOWNER
The default application for the file.
EAF_UNCHANGEABLE
This flag is set if the entry in the ASSOCTABLE is not to be edited.
EAF_REUSEICON
This flag is specified if a previously defined icon in the ASSOCTABLE is
to be reused. Entries with this flag set have no icon data defined. The
icon used for this entry is the icon used for the previous entry (see
below). Note that EAF_* flags may be ORed together when specified in the
ASSOCTABLE.
icon filename
Filename of the icon used to represent this file type. (This may be empty.)
Example
ASSOCTABLE 3000
BEGIN
"Product XYZ Spreadsheet", "xys", EAF_DEFAULTOWNER,
xyzspr.ico
"Product XYZ Chart", "xyc", EAF_DEFAULTOWNER |
EAF_REUSEICON
END
ΓòÉΓòÉΓòÉ 2.9.2.4.5. Dialog and Window Template Statements ΓòÉΓòÉΓòÉ
This section describes how to define dialog and window templates.
It also describes the control data and presentation parameter structures that
the application needs to create windows and define dialog templates.
DLGTEMPLATE and WINDOWTEMPLATE statements are used by an application to create
predefined window and dialog resource templates. These statements are treated
identically by the resource compiler and have the following format:
ΓöÇΓöÇΓöÇΓö¼ΓöÇDLGTEMPLATEΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇresourceidΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
ΓööΓöÇWINDOWTEMPLATEΓöÇΓöÇΓöÿ
ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ
ΓööloadoptionΓöÇΓöÿΓööΓöÇmemoptionΓöÇΓöÿΓööΓöÇcodepageΓöÇΓöÿ
ΓöÇΓöÇΓöÇBEGINΓöÇΓöÇΓö¼ΓöÇΓöÇDIALOG statementΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇENDΓöÇΓöÇΓöÇ
Γö£ΓöÇΓöÇCONTROL statementΓöÇΓöÇΓöñ
ΓööΓöÇΓöÇWINDOW statementΓöÇΓöÇΓöÇΓöÿ
In the following description of the parts of the DLGTEMPLATE and WINDOWTEMPLATE
statements, data types are shown after each parameter or option. These are the
data types that the parameter or option is converted to when it is compiled.
Purpose
The DLGTEMPLATE or WINDOWTEMPLATE statement marks the beginning of a window
template. It defines the name of the window, and its memory and load
options.
resourceid (USHORT)
Either a unique name or an integer number identifying the resource.
loadoption (LOADOPTION)
The default is LOADONCALL.
memoption (MEMOPTION)
The default is MOVEABLE.
code page (USHORT)
The code page of the text in the template.
Alternatively, ({( can be used in place of BEGIN and (}) in place of END.
The DLGTEMPLATE and WINDOWTEMPLATE keywords are synonymous.
The DIALOG statement defines a dialog-box window that can be created by an
application and has the following format:
ΓöÇΓöÇΓöÇDIALOGΓöÇΓöÇΓöÇtextΓöÇ,ΓöÇidΓöÇ,ΓöÇxΓöÇ,ΓöÇyΓöÇ,ΓöÇcxΓöÇ,ΓöÇcyΓöÇΓöÇΓöÇΓöÇ
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
ΓööΓöÇ,styleΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓööΓöÇ,controlΓöÇΓöÿ
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼
Γöé ΓöéΓöéΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉΓöé
Γöé ΓöéΓöé ΓöéΓöé
ΓööCTLDATAΓöÇstatementΓöÿΓööΓöÇPRESPARAMSΓöÇstatementΓöÇΓö┤Γöÿ
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γöé
ΓöÇBEGINΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇDIALOGΓöÇstatementΓöÇΓöÇΓö¼ΓöÇΓö┤ΓöÇΓöÇENDΓöÇΓöÇΓöÇ
Γö£ΓöÇΓöÇCONTROLΓöÇstatementΓöÇΓöñ
ΓööΓöÇΓöÇWINDOWΓöÇstatementΓöÇΓöÇΓöÿ
Control Data Statement
Presentation Parameters Statement
The WINDOW and CONTROL statements have the format:
ΓöÇΓö¼ΓöÇWINDOWΓöÇΓö¼ΓöÇtext,ΓöÇid,ΓöÇx,ΓöÇy,ΓöÇcx,ΓöÇcy,ΓöÇclassΓöÇΓöÇ
ΓööΓöÇCONTROLΓöÿ
ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇ
ΓööΓöÇΓöÇΓöÇ,styleΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓööΓöÇΓöÇ,controlΓöÇΓöÇΓöÇΓöÿ
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼
Γöé ΓöéΓöéΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉΓöé
Γöé ΓöéΓöé ΓöéΓöé
ΓööCTLDATAΓöÇstatementΓöÿΓööΓöÇPRESPARAMSΓöÇstatementΓöÇΓö┤Γöÿ
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γöé
ΓöÇBEGINΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇDIALOGΓöÇstatementΓöÇΓöÇΓö¼ΓöÇΓö┤ΓöÇΓöÇENDΓöÇΓöÇΓöÇ
Γö£ΓöÇΓöÇCONTROLΓöÇstatementΓöÇΓöñ
ΓööΓöÇΓöÇWINDOWΓöÇstatementΓöÇΓöÇΓöÿ
Control Data Statement
Presentation Parameters Statement
Note: The WINDOW and CONTROL keywords are synonymous.
The DIALOG, CONTROL, and WINDOW statements between the BEGIN and END statements
are defined as child windows. Presentation parameters always apply to the whole
control. They can not be changed for the individual items within the control.
Following is the description of the parameters for these statements.
Purpose.
These statements mark the beginning of a window. They define the starting
location on the display screen, its width, its height, and other details
such as style.
Note: Not all values may be specified for each statement type. For details,
see the call syntax diagrams.
text (STR)
A string, enclosed in double quotes, that is displayed in the title-bar
control, if it exists. To insert a double-quote character (") in the text,
use two double-quote characters ("").
id (USHORT)
Item identifier.
x,y (SHORT)
Integer numbers specifying the x- and y-coordinates on the display screen of
the lower left corner of the dialog. X and y are in dialog coordinates. The
exact meaning of the coordinates depends on the style defined by the style
argument. For normal dialogs, the coordinates are relative to the origin of
the parent window. For FCF_SCREENALIGN style boxes, the coordinates are
relative to the origin of the display screen. With FCF_MOUSEALIGN, the
coordinates are relative to the position of the pointer at the time the
dialog is created.
cx,cy (SHORT)
Integer numbers specifying the width and height of the window.
class (STR)
The class of the window or control to be created.
Note: For a DIALOG statement the class is fixed as WC_FRAME and cannot be
specified.
style (BIT32)
Any additional window style, frame style, or other class-specific style.
The default style is WS_SYNCPAINT | WS_CLIPSIBLINGS | WS_SAVEBITS |
FS_DLGBORDER . If the FS_DLGBORDER or WS_SAVEBITS styles are not required,
they should be preceded by the keyword 'NOT'. For example:
NOT FS_DLGBORDER | FS_BORDER | NOT WS_SAVEBITS
replaces the FS_DLGBORDER default style by the FS_BORDER style and removes
the WS_SAVEBITS style. Note that the logic of the NOT keyword is different
from the corresponding operator in the C language.
It is not possible to remove the default WS_SYNCPAINT and WS_CLIPSIBLINGS
styles.
control (BIT32)
Frame Creation Flags (FCF_*) for the window.
This data is placed in the control data field in the correct format for a
window of class WC_FRAME.
Note: FCF_SHELLPOSITION has no effect if specified in a template.
CTLDATA Statement
A staterment used to define control data for the control. For more
information on this statement, see Control Data Statement
PRESPARAMS
A statement used to define presentation parameters. For more information on
this statement, see Presentation Parameters Statement
ΓòÉΓòÉΓòÉ 2.9.2.4.6. MENU Statement ΓòÉΓòÉΓòÉ
The MENU statement defines the contents of a menu resource. A menu resource is
a collection of information that defines the appearance and function of an
application menu. A menu can be used to create an action bar.
The MENU statement has the form:
ΓöÇMENU-menuidΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ
ΓööΓöÇloadoptionΓöÇΓöÿΓööΓöÇmemoptionΓöÇΓöÿ
ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
ΓööΓöÇΓöÇcodepageΓöÇΓöÇΓöÿ
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γöé
ΓöîΓöÇΓöÇPRESPARAMSΓöÇstatementΓöÇΓö┤ΓöÉ
ΓöÇΓöÇΓöÇΓöÇBEGINΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γöé
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇMENUITEMΓöÇstatementΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇENDΓöÇΓöÇΓöÇΓöÇ
Γöé Γöé
ΓööΓöÇΓöÇΓöÇSUBMENUΓöÇstatementΓöÇΓöÇΓöÇΓöÇΓöÿ
Menu Item Statements
Submenu Statements
Presentation Parameters Statement.
menuid (USHORT)
A name or number used to identify the menu resource.
loadoption (LOADOPTION)
The default is LOADONCALL.
memoption (MEMOPTION)
The default is MOVEABLE.
codepage (USHORT)
The code page of the text.
PRESPARAMS statement
A special resource statement used to define presentation parameters. These
are discussed in more detail in Presentation Parameters Statement.
MENUITEM statement
A special resource statement used to define the items in the menu. These are
discussed in more detail in Menu Item Statements.
SUBMENU statement
A special resource statement used to define a submen. SUBMENU statements are
discussed in more detail in Submenu Statements.
Example
Following is an example of a complete MENU statement:
MENU sample
BEGIN
MENUITEM "~Alpha", 100, MIS_TEXT
SUBMENU "~Beta", 101, MIS_TEXT
BEGIN
MENUITEM "~Green", 200, MIS_TEXT
MENUITEM "~Blue", 201, MIS_TEXT,MIA_CHECKED
END
END
Menu Item Statements
MENUITEM statements are used in the item-definition section of a MENU statement
to define the names and attributes of the actual menu items. Any number of
statements can be given; each defines a unique item. The order of the
statements defines the order of the menu items.
Note: The MENUITEM statements can only be used within an item-definition
section of a MENU statement.
ΓöÇΓöÇMENUITEMΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
ΓöÇΓö¼ΓöÇ"string"ΓöÇ,Γö¼ΓöÇΓöÇΓöÇΓöÇΓö¼,Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼
Γöé ΓööcmdΓöÇΓöÿ ΓööstylesΓöÿ ΓööattributesΓöÿΓöé
Γöé Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇSEPARATORΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
string (STR)
A string, enclosed in double quotation marks, specifying the text of the
menu item.
To insert a double-quote character (") in the text, use two double-quote
characters ("").
If the styles parameter does not contain MIS_TEXT, the string is ignored but
must still be specified. An empty string ("") should be specified in this
instance.
To indicate the mnemonic for each item, insert the tilde character (~) in
the string preceding the mnemonic character.
For MENUITEM statements within a SUBMENU (that is, pull-down menus) text may
be split into a second column with an alignment substring. To right-align
items insert "\a" in the text where alignment should begin. To left-align a
second column of text insert "\t" in the text where alignment should begin.
For each SUBMENU the longest item in the second column determines the width
of that column. Only one alignment substring should be used in a menu item.
cmd (USHORT)
The value of the WM_COMMAND, WM_HELP, or WM_SYSCOMMAND message generated by
the item when it is selected. It identifies the selection made and should be
unique within one menu definition.
styles (BIT_16)
One or more menu options defined by the MIS_* constants, ORed together with
the | operator. For definitions of the MIS_* constants, see Menu Item
Styles.
attributes (BIT_16)
One or more menu options defined by the MIA_* constants, ORed together with
the | operator. For definitions of the MIA_* constants, see Menu Item
Attributes.
The style MIS_SUBMENU must not be used with this statement. See Submenu
Statements for the SUBMENU statement.
Examples:
MENUITEM "Alpha", 1, MIS_TEXT,MIA_ENABLED|MIA_CHECKED,'A'
MENUITEM "Beta", 2, MIS_TEXT,,'B'
Submenu Statements
In addition to simple items, a menu definition can contain the definition of a
submenu. A submenu can itself invoke a lower level submenu.
ΓöÇΓöÇSUBMENUΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
ΓöÇΓöÇΓöÇ"string"ΓöÇ,Γö¼ΓöÇΓöÇΓöÇΓöÇΓö¼,Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ
ΓööcmdΓöÇΓöÿ ΓööstylesΓöÿ ΓööattributesΓöÿ
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γöé
ΓöîΓöÇΓöÇPRESPARAMSΓöÇstatementΓöÇΓö┤ΓöÉ
ΓöÇΓöÇΓöÇΓöÇBEGINΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γöé
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇMENUITEMΓöÇstatementΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇENDΓöÇΓöÇΓöÇΓöÇ
Γöé Γöé
ΓööΓöÇΓöÇΓöÇSUBMENUΓöÇstatementΓöÇΓöÇΓöÇΓöÇΓöÿ
string (STR)
A string, enclosed in double quotation marks, specifying the text of the
menu item.
To insert a double-quote character (") in the text, use two double-quote
characters ("").
If the styles parameter does not contain MIS_TEXT, the string is ignored but
must still be specified. An empty string ("") should be specified in this
instance.
cmd (USHORT)
The value of the WM_COMMAND, WM_HELP, or WM_SYSCOMMAND message generated by
the item when it is selected. It identifies the selection made and should be
unique within one menu definition.
styles (BIT_16)
One or more menu options defined by the MIS_ constants, ORed together with
the | operator.
In the SUBMENU statement, the style MIS_SUBMENU is always ORed with the
styles given. If no value is supplied, the default value of MIS_TEXT and
MIS_SUBMENU is used.
attributes (BIT_16)
One or more menu options defined by the MIA_ constants, ORed together with
the | operator.
Example:
MENU chem
BEGIN
SUBMENU "~Elements", 2, MIS_TEXT
BEGIN
MENUITEM "~Oxygen", 200, MIS_TEXT
MENUITEM "~Carbon", 201, MIS_TEXT,MIA_CHECKED
MENUITEM "~Hydrogen", 202, MIS_TEXT
END
SUBMENU "~Compounds", 3, MIS_TEXT
BEGIN
MENUITEM "~Glucose", 301, MIS_TEXT
MENUITEM "~Sucrose", 302, MIS_TEXT,MIA_CHECKED
MENUITEM "~Lactose", 303, MIS_TEXT|MIS_BREAK
MENUITEM "~Fructose", 304, MIS_TEXT
END
END
SEPARATOR Menu Item
There is a special form of the MENUITEM statement that is used to create a
horizontal dividing bar between two active menu items in a pull-down menu. The
SEPARATOR menu item is itself inactive and has no text associated with it nor a
cmd value.
Example
MENUITEM "~Roman", 206, MIS_TEXT
MENUITEM SEPARATOR
MENUITEM "20 ~Point", 301, MIS_TEXT
Menu Template
Menu templates are data structures used to define menus. Menu templates can be
loaded as resources or created dynamically, or embedded in dialog templates,
which in turn can be loaded as resources or created dynamically. Templates
loaded as resources cannot contain references to bit maps or owner-drawn items.
A menu template consists of a sequence of variable-length records. Each record
in a menu template defines a menu item. If a menu item contains a reference to
a submenu, the menu template that defines that submenu is placed after the
definition of that particular menu item.
Template Format
A menu template has the following format:
Length (USHORT)
The length of the menu template.
Version (USHORT)
The template version. Versions 0 and 1 are valid.
Code page (USHORT)
The identifier of the code page used for the text items within the menu (but
not any submenus, which each have their own code pages).
Item offset (USHORT)
The offset of the items from the start of the template, in bytes.
Count (USHORT)
The count of menu items.
Presentation parameters offset (USHORT)
Offset of presentation parameters from the start of the template, in bytes.
This field is only present for version 1 of the template.
Menu Items
A variable-sized array of menu items as follows:
Style (USHORT)
Menu item styles (MIS_*; see Menu Item Styles) combined with the
logical-OR operator.
Attributes (USHORT)
Menu item attributes (MIA_*; see Menu Item Attributes) combined with the
logical-OR operator.
Item (IDENTITY)
An application-provided identifier for the menu item.
Variable data
Following the identifier is a variable data structure whose format
depends upon the value of Style:
MIS_TEXT
Text (STRL)
Null-terminated text string.
MIS_SUBMENU
A menu template structure.
MIS_BITMAP
Text (STR)
Null-terminated text string.
For MIS_BITMAP menu items, the item text string can be used to
derive the resource identifier from which a bit map is loaded.
There are three instances:
o The first byte is null; that is, no resource is defined and it is
assumed that the application subsequently provides a bit-map
handle for the item.
o The first byte is X'FF', the second byte is the low byte of the
resource identifier, and the third byte is the high byte of the
resource identifier.
o The first character is "#", and subsequent characters make up the
decimal text representation of the resource identifier.
The resource is assumed to reside in the resource file of the
current process.
If the string is empty or does not follow the format above, no
resource is loaded.
ΓòÉΓòÉΓòÉ 2.9.2.4.7. STRINGTABLE Statement ΓòÉΓòÉΓòÉ
The STRINGTABLE statement defines one or more string resources for an
application. String resources are null-terminated ASCII strings that can be
loaded, when needed, from the executable file, using the WinLoadString
function.
Note: The ASCII strings can include no more than 256 characters, including the
NULL termination character.
The STRINGTABLE statement has the form:
ΓöÇSTRINGTABLEΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇ
ΓööΓöÇloadoptionΓöÇΓöÿΓööΓöÇmemoptionΓöÇΓöÿ
ΓöÇΓöÇΓöÇΓöÇBEGINΓöÇΓöÇΓöÇstring-definitionsΓöÇΓöÇΓöÇENDΓöÇΓöÇΓöÇ
String-definitions
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γöé Γöé
Γöé
ΓöÇΓöÇΓöÇΓöÇΓöÇintegerΓöÇΓöÇΓöÇ"ΓöÇstringΓöÇ"ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇ
loadoption (LOADOPTION)
An optional keyword specifying when the resource is to be loaded. It must
be one of:
PRELOAD Resource is loaded immediately.
LOADONCALL Resource is loaded when called.
The default is LOADONCALL.
memoption (MEMOPTION)
Consists of the following keyword or keywords, specifying whether the
resource is fixed or movable and whether it is discardable:
FIXED Resource remains at a fixed memory location.
MOVEABLE Resource can be moved if necessary to compact memory.
DISCARDABLE Resource can be discarded if no longer needed.
The default is MOVEABLE and DISCARDABLE.
string (STR)
A string, enclosed in double quotation marks. To insert a double-quote
character (") in the text, use two double-quote characters (" ").
Note: A string may be defined on more than one line if each line begins and
ends with a double-quote. If newline characters are desired after
each line, there should be a double-quote at the beginning of the
first line and at the end of the last line only.
The string may contain any ASCII characters. Because (\) is interpreted as
an escape character, use (\\) to generate a (\).
The following escape sequences may be used:
Escape
Sequence Name
\t Horizontal tab
\a Bell (alert)
\nnn ASCII character (octal)
\xdd ASCII character (hexadecimal).
The sequences \ddd and \xdd allow any character in the ASCII character set
to be inserted in the character string. Thus, the horizontal tab could be
entered as \X09, \011 or \t.
Example
#define IDS_STRING1 1
#define IDS_STRING2 2
#define IDS_STRING3 3
STRINGTABLE
BEGIN
IDS_STRING1, "The first two strings in this table are identical."
IDS_STRING2, "The first two strings "
"in this table are identical."
IDS_STRING3, "This string will contain a newline character
before it continues on this line."
END
ΓòÉΓòÉΓòÉ 2.9.3. Templates, Control Data, and Presentation Parameters ΓòÉΓòÉΓòÉ
This section describes
o Dialog Template
o Dialog Coordinates
o Dialog Template Format and Contents
o Header
o Items
o Data Area
o Control Data Statement
o Presentation Parameters Statement
o Parent/Child/Owner Relationship
o Predefined Window Classes
o Predefined Control Statements
ΓòÉΓòÉΓòÉ 2.9.3.1. Dialog Template ΓòÉΓòÉΓòÉ
A dialog template is a data structure used to define a dialog box. Dialog
templates can be loaded from resources or created dynamically in memory.
Dialog templates define windows of any window class that contain child windows
of any class. For standard dialog windows, the dialog window itself is created
with the WC_FRAME class, and its children are any of the preregistered control
classes.
The dialog template specifies all the information required to create a dialog
box and its children.
ΓòÉΓòÉΓòÉ 2.9.3.2. Dialog Coordinates ΓòÉΓòÉΓòÉ
Coordinates in a dialog template are specified in dialog coordinates. These are
based on the default character cell size; a unit in the horizontal direction is
1/4 the default character-cell width, and a unit in the vertical direction is
1/8 the default character-cell height. The origin is the bottom left-hand
corner of the dialog box.
ΓòÉΓòÉΓòÉ 2.9.3.3. Dialog Template Format and Contents ΓòÉΓòÉΓòÉ
A dialog template has these sections:
Header Defines the type of template format and contains information about
the location of the other sections of the template. It also contains
a summary of the status of the individual controls contained within
the dialog box.
Items Defines each of the controls that comprise the dialog box.
Data area Contains the data values associated with each control. Each control
defined in the item section contains pointers to the data area
section. The data area also contains presentation parameter
definitions. The data area is not necessarily a contiguous portion of
the template. User data can be placed anywhere in the template if it
does not interfere with other defined information.
The sections of a dialog template are illustrated in the following figure.
Notes
1. Throughout the dialog template all lengths are in bytes. String lengths do
not include any null terminator that may be present. When strings are
passed to the Presentation Interface, the length specifications are used
and any null terminators are ignored. When strings are returned by the
Presentation Interface, length specifications and null terminators are both
supplied; therefore, space must be allowed for a null terminator.
2. All offsets are in bytes from the start of the dialog template structure.
DialogTemplate
ΓòÉΓòÉΓòÉ 2.9.3.4. Header ΓòÉΓòÉΓòÉ
The dialog template header consists of:
Template length (USHORT)
The overall length of the dialog template.
Template type (USHORT)
The dialog template format type. The format defined is type 0.
Code page (USHORT)
The code page of the text in the dialog template.
Items offset (USHORT)
The offset of the array of dialog items.
Reserved (BIT16)
Must be 0.
Focus item (USHORT)
The index in the array of dialog items of the control to receive the
focus. If this value is 0, or if the identified control cannot
receive the focus, for example because it is a static control, the
focus is passed to the first item within the template that can
receive the focus.
Reserved (BIT16)
Must be 0.
ΓòÉΓòÉΓòÉ 2.9.3.5. Items ΓòÉΓòÉΓòÉ
The dialog template items are specified as elements of an array that also
defines the hierarchy of the control windows of the dialog box. Each element of
the array is a control window descriptor and defines some control or a child of
some control, so that every control within the dialog box is described by this
array. The first descriptor is the specification of the dialog box itself.
The dialog template items consist of:
Reserved (BIT16) (16_bit BOOL)
Must be 0.
Children (USHORT)
The number of dialog item child windows that are owned by this dialog
item.
This is the number of elements following in the array that are
created as child windows of this window. Each window can have any
number of child windows, which allows for a tree-structured
arrangement.
For example, in the figure in Dialog Template Format and Contents,
assuming that there are no more dialog items than are shown, the
first item, the dialog box control window descriptor, has three
children. The second item has no children, the third item has two
children, and the remaining three items have no children.
Class name length (USHORT)
The length of the window class name string.
Class name offset (USHORT)
The offset of the window class name string.
Text length (USHORT)
The length of the text string.
For controls that allow input of text, this is the current text
length, not the maximum text length, and so this value changes when
text is put into the control.
Text offset (USHORT)
The offset of the text string.
Style (BIT32) (32_bit BOOL)
The window style of the control.
The standard style bits are 16 bits. The use of the remaining 16 bits
depends on the class of the control.
x (SHORT)
y (SHORT)
The position of the origin of the dialog item. This is specified in
dialog coordinates, with x and y relative to the origin of the parent
window.
cx (SHORT)
cy (SHORT)
The size of the dialog item in dialog coordinates; it must be greater
than 0.
Identifier (USHORT)
An application-defined identifier for the dialog item.
Reserved (USHORT)
Must be zero.
Control data offset (USHORT)
The offset of the control-specific data for this dialog item. A value
of 0 indicates that there is no control data for this dialog item.
ΓòÉΓòÉΓòÉ 2.9.3.6. Data Area ΓòÉΓòÉΓòÉ
The dialog template data area contains the following different types of
objects: text, class name, presentation parameters, and control data. These
objects can be placed anywhere within the data area. They do not have to be in
contiguous storage, and so an application can place data for its own use
between these objects.
The dialog template data area contains:
Text (STR)
The textual data associated with a dialog item.
Class name (STR)
The name of the window class.
Presentation parameters (PRESPARAMS)
Presentation parameters are defined in Presentation Parameters
Statement.
Control data (CTLDATA)
For more information, see Control Data Statement.
ΓòÉΓòÉΓòÉ 2.9.3.7. Control Data Statement ΓòÉΓòÉΓòÉ
The optional CTLDATA statement is used to define control data for the control.
Hexadecimal or decimal word constants follow the CTLDATA statement, separated
with commas.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γöé Γöé
Γöé
ΓöÇΓöÇCTLDATAΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇdecimalΓöÇvalueΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓö┤ΓöÇ
Γöé Γöé
Γö£ΓöÇΓöÇhexadecimalΓöÇvalueΓöÇΓöÇΓöñ
Γöé Γöé
ΓööΓöÇΓöÇstringΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
In addition to hexadecimal or decimal data, the CTLDATA statement can be
followed by the MENU keyword, followed by a menu template in a BEGIN/END block.
This creates a menu template as the control data of the window.
ΓòÉΓòÉΓòÉ 2.9.3.8. Presentation Parameters Statement ΓòÉΓòÉΓòÉ
The optional PRESPARAMS statement is used to define presentation parameters.
The syntax of the PRESPARAMS statement is as follows.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÉ
Γöé Γöé
Γöé
ΓöÇΓöÇΓöÇPRESPARAMSΓöÇΓöÇΓöÇΓöÇtypeΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇvalueΓöÇΓöÇΓö┤ΓöÇ
A presentation parameter consists of:
type (ULONG)
The presentation parameter attribute type. See the PARAM data type
for a description of valid types.
A string can be used to specify the type for a user type. If this is
done, the string type is converted into a string atom when the dialog
template is read into memory. Thereafter this presentation parameter
is referred to by this string atom. The application can use the atom
manager API to match the string and the string atom.
value (LONG or STRL)
One or more values depending upon the attribute type.
If the value is enclosed in quotes it is a zero-terminated string.
Otherwise, it is converted to a LONG. There may be more than one
value, depending upon the type. See PARAM data type for a description
of the values required for system-defined presentation parameters.
Examples
The following are examples of PRESPARAMS statements:
PRESPARAMS PP_BORDERCOLOR, 0x00ff00ffL
PRESPARAMS PP_FONTNAMESIZE, "12.Helv"
PRESPARAMS "my color", 0x00ff00ffL
PRESPARAMS "my param", 0, 1, 2, 3, "Hi there"
ΓòÉΓòÉΓòÉ 2.9.3.9. Parent/Child/Owner Relationship ΓòÉΓòÉΓòÉ
The format of the DLGTEMPLATE and WINDOWTEMPLATE resources is very general to
allow tree-structured relationships within the resource format. The general
layout of the templates is:
WINDOWTEMPLATE id
BEGIN
WINDOW winTop the top-level window
BEGIN
WINDOW wind1
WINDOW wind2
WINDOW wind3
BEGIN
WINDOW wind4
END
WINDOW wind5
END
END
In this example, the top-level window is identified by winTop. It has four
child windows: wind1, wind2, wind3, and wind5. wind3 has one child window,
wind4. When each of these windows is created, the parent and the owner are set
to be the same.
The only time when the parent and owner windows are not the same is when frame
controls are automatically created by a frame window.
Note that the WINDOW statements in the example above could also have been
CONTROL or DIALOG statements.
ΓòÉΓòÉΓòÉ 2.9.3.10. Predefined Window Classes ΓòÉΓòÉΓòÉ
The CONTROL statement can be used to define a window control of any class.
Window classes may be user defined of one of a predefined set provided by the
operating system. The following classes are provided in the OS/2 operating
system.
WC_FRAME Application frame control.
WC_STATIC Text and group boxes.
WC_BUTTON Push button, check box or radio button.
WC_COMBOBOX Combination of an entry field and list box.
WC_ENTRYFIELD Single line entry field.
WC_MLE Multiple line entry field.
WC_LISTBOX List box.
WC_MENU Application action bar, menus and popup menus.
WC_SCROLLBAR Horizontal or vertical scroll bar.
WC_TITLEBAR Application title bar.
WC_SPINBUTTON Spin button entry field.
WC_CONTAINER Container list.
WC_SLIDER Horizontal or vertical slider control.
WC_VALUESET Value set control.
WC_NOTEBOOK Notebook control.
These controls make up the standard user interface components for applications.
The following example shows a simple listbox control.
CONTROL "", 1, 10, 20, 60, 40, WC_LISTBOX, WS_VISIBLE
ΓòÉΓòÉΓòÉ 2.9.3.11. Predefined Control Statements ΓòÉΓòÉΓòÉ
In addition to the general form of the CONTROL statement, there are special
control statements for commonly used controls. These statements define the
attributes of the child control windows that appear in the window.
Control statements have this general form:
ΓöÇcontroltypeΓöÇtextΓöÇ,ΓöÇidΓöÇ,ΓöÇxΓöÇ,ΓöÇyΓöÇ,ΓöÇcxΓöÇ,ΓöÇcyΓöÇΓöÇΓöÇ
ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
ΓööΓöÇΓöÇ,ΓöÇΓöÇΓöÇstyleΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γöé
ΓöÇΓöÇΓöÇBEGINΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇDIALOG statementΓöÇΓöÇΓöÇΓö¼ΓöÇΓö┤ΓöÇENDΓöÇΓöÇΓöÇ
Γö£ΓöÇΓöÇCONTROL statementΓöÇΓöÇΓöñ
ΓööΓöÇΓöÇWINDOW statementΓöÇΓöÇΓöÇΓöÿ
The following six controls are exceptions to this form because they do not take
a text field. See the LISTBOX control statement for the form of these six
controls.
o CONTAINER
o LISTBOX
o NOTEBOOK
o SLIDER
o SPINBUTTON
o VALUESET
controltype
is one of the keywords described below, defining the type of the
control.
text (STR)
is a string specifying the text to be displayed. The string must be
enclosed in double quotation marks. The manner in which the text is
displayed depends on the particular control, as detailed below.
To indicate the mnemonic for each item, insert the tilde character
(~) in the string preceding the mnemonic character.
The double quotation marks are required for the COMBOBOX title even
if no title is used.
id (USHORT)
is a unique integer number identifying the control.
x,y (SHORT)
are integer numbers specifying the x- and y-coordinates of the lower
left corner of the control, in dialog coordinates. The coordinates
are relative to the origin of the dialog.
cx,cy (SHORT)
are integer numbers specifying the width and height of the control.
The x, y, cx, and cy fields can use addition and subtraction operators (+ and
-). For example, 15 + 6 can be used for the x-field.
Styles can be combined using the (|) operator.
The control type keywords are shown below, with their classes and default
styles:
AUTOCHECKBOX
Class WC_BUTTON
Default style WS_TABSTOP, WS_VISIBLE, BS_AUTOCHECKBOX
AUTORADIOBUTTON
Class WC_BUTTON
Default style BS_AUTORADIOBUTTON, WS_TABSTOP, WS_VISIBLE
CHECKBOX
Class WC_BUTTON
Default style BS_CHECKBOX, WS_TABSTOP, WS_VISIBLE
COMBOBOX
Format The form of the COMBOBOX control statement is shown
below.
The fields have the same meaning as in the other
control statements.
ΓöÇΓöÇΓöÇCOMBOBOXΓöÇΓöÇ"title"ΓöÇΓöÇ,ΓöÇΓöÇidΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇxΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇyΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇcxΓöÇ
ΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇcyΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ
ΓööΓöÇΓöÇ,ΓöÇΓöÇΓöÇstyleΓöÇΓöÇΓöÿ
Class WC_COMBOBOX
Default style CBS_SIMPLE, WS_TABSTOP, WS_VISIBLE
CONTAINER
Format The CONTAINER control statement does not contain a text
field, so it has the same format as the LISTBOX
statement.
Class WC_CONTAINER
Default style WS_TABSTOP, WS_VISIBLE, CCS_SINGLESEL
CTEXT
Class WC_STATIC
Default style SS_TEXT, DT_CENTER, WS_GROUP, WS_VISIBLE
DEFPUSHBUTTON
Class WC_BUTTON
Default style BS_DEFAULT, BS_PUSHBUTTON, WS_TABSTOP, WS_VISIBLE
EDITTEXT
Class WC_ENTRYFIELD
Default style WS_ENTRYFIELD, WS_TABSTOP, WS_VISIBLE, ES_AUTOSCROLL
ENTRYFIELD
Class WC_ENTRYFIELD
Default style WS_TABSTOP, ES_LEFT, WS_VISIBLE
FRAME
Class WC_FRAME
Default style WS_VISIBLE
GROUPBOX
Class WC_STATIC
Default style SS_GROUPBOX, WS_TABSTOP, WS_VISIBLE
ICON
Class WC_STATIC
Default style SS_ICON, WS_VISIBLE
LISTBOX
Format The form of the LISTBOX control statement is different
from the general form because it does not take a text
field, however the fields have the same meaning as in
the other control statements. The form of the LISTBOX
control statement is shown below.
ΓöÇΓöÇcontroltypeΓöÇΓöÇΓöÇidΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇxΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇyΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇcxΓöÇΓöÇ
ΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇcyΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ
ΓööΓöÇΓöÇ,ΓöÇΓöÇΓöÇstyleΓöÇΓöÇΓöÿ
Class WC_LISTBOX
Default style LBS_NOTIFY, LBS_SORT, WS_VSCROLL, WS_BORDER, WS_VISIBLE
LTEXT
Class WC_STATIC
Default style SS_TEXT, DT_LEFT, WS_GROUP, WS_VISIBLE
MLE
Class WC_MLE
Default style WS_MLE, WS_TABSTOP, WS_VISIBLE, MLS_BORDER
NOTEBOOK
Format The NOTEBOOK control statement does not contain a text
field, so it has the same format as the LISTBOX
statement.
Class WC_NOTEBOOK
Default style WS_NOTEBOOK, WS_TABSTOP, WS_VISIBLE
PUSHBUTTON
Class WC_BUTTON
Default style BS_PUSHBUTTON, WS_TABSTOP, WS_VISIBLE
RADIOBUTTON
Class WC_BUTTON
Default style BS_RADIOBUTTON, WS_TABSTOP, WS_VISIBLE
RTEXT
Class WC_STATIC
Default style SS_TEXT, DT_RIGHT, WS_GROUP, WS_VISIBLE
SLIDER
Format The SLIDER control statement does not contain a text
field, so it has the same format as the LISTBOX
statement.
Class WC_SLIDER
Default style WS_SLIDER, WS_TABSTOP, WS_VISIBLE
SPINBUTTON
Format The SPINBUTTON control statement does not contain a
text field, so it has the same format as the LISTBOX
statement.
Class WC_SPINBUTTON
Default style WS_TABSTOP, WS_VISIBLE, SPBS_MASTER
VALUESET
Format The VALUESET control statement does not contain a text
field, so it has the same format as the LISTBOX
statement.
Class WC_VALUESET
Default style WS_VALUESET, WS_TABSTOP, WS_VISIBLE
Examples
The following is a complete example of a DIALOG statement:
DLGTEMPLATE errmess
BEGIN
DIALOG "Disk Error", 100, 10, 10, 300, 110
BEGIN
CTEXT "Select One:", 1, 10, 80, 280, 12
RADIOBUTTON "Retry", 2, 75, 50, 60, 12
RADIOBUTTON "Abort", 3, 75, 30, 60, 12
RADIOBUTTON "Ignore", 4, 75, 10, 60, 12
END
END
This is an example of a WINDOWTEMPLATE statement that is used to define a
specific kind of window frame. Calling Load Dialog with this resource
automatically creates the frame window, the frame controls, and the client
window (of class MyClientClass).
WINDOWTEMPLATE wind1
BEGIN
FRAME "My Window", 1, 10, 10, 320, 130, WS_VISIBLE,
FCF_STANDARD | FCF_VERTSCROLL
BEGIN
WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MyClientClass",
style
END
END
This example creates a resource template for a parallel dialog identified by
the constant parallel1. It includes a frame with a title bar, a system menu,
and a dialog-style border. The parallel dialog has three auto radio buttons in
it.
DLGTEMPLATE parallel1
BEGIN
DIALOG "Parallel Dialog", 1, 50, 50, 180, 110
CTLDATA FCF_TITLEBAR | FCF_SYSMENU | FCF_DLGBORDER
BEGIN
AUTORADIOBUTTON "Retry", 2, 75, 80, 60, 12
AUTORADIOBUTTON "Abort", 3, 75, 50, 60, 12
AUTORADIOBUTTON "Ignore", 4, 75, 30, 60, 12
END
END
ΓòÉΓòÉΓòÉ 2.9.4. Resource (.RES) File Specification ΓòÉΓòÉΓòÉ
The format for the .RES file is:
(/TYPE NAME FLAGS SIZE BYTES/)+
Where:
TYPE is either a null-terminated string or an ordinal, in which instance
the first byte is X'FF' followed by an INT that is the ordinal.
/* Predefined resource types */
#define RT_POINTER 1
#define RT_BITMAP 2
#define RT_MENU 3
#define RT_DIALOG 4
#define RT_STRING 5
#define RT_FONTDIR 6
#define RT_FONT 7
#define RT_ACCELTABLE 8
#define RT_RCDATA 9
#define RT_DLGINCLUDE 11
#define RT_FKALONG 17
#define RT_HELPTABLE 18
NAME is the same format as TYPE. There are no predefined names.
FLAGS is an unsigned value containing the memory manager flags:
#define NSTYPE X'0007' /* Segment type mask */
#define NSCODE X'0000' /* Code segment */
#define NSDATA X'0001' /* Data segment */
#define NSITER X'0008' /* Iterated segment flag */
#define NSMOVE X'0010' /* Moveable segment flag */
#define NSPURE X'0020' /* Pure segment flag */
#define NSPRELOAD X'0040' /* Preload segment flag */
#define NSEXRD X'0080' /* Execute-only (code segment), */
/* or read-only (data segment) */
#define NSRELOC X'0100' /* Segment has relocations */
#define NSCONFORM X'0200' /* Segment has debug info */
#define NSDPL X'0C00' /* 286 DPL bits */
#define NSDISCARD X'1000' /* Discard bit for segment */
#define NS32BIT X'2000' /* 32-BIT code segment */
#define NSHUGE X'4000' /* Huge memory segment */
SIZE is a LONG value defining how many bytes follow in the resource.
BYTES is the stream of bytes that makes up the resource.
Any number of resources can appear one after another in the .RES file.
ΓòÉΓòÉΓòÉ 2.10. Virtual Key Definitions ΓòÉΓòÉΓòÉ
The PC VKEY set is shown in the following table:
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
ΓöéSymbol ΓöéPersonal Computer AT ΓöéEnhanced Keyboard Γöé
Γöé ΓöéKeyboard Γöé Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_BUTTON1 ΓöéThese values are only ΓöéThese values are only Γöé
ΓöéVK_BUTTON2 Γöéused to access the Γöéused to access the Γöé
ΓöéVK_BUTTON3 Γöéup/down and toggled Γöéup/down and toggled Γöé
Γöé Γöéstates of the pointing Γöéstates of the pointing Γöé
Γöé Γöédevice buttons; they Γöédevice buttons; they Γöé
Γöé Γöénever actually appear Γöénever actually appear in Γöé
Γöé Γöéin a WM_CHAR message. Γöéa WM_CHAR message. Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_BREAK ΓöéCtrl + Scroll Lock ΓöéCtrl + Pause Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_BACKSPACE ΓöéBackspace ΓöéBackspace Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_TAB ΓöéTab ΓöéTab Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_BACKTAB ΓöéShift + Tab ΓöéShift + Tab Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_NEWLINE ΓöéEnter ΓöéEnter Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_SHIFT * ΓöéLeft and Right Shift ΓöéLeft and Right Shift Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_CTRL * ΓöéCtrl ΓöéLeft and Right Ctrl Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_ALT * ΓöéAlt ΓöéLeft and Right Alt Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_ALTGRAF * ΓöéNone ΓöéAlt Graf (if available) Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_PAUSE ΓöéCtrl + Num Lock ΓöéPause Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_CAPSLOCK ΓöéCaps Lock ΓöéCaps Lock Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_ESC ΓöéEsc ΓöéEsc Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_SPACE * ΓöéSpace ΓöéSpace Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_PAGEUP * ΓöéNumpad 9 ΓöéPg Up and Numpad 9 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_PAGEDOWN * ΓöéNumpad 3 ΓöéPg Dn and Numpad 3 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_END * ΓöéNumpad 1 ΓöéEnd and Numpad 1 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_HOME * ΓöéNumpad 7 ΓöéHome and Numpad 7 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_LEFT * ΓöéNumpad 4 ΓöéLeft and Numpad 4 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_UP * ΓöéNumpad 8 ΓöéUp and Numpad 8 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_RIGHT * ΓöéNumpad 6 ΓöéRight and Numpad 6 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_DOWN * ΓöéNumpad 2 ΓöéDown and Numpad 2 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_PRINTSCRN ΓöéShift + Print Screen ΓöéPrint Screen Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_INSERT * ΓöéNumpad 0 ΓöéIns and Numpad 0 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_DELETE * ΓöéNumpad . ΓöéDel and Numpad . Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_SCRLLOCK ΓöéScroll Lock ΓöéScroll Lock Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_NUMLOCK ΓöéNum Lock ΓöéNum Lock Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_ENTER ΓöéShift + Enter ΓöéShift + Enter and Numpad Γöé
Γöé Γöé ΓöéEnter Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_SYSRQ ΓöéSysRq ΓöéAlt + Print Screen Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F1 * ΓöéF1 ΓöéF1 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F2 * ΓöéF2 ΓöéF2 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F3 * ΓöéF3 ΓöéF3 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F4 * ΓöéF4 ΓöéF4 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F5 * ΓöéF5 ΓöéF5 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F6 * ΓöéF6 ΓöéF6 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F7 * ΓöéF7 ΓöéF7 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F8 * ΓöéF8 ΓöéF8 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F9 * ΓöéF9 ΓöéF9 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F10 * ΓöéF10 ΓöéF10 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F11 * ΓöéNone ΓöéF11 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F12 * ΓöéNone ΓöéF12 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F13 ΓöéNone ΓöéNone Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F14 ΓöéNone ΓöéNone Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F15 ΓöéNone ΓöéNone Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F16 ΓöéNone ΓöéNone Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F17 ΓöéNone ΓöéNone Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F18 ΓöéNone ΓöéNone Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F19 ΓöéNone ΓöéNone Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F20 ΓöéNone ΓöéNone Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F21 ΓöéNone ΓöéNone Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F22 ΓöéNone ΓöéNone Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F23 ΓöéNone ΓöéNone Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_F24 ΓöéNone ΓöéNone Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéVK_MENU * ΓöéF10 ΓöéF10 Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
Notes:
1. VKEYs marked with an asterisk (*) are generated irrespective of other shift
states (Shift, Ctrl, Alt, and Alt Graf).
2. VK_CAPSLOCK is not generated for any of the Ctrl shift states, for PC-DOS
compatibility.
3. Wherever possible, the VK_ name is derived from the legend on the key top
of the 101-key Enhanced PC keyboard.
ΓòÉΓòÉΓòÉ 3. Spooler Functions ΓòÉΓòÉΓòÉ
This section describes functions that an application would use to write data
directly to a spool file.
ΓòÉΓòÉΓòÉ 3.1. SplControlDevice ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplControlDevice ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplControlDevice ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where print device is to be controlled. A NULL string
specifies the local workstation.
pszPortName (PSZ) - input
Port name.
ulControl (ULONG) - input
Operation to perform.
PRD_DELETE
Delete current print job
PRD_PAUSE
Pause printing
PRD_CONT
Continue paused print job
PRD_RESTART
Restart print job.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplControlDevice ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_DestNotFound (2152)
The print device cannot be found.
NERR_DestIdle (2158)
This print device is idle and cannot accept control operations.
NERR_DestInvalidOp (2159)
This print device request contains an invalid control function.
NERR_ProcNoRespond (2160)
The queue processor is not responding.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplControlDevice ΓòÉΓòÉΓòÉ
A paused print device cannot accept new print jobs.
If PRD_DELETE is attempted when there is no current print job, NERR_DestIdle
(2158) is returned.
To control jobs on a remote server requires administrator privilege.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplControlDevice ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function cancels, holds, */
/* continues, or restarts a print device. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where print device is to be controlled */
PSZ pszPortName; /* Port name */
ULONG ulControl; /* Operation to perform */
SPLERR rc;
rc = SplControlDevice(pszComputerName,
pszPortName, ulControl);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplControlDevice ΓòÉΓòÉΓòÉ
Related Functions
o SplEnumDevice
o SplQueryDevice
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplControlDevice ΓòÉΓòÉΓòÉ
This sample code demonstrates the result of various actions that can be
performed on the print device by this function call. At the command line, a
print device name is entered along with an action code.
#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h> /* for printf function */
INT main (argc, argv)
INT argc;
CHAR *argv[];
{
SPLERR splerr ;
ULONG ulControl=0L ;
PSZ pszComputerName = NULL ;
PSZ pszPrintDeviceName ;
/* Input a Print Device Name and an Action Code on the command line */
if (argc != 3)
{
printf("Syntax is: qcontrol PrintDeviceName ActionCode \n");
printf("Action codes are: D-Delete, P-Pause, C-Continue, R-Restart\n\n");
DosExit( EXIT_PROCESS , 0 ) ;
}
/* Get the print device name from the first input parameter. */
pszPrintDeviceName = argv[1];
/* Get the action code from the second input parameter. */
switch (argv[2][0])
{
case 'D':
ulControl = PRD_DELETE ;
break;
case 'P':
ulControl = PRD_PAUSE ;
break;
case 'C':
ulControl = PRD_CONT ;
break;
case 'R':
ulControl = PRD_RESTART ;
break;
default:
printf("Invalid code\n");
DosExit( EXIT_PROCESS , 0 ) ;
}
/* Call the function with the parameters obtained from the command line. */
splerr = SplControlDevice(pszComputerName, pszPrintDeviceName, ulControl);
/* If there is an error returned, print it. */
if (splerr != 0L)
{
switch (splerr)
{
case NERR_DestNotFound :
printf("Destination does not exist.\n");
break;
case NERR_DestIdle:
printf("This print device is idle - can't do control ops. \n");
break;
default:
printf("Errorcode = %ld\n",splerr);
}
} else {
printf("The print job operation was performed.\n\n");
}
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr) ;
}
ΓòÉΓòÉΓòÉ 3.2. SplCopyJob ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplCopyJob ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplCopyJob ΓòÉΓòÉΓòÉ
pszSrcComputerName (PSZ) - input
Name of computer where job is to be copied from. A NULL string specifies the
local workstation.
pszSrcQueueName (PSZ) - input
Name of queue where job is to be copied from.
ulSrcJob (ULONG) - input
Source Job identification number.
pszTrgComputerName (PSZ) - input
Name of computer where job is to be copied to. A NULL string specifies the
local workstation.
pszTrgQueueName (PSZ) - input
Name of queue where job is to be copied to. A NULL string specifies the same
queue as the original job.
pulTrgJob (PULONG) - output
Job identification number of new job.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplCopyJob ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_QNotFound (2150)
The printer queue does not exist.
NERR_JobNotFound (2151)
The print job does not exist.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplCopyJob ΓòÉΓòÉΓòÉ
Currently there is a restriction that a job can only be copied onto the same
queue (and computer) as the original job.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplCopyJob ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function copies a job in a print */
/* queue. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszSrcComputerName; /* Name of computer where job is to be copied from */
PSZ pszSrcQueueName; /* Name of queue where job is to be copied from */
ULONG ulSrcJob; /* Source Job identification number */
PSZ pszTrgComputerName; /* Name of computer where job is to be copied to */
PSZ pszTrgQueueName; /* Name of queue where job is to be copied to */
PULONG pulTrgJob; /* Job identification number of new job */
SPLERR rc;
rc = SplCopyJob(pszSrcComputerName,
pszSrcQueueName, ulSrcJob,
pszTrgComputerName, pszTrgQueueName,
pulTrgJob);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplCopyJob ΓòÉΓòÉΓòÉ
Related Functions
o SplEnumJob
o SplEnumQueue
o SplQueryJob
o SplQueryQueue
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplCopyJob ΓòÉΓòÉΓòÉ
This sample code will make a duplicate copy of the jobid that is entered at the
prompt. Presently, there is a restriction that the job can only be duplicated
on the same computer/queue; i.e. a local job.
#define INCL_SPL
#include <os2.h>
#include <stdio.h> /* for printf function */
#include <stdlib.h> /* for atoi function */
INT main (argc, argv)
INT argc;
CHAR *argv[];
{
SPLERR splerr ;
ULONG ulSrcJob, ulTrgJob ;
PSZ pszSrcComputerName,pszTrgComputerName ;
PSZ pszSrcQueueName,pszTrgQueueName ;
if (argc != 2)
{
printf("Command is: copyjob JOBID\n");
DosExit( EXIT_PROCESS , 0 ) ;
}
pszSrcComputerName = (PSZ)NULL ;
/* The only valid values at present for these three parameters is NULL */
pszSrcQueueName = (PSZ)NULL;
pszTrgComputerName = (PSZ)NULL ;
pszTrgQueueName = (PSZ)NULL ;
/* Convert input parameter to a ULONG */
ulSrcJob = atoi ( argv[1] );
if (splerr = SplCopyJob(pszSrcComputerName,pszSrcQueueName,ulSrcJob,
pszTrgComputerName,pszTrgQueueName,&ulTrgJob))
{
printf("Return code SplCopyJob = %d\n",splerr);
}
else
{
printf("New job ID is %d\n",ulTrgJob);
}
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr);
} /* end main */
ΓòÉΓòÉΓòÉ 3.3. SplCreateDevice ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplCreateDevice ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplCreateDevice ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where print device is to be added. A NULL string specifies
the local workstation.
ulLevel (ULONG) - input
Level of detail provided. This must be 3.
pBuf (PVOID) - input
Data structure.
cbBuf (ULONG) - input
Size, in bytes, of data structure.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplCreateDevice ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
ERROR_INVALID_NAME (123)
The computer name is invalid.
ERROR_INVALID_LEVEL (124)
The level parameter is invalid.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_BufTooSmall (2123)
The API return buffer is too small.
NERR_DestExists (2153)
The print device already exists.
NERR_DestNoRoom (2157)
The maximum number of print devices has been reached.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_DestInvalidState (2162)
This operation cannot be performed on the print device.
NERR_SpoolNoMemory (2165)
A spooler memory allocation failure occurred.
NERR_DriverNotFound (2166)
The device driver does not exist.
NERR_BadDev (2341)
The device is already in use as a communications device.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplCreateDevice ΓòÉΓòÉΓòÉ
The result of this function is the creation of a new print device definition.
The printer is set up to print on the logical address (port) defined by
pszLogAddr in PRDINFO3. If pszLogAddr is NULL, the print device definition is
created but is not connected to any logical address. In this case no printing
can occur on that print device or from any print queue connected only to that
print device. If a logical address is specified, it must already be defined in
the PM_SPOOLER_PORTS section of the initialization file.
Note: To change the connection between a print device and a port, use
SplSetDevice.
The maximum length for a print device name is 32 characters. The use of a
longer name results in ERROR_INVALID_NAME (123).
All device drivers and queues specified with the print device must already be
defined to the spooler.
To add a remote print device requires administrator privilege.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplCreateDevice ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function establishes a print */
/* device on the local workstation or a */
/* remote server. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where print device is to be added */
ULONG ulLevel; /* Level of detail provided */
PVOID pBuf; /* Data structure */
ULONG cbBuf; /* Size, in bytes, of data structure */
SPLERR rc;
rc = SplCreateDevice(pszComputerName,
ulLevel, pBuf, cbBuf);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplCreateDevice ΓòÉΓòÉΓòÉ
Related Functions
o SplDeleteDevice
o SplEnumDevice
o SplEnumDriver
o SplEnumPort
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplCreateDevice ΓòÉΓòÉΓòÉ
This sample code creates a PRDINFO3 structure with dummy parameters. This
structure is then used to call SplCreateDevice to establish a print device on a
local workstation.
#define INCL_BASE
#define INCL_DOSMEMMGR
#define INCL_SPL
#define INCL_SPLDOSPRINT
#include <os2.h>
#include <stdio.h> /* for printf function */
#include <string.h> /* for strcpy function */
INT main (argc, argv)
INT argc;
CHAR *argv[];
{
ULONG splerr ;
ULONG cbBuf;
ULONG ulLevel ;
PSZ pszComputerName ;
PSZ pszPrintDeviceName ;
PRDINFO3 prd3 ;
if (argc != 2)
{
printf("Syntax: sdcrt DeviceName \n");
DosExit( EXIT_PROCESS , 0 ) ;
}
/* We are going to create a print device on the local workstation. */
pszComputerName = (PSZ)NULL ;
/* Get the name from the command line. */
pszPrintDeviceName = argv[1];
/* Level 3 is valid. We will use level 3. */
ulLevel = 3;
/* Get size of buffer needed for a PRDINFO3 structure. */
cbBuf = sizeof(PRDINFO3);
/* Set up the structure with dummy parameters. */
strcpy( prd3.pszPrinterName , pszPrintDeviceName);
prd3.pszUserName= "A. Best";
prd3.pszLogAddr="LPT1Q";
prd3.uJobId=0;
prd3.pszComment= "Test comment";
prd3.pszDrivers = "IBMNULL";
prd3.usTimeOut = 777;
/* Make the call. */
splerr = SplCreateDevice(pszComputerName, ulLevel,
&prd3, cbBuf);
/* Print out the results. */
if (splerr == NO_ERROR)
printf("The device was successfully created.");
else
printf("SplCreateDevice Error=%ld, cbNeeded=%ld\n",
splerr, cbBuf) ;
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr);
}
ΓòÉΓòÉΓòÉ 3.4. SplCreateQueue ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplCreateQueue ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplCreateQueue ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where queue is to be created. A NULL string specifies a
local workstation.
ulLevel (ULONG) - input
Level of detail provided. This must be 3 or 6.
pbBuf (PVOID) - input
Data structure.
cbBuf (ULONG) - input
Size, in bytes, of data structure.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplCreateQueue ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
ERROR_INVALID_NAME (123)
The computer name is invalid.
ERROR_INVALID_LEVEL (124)
The level parameter is invalid.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_RedirectedPath (2117)
The operation is invalid on a redirected resource.
NERR_BufTooSmall (2123)
The API return buffer is too small.
NERR_DestNotFound (2152)
The printer destination cannot be found.
NERR_QExists (2154)
The printer queue already exists.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_DestInvalidState (2162)
This operation cannot be performed on the print destination in its
current state.
NERR_SpoolNoMemory (2165)
A spooler memory allocation failure occurred.
NERR_DriverNotFound (2166)
The device driver does not exist.
NERR_DataTypeInvalid (2167)
The data type is not supported by the queue processor.
NERR_ProcNotFound (2168)
The queue processor is not installed.
NERR_BadDev (2341)
The requested device is invalid.
NERR_CommDevInUse (2343)
This device is already in use as a communications device.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplCreateQueue ΓòÉΓòÉΓòÉ
To create a queue on a remote server requires administrator privilege.
Applications wanting to create print queues should use the level 3 or level 6
call with a PRQINFO3 or PRQINFO6 data structure. The following fields are
required in PRQINFO3 or PRQINFO6:
pszName
uPriority
uStartTime
uUntilTime
pszSepFile
pszParms
pszPrinters
pszDriverName
pDriverData.
If a queue of the name specified in pszName already exists on pszComputerName,
the call fails unless the queue is marked for deletion. In this case, the queue
is not deleted, and the creation fields are used to perform a SplSetQueue
function on the queue.
If pszPrinters is NULL, the queue is created but not connected to any printer.
pszDriverName can be a NULL string, in which case pDriverData is ignored.
Otherwise pszDriverName must refer to the name of a device driver that is
already defined in the initialization file (for example, "IBM4019").
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplCreateQueue ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function creates a new print queue */
/* on the local workstation or on a remote */
/* server. A remote server setup requires */
/* the LAN Requester and Server software. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where queue is to be created */
ULONG ulLevel; /* Level of detail provided */
PVOID pbBuf; /* Data structure */
ULONG cbBuf; /* Size, in bytes, of data structure */
SPLERR rc;
rc = SplCreateQueue(pszComputerName,
ulLevel, pbBuf, cbBuf);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplCreateQueue ΓòÉΓòÉΓòÉ
Related Functions
o SplDeleteQueue
o SplEnumDevice
o SplEnumDriver
o SplEnumQueueProcessor
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplCreateQueue ΓòÉΓòÉΓòÉ
This sample code creates a queue on the local workstation. The queue is created
with dummy parameters. The name is entered at the command line.
#define INCL_BASE
#define INCL_SPL
#define INCL_SPLDOSPRINT
#include <os2.h>
#include <stdio.h>
#include <string.h>
INT main (argc, argv )
INT argc;
CHAR *argv[];
{
ULONG splerr ;
ULONG cbBuf;
ULONG ulLevel ;
PSZ pszComputerName ;
PSZ pszQueueName ;
PRQINFO3 prq3 ;
if (argc != 2)
{
printf("Syntax: sqcrt QueueName \n");
DosExit( EXIT_PROCESS , 0 ) ;
}
pszComputerName = (PSZ)NULL ;
ulLevel = 3L;
/* Get the queue name from the argument entered at */
/* the command line. */
pszQueueName = argv[1];
/* Determine the size of the needed buffer. */
cbBuf = sizeof(PRQINFO3);
/* Set up the structure with some dummy parameters. */
strcpy( prq3.pszName , pszQueueName);
prq3.uPriority=7;
prq3.uStartTime=77;
prq3.uUntilTime=777;
prq3.pszSepFile="a:\\best\\example.sep";
prq3.pszParms=NULL;
prq3.pszPrinters=NULL;
prq3.pszDriverName=NULL;
prq3.pDriverData=NULL;
/* Make the call with the proper parameters. */
splerr = SplCreateQueue(pszComputerName, ulLevel,
&prq3, cbBuf);
/* Print out the error return code and some other information. */
printf("SplCreateQueue Error=%ld, cbNeeded=%ld\n",
splerr, cbBuf) ;
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr);
}
ΓòÉΓòÉΓòÉ 3.5. SplDeleteDevice ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplDeleteDevice ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplDeleteDevice ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where print device is to be deleted. A NULL string
specifies the local workstation.
pszPrintDeviceName (PSZ) - input
Name of Print Device.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplDeleteDevice ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_DestNotFound (2152)
The print device cannot be found.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_DestInvalidState (2162)
This operation cannot be performed on the print device.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplDeleteDevice ΓòÉΓòÉΓòÉ
If the print device is currently printing a job, SplDeleteDevice fails and
returns NERR_DestInvalidState (2162).
To delete a print device on a remote server requires administrator privilege.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplDeleteDevice ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function deletes a print device. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where print device is to be deleted */
PSZ pszPrintDeviceName; /* Name of Print Device */
SPLERR rc;
rc = SplDeleteDevice(pszComputerName,
pszPrintDeviceName);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplDeleteDevice ΓòÉΓòÉΓòÉ
Related Functions
o SplCreateDevice
o SplEnumDevice
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplDeleteDevice ΓòÉΓòÉΓòÉ
This sample code will delete the print device whose name is entered at the
prompt.
#define INCL_BASE
#define INCL_DOSMEMMGR
#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h>
INT main (argc, argv)
INT argc;
CHAR *argv[];
{
SPLERR splerr= 0L;
PSZ pszComputerName ;
PSZ pszPrintDeviceName ;
/* Check that the parameters were entered at the command line. */
if (argc != 2)
{
printf("Syntax: sddel PrintDeviceName \n");
DosExit( EXIT_PROCESS , 0 ) ;
}
/* Computer name of NULL indicates the local computer. */
pszComputerName = (PSZ)NULL ;
/* Set the PrintDeviceName to the value entered at the command line. */
pszPrintDeviceName = argv[1];
/* Make the call and print out the return code. */
splerr=SplDeleteDevice(pszComputerName, pszPrintDeviceName);
switch (splerr)
{
case NO_ERROR:
printf("Print Device %s was deleted.\n",pszPrintDeviceName);
break;
case NERR_DestNotFound :
printf("Destination does not exist.\n");
break;
case NERR_DestInvalidState:
printf("This operation can't be performed on the print device.\n");
break;
case NERR_SpoolerNotLoaded:
printf("The Spooler is not running.\n");
break;
default:
printf("SplDeleteDevice Errorcode = %ld\n",splerr);
} /* endswitch */
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr) ;
}
ΓòÉΓòÉΓòÉ 3.6. SplDeleteJob ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplDeleteJob ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplDeleteJob ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where job is to be deleted. A NULL string specifies the
local workstation.
pszQueueName (PSZ) - input
Queue Name.
ulJob (ULONG) - input
Job identification number.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplDeleteJob ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_JobNotFound (2151)
The print job does not exist.
NERR_ProcNoRespond (2160)
The queue processor is not responding.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplDeleteJob ΓòÉΓòÉΓòÉ
It is possible to delete a job that is currently printing.
If the print queue on which the print job is submitted is pending deletion
(following a SplDeleteQueue call), and the print job is the last in the queue,
this function has the additional effect of deleting the queue.
A user with administrator privilege can delete any job.
A job created locally can be deleted locally regardless of user privilege
level, but can be deleted remotely only by an administrator.
A remote job can be deleted by a user without administrator privilege only if
the username of the person initiating the request is the same as the username
of the person who created the job.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplDeleteJob ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function deletes a job from a */
/* print queue. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where job is to be deleted */
PSZ pszQueueName; /* Queue Name */
ULONG ulJob; /* Job identification number */
SPLERR rc;
rc = SplDeleteJob(pszComputerName,
pszQueueName, ulJob);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplDeleteJob ΓòÉΓòÉΓòÉ
Related Functions
o SplCopyJob
o SplEnumJob
o SplQueryJob
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplDeleteJob ΓòÉΓòÉΓòÉ
This sample code will delete the job id that is entered at the prompt.
#define INCL_BASE
#define INCL_SPL
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h> /* for printf function */
#include <stdlib.h> /* for atoi function */
INT main (argc, argv)
INT argc;
CHAR *argv[];
{
SPLERR splerr ;
ULONG ulJob ;
PSZ pszComputerName = NULL ;
PSZ pszQueueName = NULL ;
/* Get job id from the input argument. */
ulJob = atoi(argv[1]);
/* Call the function to do the delete. If an error is */
/* returned, print it. */
splerr = SplDeleteJob( pszComputerName, pszQueueName, ulJob);
if (splerr != NO_ERROR)
{
switch (splerr)
{
case NERR_JobNotFound :
printf("Job does not exist.\n");
break;
case NERR_JobInvalidState:
printf("This operation can't be performed on the print job.\n");
break;
default:
printf("Errorcode = %ld\n",splerr);
} /* endswitch */
}
else
{
printf("Job %d was deleted.\n",ulJob);
} /* endif */
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr);
}
ΓòÉΓòÉΓòÉ 3.7. SplDeleteQueue ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplDeleteQueue ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplDeleteQueue ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where queue is to be deleted. A NULL string specifies the
local workstation.
pszQueueName (PSZ) - input
Queue name.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplDeleteQueue ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_QNotFound (2150)
The printer queue does not exist.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_QInvalidState (2163)
This operation cannot be performed on the print queue.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplDeleteQueue ΓòÉΓòÉΓòÉ
If there are print jobs in the queue, SplDeleteQueue marks the queue
PRQ3_PENDING. No further jobs can then be added to the queue, which is deleted
when all jobs are printed. A queue marked PRQ3_PENDING can be held, and jobs in
the queue can be held, restarted, and repeated.
If a queue is held and there are jobs on the queue, a SplDeleteQueue function
fails with NERR_QInvalidState (2163).
To delete a queue on a remote server requires administrator privilege on the
remote server.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplDeleteQueue ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function deletes a print queue */
/* from the spooler. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where queue is to be deleted */
PSZ pszQueueName; /* Queue name */
SPLERR rc;
rc = SplDeleteQueue(pszComputerName,
pszQueueName);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplDeleteQueue ΓòÉΓòÉΓòÉ
Related Functions
o SplCreateQueue
o SplEnumQueue
o SplQueryQueue
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplDeleteQueue ΓòÉΓòÉΓòÉ
This sample code will delete the queue name that is entered at the prompt.
#define INCL_SPL
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h> /* for printf function */
INT main (argc, argv)
INT argc;
CHAR *argv[];
{
SPLERR splerr ;
PSZ pszComputerName = NULL ;
PSZ pszQueueName ;
/* Get queue name from the input argument */
pszQueueName = argv[1];
/* Call the function to do the delete. If an error is returned, print it.
*/
splerr=SplDeleteQueue(pszComputerName, pszQueueName);
if (splerr != 0L)
{
switch (splerr)
{
case NERR_QNotFound :
printf("Queue does not exist.\n");
break;
case NERR_QInvalidState:
printf("This operation can't be performed on the print queue.\n");
break;
default:
printf("Errorcode = %ld\n",splerr);
} /* endswitch */
}
else
{
printf("Queue %s was deleted.\n",pszQueueName);
} /* endif */
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr);
}
ΓòÉΓòÉΓòÉ 3.8. SplEnumDevice ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplEnumDevice ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplEnumDevice ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where print devices are to be listed. A NULL string
specifies the local workstation.
ulLevel (ULONG) - input
Level of detail required. This must be 0, 2 or 3.
pBuf (PPVOID) - output
Buffer.
cbBuf (ULONG) - input
Size, in bytes, of Buffer.
pcReturned (PULONG) - output
Number of entries returned.
pcTotal (PULONG) - output
Number of entries available.
pcbNeeded (PULONG) - output
Size in bytes of available information. A value of 0 specifies that the size
is not known.
pReserved (PPVOID) - output
Reserved. This must be NULL.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplEnumDevice ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
ERROR_INVALID_LEVEL (124)
The level parameter is invalid.
ERROR_MORE_DATA (234)
Additional data is available.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplEnumDevice ΓòÉΓòÉΓòÉ
The buffer contents on return are:
ulLevel Buffer Contents
0 An array of port names of type PSZ.
2 An array of print device names of type PSZ.
3 An array of PRDINFO3 structures.
If no job is printing on the print device, bits 2-11 of fsStatus in the
PRDINFO3 data structure are meaningless.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplEnumDevice ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function lists print device on a */
/* server, optionally supplying status */
/* information. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where print devices are to be listed */
ULONG ulLevel; /* Level of detail required */
PPVOID pBuf; /* Buffer */
ULONG cbBuf; /* Size, in bytes, of Buffer */
PULONG pcReturned; /* Number of entries returned */
PULONG pcTotal; /* Number of entries available */
PULONG pcbNeeded; /* Size in bytes of available information */
PPVOID pReserved; /* Reserved */
SPLERR rc;
rc = SplEnumDevice(pszComputerName, ulLevel,
pBuf, cbBuf, pcReturned, pcTotal,
pcbNeeded, pReserved);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplEnumDevice ΓòÉΓòÉΓòÉ
Related Functions
o SplCreateDevice
o SplDeleteDevice
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplEnumDevice ΓòÉΓòÉΓòÉ
This sample code enumerates all the devices on the local workstation. It then
prints out the information.
#define INCL_BASE
#define INCL_DOSMEMMGR
#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h>
INT main ()
{
ULONG cbBuf ;
ULONG cTotal;
ULONG cReturned ;
ULONG cbNeeded ;
ULONG ulLevel = 3L;
ULONG i ;
SPLERR splerr ;
PSZ pszComputerName ;
PBYTE pBuf ;
PPRDINFO3 pprd3 ;
pszComputerName = (PSZ)NULL ;
/* Make the call with cBuf = 0 so that you will get the size of the */
/* buffer needed returned in cbNeeded. */
splerr = SplEnumDevice(pszComputerName, ulLevel, pBuf, 0L, /* cbBuf */
&cReturned, &cTotal, &cbNeeded,
NULL) ;
/* Only continue if the error codes ERROR_MORE_DATA or */
/* NERR_BufTooSmall are returned. */
if (splerr == ERROR_MORE_DATA || splerr == NERR_BufTooSmall)
{
/* Allocate memory for the buffer that will hold the returning info. */
if (!DosAllocMem( &pBuf, cbNeeded,
PAG_READ|PAG_WRITE|PAG_COMMIT) )
{
cbBuf = cbNeeded ;
/* Make call again with the proper buffer size. */
splerr = SplEnumDevice(pszComputerName, ulLevel, pBuf, cbBuf,
&cReturned, &cTotal,
&cbNeeded, NULL) ;
/* If no errors, print out the buffer information. */
if (splerr == NO_ERROR)
{
for (i=0;i < cReturned ; i++)
{
/* Each time through the loop increase the pointer. */
pprd3 = (PPRDINFO3)pBuf+i ;
printf("Device info:pszPrinterName - %s\n",
pprd3->pszPrinterName) ;
printf(" pszUserName - %s\n", pprd3->pszUserName);
printf(" pszLogAddr - %s\n", pprd3->pszLogAddr);
printf(" uJobId - %d fsStatus - %X\n",
pprd3->uJobId , pprd3->fsStatus);
printf(" pszStatus - %s\n", pprd3->pszStatus);
printf(" pszComment - %s\n", pprd3->pszComment);
printf(" pszDrivers - %s\n", pprd3->pszDrivers);
printf(" time - %d usTimeOut - %X\n",
pprd3->time , pprd3->usTimeOut);
}
}
DosFreeMem(pBuf) ;
}
} /* end if */
else
{
printf("SplEnumDevice splerr=%ld, cTotal=%ld, cReturned=%ld,
cbNeeded=%ld\n",
splerr, cTotal, cReturned, cbNeeded) ;
}
DosExit( EXIT_PROCESS , 0 ) ;
return(splerr);
} /* end main */
ΓòÉΓòÉΓòÉ 3.9. SplEnumDriver ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplEnumDriver ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplEnumDriver ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where queues are to be listed. A NULL string specifies the
local workstation.
ulLevel (ULONG) - input
Level of detail. The level of detail required. This must be 0.
pBuf (PPVOID) - output
Buffer.
cbBuf (ULONG) - input
Size, in bytes, of Buffer.
pcReturned (PULONG) - output
Number of entries returned.
pcTotal (PULONG) - output
Total number of entries available.
pcbNeeded (PULONG) - output
Size in bytes of available information. A value of 0 specifies that the size
is not known.
pReserved (PPVOID) - output
Reserved. This must be NULL.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplEnumDriver ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
ERROR_INVALID_LEVEL (124)
The level parameter is invalid.
ERROR_MORE_DATA (234)
Additional data is available.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_BufTooSmall (2123)
The API return buffer is too small.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplEnumDriver ΓòÉΓòÉΓòÉ
The buffer contents on return are:
ulLevel Buffer Contents
0 An array of PRDRIVINFO structures
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplEnumDriver ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function lists printer */
/* presentation drivers on the local */
/* workstation or on a remote server. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where queues are to be listed */
ULONG ulLevel; /* Level of detail */
PPVOID pBuf; /* Buffer */
ULONG cbBuf; /* Size, in bytes, of Buffer */
PULONG pcReturned; /* Number of entries returned */
PULONG pcTotal; /* Total number of entries available */
PULONG pcbNeeded; /* Size in bytes of available information */
PPVOID pReserved; /* Reserved */
SPLERR rc;
rc = SplEnumDriver(pszComputerName, ulLevel,
pBuf, cbBuf, pcReturned, pcTotal,
pcbNeeded, pReserved);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplEnumDriver ΓòÉΓòÉΓòÉ
Related Functions
o SplCreateDevice
o SplCreateQueue
o SplSetDevice
o SplSetQueue
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplEnumDriver ΓòÉΓòÉΓòÉ
This sample code will enumerate all the drivers on a local computer.
#define INCL_BASE
#define INCL_DOSMEMMGR
#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h> /* for printf function */
INT main ()
{
SPLERR splerr ;
ULONG cbBuf ;
ULONG cTotal ;
ULONG cReturned ;
ULONG cbNeeded ;
ULONG i ;
PSZ pszComputerName = NULL ;
PSZ pszDriverName ;
PBYTE pbuf ;
/* Call the function the first time with zero in cbBuf. The count of bytes */
/* needed for the buffer to hold all the info will be returned in cbNeeded.*/
splerr = SplEnumDriver(pszComputerName, 0L, NULL, 0L,
&cReturned, &cTotal, &cbNeeded,
NULL );
/* If the return code is ERROR_MORE_DATA or NERR_BufTooSmall, then
all the */
/* parameters were correct; and we can continue. */
if (splerr == ERROR_MORE_DATA || splerr == NERR_BufTooSmall)
{
/* Allocate memory for the buffer to hold the returned information. Use */
/* the count of bytes that were returned by our first call. */
if (!DosAllocMem( &pbuf, cbNeeded,
PAG_READ|PAG_WRITE|PAG_COMMIT) )
{
/* Set count of bytes to the value returned by our first call. */
cbBuf= cbNeeded ;
/* Now call the function a second time with the correct values, and */
/* the information will be returned in the buffer. */
splerr= SplEnumDriver(pszComputerName, 0L, pbuf, cbBuf,
&cReturned ,&cTotal, &cbNeeded,
NULL ) ;
if (splerr == NO_ERROR)
{
/* Set a pointer to point to the beginning of the buffer. */
pszDriverName = (PSZ)pbuf;
/* Print the names that are in the buffer. The count of the number*/
/* of names in pBuf have been returned in cReturned. */
for (i=0;i < cReturned ; i++)
{
printf("Driver name - %s\n", pszDriverName) ;
/* Increment the pointer to point to the next name. */
pszDriverName += DRIV_NAME_SIZE +DRIV_DEVICENAME_SIZE
+ 2;
}
}
/* Free the memory allocated for the buffer. */
DosFreeMem(pbuf) ;
}
}
else
{
/* If the first call to the function returned any error code other */
/* than ERROR_MORE_DATA or NERR_BufTooSmall, we print the
following. */
printf("SplEnumDriver error=%ld \n",splerr) ;
}
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr);
}
ΓòÉΓòÉΓòÉ 3.10. SplEnumJob ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplEnumJob ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplEnumJob ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where jobs are to be listed. A NULL string specifies the
local workstation.
pszQueueName (PSZ) - input
Queue name.
ulLevel (ULONG) - input
Level of detail required. This must be 0 or 2.
pBuf (PPVOID) - output
Buffer.
cbBuf (ULONG) - input
Size, in bytes, of Buffer.
pcReturned (PULONG) - output
Number of entries returned.
pcTotal (PULONG) - output
Number of entries available.
pcbNeeded (PULONG) - output
Size in bytes of available information. A value of 0 specifies that the size
is not known.
pReserved (PPVOID) - output
Reserved.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplEnumJob ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
ERROR_INVALID_LEVEL (124)
The level parameter is invalid.
ERROR_MORE_DATA (234)
Additional data is available.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_QNotFound (2150)
The printer queue does not exist.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplEnumJob ΓòÉΓòÉΓòÉ
The buffer contents on return are:
ulLevel Buffer Contents
0 An array containing a uJobId for each of pcReturned jobs.
2 An array containing a PRJINFO2 structure for each of pcReturned jobs.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplEnumJob ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function lists the jobs in a print */
/* queue, optionally supplying status */
/* information on each job. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where jobs are to be listed */
PSZ pszQueueName; /* Queue name */
ULONG ulLevel; /* Level of detail required */
PPVOID pBuf; /* Buffer */
ULONG cbBuf; /* Size, in bytes, of Buffer */
PULONG pcReturned; /* Number of entries returned */
PULONG pcTotal; /* Number of entries available */
PULONG pcbNeeded; /* Size in bytes of available information */
PPVOID pReserved; /* Reserved. This must be NULL */
SPLERR rc;
rc = SplEnumJob(pszComputerName,
pszQueueName, ulLevel, pBuf, cbBuf,
pcReturned, pcTotal, pcbNeeded,
pReserved);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplEnumJob ΓòÉΓòÉΓòÉ
Related Functions
o SplCopyJob
o SplDeleteJob
o SplQueryJob
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplEnumJob ΓòÉΓòÉΓòÉ
This sample code accepts a queue name from the command line, and then prints
out all the information associated with each job in that queue. Level 0 and 2
are valid; we have chosen to print out level 2 information.
#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h> /* for printf function */
INT main (argc, argv)
INT argc;
CHAR *argv[];
{
ULONG splerr ;
ULONG cbBuf ;
ULONG cTotal ;
ULONG cReturned ;
ULONG cbNeeded ;
ULONG ulLevel;
ULONG i ;
PSZ pszComputerName ;
PSZ pszQueueName ;
PVOID pBuf = NULL;
PPRJINFO2 pprj2 ;
/* Check that the command line entry was two parameters. */
if (argc != 2)
{
printf("Syntax: enumjob QueueName\n");
DosExit( EXIT_PROCESS , 0 ) ;
}
/* Either a NULL or a pointer to a NULL specify the local workstation. */
pszComputerName = (PSZ)NULL ;
/* Set queue name equal to the value entered at the command line. */
pszQueueName = argv[1];
/* Valid level are 0 and2. Level 2 gives info for a PRJINFO2 structure. */
ulLevel = 2L;
/* Make the call the first time with cbBuf = zero so that we can get a */
/* return of the number of bytes that are need for pBuf to hold all of */
/* the information. The bytes needed will be returned in cbNeeded. */
splerr = SplEnumJob(pszComputerName,pszQueueName, ulLevel, pBuf,0L,
&cReturned, &cTotal,
&cbNeeded, NULL) ;
/* Check that the return code is one of the two valid errors at this time. */
if (splerr == ERROR_MORE_DATA || splerr == NERR_BufTooSmall )
{
/* Allocate memory for pBuf. ( No error checking is done on DosAllocMem */
/* call to keep this sample code simple.) */
DosAllocMem( &pBuf, cbNeeded,
PAG_READ|PAG_WRITE|PAG_COMMIT );
/* Set bytes needed for buffer to the value returned by the first call. */
cbBuf = cbNeeded ;
/* Make the call with all the valid information. */
SplEnumJob(pszComputerName,pszQueueName, ulLevel,
pBuf, cbBuf, &cReturned,&cTotal,
&cbNeeded,NULL );
/* Set up a pointer to point to the beginning of the buffer in which we */
/* have the returned information */
pprj2=(PPRJINFO2)pBuf;
/* The number of structures in the buffer(pBuf) are returned in cReturned*/
/* Implement a for loop to print out the information for each structure. */
for (i=0; i<cReturned ;i++ )
{
printf("Job ID = %d\n", pprj2->uJobId);
printf("Job Priority = %d\n", pprj2->uPriority);
printf("User Name = %s\n", pprj2->pszUserName);
printf("Position = %d\n", pprj2->uPosition);
printf("Status = %d\n", pprj2->fsStatus);
printf("Submitted = %ld\n", pprj2->ulSubmitted);
printf("Size = %ld\n", pprj2->ulSize);
printf("Comment = %s\n", pprj2->pszComment);
printf("Document = %s\n\n",pprj2->pszDocument);
/* Increment the pointer to point to the next structure in the buffer*/
pprj2++;
} /* endfor */
/* Free the memory that we allocated to make the call. */
DosFreeMem(pBuf) ;
}
else
{
/* If any other error other than ERROR_MORE_DATA or NERR_BufTooSmall,
then */
/* print the returned information. */
printf("SplEnumJob Error=%ld, Total Jobs=%ld, Returned Jobs=%ld, Bytes
Needed=%ld\n",
splerr, cTotal, cReturned, cbNeeded) ;
}
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr);
}
ΓòÉΓòÉΓòÉ 3.11. SplEnumPort ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplEnumPort ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplEnumPort ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where queues are to be listed. A NULL string specifies the
local workstation.
ulLevel (ULONG) - input
Level of detail. The level of detail required. This must be 0 or 1.
pBuf (PPVOID) - output
Buffer.
cbBuf (ULONG) - input
Size, in bytes, of Buffer.
pcReturned (PULONG) - output
Number of entries returned.
pcTotal (PULONG) - output
Total number of entries available.
pcbNeeded (PULONG) - output
Size in bytes of available information. A value of 0 specifies that the size
is not known.
pReserved (PPVOID) - output
Reserved. This must be NULL.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplEnumPort ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
ERROR_INVALID_LEVEL (124)
The level parameter is invalid.
ERROR_MORE_DATA (234)
Additional data is available.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_BufTooSmall (2123)
The API return buffer is too small.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplEnumPort ΓòÉΓòÉΓòÉ
The buffer contents on return are:
ulLevel Buffer Contents
0 An array of PRPORTINFO structures
1 An array of PRPORTINFO1 structures
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplEnumPort ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function lists printer ports on */
/* the local workstation or on a remote */
/* server. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where queues are to be listed */
ULONG ulLevel; /* Level of detail */
PPVOID pBuf; /* Buffer */
ULONG cbBuf; /* Size, in bytes, of Buffer */
PULONG pcReturned; /* Number of entries returned */
PULONG pcTotal; /* Total number of entries available */
PULONG pcbNeeded; /* Size in bytes of available information */
PPVOID pReserved; /* Reserved */
SPLERR rc;
rc = SplEnumPort(pszComputerName, ulLevel,
pBuf, cbBuf, pcReturned, pcTotal,
pcbNeeded, pReserved);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplEnumPort ΓòÉΓòÉΓòÉ
Related Functions
o SplCreateDevice
o SplSetDevice
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplEnumPort ΓòÉΓòÉΓòÉ
This sample code will print out all the ports an associated information. This
is done at level 1, and for the local workstation.
#define INCL_DOSMEMMGR
#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h>
INT main ()
{
SPLERR splerr ;
ULONG cbBuf ;
ULONG cTotal;
ULONG cReturned ;
ULONG cbNeeded ;
ULONG ulLevel = 1;
ULONG i ;
PSZ pszComputerName = NULL;
PVOID pbuf ;
PPRPORTINFO1 pPort1 ;
splerr = SplEnumPort(pszComputerName, ulLevel, pbuf, 0L, /* cbBuf */
&cReturned, &cTotal,
&cbNeeded, NULL) ;
if (splerr == ERROR_MORE_DATA || NERR_BufTooSmall )
{
if (!DosAllocMem( &pbuf, cbNeeded,
PAG_READ|PAG_WRITE|PAG_COMMIT) )
{
cbBuf = cbNeeded ;
splerr = SplEnumPort(pszComputerName, ulLevel, pbuf, cbBuf,
&cReturned, &cTotal,
&cbNeeded, NULL) ;
if (splerr == 0L)
{
pPort1 = (PPRPORTINFO1)pbuf ;
printf("Port names: ");
for (i=0; i < cReturned; i++)
{
printf("Port - %s, Driver - %s Path - %s\n ",
pPort1->pszPortName, pPort1->pszPortDriverName,
pPort1->pszPortDriverPathName ) ;
pPort1++ ;
}
printf("\n");
}
DosFreeMem(pbuf) ;
}
}
else
{
printf("SplEnumPort splerr=%ld, \n",splerr) ;
}
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr);
} /* end main */
ΓòÉΓòÉΓòÉ 3.12. SplEnumPrinter ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplEnumPrinter ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplEnumPrinter ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where queues are to be listed. This must be NULL.
ulLevel (ULONG) - input
Level of detail required. This must be 0.
flType (ULONG) - input
Type of print destinations required.
SPL_PR_QUEUE
Return only queues
SPL_PR_DIRECT_DEVICE
Return only direct print devices
SPL_PR_QUEUED_DEVICE
Return only queued print devices
SPL_PR_LOCAL_ONLY
Return only local print destinations
pBuf (PPVOID) - output
Buffer.
cbBuf (ULONG) - input
Size, in bytes, of Buffer.
pcReturned (PULONG) - output
Number of entries returned.
pcTotal (PULONG) - output
Number of entries available.
pcbNeeded (PULONG) - output
Size in bytes of available information. A value of 0 specifies that the size
is not known.
pReserved (PPVOID) - output
Reserved. This must be NULL.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplEnumPrinter ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
ERROR_INVALID_LEVEL (124)
The level parameter is invalid.
ERROR_MORE_DATA (234)
Additional data is available.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_BufTooSmall (2123)
The API return buffer is too small.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplEnumPrinter ΓòÉΓòÉΓòÉ
The buffer contents on return are:
ulLevel Buffer Contents
0 An array of PRINTERINFO structures.
When the names of print destinations are returned, calls can be made to
SplQueryQueue or SplQueryDevice to find out further information about the print
destination.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplEnumPrinter ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function lists print destinations */
/* in the system. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where queues are to be listed */
ULONG ulLevel; /* Level of detail required */
ULONG flType; /* Type of print destinations required */
PPVOID pBuf; /* Buffer */
ULONG cbBuf; /* Size, in bytes, of Buffer */
PULONG pcReturned; /* Number of entries returned */
PULONG pcTotal; /* Number of entries available */
PULONG pcbNeeded; /* Size in bytes of available information */
PPVOID pReserved; /* Reserved */
SPLERR rc;
rc = SplEnumPrinter(pszComputerName,
ulLevel, flType, pBuf, cbBuf,
pcReturned, pcTotal, pcbNeeded,
pReserved);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplEnumPrinter ΓòÉΓòÉΓòÉ
Related Functions
o SplQueryDevice
o SplQueryQueue
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplEnumPrinter ΓòÉΓòÉΓòÉ
This example code will print out all queues and printers for the local
computer. It will print out both printers that are attached to a queue, and
those that are direct printers.
#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h> /* for printf function */
INT main ()
{
PVOID pBuf;
ULONG fsType ;
ULONG cbBuf ;
ULONG cRes ;
ULONG cTotal ;
ULONG cbNeeded ;
SPLERR splerr = 0 ;
PPRINTERINFO pRes ;
/* Set fsType to use all the flags. We will print out local device/queues.*/
fsType = SPL_PR_QUEUE | SPL_PR_DIRECT_DEVICE |
SPL_PR_QUEUED_DEVICE | SPL_PR_LOCAL_ONLY;
/* Make function call with cbBuf equal to zero to get a return in cbNeeded*/
/* of the number of bytes needed for buffer to hold all the information */
splerr = SplEnumPrinter ( NULL,0 ,fsType ,NULL ,NULL ,&cRes ,
&cTotal,&cbNeeded ,NULL ) ;
/* The error return code will be one of the two following codes if */
/* all the parameters were correct. Otherwise it could be */
/* ERROR_INVALID_PARAMETER. */
if ( splerr == ERROR_MORE_DATA || splerr == NERR_BufTooSmall )
{
/* Allocate memory for the buffer using the count of bytes that were */
/* returned in cbNeeded. For simplicity, no error checking is done. */
DosAllocMem( &pBuf, cbNeeded,
PAG_READ|PAG_WRITE|PAG_COMMIT);
/* Set count of bytes in buffer to value used to allocate buffer. */
cbBuf = cbNeeded;
/* Call function again with the correct buffer size. */
splerr = SplEnumPrinter ( NULL,0 ,fsType ,pBuf ,cbBuf ,&cRes ,
&cTotal,&cbNeeded,NULL);
/* If there are any returned structures in the buffer, then we will */
/* print out some of the information. */
if (cRes)
{
pRes = (PPRINTERINFO)pBuf ;
while ( cRes-- )
{
/* Look at the flType element in the pRes structure to determine */
/* what type of print destination the structure represents. */
switch (pRes[cRes].flType)
{
case SPL_PR_QUEUE:
printf("Print destination %s is a queue.\n",
pRes[cRes].pszPrintDestinationName) ;
break;
case SPL_PR_QUEUED_DEVICE:
printf("Print destination %s is a queued printer.\n",
pRes[cRes].pszPrintDestinationName) ;
break;
case SPL_PR_DIRECT_DEVICE:
printf("Print destination %s is a direct printer.\n",
pRes[cRes].pszPrintDestinationName) ;
}
printf("Description -
%s\n\n",pRes[cRes].pszDescription) ;
}
}
DosFreeMem(pBuf);
}
else
{
/* If we had any other return code other than ERROR_MORE_DATA or */
/* NERR_BufTooSmall, we will print out the following information. */
printf("SplEnumPrinter error= %ld \n",splerr);
}
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr);
}
ΓòÉΓòÉΓòÉ 3.13. SplEnumQueue ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplEnumQueue ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplEnumQueue ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where queues are to be listed. A NULL string specifies the
local workstation.
ulLevel (ULONG) - input
Level of detail. The level of detail required. This must be 3, 4, 5 or 6.
pBuf (PPVOID) - output
Buffer.
cbBuf (ULONG) - input
Size, in bytes, of Buffer.
pcReturned (PULONG) - output
Number of entries returned.
pcTotal (PULONG) - output
Total number of entries available.
pcbNeeded (PULONG) - output
Size in bytes of available information. A value of 0 specifies that the size
is not known.
pReserved (PPVOID) - output
Reserved. This must be NULL.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplEnumQueue ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
Return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
ERROR_INVALID_LEVEL (124)
The level parameter is invalid.
ERROR_MORE_DATA (234)
Additional data is available.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_BufTooSmall (2123)
The API return buffer is too small.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplEnumQueue ΓòÉΓòÉΓòÉ
The buffer contents on return are:
ulLevel Buffer Contents
3 An array of PRQINFO3 structures. The fsType bit PRQ3_TYPE_APPDEFAULT
is set for the application default queue only.
4 An array of pcReturned PRQINFO3 structures in which each PRQINFO3
structure is followed by an array of PRJINFO2 structures, one for
each of job in the queue. cJobs in the PRQINFO3 or PRQINFO6 structure
gives the number of jobs in the array.
5 A queue name of type PSZ.
6 An array of PRQINFO6 structures
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplEnumQueue ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function lists print queues on the */
/* local workstation or on a remote */
/* server, optionally supplying additional */
/* information. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where queues are to be listed */
ULONG ulLevel; /* Level of detail */
PPVOID pBuf; /* Buffer */
ULONG cbBuf; /* Size, in bytes, of Buffer */
PULONG pcReturned; /* Number of entries returned */
PULONG pcTotal; /* Total number of entries available */
PULONG pcbNeeded; /* Size in bytes of available information */
PPVOID pReserved; /* Reserved */
SPLERR rc; /* Return */
rc = SplEnumQueue(pszComputerName, ulLevel,
pBuf, cbBuf, pcReturned, pcTotal,
pcbNeeded, pReserved);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplEnumQueue ΓòÉΓòÉΓòÉ
Related Functions
o SplQueryJob
o SplQueryQueue
o SplSetJob
o SplSetQueue
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplEnumQueue ΓòÉΓòÉΓòÉ
This sample code enumerates all the queues and the jobs in them that are on the
local workstation.
#define INCL_BASE
#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h>
INT main ()
{
SPLERR splerr;
USHORT jobCount ;
ULONG cbBuf ;
ULONG cTotal;
ULONG cReturned ;
ULONG cbNeeded ;
ULONG ulLevel ;
ULONG i,j ;
PSZ pszComputerName ;
PBYTE pBuf ;
PPRQINFO3 prq ;
PPRJINFO2 prj2 ;
ulLevel = 4L;
pszComputerName = (PSZ)NULL ;
splerr = SplEnumQueue(pszComputerName, ulLevel, pBuf, 0L, /* cbBuf */
&cReturned, &cTotal,
&cbNeeded, NULL)
if ( splerr == ERROR_MORE_DATA || splerr == NERR_BufTooSmall )
{
if (!DosAllocMem( &pBuf, cbNeeded,
PAG_READ|PAG_WRITE|PAG_COMMIT)
)
{
cbBuf = cbNeeded ;
splerr = SplEnumQueue(pszComputerName, ulLevel, pBuf, cbBuf,
&cReturned, &cTotal,
&cbNeeded, NULL)
if (splerr == NO_ERROR)
{
/* Set pointer to point to the beginning of the buffer. */
prq = (PPRQINFO3)pBuf ;
/* cReturned has the count of the number of PRQINFO3 structures. */
for (i=0;i < cReturned ; i++)
{
printf("Queue info: name - %s\n", prq->pszName) ;
if ( prq->fsType & PRQ3_TYPE_APPDEFAULT )
printf(" This is the application default print queue\n");
printf(" priority - %d starttime - %d endtime - %d
fsType - %X\n",
prq->uPriority , prq->uStartTime ,
prq->uUntilTime , prq->fsType ) ;
printf(" pszSepFile - %s\n", prq->pszSepFile) ;
printf(" pszPrProc - %s\n", prq->pszPrProc) ;
printf(" pszParms - %s\n", prq->pszParms) ;
printf(" pszComment - %s\n", prq->pszComment) ;
printf(" pszPrinters - %s\n", prq->pszPrinters) ;
printf(" pszDriverName- %s\n", prq->pszDriverName) ;
if (prq->pDriverData)
{
printf(" pDriverData->cb - %ld\n",
(ULONG)prq->pDriverData->cb);
printf(" pDriverData->lVersion - %ld\n",
(ULONG)prq->pDriverData->lVersion) ;
printf(" pDriverData->szDeviceName- %s\n",
prq->pDriverData->szDeviceName) ;
}
/* Save the count of jobs. There are this many PRJINFO2 */
/* structures following the PRQINFO3 structure. */
jobCount = prq->cJobs;
printf("Job count in this queue is %d\n\n",jobCount);
/* Increment the pointer past the PRQINFO3 structure. */
prq++;
/* Set a pointer to point to the first PRJINFO2 structure. */
prj2=(PPRJINFO2)prq;
for (j=0;j < jobCount ; j++)
{
printf("Job ID = %d\n", prj2->uJobId);
printf("Job Priority= %d\n", prj2->uPriority);
printf("User Name = %s\n", prj2->pszUserName);
printf("Position = %d\n", prj2->uPosition);
printf("Status = %d\n", prj2->fsStatus);
printf("Submitted = %ld\n",prj2->ulSubmitted);
printf("Size = %ld\n",prj2->ulSize);
printf("Comment = %s\n", prj2->pszComment);
printf("Document = %s\n\n",prj2->pszDocument);
/* Increment the pointer to point to the next structure. */
prj2++;
} /* endfor jobCount */
/* After doing all the job structures, prj2 points to the next */
/* queue structure. Set the pointer for a PRQINFO3 structure. */
prq = (PPRQINFO3)prj2;
}/*endfor cReturned */
}
DosFreeMem(pBuf) ;
}
} /* end if Q level given */
else
{
/* If we are here we had a bad error code. Print it and some other info.*/
printf("SplEnumQueue Error=%ld, Total=%ld, Returned=%ld, Needed=%ld\n",
splerr, cTotal, cReturned, cbNeeded) ;
}
DosExit( EXIT_PROCESS , 0 ) ;
return(splerr);
} /* end main */
ΓòÉΓòÉΓòÉ 3.14. SplEnumQueueProcessor ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplEnumQueueProcessor ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplEnumQueueProcessor ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where queues are to be listed. A NULL string specifies the
local workstation.
ulLevel (ULONG) - input
Level of detail. The level of detail required. This must be 0.
pBuf (PPVOID) - output
Buffer.
cbBuf (ULONG) - input
Size, in bytes, of Buffer.
pcReturned (PULONG) - output
Number of entries returned.
pcTotal (PULONG) - output
Total number of entries available.
pcbNeeded (PULONG) - output
Size in bytes of available information. A value of 0 specifies that the size
is not known.
pReserved (PPVOID) - output
Reserved. This must be NULL.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplEnumQueueProcessor ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
ERROR_INVALID_LEVEL (124)
The level parameter is invalid.
ERROR_MORE_DATA (234)
Additional data is available.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_BufTooSmall (2123)
The API return buffer is too small.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplEnumQueueProcessor ΓòÉΓòÉΓòÉ
The buffer contents on return are:
ulLevel Buffer Contents
0 An array of PRQPROCINFO structures
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplEnumQueueProcessor ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function lists printer queue */
/* processors on the local workstation or */
/* on a remote server. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where queues are to be listed */
ULONG ulLevel; /* Level of detail */
PPVOID pBuf; /* Buffer */
ULONG cbBuf; /* Size, in bytes, of Buffer */
PULONG pcReturned; /* Number of entries returned */
PULONG pcTotal; /* Total number of entries available */
PULONG pcbNeeded; /* Size in bytes of available information */
PPVOID pReserved; /* Reserved */
SPLERR rc;
rc = SplEnumQueueProcessor(pszComputerName,
ulLevel, pBuf, cbBuf, pcReturned,
pcTotal, pcbNeeded, pReserved);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplEnumQueueProcessor ΓòÉΓòÉΓòÉ
Related Functions
o SplSetQueue
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplEnumQueueProcessor ΓòÉΓòÉΓòÉ
This sample code enumerates and prints all the queue processors on the local
computer.
#define INCL_BASE
#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h> /* for printf function */
INT main ()
{
SPLERR splerr ;
ULONG cbBuf ;
ULONG cTotal ;
ULONG cReturned ;
ULONG cbNeeded ;
ULONG i ;
PSZ pszComputerName = NULL ;
PSZ pszQProcName ;
PBYTE pBuf ;
/* Call the function the first time with zero in cbBuf. The count */
/* of bytes needed for the buffer to hold all the info will be */
/* returned in cbNeeded. */
splerr = SplEnumQueueProcessor(pszComputerName, 0L, NULL, 0L,
&cReturned, &cTotal,
&cbNeeded,NULL );
/* If the return code is ERROR_MORE_DATA or NERR_BufTooSmall, */
/* then all the parameters were correct; and we can continue. */
if (splerr == ERROR_MORE_DATA || splerr == NERR_BufTooSmall)
{
/* Allocate memory for the buffer to hold the returned information. Use */
/* the count of bytes that were returned by our first call. */
if (!DosAllocMem( &pbuf, cbNeeded,
PAG_READ|PAG_WRITE|PAG_COMMIT) )
{
/* Set count of bytes to the value returned by our first call. */
cbBuf = cbNeeded ;
/* Now call the function a second time with the correct values, and */
/* the information will be returned in the buffer. */
splerr = SplEnumQueueProcessor(pszComputerName, 0L, pBuf, cbBuf,
&cReturned, &cTotal,
&cbNeeded,NULL ) ;
/* If we have no errors, then print out the buffer information. */
if (splerr == NO_ERROR)
{
/* Set a pointer to point to the beginning of the buffer. */
pszQProcName = (PSZ)pBuf;
/* Print the names that are in the buffer. The count of the number*/
/* of names in pBuf have been returned in cReturned. */
for (i=0;i < cReturned ; i++)
{
printf("Queue Processor name - %s\n", pszQProcName) ;
/* Increment the pointer to point to the next name. */
pszQProcName += DRIV_NAME_SIZE + 1;
}
}
/* Free the memory allocated for the buffer. */
DosFreeMem(pBuf) ;
}
}
else
{
/* If the first call to the function returned any other error code */
/* except ERROR_MORE_DATA or NERR_BufTooSmall, we print the */
/* following. */
printf("SplEnumQueueProcessor error=%ld\n",splerr ) ;
}
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr);
}
ΓòÉΓòÉΓòÉ 3.15. SplHoldJob ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplHoldJob ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplHoldJob ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where job is to be paused. A NULL string specifies the
local workstation.
pszQueueName (PSZ) - input
Queue Name.
ulJob (ULONG) - input
Job identification number.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplHoldJob ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
NERR_NetNotStarted (2102)
The network program is not installed.
NERR_JobNotFound (2151)
The print job does not exist.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_JobInvalidState (2164)
This operation cannot be performed on the print job in its current state.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplHoldJob ΓòÉΓòÉΓòÉ
If the job is already printing when the call is made, NERR_JobInvalidState
(2164) is returned.
A user with administrator privilege can hold any job.
A job created locally can be held locally regardless of user privilege level,
but can be held remotely only by an administrator.
A remote job can be held by a user without administrator privilege only if the
username of the person initiating the request is the same as the username of
the person who created the job.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplHoldJob ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function holds a job in a print */
/* queue. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where job is to be paused */
PSZ pszQueueName; /* Queue Name */
ULONG ulJob; /* Job identification number */
SPLERR rc;
rc = SplHoldJob(pszComputerName,
pszQueueName, ulJob);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplHoldJob ΓòÉΓòÉΓòÉ
Related Functions
o SplEnumJob
o SplQueryJob
o SplReleaseJob
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplHoldJob ΓòÉΓòÉΓòÉ
This sample code will hold the queue name that is entered at the prompt.
#define INCL_BASE
#define INCL_SPL
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h> /* for printf function */
#include <stdlib.h> /* for atoi function */
INT main (argc, argv)
INT argc;
CHAR *argv[];
{
SPLERR splerr ;
PSZ pszComputerName = NULL ;
PSZ pszQueueName = NULL ;
ULONG ulJob ;
/* Get job id from the input argument. */
ulJob = atoi(argv[1]);
/* Call the function to do the hold. If an error is returned, print it. */
splerr = SplHoldJob( pszComputerName, pszQueueName, ulJob);
switch (splerr)
{
case NO_ERROR:
printf("Job %d was held.\n",ulJob);
break;
case NERR_JobNotFound:
printf("Job does not exist.\n");
break;
case NERR_JobInvalidState:
printf("This operation can't be performed on the print Job.\n");
break;
default:
printf("Errorcode = %ld\n",splerr);
} /* endswitch */
DosExit( EXIT_PROCESS , 0 ) ;
argc;
return (splerr);
}
ΓòÉΓòÉΓòÉ 3.16. SplHoldQueue ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplHoldQueue ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplHoldQueue ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where queue is to be paused. A NULL string specifies the
local workstation.
pszQueueName (PSZ) - input
Queue name.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplHoldQueue ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_QNotFound (2150)
The printer queue does not exist.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplHoldQueue ΓòÉΓòÉΓòÉ
This function suspends processing of all print jobs except for a job currently
printing. Print jobs can be submitted to a held queue, but no jobs will be
spooled to a print destination or print processor until the queue is released
by a SplHoldQueue call.
To hold a remote queue requires administrator privilege on the remote server.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplHoldQueue ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function holds a print queue. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where queue is to be paused */
PSZ pszQueueName; /* Queue name */
SPLERR rc;
rc = SplHoldQueue(pszComputerName,
pszQueueName);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplHoldQueue ΓòÉΓòÉΓòÉ
Related Functions
o SplCreateQueue
o SplEnumQueue
o SplQueryQueue
o SplReleaseQueue
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplHoldQueue ΓòÉΓòÉΓòÉ
This sample code will hold the local queue name that is entered at the prompt.
#define INCL_SPL
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h> /* for printf function */
INT main (argc, argv)
INT argc;
CHAR *argv[];
{
SPLERR splerr ;
PSZ pszComputerName = NULL ;
PSZ pszQueueName ;
/* Get queue name from the input argument */
pszQueueName = argv[1];
/* Call the function to do the hold. If an error is returned, print it. */
splerr = SplHoldQueue(pszComputerName, pszQueueName);
if (splerr != 0L)
{
switch (splerr)
{
case NERR_QNotFound:
printf("Queue does not exist.\n");
break;
case NERR_SpoolerNotLoaded:
printf("The Spooler is not running.\n");
break;
default:
printf("Errorcode = %ld\n",splerr);
} /* endswitch */
}
else
{
printf("Queue %s was held.\n",pszQueueName);
} /* endif */
DosExit( EXIT_PROCESS , 0 ) ;
argc; /* keep the compiler quiet */
return (splerr);
}
ΓòÉΓòÉΓòÉ 3.17. SplPurgeQueue ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplPurgeQueue ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplPurgeQueue ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where queue is to be purged. A NULL string specifies the
local workstation.
pszQueueName (PSZ) - input
Queue name.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplPurgeQueue ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
ERROR_INVALID_PARAMETER (87)
An invalid parameter was specified.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_QNotFound (2150)
The printer queue does not exist.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplPurgeQueue ΓòÉΓòÉΓòÉ
A print job that is printing is not affected by this function.
If a print queue is pending deletion when this function is made, the queue is
deleted when the job that is currently printing ends.
To purge a remote queue requires administrator privilege on the remote server.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplPurgeQueue ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function removes all jobs, except */
/* any currently printing, from a print */
/* queue. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where queue is to be purged */
PSZ pszQueueName; /* Queue name */
SPLERR rc;
rc = SplPurgeQueue(pszComputerName,
pszQueueName);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplPurgeQueue ΓòÉΓòÉΓòÉ
Related Functions
o SplCreateQueue
o SplEnumQueue
o SplQueryQueue
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplPurgeQueue ΓòÉΓòÉΓòÉ
This code will purge a local queue, whose name is entered at the prompt.
#define INCL_SPL
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h> /* for printf function */
INT main (argc, argv)
INT argc;
CHAR *arg[];
{
SPLERR splerr ;
PSZ pszComputerName = NULL ;
PSZ pszQueueName ;
/* Get queue name from the input argument. */
pszQueueName = arg[1];
/* Call the function to do the purge. If an error is returned, print it. */
splerr=SplPurgeQueue(pszComputerName, pszQueueName);
if (splerr != 0L)
{
switch (splerr)
{
case NERR_QNotFound:
printf("Queue does not exist.\n");
break;
case NERR_SpoolerNotLoaded:
printf("The Spooler is not running.\n");
break;
default:
printf("Errorcode = %ld\n",splerr);
} /* endswitch */
}
else
{
printf("Queue %s was purged.\n",pszQueueName);
} /* endif */
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr);
}
ΓòÉΓòÉΓòÉ 3.18. SplQmAbort ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplQmAbort ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Errors
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQmAbort ΓòÉΓòÉΓòÉ
hspl (HSPL) - input
Spooler handle.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQmAbort ΓòÉΓòÉΓòÉ
fSuccess (BOOL) - return
Success indicator:
TRUE Successful completion
FALSE Error occurred.
ΓòÉΓòÉΓòÉ <hidden> Errors - SplQmAbort ΓòÉΓòÉΓòÉ
Possible returns from WinGetLastError
PMERR_SPL_QUEUE_ERROR
No spooler queue supplied or found.
PMERR_SPL_INV_HSPL
The spooler handle is invalid.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQmAbort ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function stops the generation of */
/* the spool file(s). It automatically */
/* closes the spool file (see SplQmClose). */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
HSPL hspl; /* Spooler handle */
BOOL fSuccess; /* Success indicator */
fSuccess = SplQmAbort(hspl);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQmAbort ΓòÉΓòÉΓòÉ
Prerequisite Functions
o SplQmOpen
Related Functions
o DevEscape
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQmAbort ΓòÉΓòÉΓòÉ
This function is used to stop the generation of spool files and automatically
close the spool file.
#define INCL_SPL
#include <OS2.H>
HSPL hspl; /* spooler handle. */
SplQmAbort(hspl);
ΓòÉΓòÉΓòÉ 3.19. SplQmAbortDoc ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplQmAbortDoc ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Errors
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQmAbortDoc ΓòÉΓòÉΓòÉ
hspl (HSPL) - input
Spooler handle.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQmAbortDoc ΓòÉΓòÉΓòÉ
fSuccess (BOOL) - return
Success indicator:
TRUE Successful completion
FALSE Error occurred.
ΓòÉΓòÉΓòÉ <hidden> Errors - SplQmAbortDoc ΓòÉΓòÉΓòÉ
Possible returns from WinGetLastError
PMERR_SPL_QUEUE_ERROR
No spooler queue supplied or found.
PMERR_STARTDOC_NOT_ISSUED
A request to write spooled output without first issuing a STARTDOC was
attempted.
PMERR_SPL_INV_HSPL
The spooler handle is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplQmAbortDoc ΓòÉΓòÉΓòÉ
Everything that has been written to the spool file for this job since the last
SplQmStartDoc is erased, including the SplQmStartDoc.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQmAbortDoc ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function aborts a print job. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
HSPL hspl; /* Spooler handle */
BOOL fSuccess; /* Success indicator */
fSuccess = SplQmAbortDoc(hspl);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQmAbortDoc ΓòÉΓòÉΓòÉ
Prerequisite Functions
o SplQmOpen
o SplQmStartDoc
Related Functions
o DevEscape
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQmAbortDoc ΓòÉΓòÉΓòÉ
This function is used to abort a print job. Everything since the last
SplQmStartDoc is deleted.
#define INCL_SPL
#include <OS2.H>
HSPL hspl; /* spooler handle. */
SplQmAbortDoc(hspl);
ΓòÉΓòÉΓòÉ 3.20. SplQmClose ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplQmClose ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Errors
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQmClose ΓòÉΓòÉΓòÉ
hspl (HSPL) - input
Spooler handle.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQmClose ΓòÉΓòÉΓòÉ
fSuccess (BOOL) - return
Success indicator:
TRUE Successful completion
FALSE Error occurred.
ΓòÉΓòÉΓòÉ <hidden> Errors - SplQmClose ΓòÉΓòÉΓòÉ
Possible returns from WinGetLastError
PMERR_SPL_QUEUE_ERROR
No spooler queue supplied or found.
PMERR_ENDDOC_NOT_ISSUED
A request to close the spooled output without first issuing an ENDDOC was
attempted.
PMERR_SPL_INV_HSPL
The spooler handle is invalid.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQmClose ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function corresponds to the */
/* DevCloseDC function: it closes the */
/* spool file. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
HSPL hspl; /* Spooler handle */
BOOL fSuccess; /* Success indicator */
fSuccess = SplQmClose(hspl);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQmClose ΓòÉΓòÉΓòÉ
Prerequisite Functions
o SplQmOpen
Related Functions
o DevCloseDC
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQmClose ΓòÉΓòÉΓòÉ
This function is used to close a spool file that was opened with SplQmOpen.
#define INCL_SPL
#include <OS2.H>
HSPL hspl; /* spooler handle. */
SplQmClose(hspl);
ΓòÉΓòÉΓòÉ 3.21. SplQmEndDoc ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplQmEndDoc ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Errors
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQmEndDoc ΓòÉΓòÉΓòÉ
hspl (HSPL) - input
Spooler handle.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQmEndDoc ΓòÉΓòÉΓòÉ
ulJob (ULONG) - return
Job identifier:
Nonzero
Jobid (1 through 65 535)
SPL_ERROR
Error.
ΓòÉΓòÉΓòÉ <hidden> Errors - SplQmEndDoc ΓòÉΓòÉΓòÉ
Possible returns from WinGetLastError
PMERR_SPL_QUEUE_ERROR
No spooler queue supplied or found.
PMERR_SPL_NO_DATA
No data supplied or found.
PMERR_SPL_INV_HSPL
The spooler handle is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplQmEndDoc ΓòÉΓòÉΓòÉ
The print-job identifier is displayed to the user by the spooler while this job
is on the queue, and while it is being printed.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQmEndDoc ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function corresponds to the */
/* DevEscape (DEVESC_ENDDOC) call: it ends */
/* a print job, and returns ulJob, a */
/* unique number to identify the job. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
HSPL hspl; /* Spooler handle */
ULONG ulJob; /* Job identifier */
ulJob = SplQmEndDoc(hspl);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQmEndDoc ΓòÉΓòÉΓòÉ
Prerequisite Functions
o SplQmOpen
o SplQmStartDoc
Related Functions
o DevEscape
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQmEndDoc ΓòÉΓòÉΓòÉ
This function is used to end a print job and return the job id.
#define INCL_SPL
#include <OS2.H>
HSPL hspl; /* spooler handle. */
ULONG jobid;
CHAR szMsg[100];
HWND hwndClient;
jobid = SplQmEndDoc(hspl);
sprintf(szMsg, "ending job %d",jobid);
WinMessageBox(HWND_DESKTOP,
hwndClient, /* client-window handle */
szMsg, /* body of the message */
"Printing Information", /* title of the message */
0, /* message box id */
MB_NOICON | MB_OK); /* icon and button flags */
ΓòÉΓòÉΓòÉ 3.22. SplQmOpen ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplQmOpen ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Errors
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQmOpen ΓòÉΓòÉΓòÉ
pszToken (PSZ) - input
A token (nickname) that identifies spooler information. This information is
held in the initialization file, and is the same as that in pqmdopData; any
that is obtained from pqmdopData overrides the information obtained using
pszToken.
If pszToken is specified as "*", then no device information is taken from
the initialization file.
Presentation Manager behaves as if "*" is specified, but it allows any
string to be specified.
lCount (LONG) - input
Number of items. This is the number of items present in the pqmdopData
supplied. This can be shorter than the full list, if omitted items are
irrelevant, or supplied from pszToken or elsewhere.
pqmdopData (PQMOPENDATA) - input
Pointer to DevOpenStruc.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQmOpen ΓòÉΓòÉΓòÉ
hspl (HSPL) - return
Spooler handle:
Nonzero
Spooler handle
SPL_ERROR
Error.
ΓòÉΓòÉΓòÉ <hidden> Errors - SplQmOpen ΓòÉΓòÉΓòÉ
Possible returns from WinGetLastError
PMERR_INVALID_PARM
A parameter to the function contained invalid data.
PMERR_SPL_INV_LENGTH_OR_COUNT
The length or count is invalid.
PMERR_SPL_QUEUE_NOT_FOUND
The spooler queue definition could not be found.
PMERR_BASE_ERROR
An OS/2 base error has occurred. The base error code can be accessed using
the OffBinaryData field of the ERRINFO structure returned by
WinGetErrorInfo.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQmOpen ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function corresponds to the */
/* DevOpenDC call: it opens a spool file */
/* for generating a print job. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszToken; /* A token (nickname) that identifies spooler information */
LONG lCount; /* Number of items */
PQMOPENDATA pqmdopData; /* Pointer to DevOpenStruc */
HSPL hspl; /* Spooler handle */
hspl = SplQmOpen(pszToken, lCount,
pqmdopData);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQmOpen ΓòÉΓòÉΓòÉ
Related Functions
o DevOpenDC
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQmOpen ΓòÉΓòÉΓòÉ
This sample code will initialize a PDEVOPENSTRUC and use it to call the
function.
#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_BASE
#define INCL_ERRORS
#include <os2.h>
#include <stdio.h>
#include <stdlib.h>
VOID main()
{
HSPL hspl;
PDEVOPENSTRUC pdata; /* Pointer to a DEVOPENSTRUC structure */
PSZ pszToken = "*"; /* Spooler info identifier */
/* Allocate memory for pdata */
if ( !DosAllocMem( &pdata,sizeof( DEVOPENSTRUC ),
(PAG_READ|PAG_WRITE|PAG_COMMIT ) )
{
/* Initialize elements of pdata */
pdata->pszLogAddress = "LPT1Q1";
pdata->pszDriverName = "IBMNULL";
pdata->pdriv = NULL;
pdata->pszDataType = "PM_Q_STD";
pdata->pszComment = NULL;
pdata->pszQueueProcName = NULL;
pdata->pszQueueProcParams = NULL;
pdata->pszSpoolerParams = NULL;
pdata->pszNetworkParams = NULL;
hspl = SplQmOpen( pszToken,4L,( PQMOPENDATA )pdata );
if ( hspl != SPL_ERROR ) /* Good spooler handle */
{
printf("SplQmOpen handle is %d\n",hspl);
}
else
{
printf("SplQmOpen failed.\n");
}
}
}
ΓòÉΓòÉΓòÉ 3.23. SplQmStartDoc ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplQmStartDoc ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Errors
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQmStartDoc ΓòÉΓòÉΓòÉ
hspl (HSPL) - input
Spooler handle.
pszDocName (PSZ) - input
Document name. This is part of the job description which is displayed to the
end user by the spooler.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQmStartDoc ΓòÉΓòÉΓòÉ
fSuccess (BOOL) - return
Success indicator:
TRUE Successful completion
FALSE Error occurred.
ΓòÉΓòÉΓòÉ <hidden> Errors - SplQmStartDoc ΓòÉΓòÉΓòÉ
Possible returns from WinGetLastError
PMERR_INVALID_PARM
A parameter to the function contained invalid data.
PMERR_SPL_QUEUE_ERROR
No spooler queue supplied or found.
PMERR_ENDDOC_NOT_ISSUED
A request to close the spooled output without first issuing an ENDDOC was
attempted.
PMERR_SPL_INV_HSPL
The spooler handle is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplQmStartDoc ΓòÉΓòÉΓòÉ
This function signifies the start of a print job. It allows the application to
specify a document name to be associated with the print job.
Multiple print jobs can be generated, within a single queue manager open, by
bracketing each job with SplQmStartDoc and SplQmEndDoc.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQmStartDoc ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function corresponds to the */
/* DevEscape (DEVESC_STARTDOC) call; it */
/* starts a print job. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
HSPL hspl; /* Spooler handle */
PSZ pszDocName; /* Document name */
BOOL fSuccess; /* Success indicator */
fSuccess = SplQmStartDoc(hspl, pszDocName);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQmStartDoc ΓòÉΓòÉΓòÉ
Prerequisite Functions
o SplQmOpen
Related Functions
o DevEscape
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQmStartDoc ΓòÉΓòÉΓòÉ
This function is used to start a print job.
#define INCL_SPL
#include <OS2.H>
HSPL hspl; /* spooler handle. */
CHAR szDocName[] = "Test Job";
CHAR szMsg[100];
HWND hwndClient;
sprintf(szMsg, "Starting job named: %s",szDocName);
WinMessageBox(HWND_DESKTOP,
hwndClient, /* client-window handle */
szMsg, /* body of the message */
"Printing Information", /* title of the message */
0, /* message box id */
MB_NOICON | MB_OK); /* icon and button flags */
SplQmStartDoc(hspl,szDocName);
ΓòÉΓòÉΓòÉ 3.24. SplQmWrite ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplQmWrite ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Errors
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQmWrite ΓòÉΓòÉΓòÉ
hspl (HSPL) - input
Spooler handle.
lCount (LONG) - input
Length in bytes. This is the length of pData; it must not be greater than 65
535. Data that is longer than this must be written by two or more calls.
pData (PBYTE) - input
Buffer of data to be written to the spool file.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQmWrite ΓòÉΓòÉΓòÉ
fSuccess (BOOL) - return
Success indicator:
TRUE
Successful completion
FALSE
Error occurred.
ΓòÉΓòÉΓòÉ <hidden> Errors - SplQmWrite ΓòÉΓòÉΓòÉ
Possible returns from WinGetLastError
PMERR_INVALID_PARM
A parameter to the function contained invalid data.
PMERR_BASE_ERROR
An OS/2 base error has occurred. The base error code can be accessed using
the OffBinaryData field of the ERRINFO structure returned by
WinGetErrorInfo.
PMERR_SPL_INV_LENGTH_OR_COUNT
The length or count is invalid.
PMERR_SPL_QUEUE_ERROR
No spooler queue supplied or found.
PMERR_SPL_PRINT_ABORT
The job has already been aborted.
PMERR_STARTDOC_NOT_ISSUED
A request to write spooled output without first issuing a STARTDOC was
attempted.
PMERR_SPL_CANNOT_OPEN_FILE
Unable to open the file.
PMERR_SPL_INV_HSPL
The spooler handle is invalid.
PMERR_SPL_NO_DISK_SPACE
There is not enough free disk space.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplQmWrite ΓòÉΓòÉΓòÉ
The size of the data buffer must not be greater than 64KB. Print jobs that
exceed the maximum buffer size must be written by repeatedly calling to this
function.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQmWrite ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function writes a buffer of data */
/* to the spool file for the print job. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
HSPL hspl; /* Spooler handle */
LONG lCount; /* Length in bytes */
PBYTE pData; /* Buffer of data to be written to the spool file */
BOOL fSuccess; /* Success indicator */
fSuccess = SplQmWrite(hspl, lCount, pData);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQmWrite ΓòÉΓòÉΓòÉ
Prerequisite Functions
o SplQmOpen
o SplQmStartDoc
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQmWrite ΓòÉΓòÉΓòÉ
This function writes a buffer of data to the spool file for the print job.
#define INCL_SPL
#include <OS2.H>
HSPL hspl; /* spooler handle. */
SplQmWrite(hspl,
sizeof("DATA"),
(PVOID)"DATA");
ΓòÉΓòÉΓòÉ 3.25. SplQueryDevice ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplQueryDevice ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQueryDevice ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where print device is to be queried. A NULL string
specifies the local workstation.
pszPrintDeviceName (PSZ) - input
Name of Print Device. This can specify a print device name or a port name.
If ulLevel is 0, it must be a port name. If ulLevel is 2 or 3 , it must be a
print device name.
ulLevel (ULONG) - input
Level of detail required. This must be 0, 2 or 3.
pBuf (PPVOID) - output
Buffer.
cbBuf (ULONG) - input
Size, in bytes, of Buffer.
pcbNeeded (PULONG) - output
Size in bytes of available information.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQueryDevice ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
ERROR_INVALID_LEVEL (124)
The level parameter is invalid.
ERROR_MORE_DATA (234)
Additional data is available.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_BufTooSmall (2123)
The API return buffer is too small.
NERR_DestNotFound (2152)
The print device cannot be found.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplQueryDevice ΓòÉΓòÉΓòÉ
The buffer contents on return are:
ulLevel Buffer Contents
0 A port name.
2 A print device name. of type PSZ.
3 A PRDINFO3 structure.
If ulLevel is 3, and pBuf cannot hold the entire PRDINFO3 structure,
SplQueryDevice returns NERR_BufTooSmall (2123).
To obtain the size of buffer required, call SplQueryDevice with the required
value of ulLevel and a NULL buffer. The number of bytes required is returned in
pcbNeeded.
If no job is printing on the print device, bits 2-11 of fsStatus in the
PRDINFO3 data structure are meaningless.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQueryDevice ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function retrieves information */
/* about a print device. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where print device is to be queried */
PSZ pszPrintDeviceName; /* Name of Print Device */
ULONG ulLevel; /* Level of detail required */
PPVOID pBuf; /* Buffer */
ULONG cbBuf; /* Size, in bytes, of Buffer */
PULONG pcbNeeded; /* Size in bytes of available information */
SPLERR rc;
rc = SplQueryDevice(pszComputerName,
pszPrintDeviceName, ulLevel, pBuf,
cbBuf, pcbNeeded);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQueryDevice ΓòÉΓòÉΓòÉ
Related Functions
o SplCreateDevice
o SplDeleteDevice
o SplEnumDevice
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQueryDevice ΓòÉΓòÉΓòÉ
This sample code returns information for the device name that is entered at the
command line. The local workstation is selected. The query is done for level 3
information.
#define INCL_BASE
#define INCL_DOSMEMMGR
#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h>
INT main (argc, argv)
INT argc;
CHAR *argv[];
{
SPLERR splerr ;
ULONG cbBuf;
ULONG cbNeeded ;
ULONG ulLevel ;
PSZ pszComputerName ;
PSZ pszPrintDeviceName ;
PVOID pBuf ;
PPRDINFO3 pprd3 ;
if (argc != 2)
{
printf("Syntax: sdqry DeviceName \n");
DosExit( EXIT_PROCESS , 0 ) ;
}
pszComputerName = (PSZ)NULL ;
pszPrintDeviceName = argv[1];
ulLevel = 3;
splerr = SplQueryDevice(pszComputerName, pszPrintDeviceName,
ulLevel, (PVOID)NULL, 0L, &cbNeeded );
if (splerr != NERR_BufTooSmall)
{
printf("SplQueryDevice Err=%ld, cbNeeded=%ld\n",splerr, cbNeeded) ;
DosExit( EXIT_PROCESS , 0 ) ;
}
if (!DosAllocMem( &pBuf, cbNeeded,
PAG_READ|PAG_WRITE|PAG_COMMIT) ){
cbBuf= cbNeeded ;
splerr = SplQueryDevice(pszComputerName, pszPrintDeviceName,
ulLevel, pBuf, cbBuf, &cbNeeded) ;
printf("SplQueryDevice Error=%ld, Bytes Needed=%ld\n", splerr,
cbNeeded) ;
pprd3=(PPRDINFO3)pBuf;
printf("Print Device info: name - %s\n", pprd3->pszPrinterName) ;
printf("User Name = %s\n", pprd3->pszUserName) ;
printf("Logical Address= %s\n", pprd3->pszLogAddr) ;
printf("Job ID = %d\n", pprd3->uJobId) ;
printf("Status = %d\n", pprd3->fsStatus) ;
printf("Status Comment = %s\n", pprd3->pszStatus) ;
printf("Comment = %s\n", pprd3->pszComment) ;
printf("Drivers = %s\n", pprd3->pszDrivers) ;
printf("Time = %d\n", pprd3->time) ;
printf("Time Out = %d\n", pprd3->usTimeOut) ;
DosFreeMem(pBuf) ;
}
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr);
}
ΓòÉΓòÉΓòÉ 3.26. SplQueryJob ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplQueryJob ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQueryJob ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where print job is to be queried. A NULL string specifies
the local workstation.
pszQueueName (PSZ) - input
Queue Name.
ulJob (ULONG) - input
Job identification number.
ulLevel (ULONG) - input
Level of detail required. This must be 0, 2, or 3.
pBuf (PPVOID) - output
Buffer.
cbBuf (ULONG) - input
Size, in bytes, of Buffer.
pcbNeeded (PULONG) - output
Size in bytes of available information.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQueryJob ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
ERROR_INVALID_LEVEL (124)
The level parameter is invalid.
ERROR_MORE_DATA (234)
Additional data is available.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_BufTooSmall (2123)
The API return buffer is too small.
NERR_JobNotFound (2151)
The print job does not exist.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplQueryJob ΓòÉΓòÉΓòÉ
The buffer contents on return are:
ulLevel Buffer Contents
0 The job identifier
2 A PRJINFO2 structure, with variable information, up to the cbBuf of
pBuf
3 A PRJINFO3 structure, with variable information, up to the cbBuf of
pBuf.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQueryJob ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function retrieves information */
/* about a print job. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where print job is to be queried */
PSZ pszQueueName; /* Queue Name */
ULONG ulJob; /* Job identification number */
ULONG ulLevel; /* Level of detail required */
PPVOID pBuf; /* Buffer */
ULONG cbBuf; /* Size, in bytes, of Buffer */
PULONG pcbNeeded; /* Size in bytes of available information */
SPLERR rc;
rc = SplQueryJob(pszComputerName,
pszQueueName, ulJob, ulLevel, pBuf,
cbBuf, pcbNeeded);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQueryJob ΓòÉΓòÉΓòÉ
Related Functions
o SplEnumJob
o SplEnumQueue
o SplQueryQueue
o SplSetJob
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQueryJob ΓòÉΓòÉΓòÉ
The following sample code will print out the information contained in a
PRJINFO3 structure that is returned from a SplQueryJob call. The parameters
that are entered on the command line are the computer name, queue name, and the
job id.
#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h> /* for printf call */
#include <stdlib.h> /* for atoi call */
INT main (argc, argv)
INT argc;
CHAR *argv[];
{
INT splerr;
ULONG cbBuf ;
ULONG cbNeeded ;
ULONG ulLevel ;
ULONG ulJob ;
PSZ pszComputerName ;
PSZ pszQueueName ;
PVOID pBuf;
PPRJINFO3 pprj3 ;
/* Input the parameters Computer Name, Queue Name,and Job ID. Check that */
/* three parameters have been entered along with the program name. */
if (argc != 4)
{
/* Print a message and exit if wrong number of parameters entered */
printf("Syntax: sjqry ComputerName QueueName JobID \n");
DosExit( EXIT_PROCESS , 0 ) ;
}
/* Set the parameters to the values entered on the command line. */
pszComputerName = argv[1] ;
pszQueueName = argv[2] ;
ulJob = atoi (argv[3]);
/* Valid levels are 0,2,and 3. Level 3 returns a PRJINFO3 structure. */
ulLevel = 3 ;
/* Call the function with cbBuf equal to zero in order to get the number */
/* of bytes needed returned in cbNeeded. */
splerr = SplQueryJob(pszComputerName,pszQueueName,ulJob,
ulLevel, (PVOID)NULL, 0L, &cbNeeded );
/* Only continue if the error return code is one of the two following. */
if (splerr == NERR_BufTooSmall || splerr == ERROR_MORE_DATA )
{
/* Allocate memory for the buffer(pBuf). Only continue if memory is */
/* successfully allocated. */
if (DosAllocMem( &pBuf, cbNeeded,
PAG_READ|PAG_WRITE|PAG_COMMIT)
)
{
/* Set the count of bytes needed for the buffer to the value */
/* returned in cbNeeded from the first call. */
cbBuf = cbNeeded ;
/* Make the call again with all the correct values. */
SplQueryJob(pszComputerName,pszQueueName,ulJob,
ulLevel, pBuf, cbBuf, &cbNeeded) ;
/* Set a pointer to point to the beginning of the buffer that holds */
/* the returned structure. */
pprj3=(PPRJINFO3)pBuf;
/* Print out the information for each element in the structure. */
printf("Job ID = %d\n", pprj3->uJobId);
printf("Job Priority= %d\n", pprj3->uPriority);
printf("User Name = %s\n", pprj3->pszUserName);
printf("Position = %d\n", pprj3->uPosition);
printf("Status = %d\n", pprj3->fsStatus);
printf("Submitted = %ld\n",pprj3->ulSubmitted);
printf("Size = %ld\n",pprj3->ulSize);
printf("Comment = %s\n", pprj3->pszComment);
printf("Document = %s\n", pprj3->pszDocument);
printf("Notify Name = %s\n", pprj3->pszNotifyName);
printf("Data Type = %s\n", pprj3->pszDataType);
printf("Parms = %s\n", pprj3->pszParms);
printf("Status = %s\n", pprj3->pszStatus);
printf("Queue = %s\n", pprj3->pszQueue);
printf("QProc Name = %s\n", pprj3->pszQProcName);
printf("QProc Parms = %s\n", pprj3->pszQProcParms);
printf("Driver Name = %s\n", pprj3->pszDriverName);
printf("Printer Name= %s\n", pprj3->pszPrinterName);
/* If pDriverData is NULL, then we can not access any data. */
if (pprj3->pDriverData)
{
printf(" pDriverData->cb - %ld\n",
(ULONG)pprj3->pDriverData->cb);
printf(" pDriverData->lVersion - %ld\n",
(ULONG)pprj3->pDriverData->lVersion) ;
printf(" pDriverData->szDeviceName - %s\n",
pprj3->pDriverData->szDeviceName) ;
}
printf("/n");
/* Free memory that we allocated. */
DosFreeMem(pBuf) ;
}
}
else
{
/* If we are here than we have an error code. Print it out. */
printf("SplQueryJob Error=%ld,Bytes Needed=%ld\n",splerr, cbNeeded);
}
DosExit( EXIT_PROCESS , 0 ) ;
return(splerr);
}
ΓòÉΓòÉΓòÉ 3.27. SplQueryQueue ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplQueryQueue ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplQueryQueue ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where queue is to be queried. A NULL string specifies the
local workstation.
pszQueueName (PSZ) - input
Queue name.
ulLevel (ULONG) - input
Level of detail required. This must be 3, 4, 5 or 6.
pBuf (PVOID) - input
Buffer.
cbBuf (ULONG) - input
Size, in bytes, of Buffer.
pcbNeeded (PULONG) - output
Size in bytes of available information.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplQueryQueue ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
Return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
ERROR_INVALID_LEVEL (124)
The level parameter is invalid.
ERROR_MORE_DATA (234)
Additional data is available.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_BufTooSmall (2123)
The API return buffer is too small.
NERR_QNotFound (2150)
The printer queue does not exist.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplQueryQueue ΓòÉΓòÉΓòÉ
The buffer contents on return are:
ulLevel Buffer Contents
3 A PRQINFO3 structure, with associated variable information up to
cbBuf. The fsType bit PRQ3_TYPE_APPDEFAULT is set for the
application default queue only.
4 A PRQINFO3 structure, with associated variable information, and an
array of PRJINFO2 structures, one for each job in the queue, up to
cbBuf.
5 A queue name of type PSZ.
6 A PRQINFO6 structure, with associated variable information up to
cbBuf.
If ulLevel is 3 or 4, and pBuf cannot hold the entire PRQINFO3 structure,
SplQueryQueue returns NERR_BufTooSmall (2123). If ulLevel is 6, and pBuf cannot
hold the entire PRQINFO6 structure, SplQueryQueue returns NERR_BufTooSmall
(2123).
If ulLevel is 4, and pBuf cannot hold all the available PRJINFO2 structures,
SplQueryQueue returns ERROR_MORE_DATA (234).
To obtain the size of buffer required, call SplQueryQueue with the required
value of ulLevel and a NULL buffer. The number of bytes required is returned in
pcbNeeded.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplQueryQueue ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function supplies information */
/* about a print queue, and, optionally, */
/* about the jobs in it. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where queue is to be queried */
PSZ pszQueueName; /* Queue name */
ULONG ulLevel; /* Level of detail required */
PVOID pBuf; /* Buffer */
ULONG cbBuf; /* Size, in bytes, of Buffer */
PULONG pcbNeeded; /* Size in bytes of available information */
SPLERR rc; /* Return */
rc = SplQueryQueue(pszComputerName,
pszQueueName, ulLevel, pBuf, cbBuf,
pcbNeeded);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplQueryQueue ΓòÉΓòÉΓòÉ
Related Functions
o SplEnumQueue
o SplQueryJob
o SplSetJob
o SplSetQueue
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplQueryQueue ΓòÉΓòÉΓòÉ
This sample code queries the local workstation for a queue name that is entered
at the command prompt. The query is done at level 4 which returns returns in
the buffer information in a PRQINFO3 structure and follows this with PRJINFO2
structures - one for each job in the queue.
#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h>
INT main (argc, argv)
INT argc;
CHAR *argv[];
{
ULONG splerr ;
ULONG cbBuf;
ULONG cbNeeded ;
ULONG ulLevel ;
ULONG i ;
USHORT uJobCount ;
PSZ pszComputerName ;
PSZ pszQueueName ;
PVOID pBuf;
PPRJINFO2 prj2 ;
PPRQINFO3 prq3 ;
if (argc != 2)
{
printf("Syntax: setqryq QueueName \n");
DosExit( EXIT_PROCESS , 0 ) ;
}
pszComputerName = (PSZ)NULL ;
pszQueueName = argv[1];
ulLevel = 4L;
splerr = SplQueryQueue(pszComputerName, pszQueueName, ulLevel,
(PVOID)NULL, 0L, &cbNeeded );
if (splerr != NERR_BufTooSmall || splerr != ERROR_MORE_DATA )
{
printf("SplQueryQueue Error=%ld, cbNeeded=%ld\n",splerr, cbNeeded) ;
DosExit( EXIT_PROCESS , 0 ) ;
}
if (!DosAllocMem( &pBuf, cbNeeded,
PAG_READ|PAG_WRITE|PAG_COMMIT)
{
cbBuf = cbNeeded ;
splerr = SplQueryQueue(pszComputerName, pszQueueName, ulLevel,
pBuf, cbBuf, &cbNeeded) ;
prq3=(PPRQINFO3)pBuf;
printf("Queue info: name- %s\n", prq3->pszName) ;
if ( prq3->fsType & PRQ3_TYPE_APPDEFAULT )
printf(" This is the application default print queue\n");
printf(" priority - %d starttime - %d endtime - %d fsType - %X\n",
prq3->uPriority , prq3->uStartTime , prq3->uUntilTime ,
prq3->fsType ) ;
printf(" pszSepFile - %s\n", prq3->pszSepFile) ;
printf(" pszPrProc - %s\n", prq3->pszPrProc) ;
printf(" pszParms - %s\n", prq3->pszParms) ;
printf(" pszComment - %s\n", prq3->pszComment) ;
printf(" pszPrinters - %s\n", prq3->pszPrinters) ;
printf(" pszDriverName - %s\n", prq3->pszDriverName) ;
if (prq3->pDriverData)
{
printf(" pDriverData->cb - %ld\n",
(ULONG)prq3->pDriverData->cb);
printf(" pDriverData->lVersion - %ld\n",
(ULONG)prq3->pDriverData->lVersion) ;
printf(" pDriverData->szDeviceName - %s\n",
prq3->pDriverData->szDeviceName) ;
}
/* Store the job count for use later in the for loop. */
uJobCount = prq3->cJobs;
printf("Job count in this queue is %d\n\n",uJobCount);
/* Increment the pointer to the PRQINFO3 structure so that it points to*/
/* the first structure after itself. */
prq3++;
/* Cast the prq3 pointer to point to a PRJINFO2 structure, and set a */
/* pointer to point to that place. */
prj2=(PPRJINFO2)prq3;
for (i=0 ; i<uJobCount ;i++ ) {
printf("Job ID = %d\n", prj2->uJobId);
printf("Priority = %d\n", prj2->uPriority);
printf("User Name = %s\n", prj2->pszUserName);
printf("Position = %d\n", prj2->uPosition);
printf("Status = %d\n", prj2->fsStatus);
printf("Submitted = %ld\n", prj2->ulSubmitted);
printf("Size = %ld\n", prj2->ulSize);
printf("Comment = %s\n", prj2->pszComment);
printf("Document = %s\n\n",prj2->pszDocument);
/* Increment the pointer to point to the next structure. */
prj2++;
} /* endfor */
DosFreeMem(pBuf) ;
}
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr);
}
ΓòÉΓòÉΓòÉ 3.28. SplReleaseJob ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplReleaseJob ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplReleaseJob ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where job is to be continued. A NULL string specifies the
local workstation.
pszQueueName (PSZ) - input
Queue Name.
ulJob (ULONG) - input
Job identification number.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplReleaseJob ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_JobNotFound (2151)
The print job does not exist.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_JobInvalidState (2164)
This operation cannot be performed on the print job in its current state.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplReleaseJob ΓòÉΓòÉΓòÉ
Any job can be released by a user with administrator privilege.
A job created locally can be released locally regardless of user privilege
level, but it can be released remotely only by a user with administrator
privilege.
A remote job can be released by a user without administrator privilege only if
the user identification of the person initiating the request is the same as the
user identification of the person who created the job.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplReleaseJob ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function releases a held print job.*/
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where job is to be continued */
PSZ pszQueueName; /* Queue Name */
ULONG ulJob; /* Job identification number */
SPLERR rc;
rc = SplReleaseJob(pszComputerName,
pszQueueName, ulJob);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplReleaseJob ΓòÉΓòÉΓòÉ
Related Functions
o SplEnumJob
o SplHoldJob
o SplQueryJob
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplReleaseJob ΓòÉΓòÉΓòÉ
This sample code will release the job id that is entered at the prompt.
#define INCL_BASE
#define INCL_SPL
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h> /* for printf function */
#include <stdlib.h> /* for atoi function */
INT main (argc, argv)
INT argc;
CHAR *argv[];
{
SPLERR splerr ;
ULONG ulJob ;
PSZ pszComputerName = NULL ;
PSZ pszQueueName = NULL ;
/* Get job id from the input argument */
ulJob = atoi(argv[1]);
/* Call the function to do the release. If an error is returned, print it. */
splerr=SplReleaseJob( pszComputerName, pszQueueName, ulJob);
switch (splerr)
{
case NO_ERROR:
printf("Job %d was released.\n",ulJob);
break;
case NERR_JobNotFound:
printf("Job does not exist.\n");
break;
case NERR_JobInvalidState:
printf("This operation can't be performed on the print Job.\n");
break;
default:
printf("Errorcode = %ld\n",splerr);
} /* endswitch */
DosExit( EXIT_PROCESS , 0 ) ;
argc;
return (splerr);
}
ΓòÉΓòÉΓòÉ 3.29. SplReleaseQueue ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplReleaseQueue ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplReleaseQueue ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where queue is to be continued. A NULL string specifies the
local workstation.
pszQueueName (PSZ) - input
Queue name.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplReleaseQueue ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_QNotFound (2150)
The printer queue does not exist.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplReleaseQueue ΓòÉΓòÉΓòÉ
This function releases a queue that has been held by a SplHoldQueue function,
or disabled by an error on the queue. It does not affect an active print queue.
To release a queue on a remote server requires administrator privilege on the
remote server.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplReleaseQueue ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function releases a held print */
/* queue. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where queue is to be continued */
PSZ pszQueueName; /* Queue name */
SPLERR rc;
rc = SplReleaseQueue(pszComputerName,
pszQueueName);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplReleaseQueue ΓòÉΓòÉΓòÉ
Related Functions
o SplEnumQueue
o SplHoldQueue
o SplQueryQueue
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplReleaseQueue ΓòÉΓòÉΓòÉ
This sample code will release the local queue that is entered at the prompt.
#define INCL_SPL
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h> /* for printf function */
INT main (argc, argv)
INT argc;
CHAR *argv[];
{
SPLERR splerr ;
PSZ pszComputerName = NULL ;
PSZ pszQueueName ;
/* Get queue name from the input argument. */
pszQueueName = argv[1];
/* Call the function to do the release. If an error is returned, print it. */
splerr=SplReleaseQueue(pszComputerName, pszQueueName);
if (splerr != 0L)
{
switch (splerr)
{
case NERR_QNotFound:
printf("Queue does not exist.\n");
break;
case NERR_SpoolerNotLoaded:
printf("The Spooler is not running.\n");
break;
default:
printf("Errorcode = %ld\n",splerr);
} /* endswitch */
}
else
{
printf("Queue %s was released.\n",pszQueueName);
} /* endif */
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr);
}
ΓòÉΓòÉΓòÉ 3.30. SplSetDevice ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplSetDevice ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplSetDevice ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where print device is to be modified. A NULL string
specifies the local workstation.
pszPrintDeviceName (PSZ) - input
Name of Print Device.
ulLevel (ULONG) - input
Level of detail required. This must be 3.
pBuf (PVOID) - input
Buffer.
cbBuf (ULONG) - input
Size, in bytes, of Buffer.
ulParmNum (ULONG) - input
Parameter number. Specifies either that the entire PRDINFO3 structure is to
be modified, or that one specific parameter only is to be modified. If
ulParmNum is 0, pBuf must contain a complete PRDINFO3 structure. Otherwise,
pBuf must contain a valid value corresponding to the parameter to be
modified:
Parameter Constant (Value)
pszLogAddr PRD_LOGADDR_PARMNUM (3)
pszComment PRD_COMMENT_PARMNUM (7)
pszDrivers PRD_DRIVERS_PARMNUM (8)
usTimeOut PRD_TIMEOUT_PARMNUM (10)
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplSetDevice ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
ERROR_INVALID_LEVEL (124)
The level parameter is invalid.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_BufTooSmall (2123)
The API return buffer is too small.
NERR_DestNotFound (2152)
The print device cannot be found.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_DestInvalidState (2162)
This operation cannot be performed on the print device.
NERR_SpoolNoMemory (2165)
A spooler memory allocation failure occurred.
NERR_DriverNotFound (2166)
The device driver does not exist.
NERR_BadDev (2341)
The requested device is invalid.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplSetDevice ΓòÉΓòÉΓòÉ
This function allows modification of a print device and its connection to a
logical address. To disconnect a print device from a port, use ulLevel=3,
ulParmNum=3, and pBuf is a NULL string.
To modify a print device on a remote server requires administrator privilege.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplSetDevice ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function modifies the */
/* configuration of a print device. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where print device is to be modified */
PSZ pszPrintDeviceName; /* Name of Print Device */
ULONG ulLevel; /* Level of detail required */
PVOID pBuf; /* Buffer */
ULONG cbBuf; /* Size, in bytes, of Buffer */
ULONG ulParmNum; /* Parameter number */
SPLERR rc;
rc = SplSetDevice(pszComputerName,
pszPrintDeviceName, ulLevel, pBuf,
cbBuf, ulParmNum);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplSetDevice ΓòÉΓòÉΓòÉ
Related Functions
o SplEnumDevice
o SplEnumDriver
o SplEnumPort
o SplEnumPrinter
o SplQueryDevice
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplSetDevice ΓòÉΓòÉΓòÉ
This sample code first gets a device name from the command line. It then
prompts the user for a parameter number and a value associated with it.
#define INCL_BASE
#define INCL_DOSMEMMGR
#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h> /* for printf function */
#include <string.h> /* for strlen function */
#include <stdlib.h> /* for atoi function */
INT main (argc, argv)
INT argc;
CHAR *argv[];
{
CHAR bufValue[2]={0};
CHAR bufInput[128]={0};
ULONG splerr ;
ULONG cbBuf ;
ULONG ulParmNum ;
USHORT usParm;
PSZ pszComputerName ;
PSZ pszPrintDeviceName ;
PVOID pBuf;
if (argc != 2)
{
printf("Syntax: sdset DeviceName \n");
DosExit( EXIT_PROCESS , 0 ) ;
}
pszComputerName = (PSZ)NULL ;
/* Set the print device name to the value from the command line. */
pszPrintDeviceName = argv[1];
/* Get the parameter and the value. Store them in buffers. */
printf("Enter Parameter number to be modified\n");
gets(&bufValue[0]);
printf("Enter new parameter value \n");
gets(&bufInput[0]);
/* Convert the input parmnum to a ULONG. */
ulParmNum = atoi(&bufValue[0]);
switch (ulParmNum)
{
case 10:
/* Determine the size of the buffer. */
cbBuf = sizeof(PUSHORT);
/* Convert the input parameter to a USHORT. */
usParm =(USHORT)atoi(&bufInput[0]);
/* Point the buffer to the value. */
pBuf = &usParm;
break;
case 3:
case 7:
case 8:
/* Determine the size of the buffer. */
cbBuf = strlen(&bufInput[0])+1;
/* Point the buffer to the value. */
pBuf = (PSZ)&bufInput;
break;
default:
printf("Invalid number\n");
DosExit( EXIT_PROCESS , 0 ) ;
break;
}
/* Make the call. */
splerr = SplSetDevice(pszComputerName,pszPrintDeviceName,3L,
pBuf,cbBuf,ulParmNum) ;
/* Print out the result. */
printf("SplSetDevice Err= %ld, Parameter= %d, cbBuf= %ld ,ulParmNum= %ld\n",
splerr, usParm, cbBuf, ulParmNum);
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr);
}
ΓòÉΓòÉΓòÉ 3.31. SplSetJob ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplSetJob ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplSetJob ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where job is to be modified. A NULL string specifies the
local workstation.
pszQueueName (PSZ) - input
Queue Name.
ulJob (ULONG) - input
Job identification number.
ulLevel (ULONG) - input
Level of detail required. This must be 3.
pBuf (PVOID) - input
Buffer.
cbBuf (ULONG) - input
Size, in bytes, of Buffer.
ulParmNum (ULONG) - input
Parameter number. Specifies either that the entire PRJINFO3 structure is to
be modified, or that one specified parameter only is to be modified.
If ulParmNum is 0, pBuf must contain a complete PRJINFO3 structure.
Otherwise, pBuf must contain a valid value corresponding to the parameter to
be modified, as follows:
Parameter Value
pszNotifyName PRJ_NOTIFYNAME_PARMNUM (3)
pszDataType PRJ_DATATYPE_PARMNUM (4)
pszParms PRJ_PARMS_PARMNUM (5)
uPosition PRJ_POSITION_PARMNUM (6)
pszComment PRJ_COMMENT_PARMNUM (11)
pszDocument PRJ_DOCUMENT_PARMNUM (12)
pszStatus PRJ_STATUSCOMMENT_PARMNUM (13)
uPriority PRJ_PRIORITY_PARMNUM (14)
pszQProcParms PRJ_PROCPARMS_PARMNUM (16)
pDriverData PRJ_DRIVERDATA_PARMNUM (18)
uPosition must be given the appropriate value, as follows:
Value Change
0 No change
1 Move to first place
>1 Move to this position, or if the specified
value is greater than the number of jobs in
the queue, move to the end of the queue.
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplSetJob ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
ERROR_INVALID_LEVEL (124)
The level parameter is invalid.
NERR_NetNotStarted (2102)
The network program is not started.
NERR_BufTooSmall (2123)
The API return buffer is too small.
NERR_JobNotFound (2151)
The print job does not exist.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_JobInvalidState (2164)
This operation cannot be performed on the print job in its current state.
NERR_SpoolNoMemory (2165)
A spooler memory allocation failure occurred.
NERR_DriverNotFound (2166)
The device driver does not exist.
NERR_ProcNotFound (2168)
The queue processor is not installed.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplSetJob ΓòÉΓòÉΓòÉ
The job priority is changed, if necessary, to the priority of the next job
after the new position. If the spooler is restarted, the order in which jobs
are put on the queue depends on the priority and age of the job. This order may
be different from the order following the SplSetJob call.
Users without administrator privilege can use SplSetJob only for jobs created
when the same user name was logged on. They can move jobs backwards only, and
cannot increase the job priority above the queue priority.
A job created locally has no associated user name, and any user can set
information locally for the job. Only an administrator can set information for
a job on a remote server.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplSetJob ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function modifies the instructions */
/* for a print job. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where job is to be modified */
PSZ pszQueueName; /* Queue Name */
ULONG ulJob; /* Job identification number */
ULONG ulLevel; /* Level of detail required */
PVOID pBuf; /* Buffer */
ULONG cbBuf; /* Size, in bytes, of Buffer */
ULONG ulParmNum; /* Parameter number */
SPLERR rc;
rc = SplSetJob(pszComputerName,
pszQueueName, ulJob, ulLevel, pBuf,
cbBuf, ulParmNum);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplSetJob ΓòÉΓòÉΓòÉ
Related Functions
o SplEnumJob
o SplQueryJob
o SplQueryQueue
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplSetJob ΓòÉΓòÉΓòÉ
This sample code first gets a queue name and a jobid from the command prompt.
It then prompts the user to enter a parameter number and a value for that
number.
#define INCL_BASE
#define INCL_DOSMEMMGR
#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
INT main (argc, argv)
INT argc;
CHAR *argv[];
{
CHAR bufValue[2]={0};
CHAR bufInput[128]={0};
ULONG splerr ;
ULONG cbBuf;
ULONG ulParmNum ;
ULONG ulJob ;
USHORT usParm;
PSZ pszComputerName ;
PSZ pszQueueName ;
PVOID pBuf;
if (argc != 3)
{
printf("Syntax: sjset QueueName JobID \n");
DosExit( EXIT_PROCESS , 0 ) ;
}
pszComputerName = (PSZ)NULL ;
/* Set values to those entered at the prompt. */
pszQueueName = argv[1] ;
ulJob = atoi (argv[2]);
/* Request a parameter and the associated value. Store them in buffers. */
printf("Enter Parameter number to be modified\n");
gets(&bufValue[0]);
printf("Enter new parameter value \n");
gets(&bufInput[0]);
/* Convert the ParmNum to a ULONG. */
ulParmNum = atoi(&bufValue[0]);
switch (ulParmNum)
{
case 6:
case 14:
/* Calculate size of buffer needed if this is the parameter.*/
cbBuf = sizeof(PUSHORT);
/* Convert input parameter into a USHORT. */
usParm =(USHORT)atoi(&bufInput[0]);
/* Point pBuf to the value. */
pBuf = &usParm;
break;
case 3:
case 4:
case 5:
case 11:
case 12:
case 16:
/* Calculate size of buffer needed if this is the parameter.*/
cbBuf = strlen(&bufInput[0])+1;
/* Point pBuf to the value. */
pBuf = (PSZ)&bufInput;
break;
case 18:
printf("In order to keep code simple, this is not implemented.");
break;
default:
printf("Invalid number\n");
}
splerr = SplSetJob(pszComputerName,pszQueueName,ulJob,3L,
pBuf,cbBuf,ulParmNum) ;
if ( !splerr)
printf("Parameter was set.");
else
printf("SplSetJob Error= %ld, Parameter= %d, Buf= %ld ,ParmNum= %ld\n",
splerr, usParm, cbBuf, ulParmNum);
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr) ;
}
ΓòÉΓòÉΓòÉ 3.32. SplSetQueue ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Topics - SplSetQueue ΓòÉΓòÉΓòÉ
Select an item:
Function Syntax
Parameters
Return Values
Notes
Example
Related Functions
Glossary
ΓòÉΓòÉΓòÉ <hidden> Parameters - SplSetQueue ΓòÉΓòÉΓòÉ
pszComputerName (PSZ) - input
Name of computer where queue is to be modified. A NULL string specifies the
local workstation.
pszQueueName (PSZ) - input
Queue name.
ulLevel (ULONG) - input
Level of detail required. This must be 3 or 6.
pBuf (PVOID) - input
Buffer.
cbBuf (ULONG) - input
Size, in bytes, of Buffer.
lParmNum (ULONG) - input
Parameter number. Specifies either that the entire PRQINFO3 or PRQINFO6
structure is to be modified, or that one specified parameter only is to be
modified.
If lParmNum is 0, pBuf must contain a complete PRQINFO3 or PRQINFO6
structure. Otherwise, pBuf must contain a valid value corresponding to the
parameter to be modified, as follows:
Parameter Value
uPriority PRQ_PRIORITY_PARMNUM (2)
uStartTime PRQ_STARTTIME_PARMNUM (3)
uUntilTime PRQ_UNTILTIME_PARMNUM (4)
pszSepFile PRQ_SEPARATOR_PARMNUM (5)
pszPrProc PRQ_PROCESSOR_PARMNUM (6)
pszParms PRQ_PARMS_PARMNUM (8)
pszComment PRQ_COMMENT_PARMNUM (9)
fsType PRQ_TYPE_PARMNUM (10)
pszPrinters PRQ_PRINTERS_PARMNUM (12)
pszDriverName PRQ_DRIVERNAME_PARMNUM (13)
pDriverData PRQ_DRIVERDATA_PARMNUM (14)
pszRemoteComputerName PRQ_REMOTE_COMPUTER_PARMNUM (15)
pszRemoteQueueName PRQ_REMOTE_QUEUE_PARMNUM (16)
ΓòÉΓòÉΓòÉ <hidden> Return Values - SplSetQueue ΓòÉΓòÉΓòÉ
rc (SPLERR) - return
NO_ERROR (0)
No errors occurred.
ERROR_ACCESS_DENIED (5)
Access is denied.
ERROR_NOT_SUPPORTED (50)
This request is not supported by the network.
ERROR_BAD_NETPATH (53)
The network path cannot be located.
ERROR_INVALID_PARAMETER (87)
An invalid parameter is specified.
ERROR_INVALID_LEVEL (124)
The level parameter is invalid.
NERR_NetNotStarted (2102)
The network program is not installed.
NERR_RedirectedPath (2117)
The operation is invalid on a redirected resource.
NERR_BufTooSmall (2123)
The API return buffer is too small.
NERR_QNotFound (2150)
The printer queue does not exist.
NERR_DestNotFound (2152)
The printer destination cannot be found.
NERR_DestNoRoom (2157)
The maximum number of printer destinations has been reached.
NERR_SpoolerNotLoaded (2161)
The spooler is not running.
NERR_DestInvalidState (2162)
This operation cannot be performed on the print destination.
NERR_SpoolNoMemory (2165)
A spooler memory allocation failure occurred.
NERR_DriverNotFound (2166)
The device driver does not exist.
NERR_DataTypeInvalid (2167)
The datatype is not supported by the processor.
NERR_ProcNotFound (2168)
The queue processor is not installed.
NERR_BadDev (2341)
The requested device is invalid.
NERR_CommDevInUse (2343)
The requested device is invalid.
NERR_InvalidComputer (2351)
The computer name is invalid.
ΓòÉΓòÉΓòÉ <hidden> Notes - SplSetQueue ΓòÉΓòÉΓòÉ
If the uPriority field in PRQINFO3 or PRQINFO6 is set to PRQ_NO_PRIORITY, the
queue priority is not changed.
ΓòÉΓòÉΓòÉ <hidden> Syntax - SplSetQueue ΓòÉΓòÉΓòÉ
/*******************************************/
/* This function modifies the */
/* configuration of a print queue. */
/*******************************************/
#define INCL_SPL /* Or use INCL_PM */
#include <os2.h>
PSZ pszComputerName; /* Name of computer where queue is to be modified */
PSZ pszQueueName; /* Queue name */
ULONG ulLevel; /* Level of detail required */
PVOID pBuf; /* Buffer */
ULONG cbBuf; /* Size, in bytes, of Buffer */
ULONG lParmNum; /* Parameter number */
SPLERR rc;
rc = SplSetQueue(pszComputerName,
pszQueueName, ulLevel, pBuf, cbBuf,
lParmNum);
ΓòÉΓòÉΓòÉ <hidden> Related Functions - SplSetQueue ΓòÉΓòÉΓòÉ
Related Functions
o SplCreateQueue
o SplEnumDevice
o SplEnumDriver
o SplEnumQueue
o SplEnumQueueProcessor
o SplQueryQueue
ΓòÉΓòÉΓòÉ <hidden> Example Code - SplSetQueue ΓòÉΓòÉΓòÉ
This sample code prompts the user to enter a parameter number and a value at
the prompt. This value is then put into a buffer for use by the function.
#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_SPLERRORS
#include <os2.h>
#include <stdio.h> /* for printf function */
#include <stdlib.h> /* for atoi function */
#include <string.h> /* for strlen function */
INT main (argc, argv)
INT argc;
CHAR *argv[];
{
CHAR bufValue[2] = {0};
CHAR bufInput[128]= {0};
ULONG splerr ;
ULONG cbBuf ;
ULONG ulParmNum ;
USHORT usParm ;
PSZ pszComputerName ;
PSZ pszQueueName ;
PVOID pBuf;
if (argc != 2)
{
printf("Syntax: setqryq QueueName \n");
DosExit( EXIT_PROCESS , 0 ) ;
}
/* This function will be for the local workstation.
pszComputerName = (PSZ)NULL ;
/* Get the parameter from the command line. */
pszQueueName = argv[1];
/* Prompt the user for the parameter and values, and put them in buffers. */
printf("Enter Parameter number to be modified\n");
gets(&bufValue[0]);
printf("Enter new parameter value \n");
gets(&bufInput[0]);
/* Convert the ParmNum to a ULONG. */
ulParmNum = atoi(&bufValue[0]);
switch (ulParmNum){
case 2:
case 3:
case 4:
case 10:
/* Determine the size of the buffer needed. */
cbBuf = sizeof(PUSHORT);
/* Convert the buffer input to a USHORT. */
usParm =(USHORT)atoi(&bufInput[0]);
/* Set the pBuf pointer to point to the value obtained. */
pBuf = &usParm;
break;
case 5:
case 6:
case 8:
case 9:
case 12:
case 13:
/* Determine the size of the buffer needed. */
cbBuf = strlen(&bufInput[0])+1;
/* Set the pBuf pointer to point to the value obtained from input. */
pBuf = (PSZ)&bufInput;
break;
case 14:
printf("For simplicity this is not implemented.");
break;
default:
printf("Invalid number\n");
DosExit( EXIT_PROCESS , 0 ) ;
break;
}
/* Make the call with all the proper parameters. */
splerr = SplSetQueue(pszComputerName, pszQueueName, 3L,
pBuf, cbBuf, ulParmNum) ;
/* Print the resultant error code, and the parameters entered. */
printf("SplSetQueue Error= %ld, Parameter= %d, cbBuf= %ld,
ulParmNum= %ld\n",
splerr, usParm, cbBuf, ulParmNum);
DosExit( EXIT_PROCESS , 0 ) ;
return (splerr);
}